--- linux-source-2.6.17-2.6.17.1.orig/security/inode.c +++ linux-source-2.6.17-2.6.17.1/security/inode.c @@ -224,7 +224,7 @@ pr_debug("securityfs: creating file '%s'\n",name); - error = simple_pin_fs(&fs_type, &mount, &mount_count); + error = simple_pin_fs("securityfs", &mount, &mount_count); if (error) { dentry = ERR_PTR(error); goto exit; --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/callback_xdr.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/callback_xdr.c @@ -202,7 +202,7 @@ status = decode_fh(xdr, &args->fh); out: dprintk("%s: exit with status = %d\n", __FUNCTION__, status); - return status; + return 0; } static unsigned encode_string(struct xdr_stream *xdr, unsigned int len, const char *str) --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/proc.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/proc.c @@ -44,10 +44,11 @@ #include #include #include -#include "internal.h" #define NFSDBG_FACILITY NFSDBG_PROC +extern struct rpc_procinfo nfs_procedures[]; + /* * Bare-bones access to getattr: this is for nfs_read_super. */ @@ -610,6 +611,8 @@ return 0; } +extern u32 * nfs_decode_dirent(u32 *, struct nfs_entry *, int); + static int nfs_read_done(struct rpc_task *task, struct nfs_read_data *data) { if (task->tk_status >= 0) { --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/callback.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/callback.c @@ -182,6 +182,8 @@ /* * Define NFS4 callback program */ +extern struct svc_version nfs4_callback_version1; + static struct svc_version *nfs4_callback_version[] = { [1] = &nfs4_callback_version1, }; --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/Makefile +++ linux-source-2.6.17-2.6.17.1/fs/nfs/Makefile @@ -4,16 +4,14 @@ obj-$(CONFIG_NFS_FS) += nfs.o -nfs-y := dir.o file.o inode.o super.o nfs2xdr.o pagelist.o \ - proc.o read.o symlink.o unlink.o write.o \ - namespace.o +nfs-y := dir.o file.o inode.o nfs2xdr.o pagelist.o \ + proc.o read.o symlink.o unlink.o write.o nfs-$(CONFIG_ROOT_NFS) += nfsroot.o mount_clnt.o nfs-$(CONFIG_NFS_V3) += nfs3proc.o nfs3xdr.o nfs-$(CONFIG_NFS_V3_ACL) += nfs3acl.o nfs-$(CONFIG_NFS_V4) += nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o \ delegation.o idmap.o \ - callback.o callback_xdr.o callback_proc.o \ - nfs4namespace.o + callback.o callback_xdr.o callback_proc.o nfs-$(CONFIG_NFS_DIRECTIO) += direct.o nfs-$(CONFIG_SYSCTL) += sysctl.o nfs-objs := $(nfs-y) --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/direct.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/direct.c @@ -893,7 +893,7 @@ * nfs_init_directcache - create a slab cache for nfs_direct_req structures * */ -int __init nfs_init_directcache(void) +int nfs_init_directcache(void) { nfs_direct_cachep = kmem_cache_create("nfs_direct_cache", sizeof(struct nfs_direct_req), @@ -907,10 +907,10 @@ } /** - * nfs_destroy_directcache - destroy the slab cache for nfs_direct_req structures + * nfs_init_directcache - destroy the slab cache for nfs_direct_req structures * */ -void __exit nfs_destroy_directcache(void) +void nfs_destroy_directcache(void) { if (kmem_cache_destroy(nfs_direct_cachep)) printk(KERN_INFO "nfs_direct_cache: not all structures were freed\n"); --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/sysctl.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/sysctl.c @@ -12,7 +12,6 @@ #include #include #include -#include #include "callback.h" @@ -47,15 +46,6 @@ .strategy = &sysctl_jiffies, }, #endif - { - .ctl_name = CTL_UNNUMBERED, - .procname = "nfs_mountpoint_timeout", - .data = &nfs_mountpoint_expiry_timeout, - .maxlen = sizeof(nfs_mountpoint_expiry_timeout), - .mode = 0644, - .proc_handler = &proc_dointvec_jiffies, - .strategy = &sysctl_jiffies, - }, { .ctl_name = 0 } }; --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/pagelist.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/pagelist.c @@ -325,7 +325,6 @@ /** * nfs_scan_list - Scan a list for matching requests - * @nfsi: NFS inode * @head: One of the NFS inode request lists * @dst: Destination list * @idx_start: lower bound of page->index to scan @@ -337,15 +336,14 @@ * The requests are *not* checked to ensure that they form a contiguous set. * You must be holding the inode's req_lock when calling this function */ -int nfs_scan_list(struct nfs_inode *nfsi, struct list_head *head, - struct list_head *dst, unsigned long idx_start, - unsigned int npages) +int +nfs_scan_list(struct list_head *head, struct list_head *dst, + unsigned long idx_start, unsigned int npages) { - struct nfs_page *pgvec[NFS_SCAN_MAXENTRIES]; - struct nfs_page *req; - unsigned long idx_end; - int found, i; - int res; + struct list_head *pos, *tmp; + struct nfs_page *req; + unsigned long idx_end; + int res; res = 0; if (npages == 0) @@ -353,32 +351,25 @@ else idx_end = idx_start + npages - 1; - for (;;) { - found = radix_tree_gang_lookup(&nfsi->nfs_page_tree, - (void **)&pgvec[0], idx_start, - NFS_SCAN_MAXENTRIES); - if (found <= 0) + list_for_each_safe(pos, tmp, head) { + + req = nfs_list_entry(pos); + + if (req->wb_index < idx_start) + continue; + if (req->wb_index > idx_end) break; - for (i = 0; i < found; i++) { - req = pgvec[i]; - if (req->wb_index > idx_end) - goto out; - idx_start = req->wb_index + 1; - if (req->wb_list_head != head) - continue; - if (nfs_set_page_writeback_locked(req)) { - nfs_list_remove_request(req); - nfs_list_add_request(req, dst); - res++; - } - } + if (!nfs_set_page_writeback_locked(req)) + continue; + nfs_list_remove_request(req); + nfs_list_add_request(req, dst); + res++; } -out: return res; } -int __init nfs_init_nfspagecache(void) +int nfs_init_nfspagecache(void) { nfs_page_cachep = kmem_cache_create("nfs_page", sizeof(struct nfs_page), @@ -390,7 +381,7 @@ return 0; } -void __exit nfs_destroy_nfspagecache(void) +void nfs_destroy_nfspagecache(void) { if (kmem_cache_destroy(nfs_page_cachep)) printk(KERN_INFO "nfs_page: not all structures were freed\n"); --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/nfs3xdr.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/nfs3xdr.c @@ -22,13 +22,14 @@ #include #include #include -#include "internal.h" #define NFSDBG_FACILITY NFSDBG_XDR /* Mapping from NFS error code to "errno" error code. */ #define errno_NFSERR_IO EIO +extern int nfs_stat_to_errno(int); + /* * Declare the space requirements for NFS arguments and replies as * number of 32bit-words @@ -165,8 +166,7 @@ if (MAJOR(fattr->rdev) != major || MINOR(fattr->rdev) != minor) fattr->rdev = 0; - p = xdr_decode_hyper(p, &fattr->fsid.major); - fattr->fsid.minor = 0; + p = xdr_decode_hyper(p, &fattr->fsid_u.nfs3); p = xdr_decode_hyper(p, &fattr->fileid); p = xdr_decode_time3(p, &fattr->atime); p = xdr_decode_time3(p, &fattr->mtime); --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/file.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/file.c @@ -127,6 +127,23 @@ } /** + * nfs_revalidate_file - Revalidate the page cache & related metadata + * @inode - pointer to inode struct + * @file - pointer to file + */ +static int nfs_revalidate_file(struct inode *inode, struct file *filp) +{ + struct nfs_inode *nfsi = NFS_I(inode); + int retval = 0; + + if ((nfsi->cache_validity & (NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_ATTR)) + || nfs_attribute_timeout(inode)) + retval = __nfs_revalidate_inode(NFS_SERVER(inode), inode); + nfs_revalidate_mapping(inode, filp->f_mapping); + return 0; +} + +/** * nfs_revalidate_size - Revalidate the file size * @inode - pointer to inode struct * @file - pointer to struct file @@ -211,7 +228,7 @@ dentry->d_parent->d_name.name, dentry->d_name.name, (unsigned long) count, (unsigned long) pos); - result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); + result = nfs_revalidate_file(inode, iocb->ki_filp); nfs_add_stats(inode, NFSIOS_NORMALREADBYTES, count); if (!result) result = generic_file_aio_read(iocb, buf, count, pos); @@ -230,7 +247,7 @@ dentry->d_parent->d_name.name, dentry->d_name.name, (unsigned long) count, (unsigned long long) *ppos); - res = nfs_revalidate_mapping(inode, filp->f_mapping); + res = nfs_revalidate_file(inode, filp); if (!res) res = generic_file_sendfile(filp, ppos, count, actor, target); return res; @@ -246,7 +263,7 @@ dfprintk(VFS, "nfs: mmap(%s/%s)\n", dentry->d_parent->d_name.name, dentry->d_name.name); - status = nfs_revalidate_mapping(inode, file->f_mapping); + status = nfs_revalidate_file(inode, file); if (!status) status = generic_file_mmap(file, vma); return status; @@ -303,11 +320,7 @@ static void nfs_invalidate_page(struct page *page, unsigned long offset) { - struct inode *inode = page->mapping->host; - - /* Cancel any unstarted writes on this page */ - if (offset == 0) - nfs_sync_inode_wait(inode, page->index, 1, FLUSH_INVALIDATE); + /* FIXME: we really should cancel any unstarted writes on this page */ } static int nfs_release_page(struct page *page, gfp_t gfp) @@ -366,6 +379,7 @@ if (result) goto out; } + nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); result = count; if (!count) --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/symlink.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/symlink.c @@ -52,7 +52,7 @@ { struct inode *inode = dentry->d_inode; struct page *page; - void *err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping)); + void *err = ERR_PTR(nfs_revalidate_inode(NFS_SERVER(inode), inode)); if (err) goto read_failed; page = read_cache_page(&inode->i_data, 0, --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/read.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/read.c @@ -51,11 +51,14 @@ if (p) { memset(p, 0, sizeof(*p)); INIT_LIST_HEAD(&p->pages); - if (pagecount <= ARRAY_SIZE(p->page_array)) - p->pagevec = p->page_array; + if (pagecount < NFS_PAGEVEC_SIZE) + p->pagevec = &p->page_array[0]; else { - p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); - if (!p->pagevec) { + size_t size = ++pagecount * sizeof(struct page *); + p->pagevec = kmalloc(size, GFP_NOFS); + if (p->pagevec) { + memset(p->pagevec, 0, size); + } else { mempool_free(p, nfs_rdata_mempool); p = NULL; } @@ -101,28 +104,6 @@ return 0; } -static void nfs_readpage_truncate_uninitialised_page(struct nfs_read_data *data) -{ - unsigned int remainder = data->args.count - data->res.count; - unsigned int base = data->args.pgbase + data->res.count; - unsigned int pglen; - struct page **pages; - - if (data->res.eof == 0 || remainder == 0) - return; - /* - * Note: "remainder" can never be negative, since we check for - * this in the XDR code. - */ - pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; - base &= ~PAGE_CACHE_MASK; - pglen = PAGE_CACHE_SIZE - base; - if (pglen < remainder) - memclear_highpage_flush(*pages, base, pglen); - else - memclear_highpage_flush(*pages, base, remainder); -} - /* * Read a page synchronously. */ @@ -196,9 +177,11 @@ NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATIME; spin_unlock(&inode->i_lock); - nfs_readpage_truncate_uninitialised_page(rdata); - if (rdata->res.eof || rdata->res.count == rdata->args.count) - SetPageUptodate(page); + if (count) + memclear_highpage_flush(page, rdata->args.pgbase, count); + SetPageUptodate(page); + if (PageError(page)) + ClearPageError(page); result = 0; io_error: @@ -453,12 +436,20 @@ struct nfs_page *req = data->req; struct page *page = req->wb_page; - if (likely(task->tk_status >= 0)) - nfs_readpage_truncate_uninitialised_page(data); - else - SetPageError(page); if (nfs_readpage_result(task, data) != 0) return; + if (task->tk_status >= 0) { + unsigned int request = data->args.count; + unsigned int result = data->res.count; + + if (result < request) { + memclear_highpage_flush(page, + data->args.pgbase + result, + request - result); + } + } else + SetPageError(page); + if (atomic_dec_and_test(&req->wb_complete)) { if (!PageError(page)) SetPageUptodate(page); @@ -471,40 +462,6 @@ .rpc_release = nfs_readdata_release, }; -static void nfs_readpage_set_pages_uptodate(struct nfs_read_data *data) -{ - unsigned int count = data->res.count; - unsigned int base = data->args.pgbase; - struct page **pages; - - if (unlikely(count == 0)) - return; - pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; - base &= ~PAGE_CACHE_MASK; - count += base; - for (;count >= PAGE_CACHE_SIZE; count -= PAGE_CACHE_SIZE, pages++) - SetPageUptodate(*pages); - /* - * Was this an eof or a short read? If the latter, don't mark the page - * as uptodate yet. - */ - if (count > 0 && (data->res.eof || data->args.count == data->res.count)) - SetPageUptodate(*pages); -} - -static void nfs_readpage_set_pages_error(struct nfs_read_data *data) -{ - unsigned int count = data->args.count; - unsigned int base = data->args.pgbase; - struct page **pages; - - pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; - base &= ~PAGE_CACHE_MASK; - count += base; - for (;count >= PAGE_CACHE_SIZE; count -= PAGE_CACHE_SIZE, pages++) - SetPageError(*pages); -} - /* * This is the callback from RPC telling us whether a reply was * received or some error occurred (timeout or socket shutdown). @@ -512,24 +469,27 @@ static void nfs_readpage_result_full(struct rpc_task *task, void *calldata) { struct nfs_read_data *data = calldata; + unsigned int count = data->res.count; - /* - * Note: nfs_readpage_result may change the values of - * data->args. In the multi-page case, we therefore need - * to ensure that we call the next nfs_readpage_set_page_uptodate() - * first in the multi-page case. - */ - if (likely(task->tk_status >= 0)) { - nfs_readpage_truncate_uninitialised_page(data); - nfs_readpage_set_pages_uptodate(data); - } else - nfs_readpage_set_pages_error(data); if (nfs_readpage_result(task, data) != 0) return; while (!list_empty(&data->pages)) { struct nfs_page *req = nfs_list_entry(data->pages.next); - + struct page *page = req->wb_page; nfs_list_remove_request(req); + + if (task->tk_status >= 0) { + if (count < PAGE_CACHE_SIZE) { + if (count < req->wb_bytes) + memclear_highpage_flush(page, + req->wb_pgbase + count, + req->wb_bytes - count); + count = 0; + } else + count -= PAGE_CACHE_SIZE; + SetPageUptodate(page); + } else + SetPageError(page); nfs_readpage_release(req); } } @@ -694,7 +654,7 @@ return ret; } -int __init nfs_init_readpagecache(void) +int nfs_init_readpagecache(void) { nfs_rdata_cachep = kmem_cache_create("nfs_read_data", sizeof(struct nfs_read_data), @@ -711,7 +671,7 @@ return 0; } -void __exit nfs_destroy_readpagecache(void) +void nfs_destroy_readpagecache(void) { mempool_destroy(nfs_rdata_mempool); if (kmem_cache_destroy(nfs_rdata_cachep)) --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/inode.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/inode.c @@ -36,8 +36,6 @@ #include #include #include -#include -#include #include #include @@ -46,17 +44,89 @@ #include "callback.h" #include "delegation.h" #include "iostat.h" -#include "internal.h" #define NFSDBG_FACILITY NFSDBG_VFS #define NFS_PARANOIA 1 +/* Maximum number of readahead requests + * FIXME: this should really be a sysctl so that users may tune it to suit + * their needs. People that do NFS over a slow network, might for + * instance want to reduce it to something closer to 1 for improved + * interactive response. + */ +#define NFS_MAX_READAHEAD (RPC_DEF_SLOT_TABLE - 1) + static void nfs_invalidate_inode(struct inode *); static int nfs_update_inode(struct inode *, struct nfs_fattr *); +static struct inode *nfs_alloc_inode(struct super_block *sb); +static void nfs_destroy_inode(struct inode *); +static int nfs_write_inode(struct inode *,int); +static void nfs_delete_inode(struct inode *); +static void nfs_clear_inode(struct inode *); +static void nfs_umount_begin(struct super_block *); +static int nfs_statfs(struct super_block *, struct kstatfs *); +static int nfs_show_options(struct seq_file *, struct vfsmount *); +static int nfs_show_stats(struct seq_file *, struct vfsmount *); static void nfs_zap_acl_cache(struct inode *); -static kmem_cache_t * nfs_inode_cachep; +static struct rpc_program nfs_program; + +static struct super_operations nfs_sops = { + .alloc_inode = nfs_alloc_inode, + .destroy_inode = nfs_destroy_inode, + .write_inode = nfs_write_inode, + .delete_inode = nfs_delete_inode, + .statfs = nfs_statfs, + .clear_inode = nfs_clear_inode, + .umount_begin = nfs_umount_begin, + .show_options = nfs_show_options, + .show_stats = nfs_show_stats, +}; + +/* + * RPC cruft for NFS + */ +static struct rpc_stat nfs_rpcstat = { + .program = &nfs_program +}; +static struct rpc_version * nfs_version[] = { + NULL, + NULL, + &nfs_version2, +#if defined(CONFIG_NFS_V3) + &nfs_version3, +#elif defined(CONFIG_NFS_V4) + NULL, +#endif +#if defined(CONFIG_NFS_V4) + &nfs_version4, +#endif +}; + +static struct rpc_program nfs_program = { + .name = "nfs", + .number = NFS_PROGRAM, + .nrvers = ARRAY_SIZE(nfs_version), + .version = nfs_version, + .stats = &nfs_rpcstat, + .pipe_dir_name = "/nfs", +}; + +#ifdef CONFIG_NFS_V3_ACL +static struct rpc_stat nfsacl_rpcstat = { &nfsacl_program }; +static struct rpc_version * nfsacl_version[] = { + [3] = &nfsacl_version3, +}; + +struct rpc_program nfsacl_program = { + .name = "nfsacl", + .number = NFS_ACL_PROGRAM, + .nrvers = ARRAY_SIZE(nfsacl_version), + .version = nfsacl_version, + .stats = &nfsacl_rpcstat, +}; +#endif /* CONFIG_NFS_V3_ACL */ static inline unsigned long nfs_fattr_to_ino_t(struct nfs_fattr *fattr) @@ -64,7 +134,8 @@ return nfs_fileid_to_ino_t(fattr->fileid); } -int nfs_write_inode(struct inode *inode, int sync) +static int +nfs_write_inode(struct inode *inode, int sync) { int flags = sync ? FLUSH_SYNC : 0; int ret; @@ -75,15 +146,31 @@ return 0; } -void nfs_clear_inode(struct inode *inode) +static void +nfs_delete_inode(struct inode * inode) { - struct nfs_inode *nfsi = NFS_I(inode); - struct rpc_cred *cred; + dprintk("NFS: delete_inode(%s/%ld)\n", inode->i_sb->s_id, inode->i_ino); + + truncate_inode_pages(&inode->i_data, 0); + nfs_wb_all(inode); /* * The following should never happen... */ - BUG_ON(nfs_have_writebacks(inode)); + if (nfs_have_writebacks(inode)) { + printk(KERN_ERR "nfs_delete_inode: inode %ld has pending RPC requests\n", inode->i_ino); + } + + clear_inode(inode); +} + +static void +nfs_clear_inode(struct inode *inode) +{ + struct nfs_inode *nfsi = NFS_I(inode); + struct rpc_cred *cred; + + nfs_wb_all(inode); BUG_ON (!list_empty(&nfsi->open_files)); nfs_zap_acl_cache(inode); cred = nfsi->cache_access.cred; @@ -92,6 +179,554 @@ BUG_ON(atomic_read(&nfsi->data_updates) != 0); } +void +nfs_umount_begin(struct super_block *sb) +{ + struct rpc_clnt *rpc = NFS_SB(sb)->client; + + /* -EIO all pending I/O */ + if (!IS_ERR(rpc)) + rpc_killall_tasks(rpc); + rpc = NFS_SB(sb)->client_acl; + if (!IS_ERR(rpc)) + rpc_killall_tasks(rpc); +} + + +static inline unsigned long +nfs_block_bits(unsigned long bsize, unsigned char *nrbitsp) +{ + /* make sure blocksize is a power of two */ + if ((bsize & (bsize - 1)) || nrbitsp) { + unsigned char nrbits; + + for (nrbits = 31; nrbits && !(bsize & (1 << nrbits)); nrbits--) + ; + bsize = 1 << nrbits; + if (nrbitsp) + *nrbitsp = nrbits; + } + + return bsize; +} + +/* + * Calculate the number of 512byte blocks used. + */ +static inline unsigned long +nfs_calc_block_size(u64 tsize) +{ + loff_t used = (tsize + 511) >> 9; + return (used > ULONG_MAX) ? ULONG_MAX : used; +} + +/* + * Compute and set NFS server blocksize + */ +static inline unsigned long +nfs_block_size(unsigned long bsize, unsigned char *nrbitsp) +{ + if (bsize < NFS_MIN_FILE_IO_SIZE) + bsize = NFS_DEF_FILE_IO_SIZE; + else if (bsize >= NFS_MAX_FILE_IO_SIZE) + bsize = NFS_MAX_FILE_IO_SIZE; + + return nfs_block_bits(bsize, nrbitsp); +} + +/* + * Obtain the root inode of the file system. + */ +static struct inode * +nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *fsinfo) +{ + struct nfs_server *server = NFS_SB(sb); + int error; + + error = server->rpc_ops->getroot(server, rootfh, fsinfo); + if (error < 0) { + dprintk("nfs_get_root: getattr error = %d\n", -error); + return ERR_PTR(error); + } + + return nfs_fhget(sb, rootfh, fsinfo->fattr); +} + +/* + * Do NFS version-independent mount processing, and sanity checking + */ +static int +nfs_sb_init(struct super_block *sb, rpc_authflavor_t authflavor) +{ + struct nfs_server *server; + struct inode *root_inode; + struct nfs_fattr fattr; + struct nfs_fsinfo fsinfo = { + .fattr = &fattr, + }; + struct nfs_pathconf pathinfo = { + .fattr = &fattr, + }; + int no_root_error = 0; + unsigned long max_rpc_payload; + + /* We probably want something more informative here */ + snprintf(sb->s_id, sizeof(sb->s_id), "%x:%x", MAJOR(sb->s_dev), MINOR(sb->s_dev)); + + server = NFS_SB(sb); + + sb->s_magic = NFS_SUPER_MAGIC; + + server->io_stats = nfs_alloc_iostats(); + if (server->io_stats == NULL) + return -ENOMEM; + + root_inode = nfs_get_root(sb, &server->fh, &fsinfo); + /* Did getting the root inode fail? */ + if (IS_ERR(root_inode)) { + no_root_error = PTR_ERR(root_inode); + goto out_no_root; + } + sb->s_root = d_alloc_root(root_inode); + if (!sb->s_root) { + no_root_error = -ENOMEM; + goto out_no_root; + } + sb->s_root->d_op = server->rpc_ops->dentry_ops; + + /* mount time stamp, in seconds */ + server->mount_time = jiffies; + + /* Get some general file system info */ + if (server->namelen == 0 && + server->rpc_ops->pathconf(server, &server->fh, &pathinfo) >= 0) + server->namelen = pathinfo.max_namelen; + /* Work out a lot of parameters */ + if (server->rsize == 0) + server->rsize = nfs_block_size(fsinfo.rtpref, NULL); + if (server->wsize == 0) + server->wsize = nfs_block_size(fsinfo.wtpref, NULL); + + if (fsinfo.rtmax >= 512 && server->rsize > fsinfo.rtmax) + server->rsize = nfs_block_size(fsinfo.rtmax, NULL); + if (fsinfo.wtmax >= 512 && server->wsize > fsinfo.wtmax) + server->wsize = nfs_block_size(fsinfo.wtmax, NULL); + + max_rpc_payload = nfs_block_size(rpc_max_payload(server->client), NULL); + if (server->rsize > max_rpc_payload) + server->rsize = max_rpc_payload; + if (server->rsize > NFS_MAX_FILE_IO_SIZE) + server->rsize = NFS_MAX_FILE_IO_SIZE; + server->rpages = (server->rsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; + + if (server->wsize > max_rpc_payload) + server->wsize = max_rpc_payload; + if (server->wsize > NFS_MAX_FILE_IO_SIZE) + server->wsize = NFS_MAX_FILE_IO_SIZE; + server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; + + if (sb->s_blocksize == 0) + sb->s_blocksize = nfs_block_bits(server->wsize, + &sb->s_blocksize_bits); + server->wtmult = nfs_block_bits(fsinfo.wtmult, NULL); + + server->dtsize = nfs_block_size(fsinfo.dtpref, NULL); + if (server->dtsize > PAGE_CACHE_SIZE) + server->dtsize = PAGE_CACHE_SIZE; + if (server->dtsize > server->rsize) + server->dtsize = server->rsize; + + if (server->flags & NFS_MOUNT_NOAC) { + server->acregmin = server->acregmax = 0; + server->acdirmin = server->acdirmax = 0; + sb->s_flags |= MS_SYNCHRONOUS; + } + server->backing_dev_info.ra_pages = server->rpages * NFS_MAX_READAHEAD; + + sb->s_maxbytes = fsinfo.maxfilesize; + if (sb->s_maxbytes > MAX_LFS_FILESIZE) + sb->s_maxbytes = MAX_LFS_FILESIZE; + + server->client->cl_intr = (server->flags & NFS_MOUNT_INTR) ? 1 : 0; + server->client->cl_softrtry = (server->flags & NFS_MOUNT_SOFT) ? 1 : 0; + + /* We're airborne Set socket buffersize */ + rpc_setbufsize(server->client, server->wsize + 100, server->rsize + 100); + return 0; + /* Yargs. It didn't work out. */ +out_no_root: + dprintk("nfs_sb_init: get root inode failed: errno %d\n", -no_root_error); + if (!IS_ERR(root_inode)) + iput(root_inode); + return no_root_error; +} + +static void nfs_init_timeout_values(struct rpc_timeout *to, int proto, unsigned int timeo, unsigned int retrans) +{ + to->to_initval = timeo * HZ / 10; + to->to_retries = retrans; + if (!to->to_retries) + to->to_retries = 2; + + switch (proto) { + case IPPROTO_TCP: + if (!to->to_initval) + to->to_initval = 60 * HZ; + if (to->to_initval > NFS_MAX_TCP_TIMEOUT) + to->to_initval = NFS_MAX_TCP_TIMEOUT; + to->to_increment = to->to_initval; + to->to_maxval = to->to_initval + (to->to_increment * to->to_retries); + to->to_exponential = 0; + break; + case IPPROTO_UDP: + default: + if (!to->to_initval) + to->to_initval = 11 * HZ / 10; + if (to->to_initval > NFS_MAX_UDP_TIMEOUT) + to->to_initval = NFS_MAX_UDP_TIMEOUT; + to->to_maxval = NFS_MAX_UDP_TIMEOUT; + to->to_exponential = 1; + break; + } +} + +/* + * Create an RPC client handle. + */ +static struct rpc_clnt * +nfs_create_client(struct nfs_server *server, const struct nfs_mount_data *data) +{ + struct rpc_timeout timeparms; + struct rpc_xprt *xprt = NULL; + struct rpc_clnt *clnt = NULL; + int proto = (data->flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP; + + nfs_init_timeout_values(&timeparms, proto, data->timeo, data->retrans); + + server->retrans_timeo = timeparms.to_initval; + server->retrans_count = timeparms.to_retries; + + /* create transport and client */ + xprt = xprt_create_proto(proto, &server->addr, &timeparms); + if (IS_ERR(xprt)) { + dprintk("%s: cannot create RPC transport. Error = %ld\n", + __FUNCTION__, PTR_ERR(xprt)); + return (struct rpc_clnt *)xprt; + } + clnt = rpc_create_client(xprt, server->hostname, &nfs_program, + server->rpc_ops->version, data->pseudoflavor); + if (IS_ERR(clnt)) { + dprintk("%s: cannot create RPC client. Error = %ld\n", + __FUNCTION__, PTR_ERR(xprt)); + goto out_fail; + } + + clnt->cl_intr = 1; + clnt->cl_softrtry = 1; + + return clnt; + +out_fail: + return clnt; +} + +/* + * The way this works is that the mount process passes a structure + * in the data argument which contains the server's IP address + * and the root file handle obtained from the server's mount + * daemon. We stash these away in the private superblock fields. + */ +static int +nfs_fill_super(struct super_block *sb, struct nfs_mount_data *data, int silent) +{ + struct nfs_server *server; + rpc_authflavor_t authflavor; + + server = NFS_SB(sb); + sb->s_blocksize_bits = 0; + sb->s_blocksize = 0; + if (data->bsize) + sb->s_blocksize = nfs_block_size(data->bsize, &sb->s_blocksize_bits); + if (data->rsize) + server->rsize = nfs_block_size(data->rsize, NULL); + if (data->wsize) + server->wsize = nfs_block_size(data->wsize, NULL); + server->flags = data->flags & NFS_MOUNT_FLAGMASK; + + server->acregmin = data->acregmin*HZ; + server->acregmax = data->acregmax*HZ; + server->acdirmin = data->acdirmin*HZ; + server->acdirmax = data->acdirmax*HZ; + + /* Start lockd here, before we might error out */ + if (!(server->flags & NFS_MOUNT_NONLM)) + lockd_up(); + + server->namelen = data->namlen; + server->hostname = kmalloc(strlen(data->hostname) + 1, GFP_KERNEL); + if (!server->hostname) + return -ENOMEM; + strcpy(server->hostname, data->hostname); + + /* Check NFS protocol revision and initialize RPC op vector + * and file handle pool. */ +#ifdef CONFIG_NFS_V3 + if (server->flags & NFS_MOUNT_VER3) { + server->rpc_ops = &nfs_v3_clientops; + server->caps |= NFS_CAP_READDIRPLUS; + } else { + server->rpc_ops = &nfs_v2_clientops; + } +#else + server->rpc_ops = &nfs_v2_clientops; +#endif + + /* Fill in pseudoflavor for mount version < 5 */ + if (!(data->flags & NFS_MOUNT_SECFLAVOUR)) + data->pseudoflavor = RPC_AUTH_UNIX; + authflavor = data->pseudoflavor; /* save for sb_init() */ + /* XXX maybe we want to add a server->pseudoflavor field */ + + /* Create RPC client handles */ + server->client = nfs_create_client(server, data); + if (IS_ERR(server->client)) + return PTR_ERR(server->client); + /* RFC 2623, sec 2.3.2 */ + if (authflavor != RPC_AUTH_UNIX) { + struct rpc_auth *auth; + + server->client_sys = rpc_clone_client(server->client); + if (IS_ERR(server->client_sys)) + return PTR_ERR(server->client_sys); + auth = rpcauth_create(RPC_AUTH_UNIX, server->client_sys); + if (IS_ERR(auth)) + return PTR_ERR(auth); + } else { + atomic_inc(&server->client->cl_count); + server->client_sys = server->client; + } + if (server->flags & NFS_MOUNT_VER3) { +#ifdef CONFIG_NFS_V3_ACL + if (!(server->flags & NFS_MOUNT_NOACL)) { + server->client_acl = rpc_bind_new_program(server->client, &nfsacl_program, 3); + /* No errors! Assume that Sun nfsacls are supported */ + if (!IS_ERR(server->client_acl)) + server->caps |= NFS_CAP_ACLS; + } +#else + server->flags &= ~NFS_MOUNT_NOACL; +#endif /* CONFIG_NFS_V3_ACL */ + /* + * The VFS shouldn't apply the umask to mode bits. We will + * do so ourselves when necessary. + */ + sb->s_flags |= MS_POSIXACL; + if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN) + server->namelen = NFS3_MAXNAMLEN; + sb->s_time_gran = 1; + } else { + if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN) + server->namelen = NFS2_MAXNAMLEN; + } + + sb->s_op = &nfs_sops; + return nfs_sb_init(sb, authflavor); +} + +static int +nfs_statfs(struct super_block *sb, struct kstatfs *buf) +{ + struct nfs_server *server = NFS_SB(sb); + unsigned char blockbits; + unsigned long blockres; + struct nfs_fh *rootfh = NFS_FH(sb->s_root->d_inode); + struct nfs_fattr fattr; + struct nfs_fsstat res = { + .fattr = &fattr, + }; + int error; + + lock_kernel(); + + error = server->rpc_ops->statfs(server, rootfh, &res); + buf->f_type = NFS_SUPER_MAGIC; + if (error < 0) + goto out_err; + + /* + * Current versions of glibc do not correctly handle the + * case where f_frsize != f_bsize. Eventually we want to + * report the value of wtmult in this field. + */ + buf->f_frsize = sb->s_blocksize; + + /* + * On most *nix systems, f_blocks, f_bfree, and f_bavail + * are reported in units of f_frsize. Linux hasn't had + * an f_frsize field in its statfs struct until recently, + * thus historically Linux's sys_statfs reports these + * fields in units of f_bsize. + */ + buf->f_bsize = sb->s_blocksize; + blockbits = sb->s_blocksize_bits; + blockres = (1 << blockbits) - 1; + buf->f_blocks = (res.tbytes + blockres) >> blockbits; + buf->f_bfree = (res.fbytes + blockres) >> blockbits; + buf->f_bavail = (res.abytes + blockres) >> blockbits; + + buf->f_files = res.tfiles; + buf->f_ffree = res.afiles; + + buf->f_namelen = server->namelen; + out: + unlock_kernel(); + return 0; + + out_err: + dprintk("%s: statfs error = %d\n", __FUNCTION__, -error); + buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; + goto out; + +} + +static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss, int showdefaults) +{ + static struct proc_nfs_info { + int flag; + char *str; + char *nostr; + } nfs_info[] = { + { NFS_MOUNT_SOFT, ",soft", ",hard" }, + { NFS_MOUNT_INTR, ",intr", "" }, + { NFS_MOUNT_NOCTO, ",nocto", "" }, + { NFS_MOUNT_NOAC, ",noac", "" }, + { NFS_MOUNT_NONLM, ",nolock", "" }, + { NFS_MOUNT_NOACL, ",noacl", "" }, + { 0, NULL, NULL } + }; + struct proc_nfs_info *nfs_infop; + char buf[12]; + char *proto; + + seq_printf(m, ",vers=%d", nfss->rpc_ops->version); + seq_printf(m, ",rsize=%d", nfss->rsize); + seq_printf(m, ",wsize=%d", nfss->wsize); + if (nfss->acregmin != 3*HZ || showdefaults) + seq_printf(m, ",acregmin=%d", nfss->acregmin/HZ); + if (nfss->acregmax != 60*HZ || showdefaults) + seq_printf(m, ",acregmax=%d", nfss->acregmax/HZ); + if (nfss->acdirmin != 30*HZ || showdefaults) + seq_printf(m, ",acdirmin=%d", nfss->acdirmin/HZ); + if (nfss->acdirmax != 60*HZ || showdefaults) + seq_printf(m, ",acdirmax=%d", nfss->acdirmax/HZ); + for (nfs_infop = nfs_info; nfs_infop->flag; nfs_infop++) { + if (nfss->flags & nfs_infop->flag) + seq_puts(m, nfs_infop->str); + else + seq_puts(m, nfs_infop->nostr); + } + switch (nfss->client->cl_xprt->prot) { + case IPPROTO_TCP: + proto = "tcp"; + break; + case IPPROTO_UDP: + proto = "udp"; + break; + default: + snprintf(buf, sizeof(buf), "%u", nfss->client->cl_xprt->prot); + proto = buf; + } + seq_printf(m, ",proto=%s", proto); + seq_printf(m, ",timeo=%lu", 10U * nfss->retrans_timeo / HZ); + seq_printf(m, ",retrans=%u", nfss->retrans_count); +} + +static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) +{ + struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); + + nfs_show_mount_options(m, nfss, 0); + + seq_puts(m, ",addr="); + seq_escape(m, nfss->hostname, " \t\n\\"); + + return 0; +} + +static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) +{ + int i, cpu; + struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); + struct rpc_auth *auth = nfss->client->cl_auth; + struct nfs_iostats totals = { }; + + seq_printf(m, "statvers=%s", NFS_IOSTAT_VERS); + + /* + * Display all mount option settings + */ + seq_printf(m, "\n\topts:\t"); + seq_puts(m, mnt->mnt_sb->s_flags & MS_RDONLY ? "ro" : "rw"); + seq_puts(m, mnt->mnt_sb->s_flags & MS_SYNCHRONOUS ? ",sync" : ""); + seq_puts(m, mnt->mnt_sb->s_flags & MS_NOATIME ? ",noatime" : ""); + seq_puts(m, mnt->mnt_sb->s_flags & MS_NODIRATIME ? ",nodiratime" : ""); + nfs_show_mount_options(m, nfss, 1); + + seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ); + + seq_printf(m, "\n\tcaps:\t"); + seq_printf(m, "caps=0x%x", nfss->caps); + seq_printf(m, ",wtmult=%d", nfss->wtmult); + seq_printf(m, ",dtsize=%d", nfss->dtsize); + seq_printf(m, ",bsize=%d", nfss->bsize); + seq_printf(m, ",namelen=%d", nfss->namelen); + +#ifdef CONFIG_NFS_V4 + if (nfss->rpc_ops->version == 4) { + seq_printf(m, "\n\tnfsv4:\t"); + seq_printf(m, "bm0=0x%x", nfss->attr_bitmask[0]); + seq_printf(m, ",bm1=0x%x", nfss->attr_bitmask[1]); + seq_printf(m, ",acl=0x%x", nfss->acl_bitmask); + } +#endif + + /* + * Display security flavor in effect for this mount + */ + seq_printf(m, "\n\tsec:\tflavor=%d", auth->au_ops->au_flavor); + if (auth->au_flavor) + seq_printf(m, ",pseudoflavor=%d", auth->au_flavor); + + /* + * Display superblock I/O counters + */ + for_each_possible_cpu(cpu) { + struct nfs_iostats *stats; + + preempt_disable(); + stats = per_cpu_ptr(nfss->io_stats, cpu); + + for (i = 0; i < __NFSIOS_COUNTSMAX; i++) + totals.events[i] += stats->events[i]; + for (i = 0; i < __NFSIOS_BYTESMAX; i++) + totals.bytes[i] += stats->bytes[i]; + + preempt_enable(); + } + + seq_printf(m, "\n\tevents:\t"); + for (i = 0; i < __NFSIOS_COUNTSMAX; i++) + seq_printf(m, "%lu ", totals.events[i]); + seq_printf(m, "\n\tbytes:\t"); + for (i = 0; i < __NFSIOS_BYTESMAX; i++) + seq_printf(m, "%Lu ", totals.bytes[i]); + seq_printf(m, "\n"); + + rpc_print_iostats(m, nfss->client); + + return 0; +} + /** * nfs_sync_mapping - helper to flush all mmapped dirty data to disk */ @@ -254,14 +889,6 @@ if (nfs_server_capable(inode, NFS_CAP_READDIRPLUS) && fattr->size <= NFS_LIMIT_READDIRPLUS) set_bit(NFS_INO_ADVISE_RDPLUS, &NFS_FLAGS(inode)); - /* Deal with crossing mountpoints */ - if (!nfs_fsid_equal(&NFS_SB(sb)->fsid, &fattr->fsid)) { - if (fattr->valid & NFS_ATTR_FATTR_V4_REFERRAL) - inode->i_op = &nfs_referral_inode_operations; - else - inode->i_op = &nfs_mountpoint_inode_operations; - inode->i_fop = NULL; - } } else if (S_ISLNK(inode->i_mode)) inode->i_op = &nfs_symlink_inode_operations; else @@ -580,7 +1207,6 @@ dfprintk(PAGECACHE, "NFS: revalidating (%s/%Ld)\n", inode->i_sb->s_id, (long long)NFS_FILEID(inode)); - nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE); lock_kernel(); if (!inode || is_bad_inode(inode)) goto out_nowait; @@ -594,7 +1220,7 @@ status = -ESTALE; /* Do we trust the cached ESTALE? */ if (NFS_ATTRTIMEO(inode) != 0) { - if (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ATIME)) { + if (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ATIME)) { /* no */ } else goto out; @@ -625,6 +1251,8 @@ } spin_unlock(&inode->i_lock); + nfs_revalidate_mapping(inode, inode->i_mapping); + if (nfsi->cache_validity & NFS_INO_INVALID_ACL) nfs_zap_acl_cache(inode); @@ -658,7 +1286,8 @@ */ int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode) { - if (!(NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATTR) + nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE); + if (!(NFS_I(inode)->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA)) && !nfs_attribute_timeout(inode)) return NFS_STALE(inode) ? -ESTALE : 0; return __nfs_revalidate_inode(server, inode); @@ -669,16 +1298,9 @@ * @inode - pointer to host inode * @mapping - pointer to mapping */ -int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping) +void nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping) { struct nfs_inode *nfsi = NFS_I(inode); - int ret = 0; - - if (NFS_STALE(inode)) - ret = -ESTALE; - if ((nfsi->cache_validity & NFS_INO_REVAL_PAGECACHE) - || nfs_attribute_timeout(inode)) - ret = __nfs_revalidate_inode(NFS_SERVER(inode), inode); if (nfsi->cache_validity & NFS_INO_INVALID_DATA) { nfs_inc_stats(inode, NFSIOS_DATAINVALIDATE); @@ -699,7 +1321,6 @@ inode->i_sb->s_id, (long long)NFS_FILEID(inode)); } - return ret; } /** @@ -739,6 +1360,12 @@ { struct nfs_inode *nfsi = NFS_I(inode); + if ((fattr->valid & NFS_ATTR_PRE_CHANGE) != 0 + && nfsi->change_attr == fattr->pre_change_attr) { + nfsi->change_attr = fattr->change_attr; + nfsi->cache_change_attribute = jiffies; + } + /* If we have atomic WCC data, we may update some attributes */ if ((fattr->valid & NFS_ATTR_WCC) != 0) { if (timespec_equal(&inode->i_ctime, &fattr->pre_ctime)) { @@ -772,6 +1399,9 @@ int data_unstable; + if ((fattr->valid & NFS_ATTR_FATTR) == 0) + return 0; + /* Has the inode gone and changed behind our back? */ if (nfsi->fileid != fattr->fileid || (inode->i_mode & S_IFMT) != (fattr->mode & S_IFMT)) { @@ -784,13 +1414,20 @@ /* Do atomic weak cache consistency updates */ nfs_wcc_update_inode(inode, fattr); - if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0 && - nfsi->change_attr != fattr->change_attr) - nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; + if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0) { + if (nfsi->change_attr == fattr->change_attr) + goto out; + nfsi->cache_validity |= NFS_INO_INVALID_ATTR; + if (!data_unstable) + nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE; + } /* Verify a few of the more important attributes */ - if (!timespec_equal(&inode->i_mtime, &fattr->mtime)) - nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; + if (!timespec_equal(&inode->i_mtime, &fattr->mtime)) { + nfsi->cache_validity |= NFS_INO_INVALID_ATTR; + if (!data_unstable) + nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE; + } cur_size = i_size_read(inode); new_isize = nfs_size_to_loff_t(fattr->size); @@ -807,6 +1444,7 @@ if (inode->i_nlink != fattr->nlink) nfsi->cache_validity |= NFS_INO_INVALID_ATTR; +out: if (!timespec_equal(&inode->i_atime, &fattr->atime)) nfsi->cache_validity |= NFS_INO_INVALID_ATIME; @@ -832,6 +1470,7 @@ if ((fattr->valid & NFS_ATTR_FATTR) == 0) return 0; spin_lock(&inode->i_lock); + nfsi->cache_validity &= ~NFS_INO_REVAL_PAGECACHE; if (time_after(fattr->time_start, nfsi->last_updated)) status = nfs_update_inode(inode, fattr); else @@ -856,7 +1495,7 @@ spin_lock(&inode->i_lock); if (unlikely((fattr->valid & NFS_ATTR_FATTR) == 0)) { - nfsi->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; + nfsi->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; goto out; } status = nfs_update_inode(inode, fattr); @@ -879,7 +1518,6 @@ */ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) { - struct nfs_server *server; struct nfs_inode *nfsi = NFS_I(inode); loff_t cur_isize, new_isize; unsigned int invalid = 0; @@ -889,6 +1527,9 @@ __FUNCTION__, inode->i_sb->s_id, inode->i_ino, atomic_read(&inode->i_count), fattr->valid); + if ((fattr->valid & NFS_ATTR_FATTR) == 0) + return 0; + if (nfsi->fileid != fattr->fileid) goto out_fileid; @@ -898,12 +1539,6 @@ if ((inode->i_mode & S_IFMT) != (fattr->mode & S_IFMT)) goto out_changed; - server = NFS_SERVER(inode); - /* Update the fsid if and only if this is the root directory */ - if (inode == inode->i_sb->s_root->d_inode - && !nfs_fsid_equal(&server->fsid, &fattr->fsid)) - server->fsid = fattr->fsid; - /* * Update the read time so we don't revalidate too often. */ @@ -913,7 +1548,7 @@ /* Are we racing with known updates of the metadata on the server? */ data_stable = nfs_verify_change_attribute(inode, fattr->time_start); if (data_stable) - nfsi->cache_validity &= ~(NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_ATIME); + nfsi->cache_validity &= ~(NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ATIME); /* Do atomic weak cache consistency updates */ nfs_wcc_update_inode(inode, fattr); @@ -977,13 +1612,15 @@ inode->i_blksize = fattr->du.nfs2.blocksize; } - if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0 && - nfsi->change_attr != fattr->change_attr) { - dprintk("NFS: change_attr change on server for file %s/%ld\n", - inode->i_sb->s_id, inode->i_ino); - nfsi->change_attr = fattr->change_attr; - invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; - nfsi->cache_change_attribute = jiffies; + if ((fattr->valid & NFS_ATTR_FATTR_V4)) { + if (nfsi->change_attr != fattr->change_attr) { + dprintk("NFS: change_attr change on server for file %s/%ld\n", + inode->i_sb->s_id, inode->i_ino); + nfsi->change_attr = fattr->change_attr; + invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; + nfsi->cache_change_attribute = jiffies; + } else + invalid &= ~(NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA); } /* Update attrtimeo value if we're out of the unstable period */ @@ -1031,15 +1668,190 @@ goto out_err; } +/* + * File system information + */ + +static int nfs_set_super(struct super_block *s, void *data) +{ + s->s_fs_info = data; + return set_anon_super(s, data); +} + +static int nfs_compare_super(struct super_block *sb, void *data) +{ + struct nfs_server *server = data; + struct nfs_server *old = NFS_SB(sb); + + if (old->addr.sin_addr.s_addr != server->addr.sin_addr.s_addr) + return 0; + if (old->addr.sin_port != server->addr.sin_port) + return 0; + return !nfs_compare_fh(&old->fh, &server->fh); +} + +static struct super_block *nfs_get_sb(struct file_system_type *fs_type, + int flags, const char *dev_name, void *raw_data) +{ + int error; + struct nfs_server *server = NULL; + struct super_block *s; + struct nfs_fh *root; + struct nfs_mount_data *data = raw_data; + + s = ERR_PTR(-EINVAL); + if (data == NULL) { + dprintk("%s: missing data argument\n", __FUNCTION__); + goto out_err; + } + if (data->version <= 0 || data->version > NFS_MOUNT_VERSION) { + dprintk("%s: bad mount version\n", __FUNCTION__); + goto out_err; + } + switch (data->version) { + case 1: + data->namlen = 0; + case 2: + data->bsize = 0; + case 3: + if (data->flags & NFS_MOUNT_VER3) { + dprintk("%s: mount structure version %d does not support NFSv3\n", + __FUNCTION__, + data->version); + goto out_err; + } + data->root.size = NFS2_FHSIZE; + memcpy(data->root.data, data->old_root.data, NFS2_FHSIZE); + case 4: + if (data->flags & NFS_MOUNT_SECFLAVOUR) { + dprintk("%s: mount structure version %d does not support strong security\n", + __FUNCTION__, + data->version); + goto out_err; + } + case 5: + memset(data->context, 0, sizeof(data->context)); + } +#ifndef CONFIG_NFS_V3 + /* If NFSv3 is not compiled in, return -EPROTONOSUPPORT */ + s = ERR_PTR(-EPROTONOSUPPORT); + if (data->flags & NFS_MOUNT_VER3) { + dprintk("%s: NFSv3 not compiled into kernel\n", __FUNCTION__); + goto out_err; + } +#endif /* CONFIG_NFS_V3 */ + + s = ERR_PTR(-ENOMEM); + server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); + if (!server) + goto out_err; + /* Zero out the NFS state stuff */ + init_nfsv4_state(server); + server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); + + root = &server->fh; + if (data->flags & NFS_MOUNT_VER3) + root->size = data->root.size; + else + root->size = NFS2_FHSIZE; + s = ERR_PTR(-EINVAL); + if (root->size > sizeof(root->data)) { + dprintk("%s: invalid root filehandle\n", __FUNCTION__); + goto out_err; + } + memcpy(root->data, data->root.data, root->size); + + /* We now require that the mount process passes the remote address */ + memcpy(&server->addr, &data->addr, sizeof(server->addr)); + if (server->addr.sin_addr.s_addr == INADDR_ANY) { + dprintk("%s: mount program didn't pass remote address!\n", + __FUNCTION__); + goto out_err; + } + + /* Fire up rpciod if not yet running */ + s = ERR_PTR(rpciod_up()); + if (IS_ERR(s)) { + dprintk("%s: couldn't start rpciod! Error = %ld\n", + __FUNCTION__, PTR_ERR(s)); + goto out_err; + } + + s = sget(fs_type, nfs_compare_super, nfs_set_super, server); + if (IS_ERR(s) || s->s_root) + goto out_rpciod_down; + + s->s_flags = flags; + + error = nfs_fill_super(s, data, flags & MS_SILENT ? 1 : 0); + if (error) { + up_write(&s->s_umount); + deactivate_super(s); + return ERR_PTR(error); + } + s->s_flags |= MS_ACTIVE; + return s; +out_rpciod_down: + rpciod_down(); +out_err: + kfree(server); + return s; +} + +static void nfs_kill_super(struct super_block *s) +{ + struct nfs_server *server = NFS_SB(s); + + kill_anon_super(s); + + if (!IS_ERR(server->client)) + rpc_shutdown_client(server->client); + if (!IS_ERR(server->client_sys)) + rpc_shutdown_client(server->client_sys); + if (!IS_ERR(server->client_acl)) + rpc_shutdown_client(server->client_acl); + + if (!(server->flags & NFS_MOUNT_NONLM)) + lockd_down(); /* release rpc.lockd */ + + rpciod_down(); /* release rpciod */ + + nfs_free_iostats(server->io_stats); + kfree(server->hostname); + kfree(server); +} + +static struct file_system_type nfs_fs_type = { + .owner = THIS_MODULE, + .name = "nfs", + .get_sb = nfs_get_sb, + .kill_sb = nfs_kill_super, + .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +}; #ifdef CONFIG_NFS_V4 +static void nfs4_clear_inode(struct inode *); + + +static struct super_operations nfs4_sops = { + .alloc_inode = nfs_alloc_inode, + .destroy_inode = nfs_destroy_inode, + .write_inode = nfs_write_inode, + .delete_inode = nfs_delete_inode, + .statfs = nfs_statfs, + .clear_inode = nfs4_clear_inode, + .umount_begin = nfs_umount_begin, + .show_options = nfs_show_options, + .show_stats = nfs_show_stats, +}; + /* * Clean out any remaining NFSv4 state that might be left over due * to open() calls that passed nfs_atomic_lookup, but failed to call * nfs_open(). */ -void nfs4_clear_inode(struct inode *inode) +static void nfs4_clear_inode(struct inode *inode) { struct nfs_inode *nfsi = NFS_I(inode); @@ -1063,9 +1875,357 @@ nfs4_close_state(state, state->state); } } + + +static int nfs4_fill_super(struct super_block *sb, struct nfs4_mount_data *data, int silent) +{ + struct nfs_server *server; + struct nfs4_client *clp = NULL; + struct rpc_xprt *xprt = NULL; + struct rpc_clnt *clnt = NULL; + struct rpc_timeout timeparms; + rpc_authflavor_t authflavour; + int err = -EIO; + + sb->s_blocksize_bits = 0; + sb->s_blocksize = 0; + server = NFS_SB(sb); + if (data->rsize != 0) + server->rsize = nfs_block_size(data->rsize, NULL); + if (data->wsize != 0) + server->wsize = nfs_block_size(data->wsize, NULL); + server->flags = data->flags & NFS_MOUNT_FLAGMASK; + server->caps = NFS_CAP_ATOMIC_OPEN; + + server->acregmin = data->acregmin*HZ; + server->acregmax = data->acregmax*HZ; + server->acdirmin = data->acdirmin*HZ; + server->acdirmax = data->acdirmax*HZ; + + server->rpc_ops = &nfs_v4_clientops; + + nfs_init_timeout_values(&timeparms, data->proto, data->timeo, data->retrans); + + server->retrans_timeo = timeparms.to_initval; + server->retrans_count = timeparms.to_retries; + + clp = nfs4_get_client(&server->addr.sin_addr); + if (!clp) { + dprintk("%s: failed to create NFS4 client.\n", __FUNCTION__); + return -EIO; + } + + /* Now create transport and client */ + authflavour = RPC_AUTH_UNIX; + if (data->auth_flavourlen != 0) { + if (data->auth_flavourlen != 1) { + dprintk("%s: Invalid number of RPC auth flavours %d.\n", + __FUNCTION__, data->auth_flavourlen); + err = -EINVAL; + goto out_fail; + } + if (copy_from_user(&authflavour, data->auth_flavours, sizeof(authflavour))) { + err = -EFAULT; + goto out_fail; + } + } + + down_write(&clp->cl_sem); + if (IS_ERR(clp->cl_rpcclient)) { + xprt = xprt_create_proto(data->proto, &server->addr, &timeparms); + if (IS_ERR(xprt)) { + up_write(&clp->cl_sem); + err = PTR_ERR(xprt); + dprintk("%s: cannot create RPC transport. Error = %d\n", + __FUNCTION__, err); + goto out_fail; + } + clnt = rpc_create_client(xprt, server->hostname, &nfs_program, + server->rpc_ops->version, authflavour); + if (IS_ERR(clnt)) { + up_write(&clp->cl_sem); + err = PTR_ERR(clnt); + dprintk("%s: cannot create RPC client. Error = %d\n", + __FUNCTION__, err); + goto out_fail; + } + clnt->cl_intr = 1; + clnt->cl_softrtry = 1; + clp->cl_rpcclient = clnt; + memcpy(clp->cl_ipaddr, server->ip_addr, sizeof(clp->cl_ipaddr)); + nfs_idmap_new(clp); + } + list_add_tail(&server->nfs4_siblings, &clp->cl_superblocks); + clnt = rpc_clone_client(clp->cl_rpcclient); + if (!IS_ERR(clnt)) + server->nfs4_state = clp; + up_write(&clp->cl_sem); + clp = NULL; + + if (IS_ERR(clnt)) { + err = PTR_ERR(clnt); + dprintk("%s: cannot create RPC client. Error = %d\n", + __FUNCTION__, err); + return err; + } + + server->client = clnt; + + if (server->nfs4_state->cl_idmap == NULL) { + dprintk("%s: failed to create idmapper.\n", __FUNCTION__); + return -ENOMEM; + } + + if (clnt->cl_auth->au_flavor != authflavour) { + struct rpc_auth *auth; + + auth = rpcauth_create(authflavour, clnt); + if (IS_ERR(auth)) { + dprintk("%s: couldn't create credcache!\n", __FUNCTION__); + return PTR_ERR(auth); + } + } + + sb->s_time_gran = 1; + + sb->s_op = &nfs4_sops; + err = nfs_sb_init(sb, authflavour); + if (err == 0) + return 0; +out_fail: + if (clp) + nfs4_put_client(clp); + return err; +} + +static int nfs4_compare_super(struct super_block *sb, void *data) +{ + struct nfs_server *server = data; + struct nfs_server *old = NFS_SB(sb); + + if (strcmp(server->hostname, old->hostname) != 0) + return 0; + if (strcmp(server->mnt_path, old->mnt_path) != 0) + return 0; + return 1; +} + +static void * +nfs_copy_user_string(char *dst, struct nfs_string *src, int maxlen) +{ + void *p = NULL; + + if (!src->len) + return ERR_PTR(-EINVAL); + if (src->len < maxlen) + maxlen = src->len; + if (dst == NULL) { + p = dst = kmalloc(maxlen + 1, GFP_KERNEL); + if (p == NULL) + return ERR_PTR(-ENOMEM); + } + if (copy_from_user(dst, src->data, maxlen)) { + kfree(p); + return ERR_PTR(-EFAULT); + } + dst[maxlen] = '\0'; + return dst; +} + +static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, + int flags, const char *dev_name, void *raw_data) +{ + int error; + struct nfs_server *server; + struct super_block *s; + struct nfs4_mount_data *data = raw_data; + void *p; + + if (data == NULL) { + dprintk("%s: missing data argument\n", __FUNCTION__); + return ERR_PTR(-EINVAL); + } + if (data->version <= 0 || data->version > NFS4_MOUNT_VERSION) { + dprintk("%s: bad mount version\n", __FUNCTION__); + return ERR_PTR(-EINVAL); + } + + server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); + if (!server) + return ERR_PTR(-ENOMEM); + /* Zero out the NFS state stuff */ + init_nfsv4_state(server); + server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); + + p = nfs_copy_user_string(NULL, &data->hostname, 256); + if (IS_ERR(p)) + goto out_err; + server->hostname = p; + + p = nfs_copy_user_string(NULL, &data->mnt_path, 1024); + if (IS_ERR(p)) + goto out_err; + server->mnt_path = p; + + p = nfs_copy_user_string(server->ip_addr, &data->client_addr, + sizeof(server->ip_addr) - 1); + if (IS_ERR(p)) + goto out_err; + + /* We now require that the mount process passes the remote address */ + if (data->host_addrlen != sizeof(server->addr)) { + s = ERR_PTR(-EINVAL); + goto out_free; + } + if (copy_from_user(&server->addr, data->host_addr, sizeof(server->addr))) { + s = ERR_PTR(-EFAULT); + goto out_free; + } + if (server->addr.sin_family != AF_INET || + server->addr.sin_addr.s_addr == INADDR_ANY) { + dprintk("%s: mount program didn't pass remote IP address!\n", + __FUNCTION__); + s = ERR_PTR(-EINVAL); + goto out_free; + } + + /* Fire up rpciod if not yet running */ + s = ERR_PTR(rpciod_up()); + if (IS_ERR(s)) { + dprintk("%s: couldn't start rpciod! Error = %ld\n", + __FUNCTION__, PTR_ERR(s)); + goto out_free; + } + + s = sget(fs_type, nfs4_compare_super, nfs_set_super, server); + + if (IS_ERR(s) || s->s_root) + goto out_free; + + s->s_flags = flags; + + error = nfs4_fill_super(s, data, flags & MS_SILENT ? 1 : 0); + if (error) { + up_write(&s->s_umount); + deactivate_super(s); + return ERR_PTR(error); + } + s->s_flags |= MS_ACTIVE; + return s; +out_err: + s = (struct super_block *)p; +out_free: + kfree(server->mnt_path); + kfree(server->hostname); + kfree(server); + return s; +} + +static void nfs4_kill_super(struct super_block *sb) +{ + struct nfs_server *server = NFS_SB(sb); + + nfs_return_all_delegations(sb); + kill_anon_super(sb); + + nfs4_renewd_prepare_shutdown(server); + + if (server->client != NULL && !IS_ERR(server->client)) + rpc_shutdown_client(server->client); + + destroy_nfsv4_state(server); + + rpciod_down(); + + nfs_free_iostats(server->io_stats); + kfree(server->hostname); + kfree(server); +} + +static struct file_system_type nfs4_fs_type = { + .owner = THIS_MODULE, + .name = "nfs4", + .get_sb = nfs4_get_sb, + .kill_sb = nfs4_kill_super, + .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +}; + +static const int nfs_set_port_min = 0; +static const int nfs_set_port_max = 65535; +static int param_set_port(const char *val, struct kernel_param *kp) +{ + char *endp; + int num = simple_strtol(val, &endp, 0); + if (endp == val || *endp || num < nfs_set_port_min || num > nfs_set_port_max) + return -EINVAL; + *((int *)kp->arg) = num; + return 0; +} + +module_param_call(callback_tcpport, param_set_port, param_get_int, + &nfs_callback_set_tcpport, 0644); + +static int param_set_idmap_timeout(const char *val, struct kernel_param *kp) +{ + char *endp; + int num = simple_strtol(val, &endp, 0); + int jif = num * HZ; + if (endp == val || *endp || num < 0 || jif < num) + return -EINVAL; + *((int *)kp->arg) = jif; + return 0; +} + +module_param_call(idmap_cache_timeout, param_set_idmap_timeout, param_get_int, + &nfs_idmap_cache_timeout, 0644); + +#define nfs4_init_once(nfsi) \ + do { \ + INIT_LIST_HEAD(&(nfsi)->open_states); \ + nfsi->delegation = NULL; \ + nfsi->delegation_state = 0; \ + init_rwsem(&nfsi->rwsem); \ + } while(0) + +static inline int register_nfs4fs(void) +{ + int ret; + + ret = nfs_register_sysctl(); + if (ret != 0) + return ret; + ret = register_filesystem(&nfs4_fs_type); + if (ret != 0) + nfs_unregister_sysctl(); + return ret; +} + +static inline void unregister_nfs4fs(void) +{ + unregister_filesystem(&nfs4_fs_type); + nfs_unregister_sysctl(); +} +#else +#define nfs4_init_once(nfsi) \ + do { } while (0) +#define register_nfs4fs() (0) +#define unregister_nfs4fs() #endif -struct inode *nfs_alloc_inode(struct super_block *sb) +extern int nfs_init_nfspagecache(void); +extern void nfs_destroy_nfspagecache(void); +extern int nfs_init_readpagecache(void); +extern void nfs_destroy_readpagecache(void); +extern int nfs_init_writepagecache(void); +extern void nfs_destroy_writepagecache(void); +#ifdef CONFIG_NFS_DIRECTIO +extern int nfs_init_directcache(void); +extern void nfs_destroy_directcache(void); +#endif + +static kmem_cache_t * nfs_inode_cachep; + +static struct inode *nfs_alloc_inode(struct super_block *sb) { struct nfs_inode *nfsi; nfsi = (struct nfs_inode *)kmem_cache_alloc(nfs_inode_cachep, SLAB_KERNEL); @@ -1084,19 +2244,11 @@ return &nfsi->vfs_inode; } -void nfs_destroy_inode(struct inode *inode) +static void nfs_destroy_inode(struct inode *inode) { kmem_cache_free(nfs_inode_cachep, NFS_I(inode)); } -#define nfs4_init_once(nfsi) \ - do { \ - INIT_LIST_HEAD(&(nfsi)->open_states); \ - nfsi->delegation = NULL; \ - nfsi->delegation_state = 0; \ - init_rwsem(&nfsi->rwsem); \ - } while(0) - static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) { struct nfs_inode *nfsi = (struct nfs_inode *) foo; @@ -1117,7 +2269,7 @@ } } -static int __init nfs_init_inodecache(void) +static int nfs_init_inodecache(void) { nfs_inode_cachep = kmem_cache_create("nfs_inode_cache", sizeof(struct nfs_inode), @@ -1130,7 +2282,7 @@ return 0; } -static void __exit nfs_destroy_inodecache(void) +static void nfs_destroy_inodecache(void) { if (kmem_cache_destroy(nfs_inode_cachep)) printk(KERN_INFO "nfs_inode_cache: not all structures were freed\n"); @@ -1159,22 +2311,29 @@ if (err) goto out1; +#ifdef CONFIG_NFS_DIRECTIO err = nfs_init_directcache(); if (err) goto out0; +#endif #ifdef CONFIG_PROC_FS rpc_proc_register(&nfs_rpcstat); #endif - if ((err = register_nfs_fs()) != 0) + err = register_filesystem(&nfs_fs_type); + if (err) + goto out; + if ((err = register_nfs4fs()) != 0) goto out; return 0; out: #ifdef CONFIG_PROC_FS rpc_proc_unregister("nfs"); #endif +#ifdef CONFIG_NFS_DIRECTIO nfs_destroy_directcache(); out0: +#endif nfs_destroy_writepagecache(); out1: nfs_destroy_readpagecache(); @@ -1188,7 +2347,9 @@ static void __exit exit_nfs_fs(void) { +#ifdef CONFIG_NFS_DIRECTIO nfs_destroy_directcache(); +#endif nfs_destroy_writepagecache(); nfs_destroy_readpagecache(); nfs_destroy_inodecache(); @@ -1196,7 +2357,8 @@ #ifdef CONFIG_PROC_FS rpc_proc_unregister("nfs"); #endif - unregister_nfs_fs(); + unregister_filesystem(&nfs_fs_type); + unregister_nfs4fs(); } /* Not quite true; I just maintain it */ --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/write.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/write.c @@ -98,10 +98,11 @@ if (p) { memset(p, 0, sizeof(*p)); INIT_LIST_HEAD(&p->pages); - if (pagecount <= ARRAY_SIZE(p->page_array)) - p->pagevec = p->page_array; + if (pagecount < NFS_PAGEVEC_SIZE) + p->pagevec = &p->page_array[0]; else { - p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); + size_t size = ++pagecount * sizeof(struct page *); + p->pagevec = kzalloc(size, GFP_NOFS); if (!p->pagevec) { mempool_free(p, nfs_commit_mempool); p = NULL; @@ -125,11 +126,14 @@ if (p) { memset(p, 0, sizeof(*p)); INIT_LIST_HEAD(&p->pages); - if (pagecount <= ARRAY_SIZE(p->page_array)) - p->pagevec = p->page_array; + if (pagecount < NFS_PAGEVEC_SIZE) + p->pagevec = &p->page_array[0]; else { - p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); - if (!p->pagevec) { + size_t size = ++pagecount * sizeof(struct page *); + p->pagevec = kmalloc(size, GFP_NOFS); + if (p->pagevec) { + memset(p->pagevec, 0, size); + } else { mempool_free(p, nfs_wdata_mempool); p = NULL; } @@ -579,33 +583,6 @@ return ret; } -static void nfs_cancel_dirty_list(struct list_head *head) -{ - struct nfs_page *req; - while(!list_empty(head)) { - req = nfs_list_entry(head->next); - nfs_list_remove_request(req); - /* Hack, cough, splutter! - * Wretched borken mm requires us to do this... - */ - set_page_writeback(req->wb_page); - end_page_writeback(req->wb_page); - nfs_inode_remove_request(req); - nfs_clear_page_writeback(req); - } -} - -static void nfs_cancel_commit_list(struct list_head *head) -{ - struct nfs_page *req; - while(!list_empty(head)) { - req = nfs_list_entry(head->next); - nfs_list_remove_request(req); - nfs_inode_remove_request(req); - nfs_clear_page_writeback(req); - } -} - /* * nfs_scan_dirty - Scan an inode for dirty requests * @inode: NFS inode to scan @@ -650,9 +627,8 @@ int res = 0; if (nfsi->ncommit != 0) { - res = nfs_scan_list(nfsi, &nfsi->commit, dst, idx_start, npages); + res = nfs_scan_list(&nfsi->commit, dst, idx_start, npages); nfsi->ncommit -= res; - sub_page_state(nr_unstable,res); if ((nfsi->ncommit == 0) != list_empty(&nfsi->commit)) printk(KERN_ERR "NFS: desynchronized value of nfs_i.ncommit.\n"); } @@ -1451,6 +1427,7 @@ nfs_clear_page_writeback(req); res++; } + sub_page_state(nr_unstable,res); } static const struct rpc_call_ops nfs_commit_ops = { @@ -1518,25 +1495,15 @@ pages = nfs_scan_dirty(inode, &head, idx_start, npages); if (pages != 0) { spin_unlock(&nfsi->req_lock); - if (how & FLUSH_INVALIDATE) - nfs_cancel_dirty_list(&head); - else - ret = nfs_flush_list(inode, &head, pages, how); + ret = nfs_flush_list(inode, &head, pages, how); spin_lock(&nfsi->req_lock); continue; } if (nocommit) break; - pages = nfs_scan_commit(inode, &head, idx_start, npages); + pages = nfs_scan_commit(inode, &head, 0, 0); if (pages == 0) break; - if (how & FLUSH_INVALIDATE) { - spin_unlock(&nfsi->req_lock); - nfs_cancel_commit_list(&head); - spin_lock(&nfsi->req_lock); - continue; - } - pages += nfs_scan_commit(inode, &head, 0, 0); spin_unlock(&nfsi->req_lock); ret = nfs_commit_list(inode, &head, how); spin_lock(&nfsi->req_lock); @@ -1545,7 +1512,7 @@ return ret; } -int __init nfs_init_writepagecache(void) +int nfs_init_writepagecache(void) { nfs_wdata_cachep = kmem_cache_create("nfs_write_data", sizeof(struct nfs_write_data), @@ -1567,7 +1534,7 @@ return 0; } -void __exit nfs_destroy_writepagecache(void) +void nfs_destroy_writepagecache(void) { mempool_destroy(nfs_commit_mempool); mempool_destroy(nfs_wdata_mempool); --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/nfs3proc.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/nfs3proc.c @@ -20,10 +20,11 @@ #include #include "iostat.h" -#include "internal.h" #define NFSDBG_FACILITY NFSDBG_PROC +extern struct rpc_procinfo nfs3_procedures[]; + /* A wrapper to handle the EJUKEBOX error message */ static int nfs3_rpc_wrapper(struct rpc_clnt *clnt, struct rpc_message *msg, int flags) @@ -808,6 +809,8 @@ return status; } +extern u32 *nfs3_decode_dirent(u32 *, struct nfs_entry *, int); + static int nfs3_read_done(struct rpc_task *task, struct nfs_read_data *data) { if (nfs3_async_handle_jukebox(task, data->inode)) --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/dir.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/dir.c @@ -528,7 +528,7 @@ lock_kernel(); - res = nfs_revalidate_mapping(inode, filp->f_mapping); + res = nfs_revalidate_inode(NFS_SERVER(inode), inode); if (res < 0) { unlock_kernel(); return res; @@ -868,17 +868,6 @@ return (nd->intent.open.flags & O_EXCL) != 0; } -static inline int nfs_reval_fsid(struct inode *dir, - struct nfs_fh *fh, struct nfs_fattr *fattr) -{ - struct nfs_server *server = NFS_SERVER(dir); - - if (!nfs_fsid_equal(&server->fsid, &fattr->fsid)) - /* Revalidate fsid on root dir */ - return __nfs_revalidate_inode(server, dir->i_sb->s_root->d_inode); - return 0; -} - static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd) { struct dentry *res; @@ -911,11 +900,6 @@ res = ERR_PTR(error); goto out_unlock; } - error = nfs_reval_fsid(dir, &fhandle, &fattr); - if (error < 0) { - res = ERR_PTR(error); - goto out_unlock; - } inode = nfs_fhget(dentry->d_sb, &fhandle, &fattr); res = (struct dentry *)inode; if (IS_ERR(res)) --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/nfs2xdr.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/nfs2xdr.c @@ -27,6 +27,8 @@ #define NFSDBG_FACILITY NFSDBG_XDR /* #define NFS_PARANOIA 1 */ +extern int nfs_stat_to_errno(int stat); + /* Mapping from NFS error code to "errno" error code. */ #define errno_NFSERR_IO EIO @@ -129,8 +131,7 @@ fattr->du.nfs2.blocksize = ntohl(*p++); rdev = ntohl(*p++); fattr->du.nfs2.blocks = ntohl(*p++); - fattr->fsid.major = ntohl(*p++); - fattr->fsid.minor = 0; + fattr->fsid_u.nfs3 = ntohl(*p++); fattr->fileid = ntohl(*p++); p = xdr_decode_time(p, &fattr->atime); p = xdr_decode_time(p, &fattr->mtime); --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/nfs3acl.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/nfs3acl.c @@ -172,10 +172,8 @@ inode->i_ino, acl, dfacl); spin_lock(&inode->i_lock); __nfs3_forget_cached_acls(NFS_I(inode)); - if (!IS_ERR(acl)) - nfsi->acl_access = posix_acl_dup(acl); - if (!IS_ERR(dfacl)) - nfsi->acl_default = posix_acl_dup(dfacl); + nfsi->acl_access = posix_acl_dup(acl); + nfsi->acl_default = posix_acl_dup(dfacl); spin_unlock(&inode->i_lock); } @@ -256,9 +254,7 @@ res.acl_access = NULL; } } - nfs3_cache_acls(inode, - (res.mask & NFS_ACL) ? res.acl_access : ERR_PTR(-EINVAL), - (res.mask & NFS_DFACL) ? res.acl_default : ERR_PTR(-EINVAL)); + nfs3_cache_acls(inode, res.acl_access, res.acl_default); switch(type) { case ACL_TYPE_ACCESS: @@ -333,7 +329,6 @@ switch (status) { case 0: status = nfs_refresh_inode(inode, &fattr); - nfs3_cache_acls(inode, acl, dfacl); break; case -EPFNOSUPPORT: case -EPROTONOSUPPORT: --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/nfs4proc.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/nfs4proc.c @@ -65,6 +65,8 @@ static int _nfs4_proc_access(struct inode *inode, struct nfs_access_entry *entry); static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct nfs4_exception *exception); static int nfs4_wait_clnt_recover(struct rpc_clnt *clnt, struct nfs4_client *clp); +extern u32 *nfs4_decode_dirent(u32 *p, struct nfs_entry *entry, int plus); +extern struct rpc_procinfo nfs4_procedures[]; /* Prevent leaks of NFSv4 errors into userland */ int nfs4_map_errors(int err) @@ -119,25 +121,6 @@ 0 }; -const u32 nfs4_fs_locations_bitmap[2] = { - FATTR4_WORD0_TYPE - | FATTR4_WORD0_CHANGE - | FATTR4_WORD0_SIZE - | FATTR4_WORD0_FSID - | FATTR4_WORD0_FILEID - | FATTR4_WORD0_FS_LOCATIONS, - FATTR4_WORD1_MODE - | FATTR4_WORD1_NUMLINKS - | FATTR4_WORD1_OWNER - | FATTR4_WORD1_OWNER_GROUP - | FATTR4_WORD1_RAWDEV - | FATTR4_WORD1_SPACE_USED - | FATTR4_WORD1_TIME_ACCESS - | FATTR4_WORD1_TIME_METADATA - | FATTR4_WORD1_TIME_MODIFY - | FATTR4_WORD1_MOUNTED_ON_FILEID -}; - static void nfs4_setup_readdir(u64 cookie, u32 *verifier, struct dentry *dentry, struct nfs4_readdir_arg *readdir) { @@ -202,15 +185,15 @@ spin_unlock(&clp->cl_lock); } -static void update_changeattr(struct inode *dir, struct nfs4_change_info *cinfo) +static void update_changeattr(struct inode *inode, struct nfs4_change_info *cinfo) { - struct nfs_inode *nfsi = NFS_I(dir); + struct nfs_inode *nfsi = NFS_I(inode); - spin_lock(&dir->i_lock); - nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA; + spin_lock(&inode->i_lock); + nfsi->cache_validity |= NFS_INO_INVALID_ATTR; if (cinfo->before == nfsi->change_attr && cinfo->atomic) nfsi->change_attr = cinfo->after; - spin_unlock(&dir->i_lock); + spin_unlock(&inode->i_lock); } struct nfs4_opendata { @@ -1348,7 +1331,7 @@ return status; } -int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) +static int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) { struct nfs4_exception exception = { }; int err; @@ -1460,50 +1443,6 @@ return nfs4_map_errors(status); } -/* - * Get locations and (maybe) other attributes of a referral. - * Note that we'll actually follow the referral later when - * we detect fsid mismatch in inode revalidation - */ -static int nfs4_get_referral(struct inode *dir, struct qstr *name, struct nfs_fattr *fattr, struct nfs_fh *fhandle) -{ - int status = -ENOMEM; - struct page *page = NULL; - struct nfs4_fs_locations *locations = NULL; - struct dentry dentry = {}; - - page = alloc_page(GFP_KERNEL); - if (page == NULL) - goto out; - locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); - if (locations == NULL) - goto out; - - dentry.d_name.name = name->name; - dentry.d_name.len = name->len; - status = nfs4_proc_fs_locations(dir, &dentry, locations, page); - if (status != 0) - goto out; - /* Make sure server returned a different fsid for the referral */ - if (nfs_fsid_equal(&NFS_SERVER(dir)->fsid, &locations->fattr.fsid)) { - dprintk("%s: server did not return a different fsid for a referral at %s\n", __FUNCTION__, name->name); - status = -EIO; - goto out; - } - - memcpy(fattr, &locations->fattr, sizeof(struct nfs_fattr)); - fattr->valid |= NFS_ATTR_FATTR_V4_REFERRAL; - if (!fattr->mode) - fattr->mode = S_IFDIR; - memset(fhandle, 0, sizeof(struct nfs_fh)); -out: - if (page) - __free_page(page); - if (locations) - kfree(locations); - return status; -} - static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fattr *fattr) { struct nfs4_getattr_arg args = { @@ -1608,8 +1547,6 @@ dprintk("NFS call lookup %s\n", name->name); status = rpc_call_sync(NFS_CLIENT(dir), &msg, 0); - if (status == -NFS4ERR_MOVED) - status = nfs4_get_referral(dir, name, fattr, fhandle); dprintk("NFS reply lookup: %d\n", status); return status; } @@ -2071,7 +2008,7 @@ if (!status) { update_changeattr(dir, &res.cinfo); nfs_post_op_update_inode(dir, res.dir_attr); - nfs_post_op_update_inode(inode, res.fattr); + nfs_refresh_inode(inode, res.fattr); } return status; @@ -3633,36 +3570,6 @@ return len; } -int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, - struct nfs4_fs_locations *fs_locations, struct page *page) -{ - struct nfs_server *server = NFS_SERVER(dir); - u32 bitmask[2] = { - [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, - [1] = FATTR4_WORD1_MOUNTED_ON_FILEID, - }; - struct nfs4_fs_locations_arg args = { - .dir_fh = NFS_FH(dir), - .name = &dentry->d_name, - .page = page, - .bitmask = bitmask, - }; - struct rpc_message msg = { - .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_FS_LOCATIONS], - .rpc_argp = &args, - .rpc_resp = fs_locations, - }; - int status; - - dprintk("%s: start\n", __FUNCTION__); - fs_locations->fattr.valid = 0; - fs_locations->server = server; - fs_locations->nlocations = 0; - status = rpc_call_sync(server->client, &msg, 0); - dprintk("%s: returned status = %d\n", __FUNCTION__, status); - return status; -} - struct nfs4_state_recovery_ops nfs4_reboot_recovery_ops = { .recover_open = nfs4_open_reclaim, .recover_lock = nfs4_lock_reclaim, --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/idmap.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/idmap.c @@ -47,6 +47,7 @@ #include #include +#include #include #include --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/nfs4_fs.h +++ linux-source-2.6.17-2.6.17.1/fs/nfs/nfs4_fs.h @@ -217,9 +217,6 @@ extern int nfs4_do_close(struct inode *inode, struct nfs4_state *state); extern struct dentry *nfs4_atomic_open(struct inode *, struct dentry *, struct nameidata *); extern int nfs4_open_revalidate(struct inode *, struct dentry *, int, struct nameidata *); -extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); -extern int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, - struct nfs4_fs_locations *fs_locations, struct page *page); extern struct nfs4_state_recovery_ops nfs4_reboot_recovery_ops; extern struct nfs4_state_recovery_ops nfs4_network_partition_recovery_ops; @@ -228,7 +225,6 @@ extern const u32 nfs4_statfs_bitmap[2]; extern const u32 nfs4_pathconf_bitmap[2]; extern const u32 nfs4_fsinfo_bitmap[2]; -extern const u32 nfs4_fs_locations_bitmap[2]; /* nfs4renewd.c */ extern void nfs4_schedule_state_renewal(struct nfs4_client *); --- linux-source-2.6.17-2.6.17.1.orig/fs/nfs/nfs4xdr.c +++ linux-source-2.6.17-2.6.17.1/fs/nfs/nfs4xdr.c @@ -411,15 +411,6 @@ #define NFS4_dec_setacl_sz (compound_decode_hdr_maxsz + \ decode_putfh_maxsz + \ op_decode_hdr_maxsz + nfs4_fattr_bitmap_maxsz) -#define NFS4_enc_fs_locations_sz \ - (compound_encode_hdr_maxsz + \ - encode_putfh_maxsz + \ - encode_getattr_maxsz) -#define NFS4_dec_fs_locations_sz \ - (compound_decode_hdr_maxsz + \ - decode_putfh_maxsz + \ - op_decode_hdr_maxsz + \ - nfs4_fattr_bitmap_maxsz) static struct { unsigned int mode; @@ -731,13 +722,6 @@ bitmask[1] & nfs4_fsinfo_bitmap[1]); } -static int encode_fs_locations(struct xdr_stream *xdr, const u32* bitmask) -{ - return encode_getattr_two(xdr, - bitmask[0] & nfs4_fs_locations_bitmap[0], - bitmask[1] & nfs4_fs_locations_bitmap[1]); -} - static int encode_getfh(struct xdr_stream *xdr) { uint32_t *p; @@ -2019,38 +2003,6 @@ } /* - * Encode FS_LOCATIONS request - */ -static int nfs4_xdr_enc_fs_locations(struct rpc_rqst *req, uint32_t *p, struct nfs4_fs_locations_arg *args) -{ - struct xdr_stream xdr; - struct compound_hdr hdr = { - .nops = 3, - }; - struct rpc_auth *auth = req->rq_task->tk_auth; - int replen; - int status; - - xdr_init_encode(&xdr, &req->rq_snd_buf, p); - encode_compound_hdr(&xdr, &hdr); - if ((status = encode_putfh(&xdr, args->dir_fh)) != 0) - goto out; - if ((status = encode_lookup(&xdr, args->name)) != 0) - goto out; - if ((status = encode_fs_locations(&xdr, args->bitmask)) != 0) - goto out; - /* set up reply - * toplevel_status + OP_PUTFH + status - * + OP_LOOKUP + status + OP_GETATTR + status = 7 - */ - replen = (RPC_REPHDRSIZE + auth->au_rslack + 7) << 2; - xdr_inline_pages(&req->rq_rcv_buf, replen, &args->page, - 0, PAGE_SIZE); -out: - return status; -} - -/* * START OF "GENERIC" DECODE ROUTINES. * These may look a little ugly since they are imported from a "generic" * set of XDR encode/decode routines which are intended to be shared by @@ -2084,7 +2036,7 @@ } \ } while (0) -static int decode_opaque_inline(struct xdr_stream *xdr, unsigned int *len, char **string) +static int decode_opaque_inline(struct xdr_stream *xdr, uint32_t *len, char **string) { uint32_t *p; @@ -2135,7 +2087,7 @@ static int decode_ace(struct xdr_stream *xdr, void *ace, struct nfs4_client *clp) { uint32_t *p; - unsigned int strlen; + uint32_t strlen; char *str; READ_BUF(12); @@ -2265,7 +2217,7 @@ return 0; } -static int decode_attr_fsid(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs_fsid *fsid) +static int decode_attr_fsid(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs4_fsid *fsid) { uint32_t *p; @@ -2333,22 +2285,6 @@ return 0; } -static int decode_attr_mounted_on_fileid(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *fileid) -{ - uint32_t *p; - - *fileid = 0; - if (unlikely(bitmap[1] & (FATTR4_WORD1_MOUNTED_ON_FILEID - 1U))) - return -EIO; - if (likely(bitmap[1] & FATTR4_WORD1_MOUNTED_ON_FILEID)) { - READ_BUF(8); - READ64(*fileid); - bitmap[1] &= ~FATTR4_WORD1_MOUNTED_ON_FILEID; - } - dprintk("%s: fileid=%Lu\n", __FUNCTION__, (unsigned long long)*fileid); - return 0; -} - static int decode_attr_files_avail(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *res) { uint32_t *p; @@ -2400,116 +2336,6 @@ return status; } -static int decode_pathname(struct xdr_stream *xdr, struct nfs4_pathname *path) -{ - int n; - uint32_t *p; - int status = 0; - - READ_BUF(4); - READ32(n); - if (n < 0) - goto out_eio; - if (n == 0) - goto root_path; - dprintk("path "); - path->ncomponents = 0; - while (path->ncomponents < n) { - struct nfs4_string *component = &path->components[path->ncomponents]; - status = decode_opaque_inline(xdr, &component->len, &component->data); - if (unlikely(status != 0)) - goto out_eio; - if (path->ncomponents != n) - dprintk("/"); - dprintk("%s", component->data); - if (path->ncomponents < NFS4_PATHNAME_MAXCOMPONENTS) - path->ncomponents++; - else { - dprintk("cannot parse %d components in path\n", n); - goto out_eio; - } - } -out: - dprintk("\n"); - return status; -root_path: -/* a root pathname is sent as a zero component4 */ - path->ncomponents = 1; - path->components[0].len=0; - path->components[0].data=NULL; - dprintk("path /\n"); - goto out; -out_eio: - dprintk(" status %d", status); - status = -EIO; - goto out; -} - -static int decode_attr_fs_locations(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs4_fs_locations *res) -{ - int n; - uint32_t *p; - int status = -EIO; - - if (unlikely(bitmap[0] & (FATTR4_WORD0_FS_LOCATIONS -1U))) - goto out; - status = 0; - if (unlikely(!(bitmap[0] & FATTR4_WORD0_FS_LOCATIONS))) - goto out; - dprintk("%s: fsroot ", __FUNCTION__); - status = decode_pathname(xdr, &res->fs_path); - if (unlikely(status != 0)) - goto out; - READ_BUF(4); - READ32(n); - if (n <= 0) - goto out_eio; - res->nlocations = 0; - while (res->nlocations < n) { - int m; - struct nfs4_fs_location *loc = &res->locations[res->nlocations]; - - READ_BUF(4); - READ32(m); - if (m <= 0) - goto out_eio; - - loc->nservers = 0; - dprintk("%s: servers ", __FUNCTION__); - while (loc->nservers < m) { - struct nfs4_string *server = &loc->servers[loc->nservers]; - status = decode_opaque_inline(xdr, &server->len, &server->data); - if (unlikely(status != 0)) - goto out_eio; - dprintk("%s ", server->data); - if (loc->nservers < NFS4_FS_LOCATION_MAXSERVERS) - loc->nservers++; - else { - int i; - dprintk("%s: using first %d of %d servers returned for location %d\n", __FUNCTION__, NFS4_FS_LOCATION_MAXSERVERS, m, res->nlocations); - for (i = loc->nservers; i < m; i++) { - int len; - char *data; - status = decode_opaque_inline(xdr, &len, &data); - if (unlikely(status != 0)) - goto out_eio; - } - } - } - status = decode_pathname(xdr, &loc->rootpath); - if (unlikely(status != 0)) - goto out_eio; - if (res->nlocations < NFS4_FS_LOCATIONS_MAXENTRIES) - res->nlocations++; - } -out: - dprintk("%s: fs_locations done, error = %d\n", __FUNCTION__, status); - return status; -out_eio: - status = -EIO; - goto out; -} - static int decode_attr_maxfilesize(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *res) { uint32_t *p; @@ -3015,7 +2841,6 @@ bitmap[2] = {0}, type; int status, fmode = 0; - uint64_t fileid; if ((status = decode_op_hdr(xdr, OP_GETATTR)) != 0) goto xdr_error; @@ -3038,14 +2863,10 @@ goto xdr_error; if ((status = decode_attr_size(xdr, bitmap, &fattr->size)) != 0) goto xdr_error; - if ((status = decode_attr_fsid(xdr, bitmap, &fattr->fsid)) != 0) + if ((status = decode_attr_fsid(xdr, bitmap, &fattr->fsid_u.nfs4)) != 0) goto xdr_error; if ((status = decode_attr_fileid(xdr, bitmap, &fattr->fileid)) != 0) goto xdr_error; - if ((status = decode_attr_fs_locations(xdr, bitmap, container_of(fattr, - struct nfs4_fs_locations, - fattr))) != 0) - goto xdr_error; if ((status = decode_attr_mode(xdr, bitmap, &fattr->mode)) != 0) goto xdr_error; fattr->mode |= fmode; @@ -3065,10 +2886,6 @@ goto xdr_error; if ((status = decode_attr_time_modify(xdr, bitmap, &fattr->mtime)) != 0) goto xdr_error; - if ((status = decode_attr_mounted_on_fileid(xdr, bitmap, &fileid)) != 0) - goto xdr_error; - if (fattr->fileid == 0 && fileid != 0) - fattr->fileid = fileid; if ((status = verify_attr_len(xdr, savep, attrlen)) == 0) fattr->valid = NFS_ATTR_FATTR | NFS_ATTR_FATTR_V3 | NFS_ATTR_FATTR_V4; xdr_error: @@ -3533,7 +3350,8 @@ attrlen, recvd); return -EINVAL; } - xdr_read_pages(xdr, attrlen); + if (attrlen <= *acl_len) + xdr_read_pages(xdr, attrlen); *acl_len = attrlen; } else status = -EOPNOTSUPP; @@ -4393,29 +4211,6 @@ return status; } -/* - * FS_LOCATIONS request - */ -static int nfs4_xdr_dec_fs_locations(struct rpc_rqst *req, uint32_t *p, struct nfs4_fs_locations *res) -{ - struct xdr_stream xdr; - struct compound_hdr hdr; - int status; - - xdr_init_decode(&xdr, &req->rq_rcv_buf, p); - status = decode_compound_hdr(&xdr, &hdr); - if (status != 0) - goto out; - if ((status = decode_putfh(&xdr)) != 0) - goto out; - if ((status = decode_lookup(&xdr)) != 0) - goto out; - xdr_enter_page(&xdr, PAGE_SIZE); - status = decode_getfattr(&xdr, &res->fattr, res->server); -out: - return status; -} - uint32_t *nfs4_decode_dirent(uint32_t *p, struct nfs_entry *entry, int plus) { uint32_t bitmap[2] = {0}; @@ -4587,7 +4382,6 @@ PROC(DELEGRETURN, enc_delegreturn, dec_delegreturn), PROC(GETACL, enc_getacl, dec_getacl), PROC(SETACL, enc_setacl, dec_setacl), - PROC(FS_LOCATIONS, enc_fs_locations, dec_fs_locations), }; struct rpc_version nfs_version4 = { --- linux-source-2.6.17-2.6.17.1.orig/fs/ocfs2/file.c +++ linux-source-2.6.17-2.6.17.1/fs/ocfs2/file.c @@ -30,6 +30,7 @@ #include #include #include +#include #define MLOG_MASK_PREFIX ML_INODE #include @@ -690,6 +691,12 @@ } start_off += sb->s_blocksize; + + /* + * Very large extends have the potential to lock up + * the cpu for extended periods of time. + */ + cond_resched(); } out: @@ -727,31 +734,36 @@ clusters_to_add = ocfs2_clusters_for_bytes(inode->i_sb, new_i_size) - OCFS2_I(inode)->ip_clusters; - if (clusters_to_add) { - /* - * protect the pages that ocfs2_zero_extend is going to - * be pulling into the page cache.. we do this before the - * metadata extend so that we don't get into the situation - * where we've extended the metadata but can't get the data - * lock to zero. - */ - ret = ocfs2_data_lock(inode, 1); - if (ret < 0) { - mlog_errno(ret); - goto out; - } + /* + * protect the pages that ocfs2_zero_extend is going to be + * pulling into the page cache.. we do this before the + * metadata extend so that we don't get into the situation + * where we've extended the metadata but can't get the data + * lock to zero. + */ + ret = ocfs2_data_lock(inode, 1); + if (ret < 0) { + mlog_errno(ret); + goto out; + } + if (clusters_to_add) { ret = ocfs2_extend_allocation(inode, clusters_to_add); if (ret < 0) { mlog_errno(ret); goto out_unlock; } + } - ret = ocfs2_zero_extend(inode, (u64)new_i_size - tail_to_skip); - if (ret < 0) { - mlog_errno(ret); - goto out_unlock; - } + /* + * Call this even if we don't add any clusters to the tree. We + * still need to zero the area between the old i_size and the + * new i_size. + */ + ret = ocfs2_zero_extend(inode, (u64)new_i_size - tail_to_skip); + if (ret < 0) { + mlog_errno(ret); + goto out_unlock; } if (!tail_to_skip) { @@ -763,8 +775,7 @@ } out_unlock: - if (clusters_to_add) /* this is the only case in which we lock */ - ocfs2_data_unlock(inode, 1); + ocfs2_data_unlock(inode, 1); out: return ret; --- linux-source-2.6.17-2.6.17.1.orig/fs/nfsd/nfsfh.c +++ linux-source-2.6.17-2.6.17.1/fs/nfsd/nfsfh.c @@ -187,6 +187,13 @@ goto out; } + /* Set user creds for this exportpoint */ + error = nfsd_setuser(rqstp, exp); + if (error) { + error = nfserrno(error); + goto out; + } + /* * Look up the dentry using the NFS file handle. */ @@ -244,13 +251,6 @@ } cache_get(&exp->h); - /* Set user creds for this exportpoint; necessary even in the "just - * checking" case because this may be a filehandle that was created by - * fh_compose, and that is about to be used in another nfsv4 compound - * operation */ - error = nfsd_setuser(rqstp, exp); if (error) { error = nfserrno(error); - goto out; } - error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type); if (error) goto out; @@ -312,8 +312,8 @@ fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, struct svc_fh *ref_fh) { /* ref_fh is a reference file handle. - * if it is non-null and for the same filesystem, then we should compose - * a filehandle which is of the same version, where possible. + * if it is non-null, then we should compose a filehandle which is + * of the same version, where possible. * Currently, that means that if ref_fh->fh_handle.fh_version == 0xca * Then create a 32byte filehandle using nfs_fhbase_old * @@ -332,7 +332,7 @@ parent->d_name.name, dentry->d_name.name, (inode ? inode->i_ino : 0)); - if (ref_fh && ref_fh->fh_export == exp) { + if (ref_fh) { ref_fh_version = ref_fh->fh_handle.fh_version; if (ref_fh_version == 0xca) ref_fh_fsid_type = 0; --- linux-source-2.6.17-2.6.17.1.orig/fs/nfsd/vfs.c +++ linux-source-2.6.17-2.6.17.1/fs/nfsd/vfs.c @@ -673,10 +673,7 @@ goto out_nfserr; if (access & MAY_WRITE) { - if (access & MAY_READ) - flags = O_RDWR|O_LARGEFILE; - else - flags = O_WRONLY|O_LARGEFILE; + flags = O_WRONLY|O_LARGEFILE; DQUOT_INIT(inode); } @@ -837,7 +834,7 @@ if (ra && ra->p_set) file->f_ra = ra->p_ra; - if (file->f_op->sendfile && rqstp->rq_sendfile_ok) { + if (file->f_op->sendfile) { svc_pushback_unused_pages(rqstp); err = file->f_op->sendfile(file, &offset, *count, nfsd_read_actor, rqstp); @@ -1456,19 +1453,17 @@ err = nfsd_sync_dir(dentry); if (err) err = nfserrno(err); + fh_unlock(fhp); cerr = fh_compose(resfhp, fhp->fh_export, dnew, fhp); dput(dnew); if (err==0) err = cerr; - -out_unlock: - fh_unlock(fhp); out: return err; out_nfserr: err = nfserrno(err); - goto out_unlock; + goto out; } /* @@ -1522,15 +1517,14 @@ err = nfserrno(err); } - dput(dnew); -out_unlock: fh_unlock(ffhp); + dput(dnew); out: return err; out_nfserr: err = nfserrno(err); - goto out_unlock; + goto out; } /* --- linux-source-2.6.17-2.6.17.1.orig/fs/nfsd/export.c +++ linux-source-2.6.17-2.6.17.1/fs/nfsd/export.c @@ -319,25 +319,12 @@ static struct cache_head *export_table[EXPORT_HASHMAX]; -static void nfsd4_fslocs_free(struct nfsd4_fs_locations *fsloc) -{ - int i; - - for (i = 0; i < fsloc->locations_count; i++) { - kfree(fsloc->locations[i].path); - kfree(fsloc->locations[i].hosts); - } - kfree(fsloc->locations); -} - static void svc_export_put(struct kref *ref) { struct svc_export *exp = container_of(ref, struct svc_export, h.ref); dput(exp->ex_dentry); mntput(exp->ex_mnt); auth_domain_put(exp->ex_client); - kfree(exp->ex_path); - nfsd4_fslocs_free(&exp->ex_fslocs); kfree(exp); } @@ -399,67 +386,6 @@ } -#ifdef CONFIG_NFSD_V4 - -static int -fsloc_parse(char **mesg, char *buf, struct nfsd4_fs_locations *fsloc) -{ - int len; - int migrated, i, err; - - len = qword_get(mesg, buf, PAGE_SIZE); - if (len != 5 || memcmp(buf, "fsloc", 5)) - return 0; - - /* listsize */ - err = get_int(mesg, &fsloc->locations_count); - if (err) - return err; - if (fsloc->locations_count < 0) - return -EINVAL; - if (fsloc->locations_count == 0) - return 0; - - err = -ENOMEM; - fsloc->locations = kzalloc(fsloc->locations_count - * sizeof(struct nfsd4_fs_location), GFP_KERNEL); - if (!fsloc->locations) - goto out_free_all; - for (i=0; i < fsloc->locations_count; i++) { - /* colon separated host list */ - err = -EINVAL; - len = qword_get(mesg, buf, PAGE_SIZE); - if (len <= 0) - goto out_free_all; - err = -ENOMEM; - fsloc->locations[i].hosts = kstrdup(buf, GFP_KERNEL); - if (!fsloc->locations[i].hosts) - goto out_free_all; - err = -EINVAL; - /* slash separated path component list */ - len = qword_get(mesg, buf, PAGE_SIZE); - if (len <= 0) - goto out_free_all; - err = -ENOMEM; - fsloc->locations[i].path = kstrdup(buf, GFP_KERNEL); - if (!fsloc->locations[i].path) - goto out_free_all; - } - /* migrated */ - err = get_int(mesg, &migrated); - if (err) - goto out_free_all; - fsloc->migrated = migrated; - return 0; -out_free_all: - nfsd4_fslocs_free(fsloc); - return err; -} - -#else /* CONFIG_NFSD_V4 */ -static int fsloc_parse(char **, char *, struct svc_export *) { return 0; } -#endif - static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen) { /* client path expiry [flags anonuid anongid fsid] */ @@ -502,9 +428,6 @@ exp.ex_client = dom; exp.ex_mnt = nd.mnt; exp.ex_dentry = nd.dentry; - exp.ex_path = kstrdup(buf, GFP_KERNEL); - if (!exp.ex_path) - goto out; /* expiry */ err = -EINVAL; @@ -512,11 +435,6 @@ if (exp.h.expiry_time == 0) goto out; - /* fs locations */ - exp.ex_fslocs.locations = NULL; - exp.ex_fslocs.locations_count = 0; - exp.ex_fslocs.migrated = 0; - /* flags */ err = get_int(&mesg, &an_int); if (err == -ENOENT) @@ -542,10 +460,6 @@ err = check_export(nd.dentry->d_inode, exp.ex_flags); if (err) goto out; - - err = fsloc_parse(&mesg, buf, &exp.ex_fslocs); - if (err) - goto out; } expp = svc_export_lookup(&exp); @@ -559,7 +473,6 @@ else exp_put(expp); out: - kfree(exp.ex_path); if (nd.dentry) path_release(&nd); out_no_path: @@ -569,8 +482,7 @@ return err; } -static void exp_flags(struct seq_file *m, int flag, int fsid, - uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fslocs); +static void exp_flags(struct seq_file *m, int flag, int fsid, uid_t anonu, uid_t anong); static int svc_export_show(struct seq_file *m, struct cache_detail *cd, @@ -589,8 +501,8 @@ seq_putc(m, '('); if (test_bit(CACHE_VALID, &h->flags) && !test_bit(CACHE_NEGATIVE, &h->flags)) - exp_flags(m, exp->ex_flags, exp->ex_fsid, - exp->ex_anon_uid, exp->ex_anon_gid, &exp->ex_fslocs); + exp_flags(m, exp->ex_flags, exp->ex_fsid, + exp->ex_anon_uid, exp->ex_anon_gid); seq_puts(m, ")\n"); return 0; } @@ -612,10 +524,6 @@ new->ex_client = item->ex_client; new->ex_dentry = dget(item->ex_dentry); new->ex_mnt = mntget(item->ex_mnt); - new->ex_path = NULL; - new->ex_fslocs.locations = NULL; - new->ex_fslocs.locations_count = 0; - new->ex_fslocs.migrated = 0; } static void export_update(struct cache_head *cnew, struct cache_head *citem) @@ -627,14 +535,6 @@ new->ex_anon_uid = item->ex_anon_uid; new->ex_anon_gid = item->ex_anon_gid; new->ex_fsid = item->ex_fsid; - new->ex_path = item->ex_path; - item->ex_path = NULL; - new->ex_fslocs.locations = item->ex_fslocs.locations; - item->ex_fslocs.locations = NULL; - new->ex_fslocs.locations_count = item->ex_fslocs.locations_count; - item->ex_fslocs.locations_count = 0; - new->ex_fslocs.migrated = item->ex_fslocs.migrated; - item->ex_fslocs.migrated = 0; } static struct cache_head *svc_export_alloc(void) @@ -1256,8 +1156,7 @@ { 0, {"", ""}} }; -static void exp_flags(struct seq_file *m, int flag, int fsid, - uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fsloc) +static void exp_flags(struct seq_file *m, int flag, int fsid, uid_t anonu, uid_t anong) { int first = 0; struct flags *flg; @@ -1273,16 +1172,6 @@ seq_printf(m, "%sanonuid=%d", first++?",":"", anonu); if (anong != (gid_t)-2 && anong != (0x10000-2)) seq_printf(m, "%sanongid=%d", first++?",":"", anong); - if (fsloc && fsloc->locations_count > 0) { - char *loctype = (fsloc->migrated) ? "refer" : "replicas"; - int i; - - seq_printf(m, "%s%s=", first++?",":"", loctype); - seq_printf(m, "%s@%s", fsloc->locations[0].path, fsloc->locations[0].hosts); - for (i = 1; i < fsloc->locations_count; i++) { - seq_printf(m, ",%s@%s", fsloc->locations[i].path, fsloc->locations[i].hosts); - } - } } static int e_show(struct seq_file *m, void *p) --- linux-source-2.6.17-2.6.17.1.orig/fs/nfsd/stats.c +++ linux-source-2.6.17-2.6.17.1/fs/nfsd/stats.c @@ -40,34 +40,6 @@ .program = &nfsd_program, }; -#ifdef CONFIG_NFSD_V4 - -static inline void nfsd4_show_opstats(struct seq_file *seq) -{ - int i; - - /* show count for individual nfsv4 operations */ - seq_printf(seq,"proc4ops %u", NFS4_NUMOPS); - for (i=0; i 0 && x < 4); -} - -static int deny_valid(u32 x) -{ - return (x >= 0 && x < 5); -} +#define TEST_ACCESS(x) ((x > 0 || x < 4)?1:0) +#define TEST_DENY(x) ((x >= 0 || x < 5)?1:0) static void set_access(unsigned int *access, unsigned long bmap) { @@ -1753,8 +1746,7 @@ int status; status = nfserr_inval; - if (!access_valid(open->op_share_access) - || !deny_valid(open->op_share_deny)) + if (!TEST_ACCESS(open->op_share_access) || !TEST_DENY(open->op_share_deny)) goto out; /* * Lookup file; if found, lookup stateid and check open request, @@ -1791,10 +1783,10 @@ } else { /* Stateid was not found, this is a new OPEN */ int flags = 0; - if (open->op_share_access & NFS4_SHARE_ACCESS_READ) - flags |= MAY_READ; if (open->op_share_access & NFS4_SHARE_ACCESS_WRITE) - flags |= MAY_WRITE; + flags = MAY_WRITE; + else + flags = MAY_READ; status = nfs4_new_open(rqstp, &stp, dp, current_fh, flags); if (status) goto out; @@ -2079,12 +2071,16 @@ if (!stateid->si_fileid) { /* delegation stateid */ if(!(dp = find_delegation_stateid(ino, stateid))) { dprintk("NFSD: delegation stateid not found\n"); + if (nfs4_in_grace()) + status = nfserr_grace; goto out; } stidp = &dp->dl_stateid; } else { /* open or lock stateid */ if (!(stp = find_stateid(stateid, flags))) { dprintk("NFSD: open or lock stateid not found\n"); + if (nfs4_in_grace()) + status = nfserr_grace; goto out; } if ((flags & CHECK_FH) && nfs4_check_fh(current_fh, stp)) @@ -2257,9 +2253,8 @@ (int)current_fh->fh_dentry->d_name.len, current_fh->fh_dentry->d_name.name); - status = fh_verify(rqstp, current_fh, S_IFREG, 0); - if (status) - return status; + if ((status = fh_verify(rqstp, current_fh, S_IFREG, 0))) + goto out; nfs4_lock_state(); @@ -2326,8 +2321,7 @@ (int)current_fh->fh_dentry->d_name.len, current_fh->fh_dentry->d_name.name); - if (!access_valid(od->od_share_access) - || !deny_valid(od->od_share_deny)) + if (!TEST_ACCESS(od->od_share_access) || !TEST_DENY(od->od_share_deny)) return nfserr_inval; nfs4_lock_state(); --- linux-source-2.6.17-2.6.17.1.orig/fs/nfsd/nfs4proc.c +++ linux-source-2.6.17-2.6.17.1/fs/nfsd/nfs4proc.c @@ -54,7 +54,6 @@ #include #include #include -#include #define NFSDDBG_FACILITY NFSDDBG_PROC @@ -722,13 +721,6 @@ return nfs_ok; } -static inline void nfsd4_increment_op_stats(u32 opnum) -{ - u32 i = opnum - OP_ACCESS; - - if (i < NFS4_NUMOPS) - nfsdstats.nfs4_opcount[i]++; -} /* * COMPOUND call. @@ -804,29 +796,13 @@ * SETCLIENTID_CONFIRM, PUTFH and PUTROOTFH * require a valid current filehandle */ - if (!current_fh->fh_dentry) { - if (!((op->opnum == OP_PUTFH) || - (op->opnum == OP_PUTROOTFH) || - (op->opnum == OP_SETCLIENTID) || - (op->opnum == OP_SETCLIENTID_CONFIRM) || - (op->opnum == OP_RENEW) || - (op->opnum == OP_RESTOREFH) || - (op->opnum == OP_RELEASE_LOCKOWNER))) { - op->status = nfserr_nofilehandle; - goto encode_op; - } - } - /* Check must be done at start of each operation, except - * for GETATTR and ops not listed as returning NFS4ERR_MOVED - */ - else if (current_fh->fh_export->ex_fslocs.migrated && - !((op->opnum == OP_GETATTR) || - (op->opnum == OP_PUTROOTFH) || - (op->opnum == OP_PUTPUBFH) || - (op->opnum == OP_RENEW) || - (op->opnum == OP_SETCLIENTID) || - (op->opnum == OP_RELEASE_LOCKOWNER))) { - op->status = nfserr_moved; + if ((!current_fh->fh_dentry) && + !((op->opnum == OP_PUTFH) || (op->opnum == OP_PUTROOTFH) || + (op->opnum == OP_SETCLIENTID) || + (op->opnum == OP_SETCLIENTID_CONFIRM) || + (op->opnum == OP_RENEW) || (op->opnum == OP_RESTOREFH) || + (op->opnum == OP_RELEASE_LOCKOWNER))) { + op->status = nfserr_nofilehandle; goto encode_op; } switch (op->opnum) { @@ -954,8 +930,6 @@ /* XXX Ugh, we need to get rid of this kind of special case: */ if (op->opnum == OP_READ && op->u.read.rd_filp) fput(op->u.read.rd_filp); - - nfsd4_increment_op_stats(op->opnum); } out: --- linux-source-2.6.17-2.6.17.1.orig/fs/nfsd/nfs4xdr.c +++ linux-source-2.6.17-2.6.17.1/fs/nfsd/nfs4xdr.c @@ -60,14 +60,6 @@ #define NFSDDBG_FACILITY NFSDDBG_XDR -/* - * As per referral draft, the fsid for a referral MUST be different from the fsid of the containing - * directory in order to indicate to the client that a filesystem boundary is present - * We use a fixed fsid for a referral - */ -#define NFS4_REFERRAL_FSID_MAJOR 0x8000000ULL -#define NFS4_REFERRAL_FSID_MINOR 0x8000000ULL - static int check_filename(char *str, int len, int err) { @@ -1232,119 +1224,6 @@ stateowner->so_replay.rp_buflen); \ } } while (0); -/* Encode as an array of strings the string given with components - * seperated @sep. - */ -static int nfsd4_encode_components(char sep, char *components, - u32 **pp, int *buflen) -{ - u32 *p = *pp; - u32 *countp = p; - int strlen, count=0; - char *str, *end; - - dprintk("nfsd4_encode_components(%s)\n", components); - if ((*buflen -= 4) < 0) - return nfserr_resource; - WRITE32(0); /* We will fill this in with @count later */ - end = str = components; - while (*end) { - for (; *end && (*end != sep); end++) - ; /* Point to end of component */ - strlen = end - str; - if (strlen) { - if ((*buflen -= ((XDR_QUADLEN(strlen) << 2) + 4)) < 0) - return nfserr_resource; - WRITE32(strlen); - WRITEMEM(str, strlen); - count++; - } - else - end++; - str = end; - } - *pp = p; - p = countp; - WRITE32(count); - return 0; -} - -/* - * encode a location element of a fs_locations structure - */ -static int nfsd4_encode_fs_location4(struct nfsd4_fs_location *location, - u32 **pp, int *buflen) -{ - int status; - u32 *p = *pp; - - status = nfsd4_encode_components(':', location->hosts, &p, buflen); - if (status) - return status; - status = nfsd4_encode_components('/', location->path, &p, buflen); - if (status) - return status; - *pp = p; - return 0; -} - -/* - * Return the path to an export point in the pseudo filesystem namespace - * Returned string is safe to use as long as the caller holds a reference - * to @exp. - */ -static char *nfsd4_path(struct svc_rqst *rqstp, struct svc_export *exp) -{ - struct svc_fh tmp_fh; - char *path, *rootpath; - int stat; - - fh_init(&tmp_fh, NFS4_FHSIZE); - stat = exp_pseudoroot(rqstp->rq_client, &tmp_fh, &rqstp->rq_chandle); - if (stat) - return ERR_PTR(stat); - rootpath = tmp_fh.fh_export->ex_path; - - path = exp->ex_path; - - if (strncmp(path, rootpath, strlen(rootpath))) { - printk("nfsd: fs_locations failed;" - "%s is not contained in %s\n", path, rootpath); - return ERR_PTR(-EOPNOTSUPP); - } - - return path + strlen(rootpath); -} - -/* - * encode a fs_locations structure - */ -static int nfsd4_encode_fs_locations(struct svc_rqst *rqstp, - struct svc_export *exp, - u32 **pp, int *buflen) -{ - int status, i; - u32 *p = *pp; - struct nfsd4_fs_locations *fslocs = &exp->ex_fslocs; - char *root = nfsd4_path(rqstp, exp); - - if (IS_ERR(root)) - return PTR_ERR(root); - status = nfsd4_encode_components('/', root, &p, buflen); - if (status) - return status; - if ((*buflen -= 4) < 0) - return nfserr_resource; - WRITE32(fslocs->locations_count); - for (i=0; ilocations_count; i++) { - status = nfsd4_encode_fs_location4(&fslocs->locations[i], - &p, buflen); - if (status) - return status; - } - *pp = p; - return 0; -} static u32 nfs4_ftypes[16] = { NF4BAD, NF4FIFO, NF4CHR, NF4BAD, @@ -1394,25 +1273,6 @@ return nfsd4_encode_name(rqstp, whotype, id, group, p, buflen); } -#define WORD0_ABSENT_FS_ATTRS (FATTR4_WORD0_FS_LOCATIONS | FATTR4_WORD0_FSID | \ - FATTR4_WORD0_RDATTR_ERROR) -#define WORD1_ABSENT_FS_ATTRS FATTR4_WORD1_MOUNTED_ON_FILEID - -static int fattr_handle_absent_fs(u32 *bmval0, u32 *bmval1, u32 *rdattr_err) -{ - /* As per referral draft: */ - if (*bmval0 & ~WORD0_ABSENT_FS_ATTRS || - *bmval1 & ~WORD1_ABSENT_FS_ATTRS) { - if (*bmval0 & FATTR4_WORD0_RDATTR_ERROR || - *bmval0 & FATTR4_WORD0_FS_LOCATIONS) - *rdattr_err = NFSERR_MOVED; - else - return nfserr_moved; - } - *bmval0 &= WORD0_ABSENT_FS_ATTRS; - *bmval1 &= WORD1_ABSENT_FS_ATTRS; - return 0; -} /* * Note: @fhp can be NULL; in this case, we might have to compose the filehandle @@ -1435,7 +1295,6 @@ u32 *attrlenp; u32 dummy; u64 dummy64; - u32 rdattr_err = 0; u32 *p = buffer; int status; int aclsupport = 0; @@ -1445,12 +1304,6 @@ BUG_ON(bmval0 & ~NFSD_SUPPORTED_ATTRS_WORD0); BUG_ON(bmval1 & ~NFSD_SUPPORTED_ATTRS_WORD1); - if (exp->ex_fslocs.migrated) { - status = fattr_handle_absent_fs(&bmval0, &bmval1, &rdattr_err); - if (status) - goto out; - } - status = vfs_getattr(exp->ex_mnt, dentry, &stat); if (status) goto out_nfserr; @@ -1482,11 +1335,6 @@ goto out_nfserr; } } - if (bmval0 & FATTR4_WORD0_FS_LOCATIONS) { - if (exp->ex_fslocs.locations == NULL) { - bmval0 &= ~FATTR4_WORD0_FS_LOCATIONS; - } - } if ((buflen -= 16) < 0) goto out_resource; @@ -1496,15 +1344,12 @@ attrlenp = p++; /* to be backfilled later */ if (bmval0 & FATTR4_WORD0_SUPPORTED_ATTRS) { - u32 word0 = NFSD_SUPPORTED_ATTRS_WORD0; if ((buflen -= 12) < 0) goto out_resource; - if (!aclsupport) - word0 &= ~FATTR4_WORD0_ACL; - if (!exp->ex_fslocs.locations) - word0 &= ~FATTR4_WORD0_FS_LOCATIONS; WRITE32(2); - WRITE32(word0); + WRITE32(aclsupport ? + NFSD_SUPPORTED_ATTRS_WORD0 : + NFSD_SUPPORTED_ATTRS_WORD0 & ~FATTR4_WORD0_ACL); WRITE32(NFSD_SUPPORTED_ATTRS_WORD1); } if (bmval0 & FATTR4_WORD0_TYPE) { @@ -1558,10 +1403,7 @@ if (bmval0 & FATTR4_WORD0_FSID) { if ((buflen -= 16) < 0) goto out_resource; - if (exp->ex_fslocs.migrated) { - WRITE64(NFS4_REFERRAL_FSID_MAJOR); - WRITE64(NFS4_REFERRAL_FSID_MINOR); - } else if (is_fsid(fhp, rqstp->rq_reffh)) { + if (is_fsid(fhp, rqstp->rq_reffh)) { WRITE64((u64)exp->ex_fsid); WRITE64((u64)0); } else { @@ -1584,7 +1426,7 @@ if (bmval0 & FATTR4_WORD0_RDATTR_ERROR) { if ((buflen -= 4) < 0) goto out_resource; - WRITE32(rdattr_err); + WRITE32(0); } if (bmval0 & FATTR4_WORD0_ACL) { struct nfs4_ace *ace; @@ -1672,13 +1514,6 @@ goto out_resource; WRITE64((u64) statfs.f_files); } - if (bmval0 & FATTR4_WORD0_FS_LOCATIONS) { - status = nfsd4_encode_fs_locations(rqstp, exp, &p, &buflen); - if (status == nfserr_resource) - goto out_resource; - if (status) - goto out; - } if (bmval0 & FATTR4_WORD0_HOMOGENEOUS) { if ((buflen -= 4) < 0) goto out_resource; @@ -2011,6 +1846,7 @@ nfserr = nfsd4_encode_fattr(fhp, fhp->fh_export, fhp->fh_dentry, resp->p, &buflen, getattr->ga_bmval, resp->rqstp); + if (!nfserr) resp->p += buflen; return nfserr; --- linux-source-2.6.17-2.6.17.1.orig/fs/lockd/clntlock.c +++ linux-source-2.6.17-2.6.17.1/fs/lockd/clntlock.c @@ -147,10 +147,11 @@ * Someone has sent us an SM_NOTIFY. Ensure we bind to the new port number, * that we mark locks for reclaiming, and that we bump the pseudo NSM state. */ -static void nlmclnt_prepare_reclaim(struct nlm_host *host) +static inline +void nlmclnt_prepare_reclaim(struct nlm_host *host, u32 newstate) { - down_write(&host->h_rwsem); host->h_monitored = 0; + host->h_nsmstate = newstate; host->h_state++; host->h_nextrebind = 0; nlm_rebind_host(host); @@ -163,13 +164,6 @@ dprintk("NLM: reclaiming locks for host %s", host->h_name); } -static void nlmclnt_finish_reclaim(struct nlm_host *host) -{ - host->h_reclaiming = 0; - up_write(&host->h_rwsem); - dprintk("NLM: done reclaiming locks for host %s", host->h_name); -} - /* * Reclaim all locks on server host. We do this by spawning a separate * reclaimer thread. @@ -177,10 +171,12 @@ void nlmclnt_recovery(struct nlm_host *host, u32 newstate) { - if (host->h_nsmstate == newstate) - return; - host->h_nsmstate = newstate; - if (!host->h_reclaiming++) { + if (host->h_reclaiming++) { + if (host->h_nsmstate == newstate) + return; + nlmclnt_prepare_reclaim(host, newstate); + } else { + nlmclnt_prepare_reclaim(host, newstate); nlm_get_host(host); __module_get(THIS_MODULE); if (kernel_thread(reclaimer, host, CLONE_KERNEL) < 0) @@ -194,7 +190,6 @@ struct nlm_host *host = (struct nlm_host *) ptr; struct nlm_wait *block; struct file_lock *fl, *next; - u32 nsmstate; daemonize("%s-reclaim", host->h_name); allow_signal(SIGKILL); @@ -204,25 +199,19 @@ lock_kernel(); lockd_up(); - nlmclnt_prepare_reclaim(host); /* First, reclaim all locks that have been marked. */ restart: - nsmstate = host->h_nsmstate; list_for_each_entry_safe(fl, next, &host->h_reclaim, fl_u.nfs_fl.list) { list_del_init(&fl->fl_u.nfs_fl.list); if (signalled()) continue; - if (nlmclnt_reclaim(host, fl) != 0) - continue; - list_add_tail(&fl->fl_u.nfs_fl.list, &host->h_granted); - if (host->h_nsmstate != nsmstate) { - /* Argh! The server rebooted again! */ - list_splice_init(&host->h_granted, &host->h_reclaim); - goto restart; - } + if (nlmclnt_reclaim(host, fl) == 0) + list_add_tail(&fl->fl_u.nfs_fl.list, &host->h_granted); + goto restart; } - nlmclnt_finish_reclaim(host); + + host->h_reclaiming = 0; /* Now, wake up all processes that sleep on a blocked lock */ list_for_each_entry(block, &nlm_blocked, b_list) { --- linux-source-2.6.17-2.6.17.1.orig/fs/lockd/clntproc.c +++ linux-source-2.6.17-2.6.17.1/fs/lockd/clntproc.c @@ -508,10 +508,7 @@ } block = nlmclnt_prepare_block(host, fl); -again: for(;;) { - /* Reboot protection */ - fl->fl_u.nfs_fl.state = host->h_state; status = nlmclnt_call(req, NLMPROC_LOCK); if (status < 0) goto out_unblock; @@ -534,16 +531,10 @@ } if (resp->status == NLM_LCK_GRANTED) { - down_read(&host->h_rwsem); - /* Check whether or not the server has rebooted */ - if (fl->fl_u.nfs_fl.state != host->h_state) { - up_read(&host->h_rwsem); - goto again; - } + fl->fl_u.nfs_fl.state = host->h_state; fl->fl_flags |= FL_SLEEP; /* Ensure the resulting lock will get added to granted list */ do_vfs_lock(fl); - up_read(&host->h_rwsem); } status = nlm_stat_to_errno(resp->status); out_unblock: @@ -605,7 +596,6 @@ static int nlmclnt_unlock(struct nlm_rqst *req, struct file_lock *fl) { - struct nlm_host *host = req->a_host; struct nlm_res *resp = &req->a_res; int status; @@ -614,9 +604,7 @@ * request, or to deny it with NLM_LCK_DENIED_GRACE_PERIOD. In either * case, we want to unlock. */ - down_read(&host->h_rwsem); do_vfs_lock(fl); - up_read(&host->h_rwsem); if (req->a_flags & RPC_TASK_ASYNC) return nlm_async_call(req, NLMPROC_UNLOCK, &nlmclnt_unlock_ops); --- linux-source-2.6.17-2.6.17.1.orig/fs/lockd/host.c +++ linux-source-2.6.17-2.6.17.1/fs/lockd/host.c @@ -112,12 +112,11 @@ host->h_version = version; host->h_proto = proto; host->h_rpcclnt = NULL; - mutex_init(&host->h_mutex); + init_MUTEX(&host->h_sema); host->h_nextrebind = jiffies + NLM_HOST_REBIND; host->h_expires = jiffies + NLM_HOST_EXPIRE; atomic_set(&host->h_count, 1); init_waitqueue_head(&host->h_gracewait); - init_rwsem(&host->h_rwsem); host->h_state = 0; /* pseudo NSM state */ host->h_nsmstate = 0; /* real NSM state */ host->h_server = server; @@ -173,7 +172,7 @@ (unsigned)ntohl(host->h_addr.sin_addr.s_addr)); /* Lock host handle */ - mutex_lock(&host->h_mutex); + down(&host->h_sema); /* If we've already created an RPC client, check whether * RPC rebind is required @@ -205,12 +204,12 @@ host->h_rpcclnt = clnt; } - mutex_unlock(&host->h_mutex); + up(&host->h_sema); return clnt; forgetit: printk("lockd: couldn't create RPC handle for %s\n", host->h_name); - mutex_unlock(&host->h_mutex); + up(&host->h_sema); return NULL; } --- linux-source-2.6.17-2.6.17.1.orig/.dotest/info +++ linux-source-2.6.17-2.6.17.1/.dotest/info @@ -0,0 +1,5 @@ +Author: Kyle McMartin +Email: kyle@ubuntu.com +Subject: [UBUNTU:fs] Revert "Update for proper nfsv4 support" +Date: 1165465539 -0500 + --- linux-source-2.6.17-2.6.17.1.orig/.dotest/msg-clean +++ linux-source-2.6.17-2.6.17.1/.dotest/msg-clean @@ -0,0 +1,4 @@ +This commit reverts the nfs/rpc/lockd/nfsd touching portions +of 0d720a96247caa521d0664d0759b8af527151ff8. + +Signed-off-by: Kyle McMartin --- linux-source-2.6.17-2.6.17.1.orig/.dotest/final-commit +++ linux-source-2.6.17-2.6.17.1/.dotest/final-commit @@ -0,0 +1,6 @@ +[UBUNTU:fs] Revert "Update for proper nfsv4 support" + +This commit reverts the nfs/rpc/lockd/nfsd touching portions +of 0d720a96247caa521d0664d0759b8af527151ff8. + +Signed-off-by: Kyle McMartin --- linux-source-2.6.17-2.6.17.1.orig/.dotest/0001 +++ linux-source-2.6.17-2.6.17.1/.dotest/0001 @@ -0,0 +1,7595 @@ +From nobody Mon Sep 17 00:00:00 2001 +Subject: [UBUNTU:fs] Revert "Update for proper nfsv4 support" +From: Kyle McMartin +Date: 1165465539 -0500 + +This commit reverts the nfs/rpc/lockd/nfsd touching portions +of 0d720a96247caa521d0664d0759b8af527151ff8. + +Signed-off-by: Kyle McMartin + +--- + + fs/lockd/clntlock.c | 39 - + fs/lockd/clntproc.c | 14 + fs/lockd/host.c | 9 + fs/nfs/Makefile | 8 + fs/nfs/callback.c | 2 + fs/nfs/callback_xdr.c | 2 + fs/nfs/dir.c | 18 + fs/nfs/direct.c | 6 + fs/nfs/file.c | 30 - + fs/nfs/idmap.c | 1 + fs/nfs/inode.c | 1292 ++++++++++++++++++++++++++-- + fs/nfs/internal.h | 179 ---- + fs/nfs/namespace.c | 229 ----- + fs/nfs/nfs2xdr.c | 5 + fs/nfs/nfs3acl.c | 11 + fs/nfs/nfs3proc.c | 5 + fs/nfs/nfs3xdr.c | 6 + fs/nfs/nfs4_fs.h | 4 + fs/nfs/nfs4namespace.c | 201 ---- + fs/nfs/nfs4proc.c | 111 -- + fs/nfs/nfs4xdr.c | 218 ----- + fs/nfs/pagelist.c | 51 - + fs/nfs/proc.c | 5 + fs/nfs/read.c | 122 +-- + fs/nfs/super.c | 1497 -------------------------------- + fs/nfs/symlink.c | 2 + fs/nfs/sysctl.c | 10 + fs/nfs/write.c | 67 - + fs/nfsd/export.c | 119 --- + fs/nfsd/nfs4proc.c | 40 - + fs/nfsd/nfs4state.c | 32 - + fs/nfsd/nfs4xdr.c | 176 ---- + fs/nfsd/nfsfh.c | 20 + fs/nfsd/stats.c | 31 - + fs/nfsd/vfs.c | 18 + include/linux/lockd/lockd.h | 4 + include/linux/nfs4.h | 1 + include/linux/nfs_fs.h | 29 - + include/linux/nfs_fs_sb.h | 1 + include/linux/nfs_page.h | 5 + include/linux/nfs_xdr.h | 63 - + include/linux/nfsd/const.h | 4 + include/linux/nfsd/export.h | 18 + include/linux/nfsd/nfsd.h | 4 + include/linux/nfsd/stats.h | 5 + include/linux/sunrpc/gss_spkm3.h | 39 - + include/linux/sunrpc/svc.h | 4 + include/linux/sunrpc/xdr.h | 1 + net/sunrpc/auth_gss/auth_gss.c | 2 + net/sunrpc/auth_gss/gss_mech_switch.c | 6 + net/sunrpc/auth_gss/gss_spkm3_mech.c | 132 ++- + net/sunrpc/auth_gss/gss_spkm3_seal.c | 158 --- + net/sunrpc/auth_gss/gss_spkm3_token.c | 6 + net/sunrpc/auth_gss/gss_spkm3_unseal.c | 29 - + net/sunrpc/auth_gss/svcauth_gss.c | 271 +----- + net/sunrpc/auth_null.c | 2 + net/sunrpc/auth_unix.c | 1 + net/sunrpc/rpc_pipe.c | 2 + net/sunrpc/svc.c | 3 + net/sunrpc/xdr.c | 28 - + net/sunrpc/xprt.c | 4 + net/sunrpc/xprtsock.c | 11 + security/inode.c | 2 + 63 files changed, 1687 insertions(+), 3728 deletions(-) + delete mode 100644 fs/nfs/internal.h + delete mode 100644 fs/nfs/namespace.c + delete mode 100644 fs/nfs/nfs4namespace.c + delete mode 100644 fs/nfs/super.c + +95630ed1d02ade53c4b60c246aede9b89f864b72 +diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c +index 52774fe..bce7444 100644 +--- a/fs/lockd/clntlock.c ++++ b/fs/lockd/clntlock.c +@@ -147,10 +147,11 @@ u32 nlmclnt_grant(const struct sockaddr_ + * Someone has sent us an SM_NOTIFY. Ensure we bind to the new port number, + * that we mark locks for reclaiming, and that we bump the pseudo NSM state. + */ +-static void nlmclnt_prepare_reclaim(struct nlm_host *host) ++static inline ++void nlmclnt_prepare_reclaim(struct nlm_host *host, u32 newstate) + { +- down_write(&host->h_rwsem); + host->h_monitored = 0; ++ host->h_nsmstate = newstate; + host->h_state++; + host->h_nextrebind = 0; + nlm_rebind_host(host); +@@ -163,13 +164,6 @@ static void nlmclnt_prepare_reclaim(stru + dprintk("NLM: reclaiming locks for host %s", host->h_name); + } + +-static void nlmclnt_finish_reclaim(struct nlm_host *host) +-{ +- host->h_reclaiming = 0; +- up_write(&host->h_rwsem); +- dprintk("NLM: done reclaiming locks for host %s", host->h_name); +-} +- + /* + * Reclaim all locks on server host. We do this by spawning a separate + * reclaimer thread. +@@ -177,10 +171,12 @@ static void nlmclnt_finish_reclaim(struc + void + nlmclnt_recovery(struct nlm_host *host, u32 newstate) + { +- if (host->h_nsmstate == newstate) +- return; +- host->h_nsmstate = newstate; +- if (!host->h_reclaiming++) { ++ if (host->h_reclaiming++) { ++ if (host->h_nsmstate == newstate) ++ return; ++ nlmclnt_prepare_reclaim(host, newstate); ++ } else { ++ nlmclnt_prepare_reclaim(host, newstate); + nlm_get_host(host); + __module_get(THIS_MODULE); + if (kernel_thread(reclaimer, host, CLONE_KERNEL) < 0) +@@ -194,7 +190,6 @@ reclaimer(void *ptr) + struct nlm_host *host = (struct nlm_host *) ptr; + struct nlm_wait *block; + struct file_lock *fl, *next; +- u32 nsmstate; + + daemonize("%s-reclaim", host->h_name); + allow_signal(SIGKILL); +@@ -204,25 +199,19 @@ reclaimer(void *ptr) + lock_kernel(); + lockd_up(); + +- nlmclnt_prepare_reclaim(host); + /* First, reclaim all locks that have been marked. */ + restart: +- nsmstate = host->h_nsmstate; + list_for_each_entry_safe(fl, next, &host->h_reclaim, fl_u.nfs_fl.list) { + list_del_init(&fl->fl_u.nfs_fl.list); + + if (signalled()) + continue; +- if (nlmclnt_reclaim(host, fl) != 0) +- continue; +- list_add_tail(&fl->fl_u.nfs_fl.list, &host->h_granted); +- if (host->h_nsmstate != nsmstate) { +- /* Argh! The server rebooted again! */ +- list_splice_init(&host->h_granted, &host->h_reclaim); +- goto restart; +- } ++ if (nlmclnt_reclaim(host, fl) == 0) ++ list_add_tail(&fl->fl_u.nfs_fl.list, &host->h_granted); ++ goto restart; + } +- nlmclnt_finish_reclaim(host); ++ ++ host->h_reclaiming = 0; + + /* Now, wake up all processes that sleep on a blocked lock */ + list_for_each_entry(block, &nlm_blocked, b_list) { +diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c +index 4db6209..f96e381 100644 +--- a/fs/lockd/clntproc.c ++++ b/fs/lockd/clntproc.c +@@ -508,10 +508,7 @@ nlmclnt_lock(struct nlm_rqst *req, struc + } + + block = nlmclnt_prepare_block(host, fl); +-again: + for(;;) { +- /* Reboot protection */ +- fl->fl_u.nfs_fl.state = host->h_state; + status = nlmclnt_call(req, NLMPROC_LOCK); + if (status < 0) + goto out_unblock; +@@ -534,16 +531,10 @@ again: + } + + if (resp->status == NLM_LCK_GRANTED) { +- down_read(&host->h_rwsem); +- /* Check whether or not the server has rebooted */ +- if (fl->fl_u.nfs_fl.state != host->h_state) { +- up_read(&host->h_rwsem); +- goto again; +- } ++ fl->fl_u.nfs_fl.state = host->h_state; + fl->fl_flags |= FL_SLEEP; + /* Ensure the resulting lock will get added to granted list */ + do_vfs_lock(fl); +- up_read(&host->h_rwsem); + } + status = nlm_stat_to_errno(resp->status); + out_unblock: +@@ -605,7 +596,6 @@ nlmclnt_reclaim(struct nlm_host *host, s + static int + nlmclnt_unlock(struct nlm_rqst *req, struct file_lock *fl) + { +- struct nlm_host *host = req->a_host; + struct nlm_res *resp = &req->a_res; + int status; + +@@ -614,9 +604,7 @@ nlmclnt_unlock(struct nlm_rqst *req, str + * request, or to deny it with NLM_LCK_DENIED_GRACE_PERIOD. In either + * case, we want to unlock. + */ +- down_read(&host->h_rwsem); + do_vfs_lock(fl); +- up_read(&host->h_rwsem); + + if (req->a_flags & RPC_TASK_ASYNC) + return nlm_async_call(req, NLMPROC_UNLOCK, &nlmclnt_unlock_ops); +diff --git a/fs/lockd/host.c b/fs/lockd/host.c +index 38b0e8a..729ac42 100644 +--- a/fs/lockd/host.c ++++ b/fs/lockd/host.c +@@ -112,12 +112,11 @@ nlm_lookup_host(int server, struct socka + host->h_version = version; + host->h_proto = proto; + host->h_rpcclnt = NULL; +- mutex_init(&host->h_mutex); ++ init_MUTEX(&host->h_sema); + host->h_nextrebind = jiffies + NLM_HOST_REBIND; + host->h_expires = jiffies + NLM_HOST_EXPIRE; + atomic_set(&host->h_count, 1); + init_waitqueue_head(&host->h_gracewait); +- init_rwsem(&host->h_rwsem); + host->h_state = 0; /* pseudo NSM state */ + host->h_nsmstate = 0; /* real NSM state */ + host->h_server = server; +@@ -173,7 +172,7 @@ nlm_bind_host(struct nlm_host *host) + (unsigned)ntohl(host->h_addr.sin_addr.s_addr)); + + /* Lock host handle */ +- mutex_lock(&host->h_mutex); ++ down(&host->h_sema); + + /* If we've already created an RPC client, check whether + * RPC rebind is required +@@ -205,12 +204,12 @@ nlm_bind_host(struct nlm_host *host) + host->h_rpcclnt = clnt; + } + +- mutex_unlock(&host->h_mutex); ++ up(&host->h_sema); + return clnt; + + forgetit: + printk("lockd: couldn't create RPC handle for %s\n", host->h_name); +- mutex_unlock(&host->h_mutex); ++ up(&host->h_sema); + return NULL; + } + +diff --git a/fs/nfs/Makefile b/fs/nfs/Makefile +index 0b572a0..ec61fd5 100644 +--- a/fs/nfs/Makefile ++++ b/fs/nfs/Makefile +@@ -4,16 +4,14 @@ + + obj-$(CONFIG_NFS_FS) += nfs.o + +-nfs-y := dir.o file.o inode.o super.o nfs2xdr.o pagelist.o \ +- proc.o read.o symlink.o unlink.o write.o \ +- namespace.o ++nfs-y := dir.o file.o inode.o nfs2xdr.o pagelist.o \ ++ proc.o read.o symlink.o unlink.o write.o + nfs-$(CONFIG_ROOT_NFS) += nfsroot.o mount_clnt.o + nfs-$(CONFIG_NFS_V3) += nfs3proc.o nfs3xdr.o + nfs-$(CONFIG_NFS_V3_ACL) += nfs3acl.o + nfs-$(CONFIG_NFS_V4) += nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o \ + delegation.o idmap.o \ +- callback.o callback_xdr.o callback_proc.o \ +- nfs4namespace.o ++ callback.o callback_xdr.o callback_proc.o + nfs-$(CONFIG_NFS_DIRECTIO) += direct.o + nfs-$(CONFIG_SYSCTL) += sysctl.o + nfs-objs := $(nfs-y) +diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c +index d53f8c6..90c95ad 100644 +--- a/fs/nfs/callback.c ++++ b/fs/nfs/callback.c +@@ -182,6 +182,8 @@ static int nfs_callback_authenticate(str + /* + * Define NFS4 callback program + */ ++extern struct svc_version nfs4_callback_version1; ++ + static struct svc_version *nfs4_callback_version[] = { + [1] = &nfs4_callback_version1, + }; +diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c +index c929913..05c38cf 100644 +--- a/fs/nfs/callback_xdr.c ++++ b/fs/nfs/callback_xdr.c +@@ -202,7 +202,7 @@ static unsigned decode_recall_args(struc + status = decode_fh(xdr, &args->fh); + out: + dprintk("%s: exit with status = %d\n", __FUNCTION__, status); +- return status; ++ return 0; + } + + static unsigned encode_string(struct xdr_stream *xdr, unsigned int len, const char *str) +diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c +index 3ddda6f..cae74dd 100644 +--- a/fs/nfs/dir.c ++++ b/fs/nfs/dir.c +@@ -528,7 +528,7 @@ static int nfs_readdir(struct file *filp + + lock_kernel(); + +- res = nfs_revalidate_mapping(inode, filp->f_mapping); ++ res = nfs_revalidate_inode(NFS_SERVER(inode), inode); + if (res < 0) { + unlock_kernel(); + return res; +@@ -868,17 +868,6 @@ int nfs_is_exclusive_create(struct inode + return (nd->intent.open.flags & O_EXCL) != 0; + } + +-static inline int nfs_reval_fsid(struct inode *dir, +- struct nfs_fh *fh, struct nfs_fattr *fattr) +-{ +- struct nfs_server *server = NFS_SERVER(dir); +- +- if (!nfs_fsid_equal(&server->fsid, &fattr->fsid)) +- /* Revalidate fsid on root dir */ +- return __nfs_revalidate_inode(server, dir->i_sb->s_root->d_inode); +- return 0; +-} +- + static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd) + { + struct dentry *res; +@@ -911,11 +900,6 @@ static struct dentry *nfs_lookup(struct + res = ERR_PTR(error); + goto out_unlock; + } +- error = nfs_reval_fsid(dir, &fhandle, &fattr); +- if (error < 0) { +- res = ERR_PTR(error); +- goto out_unlock; +- } + inode = nfs_fhget(dentry->d_sb, &fhandle, &fattr); + res = (struct dentry *)inode; + if (IS_ERR(res)) +diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c +index a767f6f..f8aac11 100644 +--- a/fs/nfs/direct.c ++++ b/fs/nfs/direct.c +@@ -893,7 +893,7 @@ out: + * nfs_init_directcache - create a slab cache for nfs_direct_req structures + * + */ +-int __init nfs_init_directcache(void) ++int nfs_init_directcache(void) + { + nfs_direct_cachep = kmem_cache_create("nfs_direct_cache", + sizeof(struct nfs_direct_req), +@@ -907,10 +907,10 @@ int __init nfs_init_directcache(void) + } + + /** +- * nfs_destroy_directcache - destroy the slab cache for nfs_direct_req structures ++ * nfs_init_directcache - destroy the slab cache for nfs_direct_req structures + * + */ +-void __exit nfs_destroy_directcache(void) ++void nfs_destroy_directcache(void) + { + if (kmem_cache_destroy(nfs_direct_cachep)) + printk(KERN_INFO "nfs_direct_cache: not all structures were freed\n"); +diff --git a/fs/nfs/file.c b/fs/nfs/file.c +index 0211bc4..801cc0f 100644 +--- a/fs/nfs/file.c ++++ b/fs/nfs/file.c +@@ -127,6 +127,23 @@ nfs_file_release(struct inode *inode, st + } + + /** ++ * nfs_revalidate_file - Revalidate the page cache & related metadata ++ * @inode - pointer to inode struct ++ * @file - pointer to file ++ */ ++static int nfs_revalidate_file(struct inode *inode, struct file *filp) ++{ ++ struct nfs_inode *nfsi = NFS_I(inode); ++ int retval = 0; ++ ++ if ((nfsi->cache_validity & (NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_ATTR)) ++ || nfs_attribute_timeout(inode)) ++ retval = __nfs_revalidate_inode(NFS_SERVER(inode), inode); ++ nfs_revalidate_mapping(inode, filp->f_mapping); ++ return 0; ++} ++ ++/** + * nfs_revalidate_size - Revalidate the file size + * @inode - pointer to inode struct + * @file - pointer to struct file +@@ -211,7 +228,7 @@ nfs_file_read(struct kiocb *iocb, char _ + dentry->d_parent->d_name.name, dentry->d_name.name, + (unsigned long) count, (unsigned long) pos); + +- result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); ++ result = nfs_revalidate_file(inode, iocb->ki_filp); + nfs_add_stats(inode, NFSIOS_NORMALREADBYTES, count); + if (!result) + result = generic_file_aio_read(iocb, buf, count, pos); +@@ -230,7 +247,7 @@ nfs_file_sendfile(struct file *filp, lof + dentry->d_parent->d_name.name, dentry->d_name.name, + (unsigned long) count, (unsigned long long) *ppos); + +- res = nfs_revalidate_mapping(inode, filp->f_mapping); ++ res = nfs_revalidate_file(inode, filp); + if (!res) + res = generic_file_sendfile(filp, ppos, count, actor, target); + return res; +@@ -246,7 +263,7 @@ nfs_file_mmap(struct file * file, struct + dfprintk(VFS, "nfs: mmap(%s/%s)\n", + dentry->d_parent->d_name.name, dentry->d_name.name); + +- status = nfs_revalidate_mapping(inode, file->f_mapping); ++ status = nfs_revalidate_file(inode, file); + if (!status) + status = generic_file_mmap(file, vma); + return status; +@@ -303,11 +320,7 @@ static int nfs_commit_write(struct file + + static void nfs_invalidate_page(struct page *page, unsigned long offset) + { +- struct inode *inode = page->mapping->host; +- +- /* Cancel any unstarted writes on this page */ +- if (offset == 0) +- nfs_sync_inode_wait(inode, page->index, 1, FLUSH_INVALIDATE); ++ /* FIXME: we really should cancel any unstarted writes on this page */ + } + + static int nfs_release_page(struct page *page, gfp_t gfp) +@@ -366,6 +379,7 @@ nfs_file_write(struct kiocb *iocb, const + if (result) + goto out; + } ++ nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); + + result = count; + if (!count) +diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c +index b81e7ed..3fab5b0 100644 +--- a/fs/nfs/idmap.c ++++ b/fs/nfs/idmap.c +@@ -47,6 +47,7 @@ + #include + #include + ++#include + #include + + #include +diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c +index 24a7139..d0b991a 100644 +--- a/fs/nfs/inode.c ++++ b/fs/nfs/inode.c +@@ -36,8 +36,6 @@ + #include + #include + #include +-#include +-#include + + #include + #include +@@ -46,17 +44,89 @@ + #include "callback.h" + #include "delegation.h" + #include "iostat.h" +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_VFS + #define NFS_PARANOIA 1 + ++/* Maximum number of readahead requests ++ * FIXME: this should really be a sysctl so that users may tune it to suit ++ * their needs. People that do NFS over a slow network, might for ++ * instance want to reduce it to something closer to 1 for improved ++ * interactive response. ++ */ ++#define NFS_MAX_READAHEAD (RPC_DEF_SLOT_TABLE - 1) ++ + static void nfs_invalidate_inode(struct inode *); + static int nfs_update_inode(struct inode *, struct nfs_fattr *); + ++static struct inode *nfs_alloc_inode(struct super_block *sb); ++static void nfs_destroy_inode(struct inode *); ++static int nfs_write_inode(struct inode *,int); ++static void nfs_delete_inode(struct inode *); ++static void nfs_clear_inode(struct inode *); ++static void nfs_umount_begin(struct super_block *); ++static int nfs_statfs(struct super_block *, struct kstatfs *); ++static int nfs_show_options(struct seq_file *, struct vfsmount *); ++static int nfs_show_stats(struct seq_file *, struct vfsmount *); + static void nfs_zap_acl_cache(struct inode *); + +-static kmem_cache_t * nfs_inode_cachep; ++static struct rpc_program nfs_program; ++ ++static struct super_operations nfs_sops = { ++ .alloc_inode = nfs_alloc_inode, ++ .destroy_inode = nfs_destroy_inode, ++ .write_inode = nfs_write_inode, ++ .delete_inode = nfs_delete_inode, ++ .statfs = nfs_statfs, ++ .clear_inode = nfs_clear_inode, ++ .umount_begin = nfs_umount_begin, ++ .show_options = nfs_show_options, ++ .show_stats = nfs_show_stats, ++}; ++ ++/* ++ * RPC cruft for NFS ++ */ ++static struct rpc_stat nfs_rpcstat = { ++ .program = &nfs_program ++}; ++static struct rpc_version * nfs_version[] = { ++ NULL, ++ NULL, ++ &nfs_version2, ++#if defined(CONFIG_NFS_V3) ++ &nfs_version3, ++#elif defined(CONFIG_NFS_V4) ++ NULL, ++#endif ++#if defined(CONFIG_NFS_V4) ++ &nfs_version4, ++#endif ++}; ++ ++static struct rpc_program nfs_program = { ++ .name = "nfs", ++ .number = NFS_PROGRAM, ++ .nrvers = ARRAY_SIZE(nfs_version), ++ .version = nfs_version, ++ .stats = &nfs_rpcstat, ++ .pipe_dir_name = "/nfs", ++}; ++ ++#ifdef CONFIG_NFS_V3_ACL ++static struct rpc_stat nfsacl_rpcstat = { &nfsacl_program }; ++static struct rpc_version * nfsacl_version[] = { ++ [3] = &nfsacl_version3, ++}; ++ ++struct rpc_program nfsacl_program = { ++ .name = "nfsacl", ++ .number = NFS_ACL_PROGRAM, ++ .nrvers = ARRAY_SIZE(nfsacl_version), ++ .version = nfsacl_version, ++ .stats = &nfsacl_rpcstat, ++}; ++#endif /* CONFIG_NFS_V3_ACL */ + + static inline unsigned long + nfs_fattr_to_ino_t(struct nfs_fattr *fattr) +@@ -64,7 +134,8 @@ nfs_fattr_to_ino_t(struct nfs_fattr *fat + return nfs_fileid_to_ino_t(fattr->fileid); + } + +-int nfs_write_inode(struct inode *inode, int sync) ++static int ++nfs_write_inode(struct inode *inode, int sync) + { + int flags = sync ? FLUSH_SYNC : 0; + int ret; +@@ -75,15 +146,31 @@ int nfs_write_inode(struct inode *inode, + return 0; + } + +-void nfs_clear_inode(struct inode *inode) ++static void ++nfs_delete_inode(struct inode * inode) + { +- struct nfs_inode *nfsi = NFS_I(inode); +- struct rpc_cred *cred; ++ dprintk("NFS: delete_inode(%s/%ld)\n", inode->i_sb->s_id, inode->i_ino); ++ ++ truncate_inode_pages(&inode->i_data, 0); + ++ nfs_wb_all(inode); + /* + * The following should never happen... + */ +- BUG_ON(nfs_have_writebacks(inode)); ++ if (nfs_have_writebacks(inode)) { ++ printk(KERN_ERR "nfs_delete_inode: inode %ld has pending RPC requests\n", inode->i_ino); ++ } ++ ++ clear_inode(inode); ++} ++ ++static void ++nfs_clear_inode(struct inode *inode) ++{ ++ struct nfs_inode *nfsi = NFS_I(inode); ++ struct rpc_cred *cred; ++ ++ nfs_wb_all(inode); + BUG_ON (!list_empty(&nfsi->open_files)); + nfs_zap_acl_cache(inode); + cred = nfsi->cache_access.cred; +@@ -92,6 +179,554 @@ void nfs_clear_inode(struct inode *inode + BUG_ON(atomic_read(&nfsi->data_updates) != 0); + } + ++void ++nfs_umount_begin(struct super_block *sb) ++{ ++ struct rpc_clnt *rpc = NFS_SB(sb)->client; ++ ++ /* -EIO all pending I/O */ ++ if (!IS_ERR(rpc)) ++ rpc_killall_tasks(rpc); ++ rpc = NFS_SB(sb)->client_acl; ++ if (!IS_ERR(rpc)) ++ rpc_killall_tasks(rpc); ++} ++ ++ ++static inline unsigned long ++nfs_block_bits(unsigned long bsize, unsigned char *nrbitsp) ++{ ++ /* make sure blocksize is a power of two */ ++ if ((bsize & (bsize - 1)) || nrbitsp) { ++ unsigned char nrbits; ++ ++ for (nrbits = 31; nrbits && !(bsize & (1 << nrbits)); nrbits--) ++ ; ++ bsize = 1 << nrbits; ++ if (nrbitsp) ++ *nrbitsp = nrbits; ++ } ++ ++ return bsize; ++} ++ ++/* ++ * Calculate the number of 512byte blocks used. ++ */ ++static inline unsigned long ++nfs_calc_block_size(u64 tsize) ++{ ++ loff_t used = (tsize + 511) >> 9; ++ return (used > ULONG_MAX) ? ULONG_MAX : used; ++} ++ ++/* ++ * Compute and set NFS server blocksize ++ */ ++static inline unsigned long ++nfs_block_size(unsigned long bsize, unsigned char *nrbitsp) ++{ ++ if (bsize < NFS_MIN_FILE_IO_SIZE) ++ bsize = NFS_DEF_FILE_IO_SIZE; ++ else if (bsize >= NFS_MAX_FILE_IO_SIZE) ++ bsize = NFS_MAX_FILE_IO_SIZE; ++ ++ return nfs_block_bits(bsize, nrbitsp); ++} ++ ++/* ++ * Obtain the root inode of the file system. ++ */ ++static struct inode * ++nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *fsinfo) ++{ ++ struct nfs_server *server = NFS_SB(sb); ++ int error; ++ ++ error = server->rpc_ops->getroot(server, rootfh, fsinfo); ++ if (error < 0) { ++ dprintk("nfs_get_root: getattr error = %d\n", -error); ++ return ERR_PTR(error); ++ } ++ ++ return nfs_fhget(sb, rootfh, fsinfo->fattr); ++} ++ ++/* ++ * Do NFS version-independent mount processing, and sanity checking ++ */ ++static int ++nfs_sb_init(struct super_block *sb, rpc_authflavor_t authflavor) ++{ ++ struct nfs_server *server; ++ struct inode *root_inode; ++ struct nfs_fattr fattr; ++ struct nfs_fsinfo fsinfo = { ++ .fattr = &fattr, ++ }; ++ struct nfs_pathconf pathinfo = { ++ .fattr = &fattr, ++ }; ++ int no_root_error = 0; ++ unsigned long max_rpc_payload; ++ ++ /* We probably want something more informative here */ ++ snprintf(sb->s_id, sizeof(sb->s_id), "%x:%x", MAJOR(sb->s_dev), MINOR(sb->s_dev)); ++ ++ server = NFS_SB(sb); ++ ++ sb->s_magic = NFS_SUPER_MAGIC; ++ ++ server->io_stats = nfs_alloc_iostats(); ++ if (server->io_stats == NULL) ++ return -ENOMEM; ++ ++ root_inode = nfs_get_root(sb, &server->fh, &fsinfo); ++ /* Did getting the root inode fail? */ ++ if (IS_ERR(root_inode)) { ++ no_root_error = PTR_ERR(root_inode); ++ goto out_no_root; ++ } ++ sb->s_root = d_alloc_root(root_inode); ++ if (!sb->s_root) { ++ no_root_error = -ENOMEM; ++ goto out_no_root; ++ } ++ sb->s_root->d_op = server->rpc_ops->dentry_ops; ++ ++ /* mount time stamp, in seconds */ ++ server->mount_time = jiffies; ++ ++ /* Get some general file system info */ ++ if (server->namelen == 0 && ++ server->rpc_ops->pathconf(server, &server->fh, &pathinfo) >= 0) ++ server->namelen = pathinfo.max_namelen; ++ /* Work out a lot of parameters */ ++ if (server->rsize == 0) ++ server->rsize = nfs_block_size(fsinfo.rtpref, NULL); ++ if (server->wsize == 0) ++ server->wsize = nfs_block_size(fsinfo.wtpref, NULL); ++ ++ if (fsinfo.rtmax >= 512 && server->rsize > fsinfo.rtmax) ++ server->rsize = nfs_block_size(fsinfo.rtmax, NULL); ++ if (fsinfo.wtmax >= 512 && server->wsize > fsinfo.wtmax) ++ server->wsize = nfs_block_size(fsinfo.wtmax, NULL); ++ ++ max_rpc_payload = nfs_block_size(rpc_max_payload(server->client), NULL); ++ if (server->rsize > max_rpc_payload) ++ server->rsize = max_rpc_payload; ++ if (server->rsize > NFS_MAX_FILE_IO_SIZE) ++ server->rsize = NFS_MAX_FILE_IO_SIZE; ++ server->rpages = (server->rsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; ++ ++ if (server->wsize > max_rpc_payload) ++ server->wsize = max_rpc_payload; ++ if (server->wsize > NFS_MAX_FILE_IO_SIZE) ++ server->wsize = NFS_MAX_FILE_IO_SIZE; ++ server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; ++ ++ if (sb->s_blocksize == 0) ++ sb->s_blocksize = nfs_block_bits(server->wsize, ++ &sb->s_blocksize_bits); ++ server->wtmult = nfs_block_bits(fsinfo.wtmult, NULL); ++ ++ server->dtsize = nfs_block_size(fsinfo.dtpref, NULL); ++ if (server->dtsize > PAGE_CACHE_SIZE) ++ server->dtsize = PAGE_CACHE_SIZE; ++ if (server->dtsize > server->rsize) ++ server->dtsize = server->rsize; ++ ++ if (server->flags & NFS_MOUNT_NOAC) { ++ server->acregmin = server->acregmax = 0; ++ server->acdirmin = server->acdirmax = 0; ++ sb->s_flags |= MS_SYNCHRONOUS; ++ } ++ server->backing_dev_info.ra_pages = server->rpages * NFS_MAX_READAHEAD; ++ ++ sb->s_maxbytes = fsinfo.maxfilesize; ++ if (sb->s_maxbytes > MAX_LFS_FILESIZE) ++ sb->s_maxbytes = MAX_LFS_FILESIZE; ++ ++ server->client->cl_intr = (server->flags & NFS_MOUNT_INTR) ? 1 : 0; ++ server->client->cl_softrtry = (server->flags & NFS_MOUNT_SOFT) ? 1 : 0; ++ ++ /* We're airborne Set socket buffersize */ ++ rpc_setbufsize(server->client, server->wsize + 100, server->rsize + 100); ++ return 0; ++ /* Yargs. It didn't work out. */ ++out_no_root: ++ dprintk("nfs_sb_init: get root inode failed: errno %d\n", -no_root_error); ++ if (!IS_ERR(root_inode)) ++ iput(root_inode); ++ return no_root_error; ++} ++ ++static void nfs_init_timeout_values(struct rpc_timeout *to, int proto, unsigned int timeo, unsigned int retrans) ++{ ++ to->to_initval = timeo * HZ / 10; ++ to->to_retries = retrans; ++ if (!to->to_retries) ++ to->to_retries = 2; ++ ++ switch (proto) { ++ case IPPROTO_TCP: ++ if (!to->to_initval) ++ to->to_initval = 60 * HZ; ++ if (to->to_initval > NFS_MAX_TCP_TIMEOUT) ++ to->to_initval = NFS_MAX_TCP_TIMEOUT; ++ to->to_increment = to->to_initval; ++ to->to_maxval = to->to_initval + (to->to_increment * to->to_retries); ++ to->to_exponential = 0; ++ break; ++ case IPPROTO_UDP: ++ default: ++ if (!to->to_initval) ++ to->to_initval = 11 * HZ / 10; ++ if (to->to_initval > NFS_MAX_UDP_TIMEOUT) ++ to->to_initval = NFS_MAX_UDP_TIMEOUT; ++ to->to_maxval = NFS_MAX_UDP_TIMEOUT; ++ to->to_exponential = 1; ++ break; ++ } ++} ++ ++/* ++ * Create an RPC client handle. ++ */ ++static struct rpc_clnt * ++nfs_create_client(struct nfs_server *server, const struct nfs_mount_data *data) ++{ ++ struct rpc_timeout timeparms; ++ struct rpc_xprt *xprt = NULL; ++ struct rpc_clnt *clnt = NULL; ++ int proto = (data->flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP; ++ ++ nfs_init_timeout_values(&timeparms, proto, data->timeo, data->retrans); ++ ++ server->retrans_timeo = timeparms.to_initval; ++ server->retrans_count = timeparms.to_retries; ++ ++ /* create transport and client */ ++ xprt = xprt_create_proto(proto, &server->addr, &timeparms); ++ if (IS_ERR(xprt)) { ++ dprintk("%s: cannot create RPC transport. Error = %ld\n", ++ __FUNCTION__, PTR_ERR(xprt)); ++ return (struct rpc_clnt *)xprt; ++ } ++ clnt = rpc_create_client(xprt, server->hostname, &nfs_program, ++ server->rpc_ops->version, data->pseudoflavor); ++ if (IS_ERR(clnt)) { ++ dprintk("%s: cannot create RPC client. Error = %ld\n", ++ __FUNCTION__, PTR_ERR(xprt)); ++ goto out_fail; ++ } ++ ++ clnt->cl_intr = 1; ++ clnt->cl_softrtry = 1; ++ ++ return clnt; ++ ++out_fail: ++ return clnt; ++} ++ ++/* ++ * The way this works is that the mount process passes a structure ++ * in the data argument which contains the server's IP address ++ * and the root file handle obtained from the server's mount ++ * daemon. We stash these away in the private superblock fields. ++ */ ++static int ++nfs_fill_super(struct super_block *sb, struct nfs_mount_data *data, int silent) ++{ ++ struct nfs_server *server; ++ rpc_authflavor_t authflavor; ++ ++ server = NFS_SB(sb); ++ sb->s_blocksize_bits = 0; ++ sb->s_blocksize = 0; ++ if (data->bsize) ++ sb->s_blocksize = nfs_block_size(data->bsize, &sb->s_blocksize_bits); ++ if (data->rsize) ++ server->rsize = nfs_block_size(data->rsize, NULL); ++ if (data->wsize) ++ server->wsize = nfs_block_size(data->wsize, NULL); ++ server->flags = data->flags & NFS_MOUNT_FLAGMASK; ++ ++ server->acregmin = data->acregmin*HZ; ++ server->acregmax = data->acregmax*HZ; ++ server->acdirmin = data->acdirmin*HZ; ++ server->acdirmax = data->acdirmax*HZ; ++ ++ /* Start lockd here, before we might error out */ ++ if (!(server->flags & NFS_MOUNT_NONLM)) ++ lockd_up(); ++ ++ server->namelen = data->namlen; ++ server->hostname = kmalloc(strlen(data->hostname) + 1, GFP_KERNEL); ++ if (!server->hostname) ++ return -ENOMEM; ++ strcpy(server->hostname, data->hostname); ++ ++ /* Check NFS protocol revision and initialize RPC op vector ++ * and file handle pool. */ ++#ifdef CONFIG_NFS_V3 ++ if (server->flags & NFS_MOUNT_VER3) { ++ server->rpc_ops = &nfs_v3_clientops; ++ server->caps |= NFS_CAP_READDIRPLUS; ++ } else { ++ server->rpc_ops = &nfs_v2_clientops; ++ } ++#else ++ server->rpc_ops = &nfs_v2_clientops; ++#endif ++ ++ /* Fill in pseudoflavor for mount version < 5 */ ++ if (!(data->flags & NFS_MOUNT_SECFLAVOUR)) ++ data->pseudoflavor = RPC_AUTH_UNIX; ++ authflavor = data->pseudoflavor; /* save for sb_init() */ ++ /* XXX maybe we want to add a server->pseudoflavor field */ ++ ++ /* Create RPC client handles */ ++ server->client = nfs_create_client(server, data); ++ if (IS_ERR(server->client)) ++ return PTR_ERR(server->client); ++ /* RFC 2623, sec 2.3.2 */ ++ if (authflavor != RPC_AUTH_UNIX) { ++ struct rpc_auth *auth; ++ ++ server->client_sys = rpc_clone_client(server->client); ++ if (IS_ERR(server->client_sys)) ++ return PTR_ERR(server->client_sys); ++ auth = rpcauth_create(RPC_AUTH_UNIX, server->client_sys); ++ if (IS_ERR(auth)) ++ return PTR_ERR(auth); ++ } else { ++ atomic_inc(&server->client->cl_count); ++ server->client_sys = server->client; ++ } ++ if (server->flags & NFS_MOUNT_VER3) { ++#ifdef CONFIG_NFS_V3_ACL ++ if (!(server->flags & NFS_MOUNT_NOACL)) { ++ server->client_acl = rpc_bind_new_program(server->client, &nfsacl_program, 3); ++ /* No errors! Assume that Sun nfsacls are supported */ ++ if (!IS_ERR(server->client_acl)) ++ server->caps |= NFS_CAP_ACLS; ++ } ++#else ++ server->flags &= ~NFS_MOUNT_NOACL; ++#endif /* CONFIG_NFS_V3_ACL */ ++ /* ++ * The VFS shouldn't apply the umask to mode bits. We will ++ * do so ourselves when necessary. ++ */ ++ sb->s_flags |= MS_POSIXACL; ++ if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN) ++ server->namelen = NFS3_MAXNAMLEN; ++ sb->s_time_gran = 1; ++ } else { ++ if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN) ++ server->namelen = NFS2_MAXNAMLEN; ++ } ++ ++ sb->s_op = &nfs_sops; ++ return nfs_sb_init(sb, authflavor); ++} ++ ++static int ++nfs_statfs(struct super_block *sb, struct kstatfs *buf) ++{ ++ struct nfs_server *server = NFS_SB(sb); ++ unsigned char blockbits; ++ unsigned long blockres; ++ struct nfs_fh *rootfh = NFS_FH(sb->s_root->d_inode); ++ struct nfs_fattr fattr; ++ struct nfs_fsstat res = { ++ .fattr = &fattr, ++ }; ++ int error; ++ ++ lock_kernel(); ++ ++ error = server->rpc_ops->statfs(server, rootfh, &res); ++ buf->f_type = NFS_SUPER_MAGIC; ++ if (error < 0) ++ goto out_err; ++ ++ /* ++ * Current versions of glibc do not correctly handle the ++ * case where f_frsize != f_bsize. Eventually we want to ++ * report the value of wtmult in this field. ++ */ ++ buf->f_frsize = sb->s_blocksize; ++ ++ /* ++ * On most *nix systems, f_blocks, f_bfree, and f_bavail ++ * are reported in units of f_frsize. Linux hasn't had ++ * an f_frsize field in its statfs struct until recently, ++ * thus historically Linux's sys_statfs reports these ++ * fields in units of f_bsize. ++ */ ++ buf->f_bsize = sb->s_blocksize; ++ blockbits = sb->s_blocksize_bits; ++ blockres = (1 << blockbits) - 1; ++ buf->f_blocks = (res.tbytes + blockres) >> blockbits; ++ buf->f_bfree = (res.fbytes + blockres) >> blockbits; ++ buf->f_bavail = (res.abytes + blockres) >> blockbits; ++ ++ buf->f_files = res.tfiles; ++ buf->f_ffree = res.afiles; ++ ++ buf->f_namelen = server->namelen; ++ out: ++ unlock_kernel(); ++ return 0; ++ ++ out_err: ++ dprintk("%s: statfs error = %d\n", __FUNCTION__, -error); ++ buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; ++ goto out; ++ ++} ++ ++static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss, int showdefaults) ++{ ++ static struct proc_nfs_info { ++ int flag; ++ char *str; ++ char *nostr; ++ } nfs_info[] = { ++ { NFS_MOUNT_SOFT, ",soft", ",hard" }, ++ { NFS_MOUNT_INTR, ",intr", "" }, ++ { NFS_MOUNT_NOCTO, ",nocto", "" }, ++ { NFS_MOUNT_NOAC, ",noac", "" }, ++ { NFS_MOUNT_NONLM, ",nolock", "" }, ++ { NFS_MOUNT_NOACL, ",noacl", "" }, ++ { 0, NULL, NULL } ++ }; ++ struct proc_nfs_info *nfs_infop; ++ char buf[12]; ++ char *proto; ++ ++ seq_printf(m, ",vers=%d", nfss->rpc_ops->version); ++ seq_printf(m, ",rsize=%d", nfss->rsize); ++ seq_printf(m, ",wsize=%d", nfss->wsize); ++ if (nfss->acregmin != 3*HZ || showdefaults) ++ seq_printf(m, ",acregmin=%d", nfss->acregmin/HZ); ++ if (nfss->acregmax != 60*HZ || showdefaults) ++ seq_printf(m, ",acregmax=%d", nfss->acregmax/HZ); ++ if (nfss->acdirmin != 30*HZ || showdefaults) ++ seq_printf(m, ",acdirmin=%d", nfss->acdirmin/HZ); ++ if (nfss->acdirmax != 60*HZ || showdefaults) ++ seq_printf(m, ",acdirmax=%d", nfss->acdirmax/HZ); ++ for (nfs_infop = nfs_info; nfs_infop->flag; nfs_infop++) { ++ if (nfss->flags & nfs_infop->flag) ++ seq_puts(m, nfs_infop->str); ++ else ++ seq_puts(m, nfs_infop->nostr); ++ } ++ switch (nfss->client->cl_xprt->prot) { ++ case IPPROTO_TCP: ++ proto = "tcp"; ++ break; ++ case IPPROTO_UDP: ++ proto = "udp"; ++ break; ++ default: ++ snprintf(buf, sizeof(buf), "%u", nfss->client->cl_xprt->prot); ++ proto = buf; ++ } ++ seq_printf(m, ",proto=%s", proto); ++ seq_printf(m, ",timeo=%lu", 10U * nfss->retrans_timeo / HZ); ++ seq_printf(m, ",retrans=%u", nfss->retrans_count); ++} ++ ++static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) ++{ ++ struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); ++ ++ nfs_show_mount_options(m, nfss, 0); ++ ++ seq_puts(m, ",addr="); ++ seq_escape(m, nfss->hostname, " \t\n\\"); ++ ++ return 0; ++} ++ ++static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) ++{ ++ int i, cpu; ++ struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); ++ struct rpc_auth *auth = nfss->client->cl_auth; ++ struct nfs_iostats totals = { }; ++ ++ seq_printf(m, "statvers=%s", NFS_IOSTAT_VERS); ++ ++ /* ++ * Display all mount option settings ++ */ ++ seq_printf(m, "\n\topts:\t"); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_RDONLY ? "ro" : "rw"); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_SYNCHRONOUS ? ",sync" : ""); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_NOATIME ? ",noatime" : ""); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_NODIRATIME ? ",nodiratime" : ""); ++ nfs_show_mount_options(m, nfss, 1); ++ ++ seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ); ++ ++ seq_printf(m, "\n\tcaps:\t"); ++ seq_printf(m, "caps=0x%x", nfss->caps); ++ seq_printf(m, ",wtmult=%d", nfss->wtmult); ++ seq_printf(m, ",dtsize=%d", nfss->dtsize); ++ seq_printf(m, ",bsize=%d", nfss->bsize); ++ seq_printf(m, ",namelen=%d", nfss->namelen); ++ ++#ifdef CONFIG_NFS_V4 ++ if (nfss->rpc_ops->version == 4) { ++ seq_printf(m, "\n\tnfsv4:\t"); ++ seq_printf(m, "bm0=0x%x", nfss->attr_bitmask[0]); ++ seq_printf(m, ",bm1=0x%x", nfss->attr_bitmask[1]); ++ seq_printf(m, ",acl=0x%x", nfss->acl_bitmask); ++ } ++#endif ++ ++ /* ++ * Display security flavor in effect for this mount ++ */ ++ seq_printf(m, "\n\tsec:\tflavor=%d", auth->au_ops->au_flavor); ++ if (auth->au_flavor) ++ seq_printf(m, ",pseudoflavor=%d", auth->au_flavor); ++ ++ /* ++ * Display superblock I/O counters ++ */ ++ for_each_possible_cpu(cpu) { ++ struct nfs_iostats *stats; ++ ++ preempt_disable(); ++ stats = per_cpu_ptr(nfss->io_stats, cpu); ++ ++ for (i = 0; i < __NFSIOS_COUNTSMAX; i++) ++ totals.events[i] += stats->events[i]; ++ for (i = 0; i < __NFSIOS_BYTESMAX; i++) ++ totals.bytes[i] += stats->bytes[i]; ++ ++ preempt_enable(); ++ } ++ ++ seq_printf(m, "\n\tevents:\t"); ++ for (i = 0; i < __NFSIOS_COUNTSMAX; i++) ++ seq_printf(m, "%lu ", totals.events[i]); ++ seq_printf(m, "\n\tbytes:\t"); ++ for (i = 0; i < __NFSIOS_BYTESMAX; i++) ++ seq_printf(m, "%Lu ", totals.bytes[i]); ++ seq_printf(m, "\n"); ++ ++ rpc_print_iostats(m, nfss->client); ++ ++ return 0; ++} ++ + /** + * nfs_sync_mapping - helper to flush all mmapped dirty data to disk + */ +@@ -254,14 +889,6 @@ nfs_fhget(struct super_block *sb, struct + if (nfs_server_capable(inode, NFS_CAP_READDIRPLUS) + && fattr->size <= NFS_LIMIT_READDIRPLUS) + set_bit(NFS_INO_ADVISE_RDPLUS, &NFS_FLAGS(inode)); +- /* Deal with crossing mountpoints */ +- if (!nfs_fsid_equal(&NFS_SB(sb)->fsid, &fattr->fsid)) { +- if (fattr->valid & NFS_ATTR_FATTR_V4_REFERRAL) +- inode->i_op = &nfs_referral_inode_operations; +- else +- inode->i_op = &nfs_mountpoint_inode_operations; +- inode->i_fop = NULL; +- } + } else if (S_ISLNK(inode->i_mode)) + inode->i_op = &nfs_symlink_inode_operations; + else +@@ -580,7 +1207,6 @@ __nfs_revalidate_inode(struct nfs_server + dfprintk(PAGECACHE, "NFS: revalidating (%s/%Ld)\n", + inode->i_sb->s_id, (long long)NFS_FILEID(inode)); + +- nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE); + lock_kernel(); + if (!inode || is_bad_inode(inode)) + goto out_nowait; +@@ -594,7 +1220,7 @@ __nfs_revalidate_inode(struct nfs_server + status = -ESTALE; + /* Do we trust the cached ESTALE? */ + if (NFS_ATTRTIMEO(inode) != 0) { +- if (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ATIME)) { ++ if (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ATIME)) { + /* no */ + } else + goto out; +@@ -625,6 +1251,8 @@ __nfs_revalidate_inode(struct nfs_server + } + spin_unlock(&inode->i_lock); + ++ nfs_revalidate_mapping(inode, inode->i_mapping); ++ + if (nfsi->cache_validity & NFS_INO_INVALID_ACL) + nfs_zap_acl_cache(inode); + +@@ -658,7 +1286,8 @@ int nfs_attribute_timeout(struct inode * + */ + int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode) + { +- if (!(NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATTR) ++ nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE); ++ if (!(NFS_I(inode)->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA)) + && !nfs_attribute_timeout(inode)) + return NFS_STALE(inode) ? -ESTALE : 0; + return __nfs_revalidate_inode(server, inode); +@@ -669,16 +1298,9 @@ int nfs_revalidate_inode(struct nfs_serv + * @inode - pointer to host inode + * @mapping - pointer to mapping + */ +-int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping) ++void nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping) + { + struct nfs_inode *nfsi = NFS_I(inode); +- int ret = 0; +- +- if (NFS_STALE(inode)) +- ret = -ESTALE; +- if ((nfsi->cache_validity & NFS_INO_REVAL_PAGECACHE) +- || nfs_attribute_timeout(inode)) +- ret = __nfs_revalidate_inode(NFS_SERVER(inode), inode); + + if (nfsi->cache_validity & NFS_INO_INVALID_DATA) { + nfs_inc_stats(inode, NFSIOS_DATAINVALIDATE); +@@ -699,7 +1321,6 @@ int nfs_revalidate_mapping(struct inode + inode->i_sb->s_id, + (long long)NFS_FILEID(inode)); + } +- return ret; + } + + /** +@@ -739,6 +1360,12 @@ static void nfs_wcc_update_inode(struct + { + struct nfs_inode *nfsi = NFS_I(inode); + ++ if ((fattr->valid & NFS_ATTR_PRE_CHANGE) != 0 ++ && nfsi->change_attr == fattr->pre_change_attr) { ++ nfsi->change_attr = fattr->change_attr; ++ nfsi->cache_change_attribute = jiffies; ++ } ++ + /* If we have atomic WCC data, we may update some attributes */ + if ((fattr->valid & NFS_ATTR_WCC) != 0) { + if (timespec_equal(&inode->i_ctime, &fattr->pre_ctime)) { +@@ -772,6 +1399,9 @@ static int nfs_check_inode_attributes(st + int data_unstable; + + ++ if ((fattr->valid & NFS_ATTR_FATTR) == 0) ++ return 0; ++ + /* Has the inode gone and changed behind our back? */ + if (nfsi->fileid != fattr->fileid + || (inode->i_mode & S_IFMT) != (fattr->mode & S_IFMT)) { +@@ -784,13 +1414,20 @@ static int nfs_check_inode_attributes(st + /* Do atomic weak cache consistency updates */ + nfs_wcc_update_inode(inode, fattr); + +- if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0 && +- nfsi->change_attr != fattr->change_attr) +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; ++ if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0) { ++ if (nfsi->change_attr == fattr->change_attr) ++ goto out; ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR; ++ if (!data_unstable) ++ nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE; ++ } + + /* Verify a few of the more important attributes */ +- if (!timespec_equal(&inode->i_mtime, &fattr->mtime)) +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; ++ if (!timespec_equal(&inode->i_mtime, &fattr->mtime)) { ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR; ++ if (!data_unstable) ++ nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE; ++ } + + cur_size = i_size_read(inode); + new_isize = nfs_size_to_loff_t(fattr->size); +@@ -807,6 +1444,7 @@ static int nfs_check_inode_attributes(st + if (inode->i_nlink != fattr->nlink) + nfsi->cache_validity |= NFS_INO_INVALID_ATTR; + ++out: + if (!timespec_equal(&inode->i_atime, &fattr->atime)) + nfsi->cache_validity |= NFS_INO_INVALID_ATIME; + +@@ -832,6 +1470,7 @@ int nfs_refresh_inode(struct inode *inod + if ((fattr->valid & NFS_ATTR_FATTR) == 0) + return 0; + spin_lock(&inode->i_lock); ++ nfsi->cache_validity &= ~NFS_INO_REVAL_PAGECACHE; + if (time_after(fattr->time_start, nfsi->last_updated)) + status = nfs_update_inode(inode, fattr); + else +@@ -856,7 +1495,7 @@ int nfs_post_op_update_inode(struct inod + + spin_lock(&inode->i_lock); + if (unlikely((fattr->valid & NFS_ATTR_FATTR) == 0)) { +- nfsi->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; + goto out; + } + status = nfs_update_inode(inode, fattr); +@@ -879,7 +1518,6 @@ out: + */ + static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) + { +- struct nfs_server *server; + struct nfs_inode *nfsi = NFS_I(inode); + loff_t cur_isize, new_isize; + unsigned int invalid = 0; +@@ -889,6 +1527,9 @@ static int nfs_update_inode(struct inode + __FUNCTION__, inode->i_sb->s_id, inode->i_ino, + atomic_read(&inode->i_count), fattr->valid); + ++ if ((fattr->valid & NFS_ATTR_FATTR) == 0) ++ return 0; ++ + if (nfsi->fileid != fattr->fileid) + goto out_fileid; + +@@ -898,12 +1539,6 @@ static int nfs_update_inode(struct inode + if ((inode->i_mode & S_IFMT) != (fattr->mode & S_IFMT)) + goto out_changed; + +- server = NFS_SERVER(inode); +- /* Update the fsid if and only if this is the root directory */ +- if (inode == inode->i_sb->s_root->d_inode +- && !nfs_fsid_equal(&server->fsid, &fattr->fsid)) +- server->fsid = fattr->fsid; +- + /* + * Update the read time so we don't revalidate too often. + */ +@@ -913,7 +1548,7 @@ static int nfs_update_inode(struct inode + /* Are we racing with known updates of the metadata on the server? */ + data_stable = nfs_verify_change_attribute(inode, fattr->time_start); + if (data_stable) +- nfsi->cache_validity &= ~(NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_ATIME); ++ nfsi->cache_validity &= ~(NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ATIME); + + /* Do atomic weak cache consistency updates */ + nfs_wcc_update_inode(inode, fattr); +@@ -977,13 +1612,15 @@ static int nfs_update_inode(struct inode + inode->i_blksize = fattr->du.nfs2.blocksize; + } + +- if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0 && +- nfsi->change_attr != fattr->change_attr) { +- dprintk("NFS: change_attr change on server for file %s/%ld\n", +- inode->i_sb->s_id, inode->i_ino); +- nfsi->change_attr = fattr->change_attr; +- invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; +- nfsi->cache_change_attribute = jiffies; ++ if ((fattr->valid & NFS_ATTR_FATTR_V4)) { ++ if (nfsi->change_attr != fattr->change_attr) { ++ dprintk("NFS: change_attr change on server for file %s/%ld\n", ++ inode->i_sb->s_id, inode->i_ino); ++ nfsi->change_attr = fattr->change_attr; ++ invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; ++ nfsi->cache_change_attribute = jiffies; ++ } else ++ invalid &= ~(NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA); + } + + /* Update attrtimeo value if we're out of the unstable period */ +@@ -1031,15 +1668,190 @@ static int nfs_update_inode(struct inode + goto out_err; + } + ++/* ++ * File system information ++ */ ++ ++static int nfs_set_super(struct super_block *s, void *data) ++{ ++ s->s_fs_info = data; ++ return set_anon_super(s, data); ++} ++ ++static int nfs_compare_super(struct super_block *sb, void *data) ++{ ++ struct nfs_server *server = data; ++ struct nfs_server *old = NFS_SB(sb); ++ ++ if (old->addr.sin_addr.s_addr != server->addr.sin_addr.s_addr) ++ return 0; ++ if (old->addr.sin_port != server->addr.sin_port) ++ return 0; ++ return !nfs_compare_fh(&old->fh, &server->fh); ++} ++ ++static struct super_block *nfs_get_sb(struct file_system_type *fs_type, ++ int flags, const char *dev_name, void *raw_data) ++{ ++ int error; ++ struct nfs_server *server = NULL; ++ struct super_block *s; ++ struct nfs_fh *root; ++ struct nfs_mount_data *data = raw_data; ++ ++ s = ERR_PTR(-EINVAL); ++ if (data == NULL) { ++ dprintk("%s: missing data argument\n", __FUNCTION__); ++ goto out_err; ++ } ++ if (data->version <= 0 || data->version > NFS_MOUNT_VERSION) { ++ dprintk("%s: bad mount version\n", __FUNCTION__); ++ goto out_err; ++ } ++ switch (data->version) { ++ case 1: ++ data->namlen = 0; ++ case 2: ++ data->bsize = 0; ++ case 3: ++ if (data->flags & NFS_MOUNT_VER3) { ++ dprintk("%s: mount structure version %d does not support NFSv3\n", ++ __FUNCTION__, ++ data->version); ++ goto out_err; ++ } ++ data->root.size = NFS2_FHSIZE; ++ memcpy(data->root.data, data->old_root.data, NFS2_FHSIZE); ++ case 4: ++ if (data->flags & NFS_MOUNT_SECFLAVOUR) { ++ dprintk("%s: mount structure version %d does not support strong security\n", ++ __FUNCTION__, ++ data->version); ++ goto out_err; ++ } ++ case 5: ++ memset(data->context, 0, sizeof(data->context)); ++ } ++#ifndef CONFIG_NFS_V3 ++ /* If NFSv3 is not compiled in, return -EPROTONOSUPPORT */ ++ s = ERR_PTR(-EPROTONOSUPPORT); ++ if (data->flags & NFS_MOUNT_VER3) { ++ dprintk("%s: NFSv3 not compiled into kernel\n", __FUNCTION__); ++ goto out_err; ++ } ++#endif /* CONFIG_NFS_V3 */ ++ ++ s = ERR_PTR(-ENOMEM); ++ server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); ++ if (!server) ++ goto out_err; ++ /* Zero out the NFS state stuff */ ++ init_nfsv4_state(server); ++ server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); ++ ++ root = &server->fh; ++ if (data->flags & NFS_MOUNT_VER3) ++ root->size = data->root.size; ++ else ++ root->size = NFS2_FHSIZE; ++ s = ERR_PTR(-EINVAL); ++ if (root->size > sizeof(root->data)) { ++ dprintk("%s: invalid root filehandle\n", __FUNCTION__); ++ goto out_err; ++ } ++ memcpy(root->data, data->root.data, root->size); ++ ++ /* We now require that the mount process passes the remote address */ ++ memcpy(&server->addr, &data->addr, sizeof(server->addr)); ++ if (server->addr.sin_addr.s_addr == INADDR_ANY) { ++ dprintk("%s: mount program didn't pass remote address!\n", ++ __FUNCTION__); ++ goto out_err; ++ } ++ ++ /* Fire up rpciod if not yet running */ ++ s = ERR_PTR(rpciod_up()); ++ if (IS_ERR(s)) { ++ dprintk("%s: couldn't start rpciod! Error = %ld\n", ++ __FUNCTION__, PTR_ERR(s)); ++ goto out_err; ++ } ++ ++ s = sget(fs_type, nfs_compare_super, nfs_set_super, server); ++ if (IS_ERR(s) || s->s_root) ++ goto out_rpciod_down; ++ ++ s->s_flags = flags; ++ ++ error = nfs_fill_super(s, data, flags & MS_SILENT ? 1 : 0); ++ if (error) { ++ up_write(&s->s_umount); ++ deactivate_super(s); ++ return ERR_PTR(error); ++ } ++ s->s_flags |= MS_ACTIVE; ++ return s; ++out_rpciod_down: ++ rpciod_down(); ++out_err: ++ kfree(server); ++ return s; ++} ++ ++static void nfs_kill_super(struct super_block *s) ++{ ++ struct nfs_server *server = NFS_SB(s); ++ ++ kill_anon_super(s); ++ ++ if (!IS_ERR(server->client)) ++ rpc_shutdown_client(server->client); ++ if (!IS_ERR(server->client_sys)) ++ rpc_shutdown_client(server->client_sys); ++ if (!IS_ERR(server->client_acl)) ++ rpc_shutdown_client(server->client_acl); ++ ++ if (!(server->flags & NFS_MOUNT_NONLM)) ++ lockd_down(); /* release rpc.lockd */ ++ ++ rpciod_down(); /* release rpciod */ ++ ++ nfs_free_iostats(server->io_stats); ++ kfree(server->hostname); ++ kfree(server); ++} ++ ++static struct file_system_type nfs_fs_type = { ++ .owner = THIS_MODULE, ++ .name = "nfs", ++ .get_sb = nfs_get_sb, ++ .kill_sb = nfs_kill_super, ++ .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, ++}; + + #ifdef CONFIG_NFS_V4 + ++static void nfs4_clear_inode(struct inode *); ++ ++ ++static struct super_operations nfs4_sops = { ++ .alloc_inode = nfs_alloc_inode, ++ .destroy_inode = nfs_destroy_inode, ++ .write_inode = nfs_write_inode, ++ .delete_inode = nfs_delete_inode, ++ .statfs = nfs_statfs, ++ .clear_inode = nfs4_clear_inode, ++ .umount_begin = nfs_umount_begin, ++ .show_options = nfs_show_options, ++ .show_stats = nfs_show_stats, ++}; ++ + /* + * Clean out any remaining NFSv4 state that might be left over due + * to open() calls that passed nfs_atomic_lookup, but failed to call + * nfs_open(). + */ +-void nfs4_clear_inode(struct inode *inode) ++static void nfs4_clear_inode(struct inode *inode) + { + struct nfs_inode *nfsi = NFS_I(inode); + +@@ -1063,9 +1875,357 @@ void nfs4_clear_inode(struct inode *inod + nfs4_close_state(state, state->state); + } + } ++ ++ ++static int nfs4_fill_super(struct super_block *sb, struct nfs4_mount_data *data, int silent) ++{ ++ struct nfs_server *server; ++ struct nfs4_client *clp = NULL; ++ struct rpc_xprt *xprt = NULL; ++ struct rpc_clnt *clnt = NULL; ++ struct rpc_timeout timeparms; ++ rpc_authflavor_t authflavour; ++ int err = -EIO; ++ ++ sb->s_blocksize_bits = 0; ++ sb->s_blocksize = 0; ++ server = NFS_SB(sb); ++ if (data->rsize != 0) ++ server->rsize = nfs_block_size(data->rsize, NULL); ++ if (data->wsize != 0) ++ server->wsize = nfs_block_size(data->wsize, NULL); ++ server->flags = data->flags & NFS_MOUNT_FLAGMASK; ++ server->caps = NFS_CAP_ATOMIC_OPEN; ++ ++ server->acregmin = data->acregmin*HZ; ++ server->acregmax = data->acregmax*HZ; ++ server->acdirmin = data->acdirmin*HZ; ++ server->acdirmax = data->acdirmax*HZ; ++ ++ server->rpc_ops = &nfs_v4_clientops; ++ ++ nfs_init_timeout_values(&timeparms, data->proto, data->timeo, data->retrans); ++ ++ server->retrans_timeo = timeparms.to_initval; ++ server->retrans_count = timeparms.to_retries; ++ ++ clp = nfs4_get_client(&server->addr.sin_addr); ++ if (!clp) { ++ dprintk("%s: failed to create NFS4 client.\n", __FUNCTION__); ++ return -EIO; ++ } ++ ++ /* Now create transport and client */ ++ authflavour = RPC_AUTH_UNIX; ++ if (data->auth_flavourlen != 0) { ++ if (data->auth_flavourlen != 1) { ++ dprintk("%s: Invalid number of RPC auth flavours %d.\n", ++ __FUNCTION__, data->auth_flavourlen); ++ err = -EINVAL; ++ goto out_fail; ++ } ++ if (copy_from_user(&authflavour, data->auth_flavours, sizeof(authflavour))) { ++ err = -EFAULT; ++ goto out_fail; ++ } ++ } ++ ++ down_write(&clp->cl_sem); ++ if (IS_ERR(clp->cl_rpcclient)) { ++ xprt = xprt_create_proto(data->proto, &server->addr, &timeparms); ++ if (IS_ERR(xprt)) { ++ up_write(&clp->cl_sem); ++ err = PTR_ERR(xprt); ++ dprintk("%s: cannot create RPC transport. Error = %d\n", ++ __FUNCTION__, err); ++ goto out_fail; ++ } ++ clnt = rpc_create_client(xprt, server->hostname, &nfs_program, ++ server->rpc_ops->version, authflavour); ++ if (IS_ERR(clnt)) { ++ up_write(&clp->cl_sem); ++ err = PTR_ERR(clnt); ++ dprintk("%s: cannot create RPC client. Error = %d\n", ++ __FUNCTION__, err); ++ goto out_fail; ++ } ++ clnt->cl_intr = 1; ++ clnt->cl_softrtry = 1; ++ clp->cl_rpcclient = clnt; ++ memcpy(clp->cl_ipaddr, server->ip_addr, sizeof(clp->cl_ipaddr)); ++ nfs_idmap_new(clp); ++ } ++ list_add_tail(&server->nfs4_siblings, &clp->cl_superblocks); ++ clnt = rpc_clone_client(clp->cl_rpcclient); ++ if (!IS_ERR(clnt)) ++ server->nfs4_state = clp; ++ up_write(&clp->cl_sem); ++ clp = NULL; ++ ++ if (IS_ERR(clnt)) { ++ err = PTR_ERR(clnt); ++ dprintk("%s: cannot create RPC client. Error = %d\n", ++ __FUNCTION__, err); ++ return err; ++ } ++ ++ server->client = clnt; ++ ++ if (server->nfs4_state->cl_idmap == NULL) { ++ dprintk("%s: failed to create idmapper.\n", __FUNCTION__); ++ return -ENOMEM; ++ } ++ ++ if (clnt->cl_auth->au_flavor != authflavour) { ++ struct rpc_auth *auth; ++ ++ auth = rpcauth_create(authflavour, clnt); ++ if (IS_ERR(auth)) { ++ dprintk("%s: couldn't create credcache!\n", __FUNCTION__); ++ return PTR_ERR(auth); ++ } ++ } ++ ++ sb->s_time_gran = 1; ++ ++ sb->s_op = &nfs4_sops; ++ err = nfs_sb_init(sb, authflavour); ++ if (err == 0) ++ return 0; ++out_fail: ++ if (clp) ++ nfs4_put_client(clp); ++ return err; ++} ++ ++static int nfs4_compare_super(struct super_block *sb, void *data) ++{ ++ struct nfs_server *server = data; ++ struct nfs_server *old = NFS_SB(sb); ++ ++ if (strcmp(server->hostname, old->hostname) != 0) ++ return 0; ++ if (strcmp(server->mnt_path, old->mnt_path) != 0) ++ return 0; ++ return 1; ++} ++ ++static void * ++nfs_copy_user_string(char *dst, struct nfs_string *src, int maxlen) ++{ ++ void *p = NULL; ++ ++ if (!src->len) ++ return ERR_PTR(-EINVAL); ++ if (src->len < maxlen) ++ maxlen = src->len; ++ if (dst == NULL) { ++ p = dst = kmalloc(maxlen + 1, GFP_KERNEL); ++ if (p == NULL) ++ return ERR_PTR(-ENOMEM); ++ } ++ if (copy_from_user(dst, src->data, maxlen)) { ++ kfree(p); ++ return ERR_PTR(-EFAULT); ++ } ++ dst[maxlen] = '\0'; ++ return dst; ++} ++ ++static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, ++ int flags, const char *dev_name, void *raw_data) ++{ ++ int error; ++ struct nfs_server *server; ++ struct super_block *s; ++ struct nfs4_mount_data *data = raw_data; ++ void *p; ++ ++ if (data == NULL) { ++ dprintk("%s: missing data argument\n", __FUNCTION__); ++ return ERR_PTR(-EINVAL); ++ } ++ if (data->version <= 0 || data->version > NFS4_MOUNT_VERSION) { ++ dprintk("%s: bad mount version\n", __FUNCTION__); ++ return ERR_PTR(-EINVAL); ++ } ++ ++ server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); ++ if (!server) ++ return ERR_PTR(-ENOMEM); ++ /* Zero out the NFS state stuff */ ++ init_nfsv4_state(server); ++ server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); ++ ++ p = nfs_copy_user_string(NULL, &data->hostname, 256); ++ if (IS_ERR(p)) ++ goto out_err; ++ server->hostname = p; ++ ++ p = nfs_copy_user_string(NULL, &data->mnt_path, 1024); ++ if (IS_ERR(p)) ++ goto out_err; ++ server->mnt_path = p; ++ ++ p = nfs_copy_user_string(server->ip_addr, &data->client_addr, ++ sizeof(server->ip_addr) - 1); ++ if (IS_ERR(p)) ++ goto out_err; ++ ++ /* We now require that the mount process passes the remote address */ ++ if (data->host_addrlen != sizeof(server->addr)) { ++ s = ERR_PTR(-EINVAL); ++ goto out_free; ++ } ++ if (copy_from_user(&server->addr, data->host_addr, sizeof(server->addr))) { ++ s = ERR_PTR(-EFAULT); ++ goto out_free; ++ } ++ if (server->addr.sin_family != AF_INET || ++ server->addr.sin_addr.s_addr == INADDR_ANY) { ++ dprintk("%s: mount program didn't pass remote IP address!\n", ++ __FUNCTION__); ++ s = ERR_PTR(-EINVAL); ++ goto out_free; ++ } ++ ++ /* Fire up rpciod if not yet running */ ++ s = ERR_PTR(rpciod_up()); ++ if (IS_ERR(s)) { ++ dprintk("%s: couldn't start rpciod! Error = %ld\n", ++ __FUNCTION__, PTR_ERR(s)); ++ goto out_free; ++ } ++ ++ s = sget(fs_type, nfs4_compare_super, nfs_set_super, server); ++ ++ if (IS_ERR(s) || s->s_root) ++ goto out_free; ++ ++ s->s_flags = flags; ++ ++ error = nfs4_fill_super(s, data, flags & MS_SILENT ? 1 : 0); ++ if (error) { ++ up_write(&s->s_umount); ++ deactivate_super(s); ++ return ERR_PTR(error); ++ } ++ s->s_flags |= MS_ACTIVE; ++ return s; ++out_err: ++ s = (struct super_block *)p; ++out_free: ++ kfree(server->mnt_path); ++ kfree(server->hostname); ++ kfree(server); ++ return s; ++} ++ ++static void nfs4_kill_super(struct super_block *sb) ++{ ++ struct nfs_server *server = NFS_SB(sb); ++ ++ nfs_return_all_delegations(sb); ++ kill_anon_super(sb); ++ ++ nfs4_renewd_prepare_shutdown(server); ++ ++ if (server->client != NULL && !IS_ERR(server->client)) ++ rpc_shutdown_client(server->client); ++ ++ destroy_nfsv4_state(server); ++ ++ rpciod_down(); ++ ++ nfs_free_iostats(server->io_stats); ++ kfree(server->hostname); ++ kfree(server); ++} ++ ++static struct file_system_type nfs4_fs_type = { ++ .owner = THIS_MODULE, ++ .name = "nfs4", ++ .get_sb = nfs4_get_sb, ++ .kill_sb = nfs4_kill_super, ++ .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, ++}; ++ ++static const int nfs_set_port_min = 0; ++static const int nfs_set_port_max = 65535; ++static int param_set_port(const char *val, struct kernel_param *kp) ++{ ++ char *endp; ++ int num = simple_strtol(val, &endp, 0); ++ if (endp == val || *endp || num < nfs_set_port_min || num > nfs_set_port_max) ++ return -EINVAL; ++ *((int *)kp->arg) = num; ++ return 0; ++} ++ ++module_param_call(callback_tcpport, param_set_port, param_get_int, ++ &nfs_callback_set_tcpport, 0644); ++ ++static int param_set_idmap_timeout(const char *val, struct kernel_param *kp) ++{ ++ char *endp; ++ int num = simple_strtol(val, &endp, 0); ++ int jif = num * HZ; ++ if (endp == val || *endp || num < 0 || jif < num) ++ return -EINVAL; ++ *((int *)kp->arg) = jif; ++ return 0; ++} ++ ++module_param_call(idmap_cache_timeout, param_set_idmap_timeout, param_get_int, ++ &nfs_idmap_cache_timeout, 0644); ++ ++#define nfs4_init_once(nfsi) \ ++ do { \ ++ INIT_LIST_HEAD(&(nfsi)->open_states); \ ++ nfsi->delegation = NULL; \ ++ nfsi->delegation_state = 0; \ ++ init_rwsem(&nfsi->rwsem); \ ++ } while(0) ++ ++static inline int register_nfs4fs(void) ++{ ++ int ret; ++ ++ ret = nfs_register_sysctl(); ++ if (ret != 0) ++ return ret; ++ ret = register_filesystem(&nfs4_fs_type); ++ if (ret != 0) ++ nfs_unregister_sysctl(); ++ return ret; ++} ++ ++static inline void unregister_nfs4fs(void) ++{ ++ unregister_filesystem(&nfs4_fs_type); ++ nfs_unregister_sysctl(); ++} ++#else ++#define nfs4_init_once(nfsi) \ ++ do { } while (0) ++#define register_nfs4fs() (0) ++#define unregister_nfs4fs() + #endif + +-struct inode *nfs_alloc_inode(struct super_block *sb) ++extern int nfs_init_nfspagecache(void); ++extern void nfs_destroy_nfspagecache(void); ++extern int nfs_init_readpagecache(void); ++extern void nfs_destroy_readpagecache(void); ++extern int nfs_init_writepagecache(void); ++extern void nfs_destroy_writepagecache(void); ++#ifdef CONFIG_NFS_DIRECTIO ++extern int nfs_init_directcache(void); ++extern void nfs_destroy_directcache(void); ++#endif ++ ++static kmem_cache_t * nfs_inode_cachep; ++ ++static struct inode *nfs_alloc_inode(struct super_block *sb) + { + struct nfs_inode *nfsi; + nfsi = (struct nfs_inode *)kmem_cache_alloc(nfs_inode_cachep, SLAB_KERNEL); +@@ -1084,19 +2244,11 @@ struct inode *nfs_alloc_inode(struct sup + return &nfsi->vfs_inode; + } + +-void nfs_destroy_inode(struct inode *inode) ++static void nfs_destroy_inode(struct inode *inode) + { + kmem_cache_free(nfs_inode_cachep, NFS_I(inode)); + } + +-#define nfs4_init_once(nfsi) \ +- do { \ +- INIT_LIST_HEAD(&(nfsi)->open_states); \ +- nfsi->delegation = NULL; \ +- nfsi->delegation_state = 0; \ +- init_rwsem(&nfsi->rwsem); \ +- } while(0) +- + static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) + { + struct nfs_inode *nfsi = (struct nfs_inode *) foo; +@@ -1117,7 +2269,7 @@ static void init_once(void * foo, kmem_c + } + } + +-static int __init nfs_init_inodecache(void) ++static int nfs_init_inodecache(void) + { + nfs_inode_cachep = kmem_cache_create("nfs_inode_cache", + sizeof(struct nfs_inode), +@@ -1130,7 +2282,7 @@ static int __init nfs_init_inodecache(vo + return 0; + } + +-static void __exit nfs_destroy_inodecache(void) ++static void nfs_destroy_inodecache(void) + { + if (kmem_cache_destroy(nfs_inode_cachep)) + printk(KERN_INFO "nfs_inode_cache: not all structures were freed\n"); +@@ -1159,22 +2311,29 @@ static int __init init_nfs_fs(void) + if (err) + goto out1; + ++#ifdef CONFIG_NFS_DIRECTIO + err = nfs_init_directcache(); + if (err) + goto out0; ++#endif + + #ifdef CONFIG_PROC_FS + rpc_proc_register(&nfs_rpcstat); + #endif +- if ((err = register_nfs_fs()) != 0) ++ err = register_filesystem(&nfs_fs_type); ++ if (err) ++ goto out; ++ if ((err = register_nfs4fs()) != 0) + goto out; + return 0; + out: + #ifdef CONFIG_PROC_FS + rpc_proc_unregister("nfs"); + #endif ++#ifdef CONFIG_NFS_DIRECTIO + nfs_destroy_directcache(); + out0: ++#endif + nfs_destroy_writepagecache(); + out1: + nfs_destroy_readpagecache(); +@@ -1188,7 +2347,9 @@ out4: + + static void __exit exit_nfs_fs(void) + { ++#ifdef CONFIG_NFS_DIRECTIO + nfs_destroy_directcache(); ++#endif + nfs_destroy_writepagecache(); + nfs_destroy_readpagecache(); + nfs_destroy_inodecache(); +@@ -1196,7 +2357,8 @@ static void __exit exit_nfs_fs(void) + #ifdef CONFIG_PROC_FS + rpc_proc_unregister("nfs"); + #endif +- unregister_nfs_fs(); ++ unregister_filesystem(&nfs_fs_type); ++ unregister_nfs4fs(); + } + + /* Not quite true; I just maintain it */ +diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h +deleted file mode 100644 +index 5e51c45..0000000 +--- a/fs/nfs/internal.h ++++ /dev/null +@@ -1,179 +0,0 @@ +-/* +- * NFS internal definitions +- */ +- +-#include +- +-struct nfs_clone_mount { +- const struct super_block *sb; +- const struct dentry *dentry; +- struct nfs_fh *fh; +- struct nfs_fattr *fattr; +- char *hostname; +- char *mnt_path; +- struct sockaddr_in *addr; +- rpc_authflavor_t authflavor; +-}; +- +-/* namespace-nfs4.c */ +-#ifdef CONFIG_NFS_V4 +-extern struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry); +-#else +-static inline +-struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry) +-{ +- return ERR_PTR(-ENOENT); +-} +-#endif +- +-/* callback_xdr.c */ +-extern struct svc_version nfs4_callback_version1; +- +-/* pagelist.c */ +-extern int __init nfs_init_nfspagecache(void); +-extern void __exit nfs_destroy_nfspagecache(void); +-extern int __init nfs_init_readpagecache(void); +-extern void __exit nfs_destroy_readpagecache(void); +-extern int __init nfs_init_writepagecache(void); +-extern void __exit nfs_destroy_writepagecache(void); +- +-#ifdef CONFIG_NFS_DIRECTIO +-extern int __init nfs_init_directcache(void); +-extern void __exit nfs_destroy_directcache(void); +-#else +-#define nfs_init_directcache() (0) +-#define nfs_destroy_directcache() do {} while(0) +-#endif +- +-/* nfs2xdr.c */ +-extern struct rpc_procinfo nfs_procedures[]; +-extern u32 * nfs_decode_dirent(u32 *, struct nfs_entry *, int); +- +-/* nfs3xdr.c */ +-extern struct rpc_procinfo nfs3_procedures[]; +-extern u32 *nfs3_decode_dirent(u32 *, struct nfs_entry *, int); +- +-/* nfs4xdr.c */ +-extern int nfs_stat_to_errno(int); +-extern u32 *nfs4_decode_dirent(u32 *p, struct nfs_entry *entry, int plus); +- +-/* nfs4proc.c */ +-extern struct rpc_procinfo nfs4_procedures[]; +- +-extern int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, +- struct nfs4_fs_locations *fs_locations, +- struct page *page); +- +-/* inode.c */ +-extern struct inode *nfs_alloc_inode(struct super_block *sb); +-extern void nfs_destroy_inode(struct inode *); +-extern int nfs_write_inode(struct inode *,int); +-extern void nfs_clear_inode(struct inode *); +-#ifdef CONFIG_NFS_V4 +-extern void nfs4_clear_inode(struct inode *); +-#endif +- +-/* super.c */ +-extern struct file_system_type nfs_referral_nfs4_fs_type; +-extern struct file_system_type clone_nfs_fs_type; +-#ifdef CONFIG_NFS_V4 +-extern struct file_system_type clone_nfs4_fs_type; +-#endif +-#ifdef CONFIG_PROC_FS +-extern struct rpc_stat nfs_rpcstat; +-#endif +-extern int __init register_nfs_fs(void); +-extern void __exit unregister_nfs_fs(void); +- +-/* namespace.c */ +-extern char *nfs_path(const char *base, const struct dentry *dentry, +- char *buffer, ssize_t buflen); +- +-/* +- * Determine the mount path as a string +- */ +-static inline char *nfs4_path(const struct dentry *dentry, char *buffer, ssize_t buflen) +-{ +- return nfs_path(NFS_SB(dentry->d_sb)->mnt_path, dentry, buffer, buflen); +-} +- +-/* +- * Determine the device name as a string +- */ +-static inline char *nfs_devname(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, +- char *buffer, ssize_t buflen) +-{ +- return nfs_path(mnt_parent->mnt_devname, dentry, buffer, buflen); +-} +- +-/* +- * Determine the actual block size (and log2 thereof) +- */ +-static inline +-unsigned long nfs_block_bits(unsigned long bsize, unsigned char *nrbitsp) +-{ +- /* make sure blocksize is a power of two */ +- if ((bsize & (bsize - 1)) || nrbitsp) { +- unsigned char nrbits; +- +- for (nrbits = 31; nrbits && !(bsize & (1 << nrbits)); nrbits--) +- ; +- bsize = 1 << nrbits; +- if (nrbitsp) +- *nrbitsp = nrbits; +- } +- +- return bsize; +-} +- +-/* +- * Calculate the number of 512byte blocks used. +- */ +-static inline unsigned long nfs_calc_block_size(u64 tsize) +-{ +- loff_t used = (tsize + 511) >> 9; +- return (used > ULONG_MAX) ? ULONG_MAX : used; +-} +- +-/* +- * Compute and set NFS server blocksize +- */ +-static inline +-unsigned long nfs_block_size(unsigned long bsize, unsigned char *nrbitsp) +-{ +- if (bsize < NFS_MIN_FILE_IO_SIZE) +- bsize = NFS_DEF_FILE_IO_SIZE; +- else if (bsize >= NFS_MAX_FILE_IO_SIZE) +- bsize = NFS_MAX_FILE_IO_SIZE; +- +- return nfs_block_bits(bsize, nrbitsp); +-} +- +-/* +- * Determine the maximum file size for a superblock +- */ +-static inline +-void nfs_super_set_maxbytes(struct super_block *sb, __u64 maxfilesize) +-{ +- sb->s_maxbytes = (loff_t)maxfilesize; +- if (sb->s_maxbytes > MAX_LFS_FILESIZE || sb->s_maxbytes <= 0) +- sb->s_maxbytes = MAX_LFS_FILESIZE; +-} +- +-/* +- * Check if the string represents a "valid" IPv4 address +- */ +-static inline int valid_ipaddr4(const char *buf) +-{ +- int rc, count, in[4]; +- +- rc = sscanf(buf, "%d.%d.%d.%d", &in[0], &in[1], &in[2], &in[3]); +- if (rc != 4) +- return -EINVAL; +- for (count = 0; count < 4; count++) { +- if (in[count] > 255) +- return -EINVAL; +- } +- return 0; +-} +diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c +deleted file mode 100644 +index 19b98ca..0000000 +--- a/fs/nfs/namespace.c ++++ /dev/null +@@ -1,229 +0,0 @@ +-/* +- * linux/fs/nfs/namespace.c +- * +- * Copyright (C) 2005 Trond Myklebust +- * +- * NFS namespace +- */ +- +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include "internal.h" +- +-#define NFSDBG_FACILITY NFSDBG_VFS +- +-static void nfs_expire_automounts(void *list); +- +-LIST_HEAD(nfs_automount_list); +-static DECLARE_WORK(nfs_automount_task, nfs_expire_automounts, &nfs_automount_list); +-int nfs_mountpoint_expiry_timeout = 500 * HZ; +- +-/* +- * nfs_path - reconstruct the path given an arbitrary dentry +- * @base - arbitrary string to prepend to the path +- * @dentry - pointer to dentry +- * @buffer - result buffer +- * @buflen - length of buffer +- * +- * Helper function for constructing the path from the +- * root dentry to an arbitrary hashed dentry. +- * +- * This is mainly for use in figuring out the path on the +- * server side when automounting on top of an existing partition. +- */ +-char *nfs_path(const char *base, const struct dentry *dentry, +- char *buffer, ssize_t buflen) +-{ +- char *end = buffer+buflen; +- int namelen; +- +- *--end = '\0'; +- buflen--; +- spin_lock(&dcache_lock); +- while (!IS_ROOT(dentry)) { +- namelen = dentry->d_name.len; +- buflen -= namelen + 1; +- if (buflen < 0) +- goto Elong; +- end -= namelen; +- memcpy(end, dentry->d_name.name, namelen); +- *--end = '/'; +- dentry = dentry->d_parent; +- } +- spin_unlock(&dcache_lock); +- namelen = strlen(base); +- /* Strip off excess slashes in base string */ +- while (namelen > 0 && base[namelen - 1] == '/') +- namelen--; +- buflen -= namelen; +- if (buflen < 0) +- goto Elong; +- end -= namelen; +- memcpy(end, base, namelen); +- return end; +-Elong: +- return ERR_PTR(-ENAMETOOLONG); +-} +- +-/* +- * nfs_follow_mountpoint - handle crossing a mountpoint on the server +- * @dentry - dentry of mountpoint +- * @nd - nameidata info +- * +- * When we encounter a mountpoint on the server, we want to set up +- * a mountpoint on the client too, to prevent inode numbers from +- * colliding, and to allow "df" to work properly. +- * On NFSv4, we also want to allow for the fact that different +- * filesystems may be migrated to different servers in a failover +- * situation, and that different filesystems may want to use +- * different security flavours. +- */ +-static void * nfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd) +-{ +- struct vfsmount *mnt; +- struct nfs_server *server = NFS_SERVER(dentry->d_inode); +- struct dentry *parent; +- struct nfs_fh fh; +- struct nfs_fattr fattr; +- int err; +- +- BUG_ON(IS_ROOT(dentry)); +- dprintk("%s: enter\n", __FUNCTION__); +- dput(nd->dentry); +- nd->dentry = dget(dentry); +- if (d_mountpoint(nd->dentry)) +- goto out_follow; +- /* Look it up again */ +- parent = dget_parent(nd->dentry); +- err = server->rpc_ops->lookup(parent->d_inode, &nd->dentry->d_name, &fh, &fattr); +- dput(parent); +- if (err != 0) +- goto out_err; +- +- if (fattr.valid & NFS_ATTR_FATTR_V4_REFERRAL) +- mnt = nfs_do_refmount(nd->mnt, nd->dentry); +- else +- mnt = nfs_do_submount(nd->mnt, nd->dentry, &fh, &fattr); +- err = PTR_ERR(mnt); +- if (IS_ERR(mnt)) +- goto out_err; +- +- mntget(mnt); +- err = do_add_mount(mnt, nd, nd->mnt->mnt_flags|MNT_SHRINKABLE, &nfs_automount_list); +- if (err < 0) { +- mntput(mnt); +- if (err == -EBUSY) +- goto out_follow; +- goto out_err; +- } +- mntput(nd->mnt); +- dput(nd->dentry); +- nd->mnt = mnt; +- nd->dentry = dget(mnt->mnt_root); +- schedule_delayed_work(&nfs_automount_task, nfs_mountpoint_expiry_timeout); +-out: +- dprintk("%s: done, returned %d\n", __FUNCTION__, err); +- return ERR_PTR(err); +-out_err: +- path_release(nd); +- goto out; +-out_follow: +- while(d_mountpoint(nd->dentry) && follow_down(&nd->mnt, &nd->dentry)) +- ; +- err = 0; +- goto out; +-} +- +-struct inode_operations nfs_mountpoint_inode_operations = { +- .follow_link = nfs_follow_mountpoint, +- .getattr = nfs_getattr, +-}; +- +-struct inode_operations nfs_referral_inode_operations = { +- .follow_link = nfs_follow_mountpoint, +-}; +- +-static void nfs_expire_automounts(void *data) +-{ +- struct list_head *list = (struct list_head *)data; +- +- mark_mounts_for_expiry(list); +- if (!list_empty(list)) +- schedule_delayed_work(&nfs_automount_task, nfs_mountpoint_expiry_timeout); +-} +- +-void nfs_release_automount_timer(void) +-{ +- if (list_empty(&nfs_automount_list)) { +- cancel_delayed_work(&nfs_automount_task); +- flush_scheduled_work(); +- } +-} +- +-/* +- * Clone a mountpoint of the appropriate type +- */ +-static struct vfsmount *nfs_do_clone_mount(struct nfs_server *server, char *devname, +- struct nfs_clone_mount *mountdata) +-{ +-#ifdef CONFIG_NFS_V4 +- struct vfsmount *mnt = NULL; +- switch (server->rpc_ops->version) { +- case 2: +- case 3: +- mnt = vfs_kern_mount(&clone_nfs_fs_type, 0, devname, mountdata); +- break; +- case 4: +- mnt = vfs_kern_mount(&clone_nfs4_fs_type, 0, devname, mountdata); +- } +- return mnt; +-#else +- return vfs_kern_mount(&clone_nfs_fs_type, 0, devname, mountdata); +-#endif +-} +- +-/** +- * nfs_do_submount - set up mountpoint when crossing a filesystem boundary +- * @mnt_parent - mountpoint of parent directory +- * @dentry - parent directory +- * @fh - filehandle for new root dentry +- * @fattr - attributes for new root inode +- * +- */ +-struct vfsmount *nfs_do_submount(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, struct nfs_fh *fh, +- struct nfs_fattr *fattr) +-{ +- struct nfs_clone_mount mountdata = { +- .sb = mnt_parent->mnt_sb, +- .dentry = dentry, +- .fh = fh, +- .fattr = fattr, +- }; +- struct vfsmount *mnt = ERR_PTR(-ENOMEM); +- char *page = (char *) __get_free_page(GFP_USER); +- char *devname; +- +- dprintk("%s: submounting on %s/%s\n", __FUNCTION__, +- dentry->d_parent->d_name.name, +- dentry->d_name.name); +- if (page == NULL) +- goto out; +- devname = nfs_devname(mnt_parent, dentry, page, PAGE_SIZE); +- mnt = (struct vfsmount *)devname; +- if (IS_ERR(devname)) +- goto free_page; +- mnt = nfs_do_clone_mount(NFS_SB(mnt_parent->mnt_sb), devname, &mountdata); +-free_page: +- free_page((unsigned long)page); +-out: +- dprintk("%s: done\n", __FUNCTION__); +- return mnt; +-} +diff --git a/fs/nfs/nfs2xdr.c b/fs/nfs/nfs2xdr.c +index 4a006f8..f0015fa 100644 +--- a/fs/nfs/nfs2xdr.c ++++ b/fs/nfs/nfs2xdr.c +@@ -27,6 +27,8 @@ + #define NFSDBG_FACILITY NFSDBG_XDR + /* #define NFS_PARANOIA 1 */ + ++extern int nfs_stat_to_errno(int stat); ++ + /* Mapping from NFS error code to "errno" error code. */ + #define errno_NFSERR_IO EIO + +@@ -129,8 +131,7 @@ xdr_decode_fattr(u32 *p, struct nfs_fatt + fattr->du.nfs2.blocksize = ntohl(*p++); + rdev = ntohl(*p++); + fattr->du.nfs2.blocks = ntohl(*p++); +- fattr->fsid.major = ntohl(*p++); +- fattr->fsid.minor = 0; ++ fattr->fsid_u.nfs3 = ntohl(*p++); + fattr->fileid = ntohl(*p++); + p = xdr_decode_time(p, &fattr->atime); + p = xdr_decode_time(p, &fattr->mtime); +diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c +index 7322da4..3328787 100644 +--- a/fs/nfs/nfs3acl.c ++++ b/fs/nfs/nfs3acl.c +@@ -172,10 +172,8 @@ static void nfs3_cache_acls(struct inode + inode->i_ino, acl, dfacl); + spin_lock(&inode->i_lock); + __nfs3_forget_cached_acls(NFS_I(inode)); +- if (!IS_ERR(acl)) +- nfsi->acl_access = posix_acl_dup(acl); +- if (!IS_ERR(dfacl)) +- nfsi->acl_default = posix_acl_dup(dfacl); ++ nfsi->acl_access = posix_acl_dup(acl); ++ nfsi->acl_default = posix_acl_dup(dfacl); + spin_unlock(&inode->i_lock); + } + +@@ -256,9 +254,7 @@ struct posix_acl *nfs3_proc_getacl(struc + res.acl_access = NULL; + } + } +- nfs3_cache_acls(inode, +- (res.mask & NFS_ACL) ? res.acl_access : ERR_PTR(-EINVAL), +- (res.mask & NFS_DFACL) ? res.acl_default : ERR_PTR(-EINVAL)); ++ nfs3_cache_acls(inode, res.acl_access, res.acl_default); + + switch(type) { + case ACL_TYPE_ACCESS: +@@ -333,7 +329,6 @@ static int nfs3_proc_setacls(struct inod + switch (status) { + case 0: + status = nfs_refresh_inode(inode, &fattr); +- nfs3_cache_acls(inode, acl, dfacl); + break; + case -EPFNOSUPPORT: + case -EPROTONOSUPPORT: +diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c +index 7143b1f..cf186f0 100644 +--- a/fs/nfs/nfs3proc.c ++++ b/fs/nfs/nfs3proc.c +@@ -20,10 +20,11 @@ + #include + + #include "iostat.h" +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_PROC + ++extern struct rpc_procinfo nfs3_procedures[]; ++ + /* A wrapper to handle the EJUKEBOX error message */ + static int + nfs3_rpc_wrapper(struct rpc_clnt *clnt, struct rpc_message *msg, int flags) +@@ -808,6 +809,8 @@ nfs3_proc_pathconf(struct nfs_server *se + return status; + } + ++extern u32 *nfs3_decode_dirent(u32 *, struct nfs_entry *, int); ++ + static int nfs3_read_done(struct rpc_task *task, struct nfs_read_data *data) + { + if (nfs3_async_handle_jukebox(task, data->inode)) +diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c +index 0250269..ec23361 100644 +--- a/fs/nfs/nfs3xdr.c ++++ b/fs/nfs/nfs3xdr.c +@@ -22,13 +22,14 @@ + #include + #include + #include +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_XDR + + /* Mapping from NFS error code to "errno" error code. */ + #define errno_NFSERR_IO EIO + ++extern int nfs_stat_to_errno(int); ++ + /* + * Declare the space requirements for NFS arguments and replies as + * number of 32bit-words +@@ -165,8 +166,7 @@ xdr_decode_fattr(u32 *p, struct nfs_fatt + if (MAJOR(fattr->rdev) != major || MINOR(fattr->rdev) != minor) + fattr->rdev = 0; + +- p = xdr_decode_hyper(p, &fattr->fsid.major); +- fattr->fsid.minor = 0; ++ p = xdr_decode_hyper(p, &fattr->fsid_u.nfs3); + p = xdr_decode_hyper(p, &fattr->fileid); + p = xdr_decode_time3(p, &fattr->atime); + p = xdr_decode_time3(p, &fattr->mtime); +diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h +index 9a10286..0f5e4e7 100644 +--- a/fs/nfs/nfs4_fs.h ++++ b/fs/nfs/nfs4_fs.h +@@ -217,9 +217,6 @@ extern int nfs4_proc_renew(struct nfs4_c + extern int nfs4_do_close(struct inode *inode, struct nfs4_state *state); + extern struct dentry *nfs4_atomic_open(struct inode *, struct dentry *, struct nameidata *); + extern int nfs4_open_revalidate(struct inode *, struct dentry *, int, struct nameidata *); +-extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); +-extern int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, +- struct nfs4_fs_locations *fs_locations, struct page *page); + + extern struct nfs4_state_recovery_ops nfs4_reboot_recovery_ops; + extern struct nfs4_state_recovery_ops nfs4_network_partition_recovery_ops; +@@ -228,7 +225,6 @@ extern const u32 nfs4_fattr_bitmap[2]; + extern const u32 nfs4_statfs_bitmap[2]; + extern const u32 nfs4_pathconf_bitmap[2]; + extern const u32 nfs4_fsinfo_bitmap[2]; +-extern const u32 nfs4_fs_locations_bitmap[2]; + + /* nfs4renewd.c */ + extern void nfs4_schedule_state_renewal(struct nfs4_client *); +diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c +deleted file mode 100644 +index ea38d27..0000000 +--- a/fs/nfs/nfs4namespace.c ++++ /dev/null +@@ -1,201 +0,0 @@ +-/* +- * linux/fs/nfs/nfs4namespace.c +- * +- * Copyright (C) 2005 Trond Myklebust +- * +- * NFSv4 namespace +- */ +- +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include "internal.h" +- +-#define NFSDBG_FACILITY NFSDBG_VFS +- +-/* +- * Check if fs_root is valid +- */ +-static inline char *nfs4_pathname_string(struct nfs4_pathname *pathname, +- char *buffer, ssize_t buflen) +-{ +- char *end = buffer + buflen; +- int n; +- +- *--end = '\0'; +- buflen--; +- +- n = pathname->ncomponents; +- while (--n >= 0) { +- struct nfs4_string *component = &pathname->components[n]; +- buflen -= component->len + 1; +- if (buflen < 0) +- goto Elong; +- end -= component->len; +- memcpy(end, component->data, component->len); +- *--end = '/'; +- } +- return end; +-Elong: +- return ERR_PTR(-ENAMETOOLONG); +-} +- +- +-/** +- * nfs_follow_referral - set up mountpoint when hitting a referral on moved error +- * @mnt_parent - mountpoint of parent directory +- * @dentry - parent directory +- * @fspath - fs path returned in fs_locations +- * @mntpath - mount path to new server +- * @hostname - hostname of new server +- * @addr - host addr of new server +- * +- */ +-static struct vfsmount *nfs_follow_referral(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, +- struct nfs4_fs_locations *locations) +-{ +- struct vfsmount *mnt = ERR_PTR(-ENOENT); +- struct nfs_clone_mount mountdata = { +- .sb = mnt_parent->mnt_sb, +- .dentry = dentry, +- .authflavor = NFS_SB(mnt_parent->mnt_sb)->client->cl_auth->au_flavor, +- }; +- char *page, *page2; +- char *path, *fs_path; +- char *devname; +- int loc, s; +- +- if (locations == NULL || locations->nlocations <= 0) +- goto out; +- +- dprintk("%s: referral at %s/%s\n", __FUNCTION__, +- dentry->d_parent->d_name.name, dentry->d_name.name); +- +- /* Ensure fs path is a prefix of current dentry path */ +- page = (char *) __get_free_page(GFP_USER); +- if (page == NULL) +- goto out; +- page2 = (char *) __get_free_page(GFP_USER); +- if (page2 == NULL) +- goto out; +- +- path = nfs4_path(dentry, page, PAGE_SIZE); +- if (IS_ERR(path)) +- goto out_free; +- +- fs_path = nfs4_pathname_string(&locations->fs_path, page2, PAGE_SIZE); +- if (IS_ERR(fs_path)) +- goto out_free; +- +- if (strncmp(path, fs_path, strlen(fs_path)) != 0) { +- dprintk("%s: path %s does not begin with fsroot %s\n", __FUNCTION__, path, fs_path); +- goto out_free; +- } +- +- devname = nfs_devname(mnt_parent, dentry, page, PAGE_SIZE); +- if (IS_ERR(devname)) { +- mnt = (struct vfsmount *)devname; +- goto out_free; +- } +- +- loc = 0; +- while (loc < locations->nlocations && IS_ERR(mnt)) { +- struct nfs4_fs_location *location = &locations->locations[loc]; +- char *mnt_path; +- +- if (location == NULL || location->nservers <= 0 || +- location->rootpath.ncomponents == 0) { +- loc++; +- continue; +- } +- +- mnt_path = nfs4_pathname_string(&location->rootpath, page2, PAGE_SIZE); +- if (IS_ERR(mnt_path)) { +- loc++; +- continue; +- } +- mountdata.mnt_path = mnt_path; +- +- s = 0; +- while (s < location->nservers) { +- struct sockaddr_in addr = {}; +- +- if (location->servers[s].len <= 0 || +- valid_ipaddr4(location->servers[s].data) < 0) { +- s++; +- continue; +- } +- +- mountdata.hostname = location->servers[s].data; +- addr.sin_addr.s_addr = in_aton(mountdata.hostname); +- addr.sin_family = AF_INET; +- addr.sin_port = htons(NFS_PORT); +- mountdata.addr = &addr; +- +- mnt = vfs_kern_mount(&nfs_referral_nfs4_fs_type, 0, devname, &mountdata); +- if (!IS_ERR(mnt)) { +- break; +- } +- s++; +- } +- loc++; +- } +- +-out_free: +- free_page((unsigned long)page); +- free_page((unsigned long)page2); +-out: +- dprintk("%s: done\n", __FUNCTION__); +- return mnt; +-} +- +-/* +- * nfs_do_refmount - handle crossing a referral on server +- * @dentry - dentry of referral +- * @nd - nameidata info +- * +- */ +-struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry) +-{ +- struct vfsmount *mnt = ERR_PTR(-ENOENT); +- struct dentry *parent; +- struct nfs4_fs_locations *fs_locations = NULL; +- struct page *page; +- int err; +- +- /* BUG_ON(IS_ROOT(dentry)); */ +- dprintk("%s: enter\n", __FUNCTION__); +- +- page = alloc_page(GFP_KERNEL); +- if (page == NULL) +- goto out; +- +- fs_locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); +- if (fs_locations == NULL) +- goto out_free; +- +- /* Get locations */ +- parent = dget_parent(dentry); +- dprintk("%s: getting locations for %s/%s\n", __FUNCTION__, parent->d_name.name, dentry->d_name.name); +- err = nfs4_proc_fs_locations(parent->d_inode, dentry, fs_locations, page); +- dput(parent); +- if (err != 0 || fs_locations->nlocations <= 0 || +- fs_locations->fs_path.ncomponents <= 0) +- goto out_free; +- +- mnt = nfs_follow_referral(mnt_parent, dentry, fs_locations); +-out_free: +- __free_page(page); +- kfree(fs_locations); +-out: +- dprintk("%s: done\n", __FUNCTION__); +- return mnt; +-} +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index b4916b0..d86c0db 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -65,6 +65,8 @@ static int nfs4_async_handle_error(struc + static int _nfs4_proc_access(struct inode *inode, struct nfs_access_entry *entry); + static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct nfs4_exception *exception); + static int nfs4_wait_clnt_recover(struct rpc_clnt *clnt, struct nfs4_client *clp); ++extern u32 *nfs4_decode_dirent(u32 *p, struct nfs_entry *entry, int plus); ++extern struct rpc_procinfo nfs4_procedures[]; + + /* Prevent leaks of NFSv4 errors into userland */ + int nfs4_map_errors(int err) +@@ -119,25 +121,6 @@ const u32 nfs4_fsinfo_bitmap[2] = { FATT + 0 + }; + +-const u32 nfs4_fs_locations_bitmap[2] = { +- FATTR4_WORD0_TYPE +- | FATTR4_WORD0_CHANGE +- | FATTR4_WORD0_SIZE +- | FATTR4_WORD0_FSID +- | FATTR4_WORD0_FILEID +- | FATTR4_WORD0_FS_LOCATIONS, +- FATTR4_WORD1_MODE +- | FATTR4_WORD1_NUMLINKS +- | FATTR4_WORD1_OWNER +- | FATTR4_WORD1_OWNER_GROUP +- | FATTR4_WORD1_RAWDEV +- | FATTR4_WORD1_SPACE_USED +- | FATTR4_WORD1_TIME_ACCESS +- | FATTR4_WORD1_TIME_METADATA +- | FATTR4_WORD1_TIME_MODIFY +- | FATTR4_WORD1_MOUNTED_ON_FILEID +-}; +- + static void nfs4_setup_readdir(u64 cookie, u32 *verifier, struct dentry *dentry, + struct nfs4_readdir_arg *readdir) + { +@@ -202,15 +185,15 @@ static void renew_lease(const struct nfs + spin_unlock(&clp->cl_lock); + } + +-static void update_changeattr(struct inode *dir, struct nfs4_change_info *cinfo) ++static void update_changeattr(struct inode *inode, struct nfs4_change_info *cinfo) + { +- struct nfs_inode *nfsi = NFS_I(dir); ++ struct nfs_inode *nfsi = NFS_I(inode); + +- spin_lock(&dir->i_lock); +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA; ++ spin_lock(&inode->i_lock); ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR; + if (cinfo->before == nfsi->change_attr && cinfo->atomic) + nfsi->change_attr = cinfo->after; +- spin_unlock(&dir->i_lock); ++ spin_unlock(&inode->i_lock); + } + + struct nfs4_opendata { +@@ -1348,7 +1331,7 @@ static int _nfs4_server_capabilities(str + return status; + } + +-int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) ++static int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) + { + struct nfs4_exception exception = { }; + int err; +@@ -1460,50 +1443,6 @@ out: + return nfs4_map_errors(status); + } + +-/* +- * Get locations and (maybe) other attributes of a referral. +- * Note that we'll actually follow the referral later when +- * we detect fsid mismatch in inode revalidation +- */ +-static int nfs4_get_referral(struct inode *dir, struct qstr *name, struct nfs_fattr *fattr, struct nfs_fh *fhandle) +-{ +- int status = -ENOMEM; +- struct page *page = NULL; +- struct nfs4_fs_locations *locations = NULL; +- struct dentry dentry = {}; +- +- page = alloc_page(GFP_KERNEL); +- if (page == NULL) +- goto out; +- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); +- if (locations == NULL) +- goto out; +- +- dentry.d_name.name = name->name; +- dentry.d_name.len = name->len; +- status = nfs4_proc_fs_locations(dir, &dentry, locations, page); +- if (status != 0) +- goto out; +- /* Make sure server returned a different fsid for the referral */ +- if (nfs_fsid_equal(&NFS_SERVER(dir)->fsid, &locations->fattr.fsid)) { +- dprintk("%s: server did not return a different fsid for a referral at %s\n", __FUNCTION__, name->name); +- status = -EIO; +- goto out; +- } +- +- memcpy(fattr, &locations->fattr, sizeof(struct nfs_fattr)); +- fattr->valid |= NFS_ATTR_FATTR_V4_REFERRAL; +- if (!fattr->mode) +- fattr->mode = S_IFDIR; +- memset(fhandle, 0, sizeof(struct nfs_fh)); +-out: +- if (page) +- __free_page(page); +- if (locations) +- kfree(locations); +- return status; +-} +- + static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fattr *fattr) + { + struct nfs4_getattr_arg args = { +@@ -1608,8 +1547,6 @@ static int _nfs4_proc_lookup(struct inod + + dprintk("NFS call lookup %s\n", name->name); + status = rpc_call_sync(NFS_CLIENT(dir), &msg, 0); +- if (status == -NFS4ERR_MOVED) +- status = nfs4_get_referral(dir, name, fattr, fhandle); + dprintk("NFS reply lookup: %d\n", status); + return status; + } +@@ -2071,7 +2008,7 @@ static int _nfs4_proc_link(struct inode + if (!status) { + update_changeattr(dir, &res.cinfo); + nfs_post_op_update_inode(dir, res.dir_attr); +- nfs_post_op_update_inode(inode, res.fattr); ++ nfs_refresh_inode(inode, res.fattr); + } + + return status; +@@ -3633,36 +3570,6 @@ ssize_t nfs4_listxattr(struct dentry *de + return len; + } + +-int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, +- struct nfs4_fs_locations *fs_locations, struct page *page) +-{ +- struct nfs_server *server = NFS_SERVER(dir); +- u32 bitmask[2] = { +- [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, +- [1] = FATTR4_WORD1_MOUNTED_ON_FILEID, +- }; +- struct nfs4_fs_locations_arg args = { +- .dir_fh = NFS_FH(dir), +- .name = &dentry->d_name, +- .page = page, +- .bitmask = bitmask, +- }; +- struct rpc_message msg = { +- .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_FS_LOCATIONS], +- .rpc_argp = &args, +- .rpc_resp = fs_locations, +- }; +- int status; +- +- dprintk("%s: start\n", __FUNCTION__); +- fs_locations->fattr.valid = 0; +- fs_locations->server = server; +- fs_locations->nlocations = 0; +- status = rpc_call_sync(server->client, &msg, 0); +- dprintk("%s: returned status = %d\n", __FUNCTION__, status); +- return status; +-} +- + struct nfs4_state_recovery_ops nfs4_reboot_recovery_ops = { + .recover_open = nfs4_open_reclaim, + .recover_lock = nfs4_lock_reclaim, +diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c +index 1750d99..7c5d70e 100644 +--- a/fs/nfs/nfs4xdr.c ++++ b/fs/nfs/nfs4xdr.c +@@ -411,15 +411,6 @@ static int nfs_stat_to_errno(int); + #define NFS4_dec_setacl_sz (compound_decode_hdr_maxsz + \ + decode_putfh_maxsz + \ + op_decode_hdr_maxsz + nfs4_fattr_bitmap_maxsz) +-#define NFS4_enc_fs_locations_sz \ +- (compound_encode_hdr_maxsz + \ +- encode_putfh_maxsz + \ +- encode_getattr_maxsz) +-#define NFS4_dec_fs_locations_sz \ +- (compound_decode_hdr_maxsz + \ +- decode_putfh_maxsz + \ +- op_decode_hdr_maxsz + \ +- nfs4_fattr_bitmap_maxsz) + + static struct { + unsigned int mode; +@@ -731,13 +722,6 @@ static int encode_fsinfo(struct xdr_stre + bitmask[1] & nfs4_fsinfo_bitmap[1]); + } + +-static int encode_fs_locations(struct xdr_stream *xdr, const u32* bitmask) +-{ +- return encode_getattr_two(xdr, +- bitmask[0] & nfs4_fs_locations_bitmap[0], +- bitmask[1] & nfs4_fs_locations_bitmap[1]); +-} +- + static int encode_getfh(struct xdr_stream *xdr) + { + uint32_t *p; +@@ -2019,38 +2003,6 @@ out: + } + + /* +- * Encode FS_LOCATIONS request +- */ +-static int nfs4_xdr_enc_fs_locations(struct rpc_rqst *req, uint32_t *p, struct nfs4_fs_locations_arg *args) +-{ +- struct xdr_stream xdr; +- struct compound_hdr hdr = { +- .nops = 3, +- }; +- struct rpc_auth *auth = req->rq_task->tk_auth; +- int replen; +- int status; +- +- xdr_init_encode(&xdr, &req->rq_snd_buf, p); +- encode_compound_hdr(&xdr, &hdr); +- if ((status = encode_putfh(&xdr, args->dir_fh)) != 0) +- goto out; +- if ((status = encode_lookup(&xdr, args->name)) != 0) +- goto out; +- if ((status = encode_fs_locations(&xdr, args->bitmask)) != 0) +- goto out; +- /* set up reply +- * toplevel_status + OP_PUTFH + status +- * + OP_LOOKUP + status + OP_GETATTR + status = 7 +- */ +- replen = (RPC_REPHDRSIZE + auth->au_rslack + 7) << 2; +- xdr_inline_pages(&req->rq_rcv_buf, replen, &args->page, +- 0, PAGE_SIZE); +-out: +- return status; +-} +- +-/* + * START OF "GENERIC" DECODE ROUTINES. + * These may look a little ugly since they are imported from a "generic" + * set of XDR encode/decode routines which are intended to be shared by +@@ -2084,7 +2036,7 @@ out: + } \ + } while (0) + +-static int decode_opaque_inline(struct xdr_stream *xdr, unsigned int *len, char **string) ++static int decode_opaque_inline(struct xdr_stream *xdr, uint32_t *len, char **string) + { + uint32_t *p; + +@@ -2135,7 +2087,7 @@ static int decode_op_hdr(struct xdr_stre + static int decode_ace(struct xdr_stream *xdr, void *ace, struct nfs4_client *clp) + { + uint32_t *p; +- unsigned int strlen; ++ uint32_t strlen; + char *str; + + READ_BUF(12); +@@ -2265,7 +2217,7 @@ static int decode_attr_symlink_support(s + return 0; + } + +-static int decode_attr_fsid(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs_fsid *fsid) ++static int decode_attr_fsid(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs4_fsid *fsid) + { + uint32_t *p; + +@@ -2333,22 +2285,6 @@ static int decode_attr_fileid(struct xdr + return 0; + } + +-static int decode_attr_mounted_on_fileid(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *fileid) +-{ +- uint32_t *p; +- +- *fileid = 0; +- if (unlikely(bitmap[1] & (FATTR4_WORD1_MOUNTED_ON_FILEID - 1U))) +- return -EIO; +- if (likely(bitmap[1] & FATTR4_WORD1_MOUNTED_ON_FILEID)) { +- READ_BUF(8); +- READ64(*fileid); +- bitmap[1] &= ~FATTR4_WORD1_MOUNTED_ON_FILEID; +- } +- dprintk("%s: fileid=%Lu\n", __FUNCTION__, (unsigned long long)*fileid); +- return 0; +-} +- + static int decode_attr_files_avail(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *res) + { + uint32_t *p; +@@ -2400,116 +2336,6 @@ static int decode_attr_files_total(struc + return status; + } + +-static int decode_pathname(struct xdr_stream *xdr, struct nfs4_pathname *path) +-{ +- int n; +- uint32_t *p; +- int status = 0; +- +- READ_BUF(4); +- READ32(n); +- if (n < 0) +- goto out_eio; +- if (n == 0) +- goto root_path; +- dprintk("path "); +- path->ncomponents = 0; +- while (path->ncomponents < n) { +- struct nfs4_string *component = &path->components[path->ncomponents]; +- status = decode_opaque_inline(xdr, &component->len, &component->data); +- if (unlikely(status != 0)) +- goto out_eio; +- if (path->ncomponents != n) +- dprintk("/"); +- dprintk("%s", component->data); +- if (path->ncomponents < NFS4_PATHNAME_MAXCOMPONENTS) +- path->ncomponents++; +- else { +- dprintk("cannot parse %d components in path\n", n); +- goto out_eio; +- } +- } +-out: +- dprintk("\n"); +- return status; +-root_path: +-/* a root pathname is sent as a zero component4 */ +- path->ncomponents = 1; +- path->components[0].len=0; +- path->components[0].data=NULL; +- dprintk("path /\n"); +- goto out; +-out_eio: +- dprintk(" status %d", status); +- status = -EIO; +- goto out; +-} +- +-static int decode_attr_fs_locations(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs4_fs_locations *res) +-{ +- int n; +- uint32_t *p; +- int status = -EIO; +- +- if (unlikely(bitmap[0] & (FATTR4_WORD0_FS_LOCATIONS -1U))) +- goto out; +- status = 0; +- if (unlikely(!(bitmap[0] & FATTR4_WORD0_FS_LOCATIONS))) +- goto out; +- dprintk("%s: fsroot ", __FUNCTION__); +- status = decode_pathname(xdr, &res->fs_path); +- if (unlikely(status != 0)) +- goto out; +- READ_BUF(4); +- READ32(n); +- if (n <= 0) +- goto out_eio; +- res->nlocations = 0; +- while (res->nlocations < n) { +- int m; +- struct nfs4_fs_location *loc = &res->locations[res->nlocations]; +- +- READ_BUF(4); +- READ32(m); +- if (m <= 0) +- goto out_eio; +- +- loc->nservers = 0; +- dprintk("%s: servers ", __FUNCTION__); +- while (loc->nservers < m) { +- struct nfs4_string *server = &loc->servers[loc->nservers]; +- status = decode_opaque_inline(xdr, &server->len, &server->data); +- if (unlikely(status != 0)) +- goto out_eio; +- dprintk("%s ", server->data); +- if (loc->nservers < NFS4_FS_LOCATION_MAXSERVERS) +- loc->nservers++; +- else { +- int i; +- dprintk("%s: using first %d of %d servers returned for location %d\n", __FUNCTION__, NFS4_FS_LOCATION_MAXSERVERS, m, res->nlocations); +- for (i = loc->nservers; i < m; i++) { +- int len; +- char *data; +- status = decode_opaque_inline(xdr, &len, &data); +- if (unlikely(status != 0)) +- goto out_eio; +- } +- } +- } +- status = decode_pathname(xdr, &loc->rootpath); +- if (unlikely(status != 0)) +- goto out_eio; +- if (res->nlocations < NFS4_FS_LOCATIONS_MAXENTRIES) +- res->nlocations++; +- } +-out: +- dprintk("%s: fs_locations done, error = %d\n", __FUNCTION__, status); +- return status; +-out_eio: +- status = -EIO; +- goto out; +-} +- + static int decode_attr_maxfilesize(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *res) + { + uint32_t *p; +@@ -3015,7 +2841,6 @@ static int decode_getfattr(struct xdr_st + bitmap[2] = {0}, + type; + int status, fmode = 0; +- uint64_t fileid; + + if ((status = decode_op_hdr(xdr, OP_GETATTR)) != 0) + goto xdr_error; +@@ -3038,14 +2863,10 @@ static int decode_getfattr(struct xdr_st + goto xdr_error; + if ((status = decode_attr_size(xdr, bitmap, &fattr->size)) != 0) + goto xdr_error; +- if ((status = decode_attr_fsid(xdr, bitmap, &fattr->fsid)) != 0) ++ if ((status = decode_attr_fsid(xdr, bitmap, &fattr->fsid_u.nfs4)) != 0) + goto xdr_error; + if ((status = decode_attr_fileid(xdr, bitmap, &fattr->fileid)) != 0) + goto xdr_error; +- if ((status = decode_attr_fs_locations(xdr, bitmap, container_of(fattr, +- struct nfs4_fs_locations, +- fattr))) != 0) +- goto xdr_error; + if ((status = decode_attr_mode(xdr, bitmap, &fattr->mode)) != 0) + goto xdr_error; + fattr->mode |= fmode; +@@ -3065,10 +2886,6 @@ static int decode_getfattr(struct xdr_st + goto xdr_error; + if ((status = decode_attr_time_modify(xdr, bitmap, &fattr->mtime)) != 0) + goto xdr_error; +- if ((status = decode_attr_mounted_on_fileid(xdr, bitmap, &fileid)) != 0) +- goto xdr_error; +- if (fattr->fileid == 0 && fileid != 0) +- fattr->fileid = fileid; + if ((status = verify_attr_len(xdr, savep, attrlen)) == 0) + fattr->valid = NFS_ATTR_FATTR | NFS_ATTR_FATTR_V3 | NFS_ATTR_FATTR_V4; + xdr_error: +@@ -3533,7 +3350,8 @@ static int decode_getacl(struct xdr_stre + attrlen, recvd); + return -EINVAL; + } +- xdr_read_pages(xdr, attrlen); ++ if (attrlen <= *acl_len) ++ xdr_read_pages(xdr, attrlen); + *acl_len = attrlen; + } else + status = -EOPNOTSUPP; +@@ -4393,29 +4211,6 @@ out: + return status; + } + +-/* +- * FS_LOCATIONS request +- */ +-static int nfs4_xdr_dec_fs_locations(struct rpc_rqst *req, uint32_t *p, struct nfs4_fs_locations *res) +-{ +- struct xdr_stream xdr; +- struct compound_hdr hdr; +- int status; +- +- xdr_init_decode(&xdr, &req->rq_rcv_buf, p); +- status = decode_compound_hdr(&xdr, &hdr); +- if (status != 0) +- goto out; +- if ((status = decode_putfh(&xdr)) != 0) +- goto out; +- if ((status = decode_lookup(&xdr)) != 0) +- goto out; +- xdr_enter_page(&xdr, PAGE_SIZE); +- status = decode_getfattr(&xdr, &res->fattr, res->server); +-out: +- return status; +-} +- + uint32_t *nfs4_decode_dirent(uint32_t *p, struct nfs_entry *entry, int plus) + { + uint32_t bitmap[2] = {0}; +@@ -4587,7 +4382,6 @@ struct rpc_procinfo nfs4_procedures[] = + PROC(DELEGRETURN, enc_delegreturn, dec_delegreturn), + PROC(GETACL, enc_getacl, dec_getacl), + PROC(SETACL, enc_setacl, dec_setacl), +- PROC(FS_LOCATIONS, enc_fs_locations, dec_fs_locations), + }; + + struct rpc_version nfs_version4 = { +diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c +index ef94296..106aca3 100644 +--- a/fs/nfs/pagelist.c ++++ b/fs/nfs/pagelist.c +@@ -325,7 +325,6 @@ out: + + /** + * nfs_scan_list - Scan a list for matching requests +- * @nfsi: NFS inode + * @head: One of the NFS inode request lists + * @dst: Destination list + * @idx_start: lower bound of page->index to scan +@@ -337,15 +336,14 @@ out: + * The requests are *not* checked to ensure that they form a contiguous set. + * You must be holding the inode's req_lock when calling this function + */ +-int nfs_scan_list(struct nfs_inode *nfsi, struct list_head *head, +- struct list_head *dst, unsigned long idx_start, +- unsigned int npages) ++int ++nfs_scan_list(struct list_head *head, struct list_head *dst, ++ unsigned long idx_start, unsigned int npages) + { +- struct nfs_page *pgvec[NFS_SCAN_MAXENTRIES]; +- struct nfs_page *req; +- unsigned long idx_end; +- int found, i; +- int res; ++ struct list_head *pos, *tmp; ++ struct nfs_page *req; ++ unsigned long idx_end; ++ int res; + + res = 0; + if (npages == 0) +@@ -353,32 +351,25 @@ int nfs_scan_list(struct nfs_inode *nfsi + else + idx_end = idx_start + npages - 1; + +- for (;;) { +- found = radix_tree_gang_lookup(&nfsi->nfs_page_tree, +- (void **)&pgvec[0], idx_start, +- NFS_SCAN_MAXENTRIES); +- if (found <= 0) ++ list_for_each_safe(pos, tmp, head) { ++ ++ req = nfs_list_entry(pos); ++ ++ if (req->wb_index < idx_start) ++ continue; ++ if (req->wb_index > idx_end) + break; +- for (i = 0; i < found; i++) { +- req = pgvec[i]; +- if (req->wb_index > idx_end) +- goto out; +- idx_start = req->wb_index + 1; +- if (req->wb_list_head != head) +- continue; +- if (nfs_set_page_writeback_locked(req)) { +- nfs_list_remove_request(req); +- nfs_list_add_request(req, dst); +- res++; +- } +- } + ++ if (!nfs_set_page_writeback_locked(req)) ++ continue; ++ nfs_list_remove_request(req); ++ nfs_list_add_request(req, dst); ++ res++; + } +-out: + return res; + } + +-int __init nfs_init_nfspagecache(void) ++int nfs_init_nfspagecache(void) + { + nfs_page_cachep = kmem_cache_create("nfs_page", + sizeof(struct nfs_page), +@@ -390,7 +381,7 @@ int __init nfs_init_nfspagecache(void) + return 0; + } + +-void __exit nfs_destroy_nfspagecache(void) ++void nfs_destroy_nfspagecache(void) + { + if (kmem_cache_destroy(nfs_page_cachep)) + printk(KERN_INFO "nfs_page: not all structures were freed\n"); +diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c +index b3899ea..9dd85ca 100644 +--- a/fs/nfs/proc.c ++++ b/fs/nfs/proc.c +@@ -44,10 +44,11 @@ + #include + #include + #include +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_PROC + ++extern struct rpc_procinfo nfs_procedures[]; ++ + /* + * Bare-bones access to getattr: this is for nfs_read_super. + */ +@@ -610,6 +611,8 @@ nfs_proc_pathconf(struct nfs_server *ser + return 0; + } + ++extern u32 * nfs_decode_dirent(u32 *, struct nfs_entry *, int); ++ + static int nfs_read_done(struct rpc_task *task, struct nfs_read_data *data) + { + if (task->tk_status >= 0) { +diff --git a/fs/nfs/read.c b/fs/nfs/read.c +index 41c2ffe..624ca71 100644 +--- a/fs/nfs/read.c ++++ b/fs/nfs/read.c +@@ -51,11 +51,14 @@ struct nfs_read_data *nfs_readdata_alloc + if (p) { + memset(p, 0, sizeof(*p)); + INIT_LIST_HEAD(&p->pages); +- if (pagecount <= ARRAY_SIZE(p->page_array)) +- p->pagevec = p->page_array; ++ if (pagecount < NFS_PAGEVEC_SIZE) ++ p->pagevec = &p->page_array[0]; + else { +- p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); +- if (!p->pagevec) { ++ size_t size = ++pagecount * sizeof(struct page *); ++ p->pagevec = kmalloc(size, GFP_NOFS); ++ if (p->pagevec) { ++ memset(p->pagevec, 0, size); ++ } else { + mempool_free(p, nfs_rdata_mempool); + p = NULL; + } +@@ -101,28 +104,6 @@ int nfs_return_empty_page(struct page *p + return 0; + } + +-static void nfs_readpage_truncate_uninitialised_page(struct nfs_read_data *data) +-{ +- unsigned int remainder = data->args.count - data->res.count; +- unsigned int base = data->args.pgbase + data->res.count; +- unsigned int pglen; +- struct page **pages; +- +- if (data->res.eof == 0 || remainder == 0) +- return; +- /* +- * Note: "remainder" can never be negative, since we check for +- * this in the XDR code. +- */ +- pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; +- base &= ~PAGE_CACHE_MASK; +- pglen = PAGE_CACHE_SIZE - base; +- if (pglen < remainder) +- memclear_highpage_flush(*pages, base, pglen); +- else +- memclear_highpage_flush(*pages, base, remainder); +-} +- + /* + * Read a page synchronously. + */ +@@ -196,9 +177,11 @@ static int nfs_readpage_sync(struct nfs_ + NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATIME; + spin_unlock(&inode->i_lock); + +- nfs_readpage_truncate_uninitialised_page(rdata); +- if (rdata->res.eof || rdata->res.count == rdata->args.count) +- SetPageUptodate(page); ++ if (count) ++ memclear_highpage_flush(page, rdata->args.pgbase, count); ++ SetPageUptodate(page); ++ if (PageError(page)) ++ ClearPageError(page); + result = 0; + + io_error: +@@ -453,12 +436,20 @@ static void nfs_readpage_result_partial( + struct nfs_page *req = data->req; + struct page *page = req->wb_page; + +- if (likely(task->tk_status >= 0)) +- nfs_readpage_truncate_uninitialised_page(data); +- else +- SetPageError(page); + if (nfs_readpage_result(task, data) != 0) + return; ++ if (task->tk_status >= 0) { ++ unsigned int request = data->args.count; ++ unsigned int result = data->res.count; ++ ++ if (result < request) { ++ memclear_highpage_flush(page, ++ data->args.pgbase + result, ++ request - result); ++ } ++ } else ++ SetPageError(page); ++ + if (atomic_dec_and_test(&req->wb_complete)) { + if (!PageError(page)) + SetPageUptodate(page); +@@ -471,40 +462,6 @@ static const struct rpc_call_ops nfs_rea + .rpc_release = nfs_readdata_release, + }; + +-static void nfs_readpage_set_pages_uptodate(struct nfs_read_data *data) +-{ +- unsigned int count = data->res.count; +- unsigned int base = data->args.pgbase; +- struct page **pages; +- +- if (unlikely(count == 0)) +- return; +- pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; +- base &= ~PAGE_CACHE_MASK; +- count += base; +- for (;count >= PAGE_CACHE_SIZE; count -= PAGE_CACHE_SIZE, pages++) +- SetPageUptodate(*pages); +- /* +- * Was this an eof or a short read? If the latter, don't mark the page +- * as uptodate yet. +- */ +- if (count > 0 && (data->res.eof || data->args.count == data->res.count)) +- SetPageUptodate(*pages); +-} +- +-static void nfs_readpage_set_pages_error(struct nfs_read_data *data) +-{ +- unsigned int count = data->args.count; +- unsigned int base = data->args.pgbase; +- struct page **pages; +- +- pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; +- base &= ~PAGE_CACHE_MASK; +- count += base; +- for (;count >= PAGE_CACHE_SIZE; count -= PAGE_CACHE_SIZE, pages++) +- SetPageError(*pages); +-} +- + /* + * This is the callback from RPC telling us whether a reply was + * received or some error occurred (timeout or socket shutdown). +@@ -512,24 +469,27 @@ static void nfs_readpage_set_pages_error + static void nfs_readpage_result_full(struct rpc_task *task, void *calldata) + { + struct nfs_read_data *data = calldata; ++ unsigned int count = data->res.count; + +- /* +- * Note: nfs_readpage_result may change the values of +- * data->args. In the multi-page case, we therefore need +- * to ensure that we call the next nfs_readpage_set_page_uptodate() +- * first in the multi-page case. +- */ +- if (likely(task->tk_status >= 0)) { +- nfs_readpage_truncate_uninitialised_page(data); +- nfs_readpage_set_pages_uptodate(data); +- } else +- nfs_readpage_set_pages_error(data); + if (nfs_readpage_result(task, data) != 0) + return; + while (!list_empty(&data->pages)) { + struct nfs_page *req = nfs_list_entry(data->pages.next); +- ++ struct page *page = req->wb_page; + nfs_list_remove_request(req); ++ ++ if (task->tk_status >= 0) { ++ if (count < PAGE_CACHE_SIZE) { ++ if (count < req->wb_bytes) ++ memclear_highpage_flush(page, ++ req->wb_pgbase + count, ++ req->wb_bytes - count); ++ count = 0; ++ } else ++ count -= PAGE_CACHE_SIZE; ++ SetPageUptodate(page); ++ } else ++ SetPageError(page); + nfs_readpage_release(req); + } + } +@@ -694,7 +654,7 @@ int nfs_readpages(struct file *filp, str + return ret; + } + +-int __init nfs_init_readpagecache(void) ++int nfs_init_readpagecache(void) + { + nfs_rdata_cachep = kmem_cache_create("nfs_read_data", + sizeof(struct nfs_read_data), +@@ -711,7 +671,7 @@ int __init nfs_init_readpagecache(void) + return 0; + } + +-void __exit nfs_destroy_readpagecache(void) ++void nfs_destroy_readpagecache(void) + { + mempool_destroy(nfs_rdata_mempool); + if (kmem_cache_destroy(nfs_rdata_cachep)) +diff --git a/fs/nfs/super.c b/fs/nfs/super.c +deleted file mode 100644 +index 30f939b..0000000 +--- a/fs/nfs/super.c ++++ /dev/null +@@ -1,1497 +0,0 @@ +-/* +- * linux/fs/nfs/super.c +- * +- * Copyright (C) 1992 Rick Sladkey +- * +- * nfs superblock handling functions +- * +- * Modularised by Alan Cox , while hacking some +- * experimental NFS changes. Modularisation taken straight from SYS5 fs. +- * +- * Change to nfs_read_super() to permit NFS mounts to multi-homed hosts. +- * J.S.Peatfield@damtp.cam.ac.uk +- * +- * Split from inode.c by David Howells +- * +- */ +- +-#include +-#include +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include +- +-#include "nfs4_fs.h" +-#include "callback.h" +-#include "delegation.h" +-#include "iostat.h" +-#include "internal.h" +- +-#define NFSDBG_FACILITY NFSDBG_VFS +- +-/* Maximum number of readahead requests +- * FIXME: this should really be a sysctl so that users may tune it to suit +- * their needs. People that do NFS over a slow network, might for +- * instance want to reduce it to something closer to 1 for improved +- * interactive response. +- */ +-#define NFS_MAX_READAHEAD (RPC_DEF_SLOT_TABLE - 1) +- +-/* +- * RPC cruft for NFS +- */ +-static struct rpc_version * nfs_version[] = { +- NULL, +- NULL, +- &nfs_version2, +-#if defined(CONFIG_NFS_V3) +- &nfs_version3, +-#elif defined(CONFIG_NFS_V4) +- NULL, +-#endif +-#if defined(CONFIG_NFS_V4) +- &nfs_version4, +-#endif +-}; +- +-static struct rpc_program nfs_program = { +- .name = "nfs", +- .number = NFS_PROGRAM, +- .nrvers = ARRAY_SIZE(nfs_version), +- .version = nfs_version, +- .stats = &nfs_rpcstat, +- .pipe_dir_name = "/nfs", +-}; +- +-struct rpc_stat nfs_rpcstat = { +- .program = &nfs_program +-}; +- +- +-#ifdef CONFIG_NFS_V3_ACL +-static struct rpc_stat nfsacl_rpcstat = { &nfsacl_program }; +-static struct rpc_version * nfsacl_version[] = { +- [3] = &nfsacl_version3, +-}; +- +-struct rpc_program nfsacl_program = { +- .name = "nfsacl", +- .number = NFS_ACL_PROGRAM, +- .nrvers = ARRAY_SIZE(nfsacl_version), +- .version = nfsacl_version, +- .stats = &nfsacl_rpcstat, +-}; +-#endif /* CONFIG_NFS_V3_ACL */ +- +-static void nfs_umount_begin(struct vfsmount *, int); +-static int nfs_statfs(struct super_block *, struct kstatfs *); +-static int nfs_show_options(struct seq_file *, struct vfsmount *); +-static int nfs_show_stats(struct seq_file *, struct vfsmount *); +-static struct super_block *nfs_get_sb(struct file_system_type *, int, const char *, void *); +-static struct super_block *nfs_clone_nfs_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static void nfs_kill_super(struct super_block *); +- +-static struct file_system_type nfs_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs", +- .get_sb = nfs_get_sb, +- .kill_sb = nfs_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-struct file_system_type clone_nfs_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs", +- .get_sb = nfs_clone_nfs_sb, +- .kill_sb = nfs_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-static struct super_operations nfs_sops = { +- .alloc_inode = nfs_alloc_inode, +- .destroy_inode = nfs_destroy_inode, +- .write_inode = nfs_write_inode, +- .statfs = nfs_statfs, +- .clear_inode = nfs_clear_inode, +- .umount_begin = nfs_umount_begin, +- .show_options = nfs_show_options, +- .show_stats = nfs_show_stats, +-}; +- +-#ifdef CONFIG_NFS_V4 +-static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static struct super_block *nfs_clone_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static struct super_block *nfs_referral_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static void nfs4_kill_super(struct super_block *sb); +- +-static struct file_system_type nfs4_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs4", +- .get_sb = nfs4_get_sb, +- .kill_sb = nfs4_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-struct file_system_type clone_nfs4_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs4", +- .get_sb = nfs_clone_nfs4_sb, +- .kill_sb = nfs4_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-struct file_system_type nfs_referral_nfs4_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs4", +- .get_sb = nfs_referral_nfs4_sb, +- .kill_sb = nfs4_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-static struct super_operations nfs4_sops = { +- .alloc_inode = nfs_alloc_inode, +- .destroy_inode = nfs_destroy_inode, +- .write_inode = nfs_write_inode, +- .statfs = nfs_statfs, +- .clear_inode = nfs4_clear_inode, +- .umount_begin = nfs_umount_begin, +- .show_options = nfs_show_options, +- .show_stats = nfs_show_stats, +-}; +-#endif +- +-static const int nfs_set_port_min = 0; +-static const int nfs_set_port_max = 65535; +- +-static int param_set_port(const char *val, struct kernel_param *kp) +-{ +- char *endp; +- int num = simple_strtol(val, &endp, 0); +- if (endp == val || *endp || num < nfs_set_port_min || num > nfs_set_port_max) +- return -EINVAL; +- *((int *)kp->arg) = num; +- return 0; +-} +- +-module_param_call(callback_tcpport, param_set_port, param_get_int, +- &nfs_callback_set_tcpport, 0644); +- +-static int param_set_idmap_timeout(const char *val, struct kernel_param *kp) +-{ +- char *endp; +- int num = simple_strtol(val, &endp, 0); +- int jif = num * HZ; +- if (endp == val || *endp || num < 0 || jif < num) +- return -EINVAL; +- *((int *)kp->arg) = jif; +- return 0; +-} +- +-module_param_call(idmap_cache_timeout, param_set_idmap_timeout, param_get_int, +- &nfs_idmap_cache_timeout, 0644); +- +-/* +- * Register the NFS filesystems +- */ +-int __init register_nfs_fs(void) +-{ +- int ret; +- +- ret = register_filesystem(&nfs_fs_type); +- if (ret < 0) +- goto error_0; +- +-#ifdef CONFIG_NFS_V4 +- ret = nfs_register_sysctl(); +- if (ret < 0) +- goto error_1; +- ret = register_filesystem(&nfs4_fs_type); +- if (ret < 0) +- goto error_2; +-#endif +- return 0; +- +-#ifdef CONFIG_NFS_V4 +-error_2: +- nfs_unregister_sysctl(); +-error_1: +- unregister_filesystem(&nfs_fs_type); +-#endif +-error_0: +- return ret; +-} +- +-/* +- * Unregister the NFS filesystems +- */ +-void __exit unregister_nfs_fs(void) +-{ +-#ifdef CONFIG_NFS_V4 +- unregister_filesystem(&nfs4_fs_type); +- nfs_unregister_sysctl(); +-#endif +- unregister_filesystem(&nfs_fs_type); +-} +- +-/* +- * Deliver file system statistics to userspace +- */ +-static int nfs_statfs(struct super_block *sb, struct kstatfs *buf) +-{ +- struct nfs_server *server = NFS_SB(sb); +- unsigned char blockbits; +- unsigned long blockres; +- struct nfs_fh *rootfh = NFS_FH(sb->s_root->d_inode); +- struct nfs_fattr fattr; +- struct nfs_fsstat res = { +- .fattr = &fattr, +- }; +- int error; +- +- lock_kernel(); +- +- error = server->rpc_ops->statfs(server, rootfh, &res); +- buf->f_type = NFS_SUPER_MAGIC; +- if (error < 0) +- goto out_err; +- +- /* +- * Current versions of glibc do not correctly handle the +- * case where f_frsize != f_bsize. Eventually we want to +- * report the value of wtmult in this field. +- */ +- buf->f_frsize = sb->s_blocksize; +- +- /* +- * On most *nix systems, f_blocks, f_bfree, and f_bavail +- * are reported in units of f_frsize. Linux hasn't had +- * an f_frsize field in its statfs struct until recently, +- * thus historically Linux's sys_statfs reports these +- * fields in units of f_bsize. +- */ +- buf->f_bsize = sb->s_blocksize; +- blockbits = sb->s_blocksize_bits; +- blockres = (1 << blockbits) - 1; +- buf->f_blocks = (res.tbytes + blockres) >> blockbits; +- buf->f_bfree = (res.fbytes + blockres) >> blockbits; +- buf->f_bavail = (res.abytes + blockres) >> blockbits; +- +- buf->f_files = res.tfiles; +- buf->f_ffree = res.afiles; +- +- buf->f_namelen = server->namelen; +- out: +- unlock_kernel(); +- return 0; +- +- out_err: +- dprintk("%s: statfs error = %d\n", __FUNCTION__, -error); +- buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; +- goto out; +- +-} +- +-static const char *nfs_pseudoflavour_to_name(rpc_authflavor_t flavour) +-{ +- static struct { +- rpc_authflavor_t flavour; +- const char *str; +- } sec_flavours[] = { +- { RPC_AUTH_NULL, "null" }, +- { RPC_AUTH_UNIX, "sys" }, +- { RPC_AUTH_GSS_KRB5, "krb5" }, +- { RPC_AUTH_GSS_KRB5I, "krb5i" }, +- { RPC_AUTH_GSS_KRB5P, "krb5p" }, +- { RPC_AUTH_GSS_LKEY, "lkey" }, +- { RPC_AUTH_GSS_LKEYI, "lkeyi" }, +- { RPC_AUTH_GSS_LKEYP, "lkeyp" }, +- { RPC_AUTH_GSS_SPKM, "spkm" }, +- { RPC_AUTH_GSS_SPKMI, "spkmi" }, +- { RPC_AUTH_GSS_SPKMP, "spkmp" }, +- { -1, "unknown" } +- }; +- int i; +- +- for (i=0; sec_flavours[i].flavour != -1; i++) { +- if (sec_flavours[i].flavour == flavour) +- break; +- } +- return sec_flavours[i].str; +-} +- +-/* +- * Describe the mount options in force on this server representation +- */ +-static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss, int showdefaults) +-{ +- static struct proc_nfs_info { +- int flag; +- char *str; +- char *nostr; +- } nfs_info[] = { +- { NFS_MOUNT_SOFT, ",soft", ",hard" }, +- { NFS_MOUNT_INTR, ",intr", "" }, +- { NFS_MOUNT_NOCTO, ",nocto", "" }, +- { NFS_MOUNT_NOAC, ",noac", "" }, +- { NFS_MOUNT_NONLM, ",nolock", "" }, +- { NFS_MOUNT_NOACL, ",noacl", "" }, +- { 0, NULL, NULL } +- }; +- struct proc_nfs_info *nfs_infop; +- char buf[12]; +- char *proto; +- +- seq_printf(m, ",vers=%d", nfss->rpc_ops->version); +- seq_printf(m, ",rsize=%d", nfss->rsize); +- seq_printf(m, ",wsize=%d", nfss->wsize); +- if (nfss->acregmin != 3*HZ || showdefaults) +- seq_printf(m, ",acregmin=%d", nfss->acregmin/HZ); +- if (nfss->acregmax != 60*HZ || showdefaults) +- seq_printf(m, ",acregmax=%d", nfss->acregmax/HZ); +- if (nfss->acdirmin != 30*HZ || showdefaults) +- seq_printf(m, ",acdirmin=%d", nfss->acdirmin/HZ); +- if (nfss->acdirmax != 60*HZ || showdefaults) +- seq_printf(m, ",acdirmax=%d", nfss->acdirmax/HZ); +- for (nfs_infop = nfs_info; nfs_infop->flag; nfs_infop++) { +- if (nfss->flags & nfs_infop->flag) +- seq_puts(m, nfs_infop->str); +- else +- seq_puts(m, nfs_infop->nostr); +- } +- switch (nfss->client->cl_xprt->prot) { +- case IPPROTO_TCP: +- proto = "tcp"; +- break; +- case IPPROTO_UDP: +- proto = "udp"; +- break; +- default: +- snprintf(buf, sizeof(buf), "%u", nfss->client->cl_xprt->prot); +- proto = buf; +- } +- seq_printf(m, ",proto=%s", proto); +- seq_printf(m, ",timeo=%lu", 10U * nfss->retrans_timeo / HZ); +- seq_printf(m, ",retrans=%u", nfss->retrans_count); +- seq_printf(m, ",sec=%s", nfs_pseudoflavour_to_name(nfss->client->cl_auth->au_flavor)); +-} +- +-/* +- * Describe the mount options on this VFS mountpoint +- */ +-static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) +-{ +- struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); +- +- nfs_show_mount_options(m, nfss, 0); +- +- seq_puts(m, ",addr="); +- seq_escape(m, nfss->hostname, " \t\n\\"); +- +- return 0; +-} +- +-/* +- * Present statistical information for this VFS mountpoint +- */ +-static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) +-{ +- int i, cpu; +- struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); +- struct rpc_auth *auth = nfss->client->cl_auth; +- struct nfs_iostats totals = { }; +- +- seq_printf(m, "statvers=%s", NFS_IOSTAT_VERS); +- +- /* +- * Display all mount option settings +- */ +- seq_printf(m, "\n\topts:\t"); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_RDONLY ? "ro" : "rw"); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_SYNCHRONOUS ? ",sync" : ""); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_NOATIME ? ",noatime" : ""); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_NODIRATIME ? ",nodiratime" : ""); +- nfs_show_mount_options(m, nfss, 1); +- +- seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ); +- +- seq_printf(m, "\n\tcaps:\t"); +- seq_printf(m, "caps=0x%x", nfss->caps); +- seq_printf(m, ",wtmult=%d", nfss->wtmult); +- seq_printf(m, ",dtsize=%d", nfss->dtsize); +- seq_printf(m, ",bsize=%d", nfss->bsize); +- seq_printf(m, ",namelen=%d", nfss->namelen); +- +-#ifdef CONFIG_NFS_V4 +- if (nfss->rpc_ops->version == 4) { +- seq_printf(m, "\n\tnfsv4:\t"); +- seq_printf(m, "bm0=0x%x", nfss->attr_bitmask[0]); +- seq_printf(m, ",bm1=0x%x", nfss->attr_bitmask[1]); +- seq_printf(m, ",acl=0x%x", nfss->acl_bitmask); +- } +-#endif +- +- /* +- * Display security flavor in effect for this mount +- */ +- seq_printf(m, "\n\tsec:\tflavor=%d", auth->au_ops->au_flavor); +- if (auth->au_flavor) +- seq_printf(m, ",pseudoflavor=%d", auth->au_flavor); +- +- /* +- * Display superblock I/O counters +- */ +- for_each_possible_cpu(cpu) { +- struct nfs_iostats *stats; +- +- preempt_disable(); +- stats = per_cpu_ptr(nfss->io_stats, cpu); +- +- for (i = 0; i < __NFSIOS_COUNTSMAX; i++) +- totals.events[i] += stats->events[i]; +- for (i = 0; i < __NFSIOS_BYTESMAX; i++) +- totals.bytes[i] += stats->bytes[i]; +- +- preempt_enable(); +- } +- +- seq_printf(m, "\n\tevents:\t"); +- for (i = 0; i < __NFSIOS_COUNTSMAX; i++) +- seq_printf(m, "%lu ", totals.events[i]); +- seq_printf(m, "\n\tbytes:\t"); +- for (i = 0; i < __NFSIOS_BYTESMAX; i++) +- seq_printf(m, "%Lu ", totals.bytes[i]); +- seq_printf(m, "\n"); +- +- rpc_print_iostats(m, nfss->client); +- +- return 0; +-} +- +-/* +- * Begin unmount by attempting to remove all automounted mountpoints we added +- * in response to traversals +- */ +-static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags) +-{ +- struct nfs_server *server; +- struct rpc_clnt *rpc; +- +- shrink_submounts(vfsmnt, &nfs_automount_list); +- if (!(flags & MNT_FORCE)) +- return; +- /* -EIO all pending I/O */ +- server = NFS_SB(vfsmnt->mnt_sb); +- rpc = server->client; +- if (!IS_ERR(rpc)) +- rpc_killall_tasks(rpc); +- rpc = server->client_acl; +- if (!IS_ERR(rpc)) +- rpc_killall_tasks(rpc); +-} +- +-/* +- * Obtain the root inode of the file system. +- */ +-static struct inode * +-nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *fsinfo) +-{ +- struct nfs_server *server = NFS_SB(sb); +- int error; +- +- error = server->rpc_ops->getroot(server, rootfh, fsinfo); +- if (error < 0) { +- dprintk("nfs_get_root: getattr error = %d\n", -error); +- return ERR_PTR(error); +- } +- +- server->fsid = fsinfo->fattr->fsid; +- return nfs_fhget(sb, rootfh, fsinfo->fattr); +-} +- +-/* +- * Do NFS version-independent mount processing, and sanity checking +- */ +-static int +-nfs_sb_init(struct super_block *sb, rpc_authflavor_t authflavor) +-{ +- struct nfs_server *server; +- struct inode *root_inode; +- struct nfs_fattr fattr; +- struct nfs_fsinfo fsinfo = { +- .fattr = &fattr, +- }; +- struct nfs_pathconf pathinfo = { +- .fattr = &fattr, +- }; +- int no_root_error = 0; +- unsigned long max_rpc_payload; +- +- /* We probably want something more informative here */ +- snprintf(sb->s_id, sizeof(sb->s_id), "%x:%x", MAJOR(sb->s_dev), MINOR(sb->s_dev)); +- +- server = NFS_SB(sb); +- +- sb->s_magic = NFS_SUPER_MAGIC; +- +- server->io_stats = nfs_alloc_iostats(); +- if (server->io_stats == NULL) +- return -ENOMEM; +- +- root_inode = nfs_get_root(sb, &server->fh, &fsinfo); +- /* Did getting the root inode fail? */ +- if (IS_ERR(root_inode)) { +- no_root_error = PTR_ERR(root_inode); +- goto out_no_root; +- } +- sb->s_root = d_alloc_root(root_inode); +- if (!sb->s_root) { +- no_root_error = -ENOMEM; +- goto out_no_root; +- } +- sb->s_root->d_op = server->rpc_ops->dentry_ops; +- +- /* mount time stamp, in seconds */ +- server->mount_time = jiffies; +- +- /* Get some general file system info */ +- if (server->namelen == 0 && +- server->rpc_ops->pathconf(server, &server->fh, &pathinfo) >= 0) +- server->namelen = pathinfo.max_namelen; +- /* Work out a lot of parameters */ +- if (server->rsize == 0) +- server->rsize = nfs_block_size(fsinfo.rtpref, NULL); +- if (server->wsize == 0) +- server->wsize = nfs_block_size(fsinfo.wtpref, NULL); +- +- if (fsinfo.rtmax >= 512 && server->rsize > fsinfo.rtmax) +- server->rsize = nfs_block_size(fsinfo.rtmax, NULL); +- if (fsinfo.wtmax >= 512 && server->wsize > fsinfo.wtmax) +- server->wsize = nfs_block_size(fsinfo.wtmax, NULL); +- +- max_rpc_payload = nfs_block_size(rpc_max_payload(server->client), NULL); +- if (server->rsize > max_rpc_payload) +- server->rsize = max_rpc_payload; +- if (server->rsize > NFS_MAX_FILE_IO_SIZE) +- server->rsize = NFS_MAX_FILE_IO_SIZE; +- server->rpages = (server->rsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; +- +- if (server->wsize > max_rpc_payload) +- server->wsize = max_rpc_payload; +- if (server->wsize > NFS_MAX_FILE_IO_SIZE) +- server->wsize = NFS_MAX_FILE_IO_SIZE; +- server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; +- +- if (sb->s_blocksize == 0) +- sb->s_blocksize = nfs_block_bits(server->wsize, +- &sb->s_blocksize_bits); +- server->wtmult = nfs_block_bits(fsinfo.wtmult, NULL); +- +- server->dtsize = nfs_block_size(fsinfo.dtpref, NULL); +- if (server->dtsize > PAGE_CACHE_SIZE) +- server->dtsize = PAGE_CACHE_SIZE; +- if (server->dtsize > server->rsize) +- server->dtsize = server->rsize; +- +- if (server->flags & NFS_MOUNT_NOAC) { +- server->acregmin = server->acregmax = 0; +- server->acdirmin = server->acdirmax = 0; +- sb->s_flags |= MS_SYNCHRONOUS; +- } +- server->backing_dev_info.ra_pages = server->rpages * NFS_MAX_READAHEAD; +- +- nfs_super_set_maxbytes(sb, fsinfo.maxfilesize); +- +- server->client->cl_intr = (server->flags & NFS_MOUNT_INTR) ? 1 : 0; +- server->client->cl_softrtry = (server->flags & NFS_MOUNT_SOFT) ? 1 : 0; +- +- /* We're airborne Set socket buffersize */ +- rpc_setbufsize(server->client, server->wsize + 100, server->rsize + 100); +- return 0; +- /* Yargs. It didn't work out. */ +-out_no_root: +- dprintk("nfs_sb_init: get root inode failed: errno %d\n", -no_root_error); +- if (!IS_ERR(root_inode)) +- iput(root_inode); +- return no_root_error; +-} +- +-/* +- * Initialise the timeout values for a connection +- */ +-static void nfs_init_timeout_values(struct rpc_timeout *to, int proto, unsigned int timeo, unsigned int retrans) +-{ +- to->to_initval = timeo * HZ / 10; +- to->to_retries = retrans; +- if (!to->to_retries) +- to->to_retries = 2; +- +- switch (proto) { +- case IPPROTO_TCP: +- if (!to->to_initval) +- to->to_initval = 60 * HZ; +- if (to->to_initval > NFS_MAX_TCP_TIMEOUT) +- to->to_initval = NFS_MAX_TCP_TIMEOUT; +- to->to_increment = to->to_initval; +- to->to_maxval = to->to_initval + (to->to_increment * to->to_retries); +- to->to_exponential = 0; +- break; +- case IPPROTO_UDP: +- default: +- if (!to->to_initval) +- to->to_initval = 11 * HZ / 10; +- if (to->to_initval > NFS_MAX_UDP_TIMEOUT) +- to->to_initval = NFS_MAX_UDP_TIMEOUT; +- to->to_maxval = NFS_MAX_UDP_TIMEOUT; +- to->to_exponential = 1; +- break; +- } +-} +- +-/* +- * Create an RPC client handle. +- */ +-static struct rpc_clnt * +-nfs_create_client(struct nfs_server *server, const struct nfs_mount_data *data) +-{ +- struct rpc_timeout timeparms; +- struct rpc_xprt *xprt = NULL; +- struct rpc_clnt *clnt = NULL; +- int proto = (data->flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP; +- +- nfs_init_timeout_values(&timeparms, proto, data->timeo, data->retrans); +- +- server->retrans_timeo = timeparms.to_initval; +- server->retrans_count = timeparms.to_retries; +- +- /* create transport and client */ +- xprt = xprt_create_proto(proto, &server->addr, &timeparms); +- if (IS_ERR(xprt)) { +- dprintk("%s: cannot create RPC transport. Error = %ld\n", +- __FUNCTION__, PTR_ERR(xprt)); +- return (struct rpc_clnt *)xprt; +- } +- clnt = rpc_create_client(xprt, server->hostname, &nfs_program, +- server->rpc_ops->version, data->pseudoflavor); +- if (IS_ERR(clnt)) { +- dprintk("%s: cannot create RPC client. Error = %ld\n", +- __FUNCTION__, PTR_ERR(xprt)); +- goto out_fail; +- } +- +- clnt->cl_intr = 1; +- clnt->cl_softrtry = 1; +- +- return clnt; +- +-out_fail: +- return clnt; +-} +- +-/* +- * Clone a server record +- */ +-static struct nfs_server *nfs_clone_server(struct super_block *sb, struct nfs_clone_mount *data) +-{ +- struct nfs_server *server = NFS_SB(sb); +- struct nfs_server *parent = NFS_SB(data->sb); +- struct inode *root_inode; +- struct nfs_fsinfo fsinfo; +- void *err = ERR_PTR(-ENOMEM); +- +- sb->s_op = data->sb->s_op; +- sb->s_blocksize = data->sb->s_blocksize; +- sb->s_blocksize_bits = data->sb->s_blocksize_bits; +- sb->s_maxbytes = data->sb->s_maxbytes; +- +- server->client_sys = server->client_acl = ERR_PTR(-EINVAL); +- server->io_stats = nfs_alloc_iostats(); +- if (server->io_stats == NULL) +- goto out; +- +- server->client = rpc_clone_client(parent->client); +- if (IS_ERR((err = server->client))) +- goto out; +- +- if (!IS_ERR(parent->client_sys)) { +- server->client_sys = rpc_clone_client(parent->client_sys); +- if (IS_ERR((err = server->client_sys))) +- goto out; +- } +- if (!IS_ERR(parent->client_acl)) { +- server->client_acl = rpc_clone_client(parent->client_acl); +- if (IS_ERR((err = server->client_acl))) +- goto out; +- } +- root_inode = nfs_fhget(sb, data->fh, data->fattr); +- if (!root_inode) +- goto out; +- sb->s_root = d_alloc_root(root_inode); +- if (!sb->s_root) +- goto out_put_root; +- fsinfo.fattr = data->fattr; +- if (NFS_PROTO(root_inode)->fsinfo(server, data->fh, &fsinfo) == 0) +- nfs_super_set_maxbytes(sb, fsinfo.maxfilesize); +- sb->s_root->d_op = server->rpc_ops->dentry_ops; +- sb->s_flags |= MS_ACTIVE; +- return server; +-out_put_root: +- iput(root_inode); +-out: +- return err; +-} +- +-/* +- * Copy an existing superblock and attach revised data +- */ +-static struct super_block *nfs_clone_generic_sb(struct nfs_clone_mount *data, +- struct super_block *(*fill_sb)(struct nfs_server *, struct nfs_clone_mount *), +- struct nfs_server *(*fill_server)(struct super_block *, struct nfs_clone_mount *)) +-{ +- struct nfs_server *server; +- struct nfs_server *parent = NFS_SB(data->sb); +- struct super_block *sb = ERR_PTR(-EINVAL); +- void *err = ERR_PTR(-ENOMEM); +- char *hostname; +- int len; +- +- server = kmalloc(sizeof(struct nfs_server), GFP_KERNEL); +- if (server == NULL) +- goto out_err; +- memcpy(server, parent, sizeof(*server)); +- hostname = (data->hostname != NULL) ? data->hostname : parent->hostname; +- len = strlen(hostname) + 1; +- server->hostname = kmalloc(len, GFP_KERNEL); +- if (server->hostname == NULL) +- goto free_server; +- memcpy(server->hostname, hostname, len); +- if (rpciod_up() != 0) +- goto free_hostname; +- +- sb = fill_sb(server, data); +- if (IS_ERR((err = sb)) || sb->s_root) +- goto kill_rpciod; +- +- server = fill_server(sb, data); +- if (IS_ERR((err = server))) +- goto out_deactivate; +- return sb; +-out_deactivate: +- up_write(&sb->s_umount); +- deactivate_super(sb); +- return (struct super_block *)err; +-kill_rpciod: +- rpciod_down(); +-free_hostname: +- kfree(server->hostname); +-free_server: +- kfree(server); +-out_err: +- return (struct super_block *)err; +-} +- +-/* +- * Set up an NFS2/3 superblock +- * +- * The way this works is that the mount process passes a structure +- * in the data argument which contains the server's IP address +- * and the root file handle obtained from the server's mount +- * daemon. We stash these away in the private superblock fields. +- */ +-static int +-nfs_fill_super(struct super_block *sb, struct nfs_mount_data *data, int silent) +-{ +- struct nfs_server *server; +- rpc_authflavor_t authflavor; +- +- server = NFS_SB(sb); +- sb->s_blocksize_bits = 0; +- sb->s_blocksize = 0; +- if (data->bsize) +- sb->s_blocksize = nfs_block_size(data->bsize, &sb->s_blocksize_bits); +- if (data->rsize) +- server->rsize = nfs_block_size(data->rsize, NULL); +- if (data->wsize) +- server->wsize = nfs_block_size(data->wsize, NULL); +- server->flags = data->flags & NFS_MOUNT_FLAGMASK; +- +- server->acregmin = data->acregmin*HZ; +- server->acregmax = data->acregmax*HZ; +- server->acdirmin = data->acdirmin*HZ; +- server->acdirmax = data->acdirmax*HZ; +- +- /* Start lockd here, before we might error out */ +- if (!(server->flags & NFS_MOUNT_NONLM)) +- lockd_up(); +- +- server->namelen = data->namlen; +- server->hostname = kmalloc(strlen(data->hostname) + 1, GFP_KERNEL); +- if (!server->hostname) +- return -ENOMEM; +- strcpy(server->hostname, data->hostname); +- +- /* Check NFS protocol revision and initialize RPC op vector +- * and file handle pool. */ +-#ifdef CONFIG_NFS_V3 +- if (server->flags & NFS_MOUNT_VER3) { +- server->rpc_ops = &nfs_v3_clientops; +- server->caps |= NFS_CAP_READDIRPLUS; +- } else { +- server->rpc_ops = &nfs_v2_clientops; +- } +-#else +- server->rpc_ops = &nfs_v2_clientops; +-#endif +- +- /* Fill in pseudoflavor for mount version < 5 */ +- if (!(data->flags & NFS_MOUNT_SECFLAVOUR)) +- data->pseudoflavor = RPC_AUTH_UNIX; +- authflavor = data->pseudoflavor; /* save for sb_init() */ +- /* XXX maybe we want to add a server->pseudoflavor field */ +- +- /* Create RPC client handles */ +- server->client = nfs_create_client(server, data); +- if (IS_ERR(server->client)) +- return PTR_ERR(server->client); +- /* RFC 2623, sec 2.3.2 */ +- if (authflavor != RPC_AUTH_UNIX) { +- struct rpc_auth *auth; +- +- server->client_sys = rpc_clone_client(server->client); +- if (IS_ERR(server->client_sys)) +- return PTR_ERR(server->client_sys); +- auth = rpcauth_create(RPC_AUTH_UNIX, server->client_sys); +- if (IS_ERR(auth)) +- return PTR_ERR(auth); +- } else { +- atomic_inc(&server->client->cl_count); +- server->client_sys = server->client; +- } +- if (server->flags & NFS_MOUNT_VER3) { +-#ifdef CONFIG_NFS_V3_ACL +- if (!(server->flags & NFS_MOUNT_NOACL)) { +- server->client_acl = rpc_bind_new_program(server->client, &nfsacl_program, 3); +- /* No errors! Assume that Sun nfsacls are supported */ +- if (!IS_ERR(server->client_acl)) +- server->caps |= NFS_CAP_ACLS; +- } +-#else +- server->flags &= ~NFS_MOUNT_NOACL; +-#endif /* CONFIG_NFS_V3_ACL */ +- /* +- * The VFS shouldn't apply the umask to mode bits. We will +- * do so ourselves when necessary. +- */ +- sb->s_flags |= MS_POSIXACL; +- if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN) +- server->namelen = NFS3_MAXNAMLEN; +- sb->s_time_gran = 1; +- } else { +- if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN) +- server->namelen = NFS2_MAXNAMLEN; +- } +- +- sb->s_op = &nfs_sops; +- return nfs_sb_init(sb, authflavor); +-} +- +-static int nfs_set_super(struct super_block *s, void *data) +-{ +- s->s_fs_info = data; +- return set_anon_super(s, data); +-} +- +-static int nfs_compare_super(struct super_block *sb, void *data) +-{ +- struct nfs_server *server = data; +- struct nfs_server *old = NFS_SB(sb); +- +- if (old->addr.sin_addr.s_addr != server->addr.sin_addr.s_addr) +- return 0; +- if (old->addr.sin_port != server->addr.sin_port) +- return 0; +- return !nfs_compare_fh(&old->fh, &server->fh); +-} +- +-static struct super_block *nfs_get_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- int error; +- struct nfs_server *server = NULL; +- struct super_block *s; +- struct nfs_fh *root; +- struct nfs_mount_data *data = raw_data; +- +- s = ERR_PTR(-EINVAL); +- if (data == NULL) { +- dprintk("%s: missing data argument\n", __FUNCTION__); +- goto out_err; +- } +- if (data->version <= 0 || data->version > NFS_MOUNT_VERSION) { +- dprintk("%s: bad mount version\n", __FUNCTION__); +- goto out_err; +- } +- switch (data->version) { +- case 1: +- data->namlen = 0; +- case 2: +- data->bsize = 0; +- case 3: +- if (data->flags & NFS_MOUNT_VER3) { +- dprintk("%s: mount structure version %d does not support NFSv3\n", +- __FUNCTION__, +- data->version); +- goto out_err; +- } +- data->root.size = NFS2_FHSIZE; +- memcpy(data->root.data, data->old_root.data, NFS2_FHSIZE); +- case 4: +- if (data->flags & NFS_MOUNT_SECFLAVOUR) { +- dprintk("%s: mount structure version %d does not support strong security\n", +- __FUNCTION__, +- data->version); +- goto out_err; +- } +- case 5: +- memset(data->context, 0, sizeof(data->context)); +- } +-#ifndef CONFIG_NFS_V3 +- /* If NFSv3 is not compiled in, return -EPROTONOSUPPORT */ +- s = ERR_PTR(-EPROTONOSUPPORT); +- if (data->flags & NFS_MOUNT_VER3) { +- dprintk("%s: NFSv3 not compiled into kernel\n", __FUNCTION__); +- goto out_err; +- } +-#endif /* CONFIG_NFS_V3 */ +- +- s = ERR_PTR(-ENOMEM); +- server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); +- if (!server) +- goto out_err; +- /* Zero out the NFS state stuff */ +- init_nfsv4_state(server); +- server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); +- +- root = &server->fh; +- if (data->flags & NFS_MOUNT_VER3) +- root->size = data->root.size; +- else +- root->size = NFS2_FHSIZE; +- s = ERR_PTR(-EINVAL); +- if (root->size > sizeof(root->data)) { +- dprintk("%s: invalid root filehandle\n", __FUNCTION__); +- goto out_err; +- } +- memcpy(root->data, data->root.data, root->size); +- +- /* We now require that the mount process passes the remote address */ +- memcpy(&server->addr, &data->addr, sizeof(server->addr)); +- if (server->addr.sin_addr.s_addr == INADDR_ANY) { +- dprintk("%s: mount program didn't pass remote address!\n", +- __FUNCTION__); +- goto out_err; +- } +- +- /* Fire up rpciod if not yet running */ +- s = ERR_PTR(rpciod_up()); +- if (IS_ERR(s)) { +- dprintk("%s: couldn't start rpciod! Error = %ld\n", +- __FUNCTION__, PTR_ERR(s)); +- goto out_err; +- } +- +- s = sget(fs_type, nfs_compare_super, nfs_set_super, server); +- if (IS_ERR(s) || s->s_root) +- goto out_rpciod_down; +- +- s->s_flags = flags; +- +- error = nfs_fill_super(s, data, flags & MS_SILENT ? 1 : 0); +- if (error) { +- up_write(&s->s_umount); +- deactivate_super(s); +- return ERR_PTR(error); +- } +- s->s_flags |= MS_ACTIVE; +- return s; +-out_rpciod_down: +- rpciod_down(); +-out_err: +- kfree(server); +- return s; +-} +- +-static void nfs_kill_super(struct super_block *s) +-{ +- struct nfs_server *server = NFS_SB(s); +- +- kill_anon_super(s); +- +- if (!IS_ERR(server->client)) +- rpc_shutdown_client(server->client); +- if (!IS_ERR(server->client_sys)) +- rpc_shutdown_client(server->client_sys); +- if (!IS_ERR(server->client_acl)) +- rpc_shutdown_client(server->client_acl); +- +- if (!(server->flags & NFS_MOUNT_NONLM)) +- lockd_down(); /* release rpc.lockd */ +- +- rpciod_down(); /* release rpciod */ +- +- nfs_free_iostats(server->io_stats); +- kfree(server->hostname); +- kfree(server); +- nfs_release_automount_timer(); +-} +- +-static struct super_block *nfs_clone_sb(struct nfs_server *server, struct nfs_clone_mount *data) +-{ +- struct super_block *sb; +- +- server->fsid = data->fattr->fsid; +- nfs_copy_fh(&server->fh, data->fh); +- sb = sget(&nfs_fs_type, nfs_compare_super, nfs_set_super, server); +- if (!IS_ERR(sb) && sb->s_root == NULL && !(server->flags & NFS_MOUNT_NONLM)) +- lockd_up(); +- return sb; +-} +- +-static struct super_block *nfs_clone_nfs_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- struct nfs_clone_mount *data = raw_data; +- return nfs_clone_generic_sb(data, nfs_clone_sb, nfs_clone_server); +-} +- +-#ifdef CONFIG_NFS_V4 +-static struct rpc_clnt *nfs4_create_client(struct nfs_server *server, +- struct rpc_timeout *timeparms, int proto, rpc_authflavor_t flavor) +-{ +- struct nfs4_client *clp; +- struct rpc_xprt *xprt = NULL; +- struct rpc_clnt *clnt = NULL; +- int err = -EIO; +- +- clp = nfs4_get_client(&server->addr.sin_addr); +- if (!clp) { +- dprintk("%s: failed to create NFS4 client.\n", __FUNCTION__); +- return ERR_PTR(err); +- } +- +- /* Now create transport and client */ +- down_write(&clp->cl_sem); +- if (IS_ERR(clp->cl_rpcclient)) { +- xprt = xprt_create_proto(proto, &server->addr, timeparms); +- if (IS_ERR(xprt)) { +- up_write(&clp->cl_sem); +- err = PTR_ERR(xprt); +- dprintk("%s: cannot create RPC transport. Error = %d\n", +- __FUNCTION__, err); +- goto out_fail; +- } +- /* Bind to a reserved port! */ +- xprt->resvport = 1; +- clnt = rpc_create_client(xprt, server->hostname, &nfs_program, +- server->rpc_ops->version, flavor); +- if (IS_ERR(clnt)) { +- up_write(&clp->cl_sem); +- err = PTR_ERR(clnt); +- dprintk("%s: cannot create RPC client. Error = %d\n", +- __FUNCTION__, err); +- goto out_fail; +- } +- clnt->cl_intr = 1; +- clnt->cl_softrtry = 1; +- clp->cl_rpcclient = clnt; +- memcpy(clp->cl_ipaddr, server->ip_addr, sizeof(clp->cl_ipaddr)); +- nfs_idmap_new(clp); +- } +- list_add_tail(&server->nfs4_siblings, &clp->cl_superblocks); +- clnt = rpc_clone_client(clp->cl_rpcclient); +- if (!IS_ERR(clnt)) +- server->nfs4_state = clp; +- up_write(&clp->cl_sem); +- clp = NULL; +- +- if (IS_ERR(clnt)) { +- dprintk("%s: cannot create RPC client. Error = %d\n", +- __FUNCTION__, err); +- return clnt; +- } +- +- if (server->nfs4_state->cl_idmap == NULL) { +- dprintk("%s: failed to create idmapper.\n", __FUNCTION__); +- return ERR_PTR(-ENOMEM); +- } +- +- if (clnt->cl_auth->au_flavor != flavor) { +- struct rpc_auth *auth; +- +- auth = rpcauth_create(flavor, clnt); +- if (IS_ERR(auth)) { +- dprintk("%s: couldn't create credcache!\n", __FUNCTION__); +- return (struct rpc_clnt *)auth; +- } +- } +- return clnt; +- +- out_fail: +- if (clp) +- nfs4_put_client(clp); +- return ERR_PTR(err); +-} +- +-/* +- * Set up an NFS4 superblock +- */ +-static int nfs4_fill_super(struct super_block *sb, struct nfs4_mount_data *data, int silent) +-{ +- struct nfs_server *server; +- struct rpc_timeout timeparms; +- rpc_authflavor_t authflavour; +- int err = -EIO; +- +- sb->s_blocksize_bits = 0; +- sb->s_blocksize = 0; +- server = NFS_SB(sb); +- if (data->rsize != 0) +- server->rsize = nfs_block_size(data->rsize, NULL); +- if (data->wsize != 0) +- server->wsize = nfs_block_size(data->wsize, NULL); +- server->flags = data->flags & NFS_MOUNT_FLAGMASK; +- server->caps = NFS_CAP_ATOMIC_OPEN; +- +- server->acregmin = data->acregmin*HZ; +- server->acregmax = data->acregmax*HZ; +- server->acdirmin = data->acdirmin*HZ; +- server->acdirmax = data->acdirmax*HZ; +- +- server->rpc_ops = &nfs_v4_clientops; +- +- nfs_init_timeout_values(&timeparms, data->proto, data->timeo, data->retrans); +- +- server->retrans_timeo = timeparms.to_initval; +- server->retrans_count = timeparms.to_retries; +- +- /* Now create transport and client */ +- authflavour = RPC_AUTH_UNIX; +- if (data->auth_flavourlen != 0) { +- if (data->auth_flavourlen != 1) { +- dprintk("%s: Invalid number of RPC auth flavours %d.\n", +- __FUNCTION__, data->auth_flavourlen); +- err = -EINVAL; +- goto out_fail; +- } +- if (copy_from_user(&authflavour, data->auth_flavours, sizeof(authflavour))) { +- err = -EFAULT; +- goto out_fail; +- } +- } +- +- server->client = nfs4_create_client(server, &timeparms, data->proto, authflavour); +- if (IS_ERR(server->client)) { +- err = PTR_ERR(server->client); +- dprintk("%s: cannot create RPC client. Error = %d\n", +- __FUNCTION__, err); +- goto out_fail; +- } +- +- sb->s_time_gran = 1; +- +- sb->s_op = &nfs4_sops; +- err = nfs_sb_init(sb, authflavour); +- +- out_fail: +- return err; +-} +- +-static int nfs4_compare_super(struct super_block *sb, void *data) +-{ +- struct nfs_server *server = data; +- struct nfs_server *old = NFS_SB(sb); +- +- if (strcmp(server->hostname, old->hostname) != 0) +- return 0; +- if (strcmp(server->mnt_path, old->mnt_path) != 0) +- return 0; +- return 1; +-} +- +-static void * +-nfs_copy_user_string(char *dst, struct nfs_string *src, int maxlen) +-{ +- void *p = NULL; +- +- if (!src->len) +- return ERR_PTR(-EINVAL); +- if (src->len < maxlen) +- maxlen = src->len; +- if (dst == NULL) { +- p = dst = kmalloc(maxlen + 1, GFP_KERNEL); +- if (p == NULL) +- return ERR_PTR(-ENOMEM); +- } +- if (copy_from_user(dst, src->data, maxlen)) { +- kfree(p); +- return ERR_PTR(-EFAULT); +- } +- dst[maxlen] = '\0'; +- return dst; +-} +- +-static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- int error; +- struct nfs_server *server; +- struct super_block *s; +- struct nfs4_mount_data *data = raw_data; +- void *p; +- +- if (data == NULL) { +- dprintk("%s: missing data argument\n", __FUNCTION__); +- return ERR_PTR(-EINVAL); +- } +- if (data->version <= 0 || data->version > NFS4_MOUNT_VERSION) { +- dprintk("%s: bad mount version\n", __FUNCTION__); +- return ERR_PTR(-EINVAL); +- } +- +- server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); +- if (!server) +- return ERR_PTR(-ENOMEM); +- /* Zero out the NFS state stuff */ +- init_nfsv4_state(server); +- server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); +- +- p = nfs_copy_user_string(NULL, &data->hostname, 256); +- if (IS_ERR(p)) +- goto out_err; +- server->hostname = p; +- +- p = nfs_copy_user_string(NULL, &data->mnt_path, 1024); +- if (IS_ERR(p)) +- goto out_err; +- server->mnt_path = p; +- +- p = nfs_copy_user_string(server->ip_addr, &data->client_addr, +- sizeof(server->ip_addr) - 1); +- if (IS_ERR(p)) +- goto out_err; +- +- /* We now require that the mount process passes the remote address */ +- if (data->host_addrlen != sizeof(server->addr)) { +- s = ERR_PTR(-EINVAL); +- goto out_free; +- } +- if (copy_from_user(&server->addr, data->host_addr, sizeof(server->addr))) { +- s = ERR_PTR(-EFAULT); +- goto out_free; +- } +- if (server->addr.sin_family != AF_INET || +- server->addr.sin_addr.s_addr == INADDR_ANY) { +- dprintk("%s: mount program didn't pass remote IP address!\n", +- __FUNCTION__); +- s = ERR_PTR(-EINVAL); +- goto out_free; +- } +- +- /* Fire up rpciod if not yet running */ +- s = ERR_PTR(rpciod_up()); +- if (IS_ERR(s)) { +- dprintk("%s: couldn't start rpciod! Error = %ld\n", +- __FUNCTION__, PTR_ERR(s)); +- goto out_free; +- } +- +- s = sget(fs_type, nfs4_compare_super, nfs_set_super, server); +- +- if (IS_ERR(s) || s->s_root) +- goto out_free; +- +- s->s_flags = flags; +- +- error = nfs4_fill_super(s, data, flags & MS_SILENT ? 1 : 0); +- if (error) { +- up_write(&s->s_umount); +- deactivate_super(s); +- return ERR_PTR(error); +- } +- s->s_flags |= MS_ACTIVE; +- return s; +-out_err: +- s = (struct super_block *)p; +-out_free: +- kfree(server->mnt_path); +- kfree(server->hostname); +- kfree(server); +- return s; +-} +- +-static void nfs4_kill_super(struct super_block *sb) +-{ +- struct nfs_server *server = NFS_SB(sb); +- +- nfs_return_all_delegations(sb); +- kill_anon_super(sb); +- +- nfs4_renewd_prepare_shutdown(server); +- +- if (server->client != NULL && !IS_ERR(server->client)) +- rpc_shutdown_client(server->client); +- +- destroy_nfsv4_state(server); +- +- rpciod_down(); +- +- nfs_free_iostats(server->io_stats); +- kfree(server->hostname); +- kfree(server); +- nfs_release_automount_timer(); +-} +- +-/* +- * Constructs the SERVER-side path +- */ +-static inline char *nfs4_dup_path(const struct dentry *dentry) +-{ +- char *page = (char *) __get_free_page(GFP_USER); +- char *path; +- +- path = nfs4_path(dentry, page, PAGE_SIZE); +- if (!IS_ERR(path)) { +- int len = PAGE_SIZE + page - path; +- char *tmp = path; +- +- path = kmalloc(len, GFP_KERNEL); +- if (path) +- memcpy(path, tmp, len); +- else +- path = ERR_PTR(-ENOMEM); +- } +- free_page((unsigned long)page); +- return path; +-} +- +-static struct super_block *nfs4_clone_sb(struct nfs_server *server, struct nfs_clone_mount *data) +-{ +- const struct dentry *dentry = data->dentry; +- struct nfs4_client *clp = server->nfs4_state; +- struct super_block *sb; +- +- server->fsid = data->fattr->fsid; +- nfs_copy_fh(&server->fh, data->fh); +- server->mnt_path = nfs4_dup_path(dentry); +- if (IS_ERR(server->mnt_path)) { +- sb = (struct super_block *)server->mnt_path; +- goto err; +- } +- sb = sget(&nfs4_fs_type, nfs4_compare_super, nfs_set_super, server); +- if (IS_ERR(sb) || sb->s_root) +- goto free_path; +- nfs4_server_capabilities(server, &server->fh); +- +- down_write(&clp->cl_sem); +- atomic_inc(&clp->cl_count); +- list_add_tail(&server->nfs4_siblings, &clp->cl_superblocks); +- up_write(&clp->cl_sem); +- return sb; +-free_path: +- kfree(server->mnt_path); +-err: +- server->mnt_path = NULL; +- return sb; +-} +- +-static struct super_block *nfs_clone_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- struct nfs_clone_mount *data = raw_data; +- return nfs_clone_generic_sb(data, nfs4_clone_sb, nfs_clone_server); +-} +- +-static struct super_block *nfs4_referral_sb(struct nfs_server *server, struct nfs_clone_mount *data) +-{ +- struct super_block *sb = ERR_PTR(-ENOMEM); +- int len; +- +- len = strlen(data->mnt_path) + 1; +- server->mnt_path = kmalloc(len, GFP_KERNEL); +- if (server->mnt_path == NULL) +- goto err; +- memcpy(server->mnt_path, data->mnt_path, len); +- memcpy(&server->addr, data->addr, sizeof(struct sockaddr_in)); +- +- sb = sget(&nfs4_fs_type, nfs4_compare_super, nfs_set_super, server); +- if (IS_ERR(sb) || sb->s_root) +- goto free_path; +- return sb; +-free_path: +- kfree(server->mnt_path); +-err: +- server->mnt_path = NULL; +- return sb; +-} +- +-static struct nfs_server *nfs4_referral_server(struct super_block *sb, struct nfs_clone_mount *data) +-{ +- struct nfs_server *server = NFS_SB(sb); +- struct rpc_timeout timeparms; +- int proto, timeo, retrans; +- void *err; +- +- proto = IPPROTO_TCP; +- /* Since we are following a referral and there may be alternatives, +- set the timeouts and retries to low values */ +- timeo = 2; +- retrans = 1; +- nfs_init_timeout_values(&timeparms, proto, timeo, retrans); +- +- server->client = nfs4_create_client(server, &timeparms, proto, data->authflavor); +- if (IS_ERR((err = server->client))) +- goto out_err; +- +- sb->s_time_gran = 1; +- sb->s_op = &nfs4_sops; +- err = ERR_PTR(nfs_sb_init(sb, data->authflavor)); +- if (!IS_ERR(err)) +- return server; +-out_err: +- return (struct nfs_server *)err; +-} +- +-static struct super_block *nfs_referral_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- struct nfs_clone_mount *data = raw_data; +- return nfs_clone_generic_sb(data, nfs4_referral_sb, nfs4_referral_server); +-} +- +-#endif +diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c +index 636c479..18dc95b 100644 +--- a/fs/nfs/symlink.c ++++ b/fs/nfs/symlink.c +@@ -52,7 +52,7 @@ static void *nfs_follow_link(struct dent + { + struct inode *inode = dentry->d_inode; + struct page *page; +- void *err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping)); ++ void *err = ERR_PTR(nfs_revalidate_inode(NFS_SERVER(inode), inode)); + if (err) + goto read_failed; + page = read_cache_page(&inode->i_data, 0, +diff --git a/fs/nfs/sysctl.c b/fs/nfs/sysctl.c +index db61e51..4c486eb 100644 +--- a/fs/nfs/sysctl.c ++++ b/fs/nfs/sysctl.c +@@ -12,7 +12,6 @@ + #include + #include + #include +-#include + + #include "callback.h" + +@@ -47,15 +46,6 @@ static ctl_table nfs_cb_sysctls[] = { + .strategy = &sysctl_jiffies, + }, + #endif +- { +- .ctl_name = CTL_UNNUMBERED, +- .procname = "nfs_mountpoint_timeout", +- .data = &nfs_mountpoint_expiry_timeout, +- .maxlen = sizeof(nfs_mountpoint_expiry_timeout), +- .mode = 0644, +- .proc_handler = &proc_dointvec_jiffies, +- .strategy = &sysctl_jiffies, +- }, + { .ctl_name = 0 } + }; + +diff --git a/fs/nfs/write.c b/fs/nfs/write.c +index fe3eb36..4cfada2 100644 +--- a/fs/nfs/write.c ++++ b/fs/nfs/write.c +@@ -98,10 +98,11 @@ struct nfs_write_data *nfs_commit_alloc( + if (p) { + memset(p, 0, sizeof(*p)); + INIT_LIST_HEAD(&p->pages); +- if (pagecount <= ARRAY_SIZE(p->page_array)) +- p->pagevec = p->page_array; ++ if (pagecount < NFS_PAGEVEC_SIZE) ++ p->pagevec = &p->page_array[0]; + else { +- p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); ++ size_t size = ++pagecount * sizeof(struct page *); ++ p->pagevec = kzalloc(size, GFP_NOFS); + if (!p->pagevec) { + mempool_free(p, nfs_commit_mempool); + p = NULL; +@@ -125,11 +126,14 @@ struct nfs_write_data *nfs_writedata_all + if (p) { + memset(p, 0, sizeof(*p)); + INIT_LIST_HEAD(&p->pages); +- if (pagecount <= ARRAY_SIZE(p->page_array)) +- p->pagevec = p->page_array; ++ if (pagecount < NFS_PAGEVEC_SIZE) ++ p->pagevec = &p->page_array[0]; + else { +- p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); +- if (!p->pagevec) { ++ size_t size = ++pagecount * sizeof(struct page *); ++ p->pagevec = kmalloc(size, GFP_NOFS); ++ if (p->pagevec) { ++ memset(p->pagevec, 0, size); ++ } else { + mempool_free(p, nfs_wdata_mempool); + p = NULL; + } +@@ -579,33 +583,6 @@ static int nfs_wait_on_requests(struct i + return ret; + } + +-static void nfs_cancel_dirty_list(struct list_head *head) +-{ +- struct nfs_page *req; +- while(!list_empty(head)) { +- req = nfs_list_entry(head->next); +- nfs_list_remove_request(req); +- /* Hack, cough, splutter! +- * Wretched borken mm requires us to do this... +- */ +- set_page_writeback(req->wb_page); +- end_page_writeback(req->wb_page); +- nfs_inode_remove_request(req); +- nfs_clear_page_writeback(req); +- } +-} +- +-static void nfs_cancel_commit_list(struct list_head *head) +-{ +- struct nfs_page *req; +- while(!list_empty(head)) { +- req = nfs_list_entry(head->next); +- nfs_list_remove_request(req); +- nfs_inode_remove_request(req); +- nfs_clear_page_writeback(req); +- } +-} +- + /* + * nfs_scan_dirty - Scan an inode for dirty requests + * @inode: NFS inode to scan +@@ -650,9 +627,8 @@ nfs_scan_commit(struct inode *inode, str + int res = 0; + + if (nfsi->ncommit != 0) { +- res = nfs_scan_list(nfsi, &nfsi->commit, dst, idx_start, npages); ++ res = nfs_scan_list(&nfsi->commit, dst, idx_start, npages); + nfsi->ncommit -= res; +- sub_page_state(nr_unstable,res); + if ((nfsi->ncommit == 0) != list_empty(&nfsi->commit)) + printk(KERN_ERR "NFS: desynchronized value of nfs_i.ncommit.\n"); + } +@@ -1451,6 +1427,7 @@ static void nfs_commit_done(struct rpc_t + nfs_clear_page_writeback(req); + res++; + } ++ sub_page_state(nr_unstable,res); + } + + static const struct rpc_call_ops nfs_commit_ops = { +@@ -1518,25 +1495,15 @@ int nfs_sync_inode_wait(struct inode *in + pages = nfs_scan_dirty(inode, &head, idx_start, npages); + if (pages != 0) { + spin_unlock(&nfsi->req_lock); +- if (how & FLUSH_INVALIDATE) +- nfs_cancel_dirty_list(&head); +- else +- ret = nfs_flush_list(inode, &head, pages, how); ++ ret = nfs_flush_list(inode, &head, pages, how); + spin_lock(&nfsi->req_lock); + continue; + } + if (nocommit) + break; +- pages = nfs_scan_commit(inode, &head, idx_start, npages); ++ pages = nfs_scan_commit(inode, &head, 0, 0); + if (pages == 0) + break; +- if (how & FLUSH_INVALIDATE) { +- spin_unlock(&nfsi->req_lock); +- nfs_cancel_commit_list(&head); +- spin_lock(&nfsi->req_lock); +- continue; +- } +- pages += nfs_scan_commit(inode, &head, 0, 0); + spin_unlock(&nfsi->req_lock); + ret = nfs_commit_list(inode, &head, how); + spin_lock(&nfsi->req_lock); +@@ -1545,7 +1512,7 @@ int nfs_sync_inode_wait(struct inode *in + return ret; + } + +-int __init nfs_init_writepagecache(void) ++int nfs_init_writepagecache(void) + { + nfs_wdata_cachep = kmem_cache_create("nfs_write_data", + sizeof(struct nfs_write_data), +@@ -1567,7 +1534,7 @@ int __init nfs_init_writepagecache(void) + return 0; + } + +-void __exit nfs_destroy_writepagecache(void) ++void nfs_destroy_writepagecache(void) + { + mempool_destroy(nfs_commit_mempool); + mempool_destroy(nfs_wdata_mempool); +diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c +index 4424037..3eec300 100644 +--- a/fs/nfsd/export.c ++++ b/fs/nfsd/export.c +@@ -319,25 +319,12 @@ svc_expkey_update(struct svc_expkey *new + + static struct cache_head *export_table[EXPORT_HASHMAX]; + +-static void nfsd4_fslocs_free(struct nfsd4_fs_locations *fsloc) +-{ +- int i; +- +- for (i = 0; i < fsloc->locations_count; i++) { +- kfree(fsloc->locations[i].path); +- kfree(fsloc->locations[i].hosts); +- } +- kfree(fsloc->locations); +-} +- + static void svc_export_put(struct kref *ref) + { + struct svc_export *exp = container_of(ref, struct svc_export, h.ref); + dput(exp->ex_dentry); + mntput(exp->ex_mnt); + auth_domain_put(exp->ex_client); +- kfree(exp->ex_path); +- nfsd4_fslocs_free(&exp->ex_fslocs); + kfree(exp); + } + +@@ -399,67 +386,6 @@ static int check_export(struct inode *in + + } + +-#ifdef CONFIG_NFSD_V4 +- +-static int +-fsloc_parse(char **mesg, char *buf, struct nfsd4_fs_locations *fsloc) +-{ +- int len; +- int migrated, i, err; +- +- len = qword_get(mesg, buf, PAGE_SIZE); +- if (len != 5 || memcmp(buf, "fsloc", 5)) +- return 0; +- +- /* listsize */ +- err = get_int(mesg, &fsloc->locations_count); +- if (err) +- return err; +- if (fsloc->locations_count < 0) +- return -EINVAL; +- if (fsloc->locations_count == 0) +- return 0; +- +- err = -ENOMEM; +- fsloc->locations = kzalloc(fsloc->locations_count +- * sizeof(struct nfsd4_fs_location), GFP_KERNEL); +- if (!fsloc->locations) +- goto out_free_all; +- for (i=0; i < fsloc->locations_count; i++) { +- /* colon separated host list */ +- err = -EINVAL; +- len = qword_get(mesg, buf, PAGE_SIZE); +- if (len <= 0) +- goto out_free_all; +- err = -ENOMEM; +- fsloc->locations[i].hosts = kstrdup(buf, GFP_KERNEL); +- if (!fsloc->locations[i].hosts) +- goto out_free_all; +- err = -EINVAL; +- /* slash separated path component list */ +- len = qword_get(mesg, buf, PAGE_SIZE); +- if (len <= 0) +- goto out_free_all; +- err = -ENOMEM; +- fsloc->locations[i].path = kstrdup(buf, GFP_KERNEL); +- if (!fsloc->locations[i].path) +- goto out_free_all; +- } +- /* migrated */ +- err = get_int(mesg, &migrated); +- if (err) +- goto out_free_all; +- fsloc->migrated = migrated; +- return 0; +-out_free_all: +- nfsd4_fslocs_free(fsloc); +- return err; +-} +- +-#else /* CONFIG_NFSD_V4 */ +-static int fsloc_parse(char **, char *, struct svc_export *) { return 0; } +-#endif +- + static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen) + { + /* client path expiry [flags anonuid anongid fsid] */ +@@ -502,9 +428,6 @@ static int svc_export_parse(struct cache + exp.ex_client = dom; + exp.ex_mnt = nd.mnt; + exp.ex_dentry = nd.dentry; +- exp.ex_path = kstrdup(buf, GFP_KERNEL); +- if (!exp.ex_path) +- goto out; + + /* expiry */ + err = -EINVAL; +@@ -512,11 +435,6 @@ static int svc_export_parse(struct cache + if (exp.h.expiry_time == 0) + goto out; + +- /* fs locations */ +- exp.ex_fslocs.locations = NULL; +- exp.ex_fslocs.locations_count = 0; +- exp.ex_fslocs.migrated = 0; +- + /* flags */ + err = get_int(&mesg, &an_int); + if (err == -ENOENT) +@@ -542,10 +460,6 @@ static int svc_export_parse(struct cache + + err = check_export(nd.dentry->d_inode, exp.ex_flags); + if (err) goto out; +- +- err = fsloc_parse(&mesg, buf, &exp.ex_fslocs); +- if (err) +- goto out; + } + + expp = svc_export_lookup(&exp); +@@ -559,7 +473,6 @@ static int svc_export_parse(struct cache + else + exp_put(expp); + out: +- kfree(exp.ex_path); + if (nd.dentry) + path_release(&nd); + out_no_path: +@@ -569,8 +482,7 @@ static int svc_export_parse(struct cache + return err; + } + +-static void exp_flags(struct seq_file *m, int flag, int fsid, +- uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fslocs); ++static void exp_flags(struct seq_file *m, int flag, int fsid, uid_t anonu, uid_t anong); + + static int svc_export_show(struct seq_file *m, + struct cache_detail *cd, +@@ -589,8 +501,8 @@ static int svc_export_show(struct seq_fi + seq_putc(m, '('); + if (test_bit(CACHE_VALID, &h->flags) && + !test_bit(CACHE_NEGATIVE, &h->flags)) +- exp_flags(m, exp->ex_flags, exp->ex_fsid, +- exp->ex_anon_uid, exp->ex_anon_gid, &exp->ex_fslocs); ++ exp_flags(m, exp->ex_flags, exp->ex_fsid, ++ exp->ex_anon_uid, exp->ex_anon_gid); + seq_puts(m, ")\n"); + return 0; + } +@@ -612,10 +524,6 @@ static void svc_export_init(struct cache + new->ex_client = item->ex_client; + new->ex_dentry = dget(item->ex_dentry); + new->ex_mnt = mntget(item->ex_mnt); +- new->ex_path = NULL; +- new->ex_fslocs.locations = NULL; +- new->ex_fslocs.locations_count = 0; +- new->ex_fslocs.migrated = 0; + } + + static void export_update(struct cache_head *cnew, struct cache_head *citem) +@@ -627,14 +535,6 @@ static void export_update(struct cache_h + new->ex_anon_uid = item->ex_anon_uid; + new->ex_anon_gid = item->ex_anon_gid; + new->ex_fsid = item->ex_fsid; +- new->ex_path = item->ex_path; +- item->ex_path = NULL; +- new->ex_fslocs.locations = item->ex_fslocs.locations; +- item->ex_fslocs.locations = NULL; +- new->ex_fslocs.locations_count = item->ex_fslocs.locations_count; +- item->ex_fslocs.locations_count = 0; +- new->ex_fslocs.migrated = item->ex_fslocs.migrated; +- item->ex_fslocs.migrated = 0; + } + + static struct cache_head *svc_export_alloc(void) +@@ -1256,8 +1156,7 @@ static struct flags { + { 0, {"", ""}} + }; + +-static void exp_flags(struct seq_file *m, int flag, int fsid, +- uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fsloc) ++static void exp_flags(struct seq_file *m, int flag, int fsid, uid_t anonu, uid_t anong) + { + int first = 0; + struct flags *flg; +@@ -1273,16 +1172,6 @@ static void exp_flags(struct seq_file *m + seq_printf(m, "%sanonuid=%d", first++?",":"", anonu); + if (anong != (gid_t)-2 && anong != (0x10000-2)) + seq_printf(m, "%sanongid=%d", first++?",":"", anong); +- if (fsloc && fsloc->locations_count > 0) { +- char *loctype = (fsloc->migrated) ? "refer" : "replicas"; +- int i; +- +- seq_printf(m, "%s%s=", first++?",":"", loctype); +- seq_printf(m, "%s@%s", fsloc->locations[0].path, fsloc->locations[0].hosts); +- for (i = 1; i < fsloc->locations_count; i++) { +- seq_printf(m, ",%s@%s", fsloc->locations[i].path, fsloc->locations[i].hosts); +- } +- } + } + + static int e_show(struct seq_file *m, void *p) +diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c +index 0b6411a..b0e095e 100644 +--- a/fs/nfsd/nfs4proc.c ++++ b/fs/nfsd/nfs4proc.c +@@ -54,7 +54,6 @@ + #include + #include + #include +-#include + + #define NFSDDBG_FACILITY NFSDDBG_PROC + +@@ -722,13 +721,6 @@ nfsd4_proc_null(struct svc_rqst *rqstp, + return nfs_ok; + } + +-static inline void nfsd4_increment_op_stats(u32 opnum) +-{ +- u32 i = opnum - OP_ACCESS; +- +- if (i < NFS4_NUMOPS) +- nfsdstats.nfs4_opcount[i]++; +-} + + /* + * COMPOUND call. +@@ -804,29 +796,13 @@ nfsd4_proc_compound(struct svc_rqst *rqs + * SETCLIENTID_CONFIRM, PUTFH and PUTROOTFH + * require a valid current filehandle + */ +- if (!current_fh->fh_dentry) { +- if (!((op->opnum == OP_PUTFH) || +- (op->opnum == OP_PUTROOTFH) || +- (op->opnum == OP_SETCLIENTID) || +- (op->opnum == OP_SETCLIENTID_CONFIRM) || +- (op->opnum == OP_RENEW) || +- (op->opnum == OP_RESTOREFH) || +- (op->opnum == OP_RELEASE_LOCKOWNER))) { +- op->status = nfserr_nofilehandle; +- goto encode_op; +- } +- } +- /* Check must be done at start of each operation, except +- * for GETATTR and ops not listed as returning NFS4ERR_MOVED +- */ +- else if (current_fh->fh_export->ex_fslocs.migrated && +- !((op->opnum == OP_GETATTR) || +- (op->opnum == OP_PUTROOTFH) || +- (op->opnum == OP_PUTPUBFH) || +- (op->opnum == OP_RENEW) || +- (op->opnum == OP_SETCLIENTID) || +- (op->opnum == OP_RELEASE_LOCKOWNER))) { +- op->status = nfserr_moved; ++ if ((!current_fh->fh_dentry) && ++ !((op->opnum == OP_PUTFH) || (op->opnum == OP_PUTROOTFH) || ++ (op->opnum == OP_SETCLIENTID) || ++ (op->opnum == OP_SETCLIENTID_CONFIRM) || ++ (op->opnum == OP_RENEW) || (op->opnum == OP_RESTOREFH) || ++ (op->opnum == OP_RELEASE_LOCKOWNER))) { ++ op->status = nfserr_nofilehandle; + goto encode_op; + } + switch (op->opnum) { +@@ -954,8 +930,6 @@ encode_op: + /* XXX Ugh, we need to get rid of this kind of special case: */ + if (op->opnum == OP_READ && op->u.read.rd_filp) + fput(op->u.read.rd_filp); +- +- nfsd4_increment_op_stats(op->opnum); + } + + out: +diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c +index 6330f02..96c7578 100644 +--- a/fs/nfsd/nfs4state.c ++++ b/fs/nfsd/nfs4state.c +@@ -1238,15 +1238,8 @@ find_file(struct inode *ino) + return NULL; + } + +-static int access_valid(u32 x) +-{ +- return (x > 0 && x < 4); +-} +- +-static int deny_valid(u32 x) +-{ +- return (x >= 0 && x < 5); +-} ++#define TEST_ACCESS(x) ((x > 0 || x < 4)?1:0) ++#define TEST_DENY(x) ((x >= 0 || x < 5)?1:0) + + static void + set_access(unsigned int *access, unsigned long bmap) { +@@ -1753,8 +1746,7 @@ nfsd4_process_open2(struct svc_rqst *rqs + int status; + + status = nfserr_inval; +- if (!access_valid(open->op_share_access) +- || !deny_valid(open->op_share_deny)) ++ if (!TEST_ACCESS(open->op_share_access) || !TEST_DENY(open->op_share_deny)) + goto out; + /* + * Lookup file; if found, lookup stateid and check open request, +@@ -1791,10 +1783,10 @@ nfsd4_process_open2(struct svc_rqst *rqs + } else { + /* Stateid was not found, this is a new OPEN */ + int flags = 0; +- if (open->op_share_access & NFS4_SHARE_ACCESS_READ) +- flags |= MAY_READ; + if (open->op_share_access & NFS4_SHARE_ACCESS_WRITE) +- flags |= MAY_WRITE; ++ flags = MAY_WRITE; ++ else ++ flags = MAY_READ; + status = nfs4_new_open(rqstp, &stp, dp, current_fh, flags); + if (status) + goto out; +@@ -2079,12 +2071,16 @@ nfs4_preprocess_stateid_op(struct svc_fh + if (!stateid->si_fileid) { /* delegation stateid */ + if(!(dp = find_delegation_stateid(ino, stateid))) { + dprintk("NFSD: delegation stateid not found\n"); ++ if (nfs4_in_grace()) ++ status = nfserr_grace; + goto out; + } + stidp = &dp->dl_stateid; + } else { /* open or lock stateid */ + if (!(stp = find_stateid(stateid, flags))) { + dprintk("NFSD: open or lock stateid not found\n"); ++ if (nfs4_in_grace()) ++ status = nfserr_grace; + goto out; + } + if ((flags & CHECK_FH) && nfs4_check_fh(current_fh, stp)) +@@ -2257,9 +2253,8 @@ nfsd4_open_confirm(struct svc_rqst *rqst + (int)current_fh->fh_dentry->d_name.len, + current_fh->fh_dentry->d_name.name); + +- status = fh_verify(rqstp, current_fh, S_IFREG, 0); +- if (status) +- return status; ++ if ((status = fh_verify(rqstp, current_fh, S_IFREG, 0))) ++ goto out; + + nfs4_lock_state(); + +@@ -2326,8 +2321,7 @@ nfsd4_open_downgrade(struct svc_rqst *rq + (int)current_fh->fh_dentry->d_name.len, + current_fh->fh_dentry->d_name.name); + +- if (!access_valid(od->od_share_access) +- || !deny_valid(od->od_share_deny)) ++ if (!TEST_ACCESS(od->od_share_access) || !TEST_DENY(od->od_share_deny)) + return nfserr_inval; + + nfs4_lock_state(); +diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c +index b0c5fd9..de3998f 100644 +--- a/fs/nfsd/nfs4xdr.c ++++ b/fs/nfsd/nfs4xdr.c +@@ -60,14 +60,6 @@ + + #define NFSDDBG_FACILITY NFSDDBG_XDR + +-/* +- * As per referral draft, the fsid for a referral MUST be different from the fsid of the containing +- * directory in order to indicate to the client that a filesystem boundary is present +- * We use a fixed fsid for a referral +- */ +-#define NFS4_REFERRAL_FSID_MAJOR 0x8000000ULL +-#define NFS4_REFERRAL_FSID_MINOR 0x8000000ULL +- + static int + check_filename(char *str, int len, int err) + { +@@ -1232,119 +1224,6 @@ nfsd4_decode_compound(struct nfsd4_compo + stateowner->so_replay.rp_buflen); \ + } } while (0); + +-/* Encode as an array of strings the string given with components +- * seperated @sep. +- */ +-static int nfsd4_encode_components(char sep, char *components, +- u32 **pp, int *buflen) +-{ +- u32 *p = *pp; +- u32 *countp = p; +- int strlen, count=0; +- char *str, *end; +- +- dprintk("nfsd4_encode_components(%s)\n", components); +- if ((*buflen -= 4) < 0) +- return nfserr_resource; +- WRITE32(0); /* We will fill this in with @count later */ +- end = str = components; +- while (*end) { +- for (; *end && (*end != sep); end++) +- ; /* Point to end of component */ +- strlen = end - str; +- if (strlen) { +- if ((*buflen -= ((XDR_QUADLEN(strlen) << 2) + 4)) < 0) +- return nfserr_resource; +- WRITE32(strlen); +- WRITEMEM(str, strlen); +- count++; +- } +- else +- end++; +- str = end; +- } +- *pp = p; +- p = countp; +- WRITE32(count); +- return 0; +-} +- +-/* +- * encode a location element of a fs_locations structure +- */ +-static int nfsd4_encode_fs_location4(struct nfsd4_fs_location *location, +- u32 **pp, int *buflen) +-{ +- int status; +- u32 *p = *pp; +- +- status = nfsd4_encode_components(':', location->hosts, &p, buflen); +- if (status) +- return status; +- status = nfsd4_encode_components('/', location->path, &p, buflen); +- if (status) +- return status; +- *pp = p; +- return 0; +-} +- +-/* +- * Return the path to an export point in the pseudo filesystem namespace +- * Returned string is safe to use as long as the caller holds a reference +- * to @exp. +- */ +-static char *nfsd4_path(struct svc_rqst *rqstp, struct svc_export *exp) +-{ +- struct svc_fh tmp_fh; +- char *path, *rootpath; +- int stat; +- +- fh_init(&tmp_fh, NFS4_FHSIZE); +- stat = exp_pseudoroot(rqstp->rq_client, &tmp_fh, &rqstp->rq_chandle); +- if (stat) +- return ERR_PTR(stat); +- rootpath = tmp_fh.fh_export->ex_path; +- +- path = exp->ex_path; +- +- if (strncmp(path, rootpath, strlen(rootpath))) { +- printk("nfsd: fs_locations failed;" +- "%s is not contained in %s\n", path, rootpath); +- return ERR_PTR(-EOPNOTSUPP); +- } +- +- return path + strlen(rootpath); +-} +- +-/* +- * encode a fs_locations structure +- */ +-static int nfsd4_encode_fs_locations(struct svc_rqst *rqstp, +- struct svc_export *exp, +- u32 **pp, int *buflen) +-{ +- int status, i; +- u32 *p = *pp; +- struct nfsd4_fs_locations *fslocs = &exp->ex_fslocs; +- char *root = nfsd4_path(rqstp, exp); +- +- if (IS_ERR(root)) +- return PTR_ERR(root); +- status = nfsd4_encode_components('/', root, &p, buflen); +- if (status) +- return status; +- if ((*buflen -= 4) < 0) +- return nfserr_resource; +- WRITE32(fslocs->locations_count); +- for (i=0; ilocations_count; i++) { +- status = nfsd4_encode_fs_location4(&fslocs->locations[i], +- &p, buflen); +- if (status) +- return status; +- } +- *pp = p; +- return 0; +-} + + static u32 nfs4_ftypes[16] = { + NF4BAD, NF4FIFO, NF4CHR, NF4BAD, +@@ -1394,25 +1273,6 @@ nfsd4_encode_aclname(struct svc_rqst *rq + return nfsd4_encode_name(rqstp, whotype, id, group, p, buflen); + } + +-#define WORD0_ABSENT_FS_ATTRS (FATTR4_WORD0_FS_LOCATIONS | FATTR4_WORD0_FSID | \ +- FATTR4_WORD0_RDATTR_ERROR) +-#define WORD1_ABSENT_FS_ATTRS FATTR4_WORD1_MOUNTED_ON_FILEID +- +-static int fattr_handle_absent_fs(u32 *bmval0, u32 *bmval1, u32 *rdattr_err) +-{ +- /* As per referral draft: */ +- if (*bmval0 & ~WORD0_ABSENT_FS_ATTRS || +- *bmval1 & ~WORD1_ABSENT_FS_ATTRS) { +- if (*bmval0 & FATTR4_WORD0_RDATTR_ERROR || +- *bmval0 & FATTR4_WORD0_FS_LOCATIONS) +- *rdattr_err = NFSERR_MOVED; +- else +- return nfserr_moved; +- } +- *bmval0 &= WORD0_ABSENT_FS_ATTRS; +- *bmval1 &= WORD1_ABSENT_FS_ATTRS; +- return 0; +-} + + /* + * Note: @fhp can be NULL; in this case, we might have to compose the filehandle +@@ -1435,7 +1295,6 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + u32 *attrlenp; + u32 dummy; + u64 dummy64; +- u32 rdattr_err = 0; + u32 *p = buffer; + int status; + int aclsupport = 0; +@@ -1445,12 +1304,6 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + BUG_ON(bmval0 & ~NFSD_SUPPORTED_ATTRS_WORD0); + BUG_ON(bmval1 & ~NFSD_SUPPORTED_ATTRS_WORD1); + +- if (exp->ex_fslocs.migrated) { +- status = fattr_handle_absent_fs(&bmval0, &bmval1, &rdattr_err); +- if (status) +- goto out; +- } +- + status = vfs_getattr(exp->ex_mnt, dentry, &stat); + if (status) + goto out_nfserr; +@@ -1482,11 +1335,6 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + goto out_nfserr; + } + } +- if (bmval0 & FATTR4_WORD0_FS_LOCATIONS) { +- if (exp->ex_fslocs.locations == NULL) { +- bmval0 &= ~FATTR4_WORD0_FS_LOCATIONS; +- } +- } + if ((buflen -= 16) < 0) + goto out_resource; + +@@ -1496,15 +1344,12 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + attrlenp = p++; /* to be backfilled later */ + + if (bmval0 & FATTR4_WORD0_SUPPORTED_ATTRS) { +- u32 word0 = NFSD_SUPPORTED_ATTRS_WORD0; + if ((buflen -= 12) < 0) + goto out_resource; +- if (!aclsupport) +- word0 &= ~FATTR4_WORD0_ACL; +- if (!exp->ex_fslocs.locations) +- word0 &= ~FATTR4_WORD0_FS_LOCATIONS; + WRITE32(2); +- WRITE32(word0); ++ WRITE32(aclsupport ? ++ NFSD_SUPPORTED_ATTRS_WORD0 : ++ NFSD_SUPPORTED_ATTRS_WORD0 & ~FATTR4_WORD0_ACL); + WRITE32(NFSD_SUPPORTED_ATTRS_WORD1); + } + if (bmval0 & FATTR4_WORD0_TYPE) { +@@ -1558,10 +1403,7 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + if (bmval0 & FATTR4_WORD0_FSID) { + if ((buflen -= 16) < 0) + goto out_resource; +- if (exp->ex_fslocs.migrated) { +- WRITE64(NFS4_REFERRAL_FSID_MAJOR); +- WRITE64(NFS4_REFERRAL_FSID_MINOR); +- } else if (is_fsid(fhp, rqstp->rq_reffh)) { ++ if (is_fsid(fhp, rqstp->rq_reffh)) { + WRITE64((u64)exp->ex_fsid); + WRITE64((u64)0); + } else { +@@ -1584,7 +1426,7 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + if (bmval0 & FATTR4_WORD0_RDATTR_ERROR) { + if ((buflen -= 4) < 0) + goto out_resource; +- WRITE32(rdattr_err); ++ WRITE32(0); + } + if (bmval0 & FATTR4_WORD0_ACL) { + struct nfs4_ace *ace; +@@ -1672,13 +1514,6 @@ out_acl: + goto out_resource; + WRITE64((u64) statfs.f_files); + } +- if (bmval0 & FATTR4_WORD0_FS_LOCATIONS) { +- status = nfsd4_encode_fs_locations(rqstp, exp, &p, &buflen); +- if (status == nfserr_resource) +- goto out_resource; +- if (status) +- goto out; +- } + if (bmval0 & FATTR4_WORD0_HOMOGENEOUS) { + if ((buflen -= 4) < 0) + goto out_resource; +@@ -2011,6 +1846,7 @@ nfsd4_encode_getattr(struct nfsd4_compou + nfserr = nfsd4_encode_fattr(fhp, fhp->fh_export, fhp->fh_dentry, + resp->p, &buflen, getattr->ga_bmval, + resp->rqstp); ++ + if (!nfserr) + resp->p += buflen; + return nfserr; +diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c +index 220479a..3f2ec2e 100644 +--- a/fs/nfsd/nfsfh.c ++++ b/fs/nfsd/nfsfh.c +@@ -187,6 +187,13 @@ fh_verify(struct svc_rqst *rqstp, struct + goto out; + } + ++ /* Set user creds for this exportpoint */ ++ error = nfsd_setuser(rqstp, exp); ++ if (error) { ++ error = nfserrno(error); ++ goto out; ++ } ++ + /* + * Look up the dentry using the NFS file handle. + */ +@@ -244,13 +251,6 @@ fh_verify(struct svc_rqst *rqstp, struct + } + cache_get(&exp->h); + +- /* Set user creds for this exportpoint; necessary even in the "just +- * checking" case because this may be a filehandle that was created by +- * fh_compose, and that is about to be used in another nfsv4 compound +- * operation */ +- error = nfsd_setuser(rqstp, exp); if (error) { error = nfserrno(error); +- goto out; } +- + error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type); + if (error) + goto out; +@@ -312,8 +312,8 @@ int + fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, struct svc_fh *ref_fh) + { + /* ref_fh is a reference file handle. +- * if it is non-null and for the same filesystem, then we should compose +- * a filehandle which is of the same version, where possible. ++ * if it is non-null, then we should compose a filehandle which is ++ * of the same version, where possible. + * Currently, that means that if ref_fh->fh_handle.fh_version == 0xca + * Then create a 32byte filehandle using nfs_fhbase_old + * +@@ -332,7 +332,7 @@ fh_compose(struct svc_fh *fhp, struct sv + parent->d_name.name, dentry->d_name.name, + (inode ? inode->i_ino : 0)); + +- if (ref_fh && ref_fh->fh_export == exp) { ++ if (ref_fh) { + ref_fh_version = ref_fh->fh_handle.fh_version; + if (ref_fh_version == 0xca) + ref_fh_fsid_type = 0; +diff --git a/fs/nfsd/stats.c b/fs/nfsd/stats.c +index eaa4df8..57265d5 100644 +--- a/fs/nfsd/stats.c ++++ b/fs/nfsd/stats.c +@@ -40,34 +40,6 @@ struct svc_stat nfsd_svcstats = { + .program = &nfsd_program, + }; + +-#ifdef CONFIG_NFSD_V4 +- +-static inline void nfsd4_show_opstats(struct seq_file *seq) +-{ +- int i; +- +- /* show count for individual nfsv4 operations */ +- seq_printf(seq,"proc4ops %u", NFS4_NUMOPS); +- for (i=0; ip_set) + file->f_ra = ra->p_ra; + +- if (file->f_op->sendfile && rqstp->rq_sendfile_ok) { ++ if (file->f_op->sendfile) { + svc_pushback_unused_pages(rqstp); + err = file->f_op->sendfile(file, &offset, *count, + nfsd_read_actor, rqstp); +@@ -1456,19 +1453,17 @@ nfsd_symlink(struct svc_rqst *rqstp, str + err = nfsd_sync_dir(dentry); + if (err) + err = nfserrno(err); ++ fh_unlock(fhp); + + cerr = fh_compose(resfhp, fhp->fh_export, dnew, fhp); + dput(dnew); + if (err==0) err = cerr; +- +-out_unlock: +- fh_unlock(fhp); + out: + return err; + + out_nfserr: + err = nfserrno(err); +- goto out_unlock; ++ goto out; + } + + /* +@@ -1522,15 +1517,14 @@ nfsd_link(struct svc_rqst *rqstp, struct + err = nfserrno(err); + } + +- dput(dnew); +-out_unlock: + fh_unlock(ffhp); ++ dput(dnew); + out: + return err; + + out_nfserr: + err = nfserrno(err); +- goto out_unlock; ++ goto out; + } + + /* +diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h +index aa4fe90..a8876bc 100644 +--- a/include/linux/lockd/lockd.h ++++ b/include/linux/lockd/lockd.h +@@ -49,12 +49,11 @@ struct nlm_host { + h_killed : 1, + h_monitored : 1; + wait_queue_head_t h_gracewait; /* wait while reclaiming */ +- struct rw_semaphore h_rwsem; /* Reboot recovery lock */ + u32 h_state; /* pseudo-state counter */ + u32 h_nsmstate; /* true remote NSM state */ + u32 h_pidcount; /* Pseudopids */ + atomic_t h_count; /* reference count */ +- struct mutex h_mutex; /* mutex for pmap binding */ ++ struct semaphore h_sema; /* mutex for pmap binding */ + unsigned long h_nextrebind; /* next portmap call */ + unsigned long h_expires; /* eligible for GC */ + struct list_head h_lockowners; /* Lockowners for the client */ +@@ -220,7 +219,6 @@ static __inline__ int + nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2) + { + return fl1->fl_pid == fl2->fl_pid +- && fl1->fl_owner == fl2->fl_owner + && fl1->fl_start == fl2->fl_start + && fl1->fl_end == fl2->fl_end + &&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK); +diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h +index 5f681d5..1059e6d 100644 +--- a/include/linux/nfs4.h ++++ b/include/linux/nfs4.h +@@ -384,7 +384,6 @@ enum { + NFSPROC4_CLNT_DELEGRETURN, + NFSPROC4_CLNT_GETACL, + NFSPROC4_CLNT_SETACL, +- NFSPROC4_CLNT_FS_LOCATIONS, + }; + + #endif +diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h +index c35b18a..7e079f8 100644 +--- a/include/linux/nfs_fs.h ++++ b/include/linux/nfs_fs.h +@@ -41,7 +41,6 @@ + #define FLUSH_LOWPRI 8 /* low priority background flush */ + #define FLUSH_HIGHPRI 16 /* high priority memory reclaim flush */ + #define FLUSH_NOCOMMIT 32 /* Don't send the NFSv3/v4 COMMIT */ +-#define FLUSH_INVALIDATE 64 /* Invalidate the page cache */ + + #ifdef __KERNEL__ + #include +@@ -50,6 +49,8 @@ + #include + #include + ++#include ++ + #include + #include + #include +@@ -59,9 +60,6 @@ + #include + #include + #include +- +-#include +- + #include + #include + +@@ -235,12 +233,8 @@ static inline int nfs_caches_unstable(st + + static inline void nfs_mark_for_revalidate(struct inode *inode) + { +- struct nfs_inode *nfsi = NFS_I(inode); +- + spin_lock(&inode->i_lock); +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS; +- if (S_ISDIR(inode->i_mode)) +- nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA; ++ NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; + spin_unlock(&inode->i_lock); + } + +@@ -302,7 +296,7 @@ extern int nfs_release(struct inode *, s + extern int nfs_attribute_timeout(struct inode *inode); + extern int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode); + extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *); +-extern int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); ++extern void nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); + extern int nfs_setattr(struct dentry *, struct iattr *); + extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr); + extern void nfs_begin_attr_update(struct inode *); +@@ -312,12 +306,6 @@ extern void nfs_end_data_update(struct i + extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); + extern void put_nfs_open_context(struct nfs_open_context *ctx); + extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); +-extern struct vfsmount *nfs_do_submount(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, +- struct nfs_fh *fh, +- struct nfs_fattr *fattr); +-extern struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, +- struct dentry *dentry); + + /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ + extern u32 root_nfs_parse_addr(char *name); /*__init*/ +@@ -404,15 +392,6 @@ extern void nfs_unregister_sysctl(void); + #endif + + /* +- * linux/fs/nfs/namespace.c +- */ +-extern struct list_head nfs_automount_list; +-extern struct inode_operations nfs_mountpoint_inode_operations; +-extern struct inode_operations nfs_referral_inode_operations; +-extern int nfs_mountpoint_expiry_timeout; +-extern void nfs_release_automount_timer(void); +- +-/* + * linux/fs/nfs/unlink.c + */ + extern int nfs_async_unlink(struct dentry *); +diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h +index 6b4a13c..65dec21 100644 +--- a/include/linux/nfs_fs_sb.h ++++ b/include/linux/nfs_fs_sb.h +@@ -35,7 +35,6 @@ struct nfs_server { + char * hostname; /* remote hostname */ + struct nfs_fh fh; + struct sockaddr_in addr; +- struct nfs_fsid fsid; + unsigned long mount_time; /* when this fs was mounted */ + #ifdef CONFIG_NFS_V4 + /* Our own IP address, as a null-terminated string. +diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h +index 1f7bd28..66e2ed6 100644 +--- a/include/linux/nfs_page.h ++++ b/include/linux/nfs_page.h +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -62,8 +63,8 @@ extern void nfs_release_request(struct n + + extern int nfs_scan_lock_dirty(struct nfs_inode *nfsi, struct list_head *dst, + unsigned long idx_start, unsigned int npages); +-extern int nfs_scan_list(struct nfs_inode *nfsi, struct list_head *head, struct list_head *dst, +- unsigned long idx_start, unsigned int npages); ++extern int nfs_scan_list(struct list_head *, struct list_head *, ++ unsigned long, unsigned int); + extern int nfs_coalesce_requests(struct list_head *, struct list_head *, + unsigned int); + extern int nfs_wait_on_request(struct nfs_page *); +diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h +index a65d2c7..7fafc4c 100644 +--- a/include/linux/nfs_xdr.h ++++ b/include/linux/nfs_xdr.h +@@ -14,19 +14,11 @@ + #define NFS_DEF_FILE_IO_SIZE (4096U) + #define NFS_MIN_FILE_IO_SIZE (1024U) + +-struct nfs_fsid { +- uint64_t major; +- uint64_t minor; ++struct nfs4_fsid { ++ __u64 major; ++ __u64 minor; + }; + +-/* +- * Helper for checking equality between 2 fsids. +- */ +-static inline int nfs_fsid_equal(const struct nfs_fsid *a, const struct nfs_fsid *b) +-{ +- return a->major == b->major && a->minor == b->minor; +-} +- + struct nfs_fattr { + unsigned short valid; /* which fields are valid */ + __u64 pre_size; /* pre_op_attr.size */ +@@ -48,7 +40,10 @@ struct nfs_fattr { + } nfs3; + } du; + dev_t rdev; +- struct nfs_fsid fsid; ++ union { ++ __u64 nfs3; /* also nfs2 */ ++ struct nfs4_fsid nfs4; ++ } fsid_u; + __u64 fileid; + struct timespec atime; + struct timespec mtime; +@@ -62,8 +57,8 @@ struct nfs_fattr { + #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ + #define NFS_ATTR_FATTR 0x0002 /* post-op attributes */ + #define NFS_ATTR_FATTR_V3 0x0004 /* NFSv3 attributes */ +-#define NFS_ATTR_FATTR_V4 0x0008 /* NFSv4 change attribute */ +-#define NFS_ATTR_FATTR_V4_REFERRAL 0x0010 /* NFSv4 referral */ ++#define NFS_ATTR_FATTR_V4 0x0008 ++#define NFS_ATTR_PRE_CHANGE 0x0010 + + /* + * Info on the file system +@@ -659,7 +654,7 @@ struct nfs4_rename_res { + struct nfs4_setclientid { + const nfs4_verifier * sc_verifier; /* request */ + unsigned int sc_name_len; +- char sc_name[48]; /* request */ ++ char sc_name[32]; /* request */ + u32 sc_prog; /* request */ + unsigned int sc_netid_len; + char sc_netid[4]; /* request */ +@@ -680,40 +675,6 @@ struct nfs4_server_caps_res { + u32 has_symlinks; + }; + +-struct nfs4_string { +- unsigned int len; +- char *data; +-}; +- +-#define NFS4_PATHNAME_MAXCOMPONENTS 512 +-struct nfs4_pathname { +- unsigned int ncomponents; +- struct nfs4_string components[NFS4_PATHNAME_MAXCOMPONENTS]; +-}; +- +-#define NFS4_FS_LOCATION_MAXSERVERS 10 +-struct nfs4_fs_location { +- unsigned int nservers; +- struct nfs4_string servers[NFS4_FS_LOCATION_MAXSERVERS]; +- struct nfs4_pathname rootpath; +-}; +- +-#define NFS4_FS_LOCATIONS_MAXENTRIES 10 +-struct nfs4_fs_locations { +- struct nfs_fattr fattr; +- const struct nfs_server *server; +- struct nfs4_pathname fs_path; +- int nlocations; +- struct nfs4_fs_location locations[NFS4_FS_LOCATIONS_MAXENTRIES]; +-}; +- +-struct nfs4_fs_locations_arg { +- const struct nfs_fh *dir_fh; +- const struct qstr *name; +- struct page *page; +- const u32 *bitmask; +-}; +- + #endif /* CONFIG_NFS_V4 */ + + struct nfs_page; +@@ -734,7 +695,7 @@ struct nfs_read_data { + #ifdef CONFIG_NFS_V4 + unsigned long timestamp; /* For lease renewal */ + #endif +- struct page *page_array[NFS_PAGEVEC_SIZE]; ++ struct page *page_array[NFS_PAGEVEC_SIZE + 1]; + }; + + struct nfs_write_data { +@@ -752,7 +713,7 @@ struct nfs_write_data { + #ifdef CONFIG_NFS_V4 + unsigned long timestamp; /* For lease renewal */ + #endif +- struct page *page_array[NFS_PAGEVEC_SIZE]; ++ struct page *page_array[NFS_PAGEVEC_SIZE + 1]; + }; + + struct nfs_access_entry; +diff --git a/include/linux/nfsd/const.h b/include/linux/nfsd/const.h +index 830f0c2..b75bb1b 100644 +--- a/include/linux/nfsd/const.h ++++ b/include/linux/nfsd/const.h +@@ -20,9 +20,9 @@ + #define NFSSVC_MAXVERS 3 + + /* +- * Maximum blocksize supported by daemon currently at 64K ++ * Maximum blocksize supported by daemon currently at 32K + */ +-#define NFSSVC_MAXBLKSIZE (64*1024) ++#define NFSSVC_MAXBLKSIZE (32*1024) + + #ifdef __KERNEL__ + +diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h +index 101fb4c..d2a8abb 100644 +--- a/include/linux/nfsd/export.h ++++ b/include/linux/nfsd/export.h +@@ -45,33 +45,15 @@ + + #ifdef __KERNEL__ + +-/* +- * FS Locations +- */ +-struct nfsd4_fs_location { +- char *hosts; /* colon separated list of hosts */ +- char *path; /* slash separated list of path components */ +-}; +- +-struct nfsd4_fs_locations { +- uint32_t locations_count; +- struct nfsd4_fs_location *locations; +-/* If we're not actually serving this data ourselves (only providing a +- * list of replicas that do serve it) then we set "migrated": */ +- int migrated; +-}; +- + struct svc_export { + struct cache_head h; + struct auth_domain * ex_client; + int ex_flags; + struct vfsmount * ex_mnt; + struct dentry * ex_dentry; +- char * ex_path; + uid_t ex_anon_uid; + gid_t ex_anon_gid; + int ex_fsid; +- struct nfsd4_fs_locations ex_fslocs; + }; + + /* an "export key" (expkey) maps a filehandlefragement to an +diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h +index 307852d..2dcad29 100644 +--- a/include/linux/nfsd/nfsd.h ++++ b/include/linux/nfsd/nfsd.h +@@ -210,7 +210,6 @@ void nfsd_lockd_shutdown(void); + #define nfserr_clid_inuse __constant_htonl(NFSERR_CLID_INUSE) + #define nfserr_stale_clientid __constant_htonl(NFSERR_STALE_CLIENTID) + #define nfserr_resource __constant_htonl(NFSERR_RESOURCE) +-#define nfserr_moved __constant_htonl(NFSERR_MOVED) + #define nfserr_nofilehandle __constant_htonl(NFSERR_NOFILEHANDLE) + #define nfserr_minor_vers_mismatch __constant_htonl(NFSERR_MINOR_VERS_MISMATCH) + #define nfserr_share_denied __constant_htonl(NFSERR_SHARE_DENIED) +@@ -287,6 +286,7 @@ static inline int is_fsid(struct svc_fh + /* + * The following attributes are currently not supported by the NFSv4 server: + * ARCHIVE (deprecated anyway) ++ * FS_LOCATIONS (will be supported eventually) + * HIDDEN (unlikely to be supported any time soon) + * MIMETYPE (unlikely to be supported any time soon) + * QUOTA_* (will be supported in a forthcoming patch) +@@ -302,7 +302,7 @@ static inline int is_fsid(struct svc_fh + | FATTR4_WORD0_ACLSUPPORT | FATTR4_WORD0_CANSETTIME | FATTR4_WORD0_CASE_INSENSITIVE \ + | FATTR4_WORD0_CASE_PRESERVING | FATTR4_WORD0_CHOWN_RESTRICTED \ + | FATTR4_WORD0_FILEHANDLE | FATTR4_WORD0_FILEID | FATTR4_WORD0_FILES_AVAIL \ +- | FATTR4_WORD0_FILES_FREE | FATTR4_WORD0_FILES_TOTAL | FATTR4_WORD0_FS_LOCATIONS | FATTR4_WORD0_HOMOGENEOUS \ ++ | FATTR4_WORD0_FILES_FREE | FATTR4_WORD0_FILES_TOTAL | FATTR4_WORD0_HOMOGENEOUS \ + | FATTR4_WORD0_MAXFILESIZE | FATTR4_WORD0_MAXLINK | FATTR4_WORD0_MAXNAME \ + | FATTR4_WORD0_MAXREAD | FATTR4_WORD0_MAXWRITE | FATTR4_WORD0_ACL) + +diff --git a/include/linux/nfsd/stats.h b/include/linux/nfsd/stats.h +index a719a07..b6f1e0c 100644 +--- a/include/linux/nfsd/stats.h ++++ b/include/linux/nfsd/stats.h +@@ -9,8 +9,6 @@ + #ifndef LINUX_NFSD_STATS_H + #define LINUX_NFSD_STATS_H + +-#define NFS4_NUMOPS 37 +- + struct nfsd_stats { + unsigned int rchits; /* repcache hits */ + unsigned int rcmisses; /* repcache hits */ +@@ -29,9 +27,6 @@ struct nfsd_stats { + unsigned int ra_size; /* size of ra cache */ + unsigned int ra_depth[11]; /* number of times ra entry was found that deep + * in the cache (10percentiles). [10] = not found */ +-#ifdef CONFIG_NFSD_V4 +- unsigned int nfs4_opcount[NFS4_NUMOPS]; /* count of individual nfsv4 operations */ +-#endif + }; + + /* thread usage wraps very million seconds (approx one fortnight) */ +diff --git a/include/linux/sunrpc/gss_spkm3.h b/include/linux/sunrpc/gss_spkm3.h +index 998fbea..336e218 100644 +--- a/include/linux/sunrpc/gss_spkm3.h ++++ b/include/linux/sunrpc/gss_spkm3.h +@@ -12,27 +12,27 @@ + #include + + struct spkm3_ctx { +- struct xdr_netobj ctx_id; /* per message context id */ +- int endtime; /* endtime of the context */ ++ struct xdr_netobj ctx_id; /* per message context id */ ++ int qop; /* negotiated qop */ + struct xdr_netobj mech_used; + unsigned int ret_flags ; +- struct xdr_netobj conf_alg; +- struct xdr_netobj derived_conf_key; +- struct xdr_netobj intg_alg; +- struct xdr_netobj derived_integ_key; ++ unsigned int req_flags ; ++ struct xdr_netobj share_key; ++ int conf_alg; ++ struct crypto_tfm* derived_conf_key; ++ int intg_alg; ++ struct crypto_tfm* derived_integ_key; ++ int keyestb_alg; /* alg used to get share_key */ ++ int owf_alg; /* one way function */ + }; + +-/* OIDs declarations for K-ALG, I-ALG, C-ALG, and OWF-ALG */ +-static const struct xdr_netobj dh_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x03\x01"}; +-static const struct xdr_netobj hmac_md5_oid = { 8, "\x2B\x06\x01\x05\x05\x08\x01\x01"}; +-static const struct xdr_netobj null_mac_oid = { 6, "\x2B\x06\x01\x05\x03\x03"}; +-static const struct xdr_netobj md5_rsa_encryption_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x04"}; +-static const struct xdr_netobj sha1_rsa_encryption_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05"}; +- +-static const struct xdr_netobj cast5_cbc_oid = {9, "\x2A\x86\x48\x86\xF6\x7D\x07\x42\x0A"}; +-static const struct xdr_netobj des_cbc_oid = {5, "\x2B\x0E\x03\x02\x07"}; +- +-static const struct xdr_netobj sha1_oid = {5, "\x2B\x0E\x03\x02\x1A"}; ++/* from openssl/objects.h */ ++/* XXX need SEAL_ALG_NONE */ ++#define NID_md5 4 ++#define NID_dhKeyAgreement 28 ++#define NID_des_cbc 31 ++#define NID_sha1 64 ++#define NID_cast5_cbc 108 + + /* SPKM InnerContext Token types */ + +@@ -46,12 +46,11 @@ u32 spkm3_make_token(struct spkm3_ctx *c + u32 spkm3_read_token(struct spkm3_ctx *ctx, struct xdr_netobj *read_token, struct xdr_buf *message_buffer, int toktype); + + #define CKSUMTYPE_RSA_MD5 0x0007 +-#define CKSUMTYPE_HMAC_MD5 0x0008 + +-s32 make_spkm3_checksum(s32 cksumtype, struct xdr_netobj *key, char *header, int hdrlen, struct xdr_buf *body, ++s32 make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, + int body_offset, struct xdr_netobj *cksum); + void asn1_bitstring_len(struct xdr_netobj *in, int *enclen, int *zerobits); +-int decode_asn1_bitstring(struct xdr_netobj *out, char *in, int enclen, ++int decode_asn1_bitstring(struct xdr_netobj *out, char *in, int enclen, + int explen); + void spkm3_mic_header(unsigned char **hdrbuf, unsigned int *hdrlen, + unsigned char *ctxhdr, int elen, int zbit); +diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h +index 7b27c09..5035643 100644 +--- a/include/linux/sunrpc/svc.h ++++ b/include/linux/sunrpc/svc.h +@@ -159,9 +159,7 @@ struct svc_rqst { + * determine what device number + * to report (real or virtual) + */ +- int rq_sendfile_ok; /* turned off in gss privacy +- * to prevent encrypting page +- * cache pages */ ++ + wait_queue_head_t rq_wait; /* synchronization */ + }; + +diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h +index e6d3d34..84c35d4 100644 +--- a/include/linux/sunrpc/xdr.h ++++ b/include/linux/sunrpc/xdr.h +@@ -194,7 +194,6 @@ extern void xdr_write_pages(struct xdr_s + extern void xdr_init_decode(struct xdr_stream *xdr, struct xdr_buf *buf, uint32_t *p); + extern uint32_t *xdr_inline_decode(struct xdr_stream *xdr, size_t nbytes); + extern void xdr_read_pages(struct xdr_stream *xdr, unsigned int len); +-extern void xdr_enter_page(struct xdr_stream *xdr, unsigned int len); + + #endif /* __KERNEL__ */ + +diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c +index 552b3ef..519ebc1 100644 +--- a/net/sunrpc/auth_gss/auth_gss.c ++++ b/net/sunrpc/auth_gss/auth_gss.c +@@ -68,7 +68,7 @@ static struct rpc_credops gss_credops; + #define GSS_CRED_SLACK 1024 /* XXX: unused */ + /* length of a krb5 verifier (48), plus data added before arguments when + * using integrity (two 4-byte integers): */ +-#define GSS_VERF_SLACK 100 ++#define GSS_VERF_SLACK 56 + + /* XXX this define must match the gssd define + * as it is passed to gssd to signal the use of +diff --git a/net/sunrpc/auth_gss/gss_mech_switch.c b/net/sunrpc/auth_gss/gss_mech_switch.c +index d88468d..f8bac6c 100644 +--- a/net/sunrpc/auth_gss/gss_mech_switch.c ++++ b/net/sunrpc/auth_gss/gss_mech_switch.c +@@ -224,8 +224,7 @@ EXPORT_SYMBOL(gss_service_to_auth_domain + void + gss_mech_put(struct gss_api_mech * gm) + { +- if (gm) +- module_put(gm->gm_owner); ++ module_put(gm->gm_owner); + } + + EXPORT_SYMBOL(gss_mech_put); +@@ -308,7 +307,8 @@ gss_delete_sec_context(struct gss_ctx ** + (*context_handle)->mech_type->gm_ops + ->gss_delete_sec_context((*context_handle) + ->internal_ctx_id); +- gss_mech_put((*context_handle)->mech_type); ++ if ((*context_handle)->mech_type) ++ gss_mech_put((*context_handle)->mech_type); + kfree(*context_handle); + *context_handle=NULL; + return GSS_S_COMPLETE; +diff --git a/net/sunrpc/auth_gss/gss_spkm3_mech.c b/net/sunrpc/auth_gss/gss_spkm3_mech.c +index e148a0e..5bf11cc 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_mech.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_mech.c +@@ -82,74 +82,134 @@ simple_get_netobj(const void *p, const v + return q; + } + ++static inline const void * ++get_key(const void *p, const void *end, struct crypto_tfm **res, int *resalg) ++{ ++ struct xdr_netobj key = { 0 }; ++ int alg_mode,setkey = 0; ++ char *alg_name; ++ ++ p = simple_get_bytes(p, end, resalg, sizeof(*resalg)); ++ if (IS_ERR(p)) ++ goto out_err; ++ p = simple_get_netobj(p, end, &key); ++ if (IS_ERR(p)) ++ goto out_err; ++ ++ switch (*resalg) { ++ case NID_des_cbc: ++ alg_name = "des"; ++ alg_mode = CRYPTO_TFM_MODE_CBC; ++ setkey = 1; ++ break; ++ case NID_cast5_cbc: ++ /* XXXX here in name only, not used */ ++ alg_name = "cast5"; ++ alg_mode = CRYPTO_TFM_MODE_CBC; ++ setkey = 0; /* XXX will need to set to 1 */ ++ break; ++ case NID_md5: ++ if (key.len == 0) { ++ dprintk("RPC: SPKM3 get_key: NID_md5 zero Key length\n"); ++ } ++ alg_name = "md5"; ++ alg_mode = 0; ++ setkey = 0; ++ break; ++ default: ++ dprintk("gss_spkm3_mech: unsupported algorithm %d\n", *resalg); ++ goto out_err_free_key; ++ } ++ if (!(*res = crypto_alloc_tfm(alg_name, alg_mode))) { ++ printk("gss_spkm3_mech: unable to initialize crypto algorthm %s\n", alg_name); ++ goto out_err_free_key; ++ } ++ if (setkey) { ++ if (crypto_cipher_setkey(*res, key.data, key.len)) { ++ printk("gss_spkm3_mech: error setting key for crypto algorthm %s\n", alg_name); ++ goto out_err_free_tfm; ++ } ++ } ++ ++ if(key.len > 0) ++ kfree(key.data); ++ return p; ++ ++out_err_free_tfm: ++ crypto_free_tfm(*res); ++out_err_free_key: ++ if(key.len > 0) ++ kfree(key.data); ++ p = ERR_PTR(-EINVAL); ++out_err: ++ return p; ++} ++ + static int + gss_import_sec_context_spkm3(const void *p, size_t len, + struct gss_ctx *ctx_id) + { + const void *end = (const void *)((const char *)p + len); + struct spkm3_ctx *ctx; +- int version; + + if (!(ctx = kmalloc(sizeof(*ctx), GFP_KERNEL))) + goto out_err; + memset(ctx, 0, sizeof(*ctx)); + +- p = simple_get_bytes(p, end, &version, sizeof(version)); +- if (IS_ERR(p)) +- goto out_err_free_ctx; +- if(version >= 16 || version <= 0) { +- dprintk("RPC: old nfs-utils software. upgrade to the latest version\n"); +- goto out_err_free_ctx; +- } +- + p = simple_get_netobj(p, end, &ctx->ctx_id); + if (IS_ERR(p)) + goto out_err_free_ctx; + +- p = simple_get_bytes(p, end, &ctx->endtime, sizeof(ctx->endtime)); ++ p = simple_get_bytes(p, end, &ctx->qop, sizeof(ctx->qop)); + if (IS_ERR(p)) + goto out_err_free_ctx_id; + + p = simple_get_netobj(p, end, &ctx->mech_used); + if (IS_ERR(p)) +- goto out_err_free_ctx_id; ++ goto out_err_free_mech; + + p = simple_get_bytes(p, end, &ctx->ret_flags, sizeof(ctx->ret_flags)); + if (IS_ERR(p)) + goto out_err_free_mech; + +- p = simple_get_netobj(p, end, &ctx->conf_alg); ++ p = simple_get_bytes(p, end, &ctx->req_flags, sizeof(ctx->req_flags)); + if (IS_ERR(p)) + goto out_err_free_mech; + +- p = simple_get_netobj(p, end, &ctx->derived_conf_key); ++ p = simple_get_netobj(p, end, &ctx->share_key); ++ if (IS_ERR(p)) ++ goto out_err_free_s_key; ++ ++ p = get_key(p, end, &ctx->derived_conf_key, &ctx->conf_alg); + if (IS_ERR(p)) +- goto out_err_free_conf_alg; ++ goto out_err_free_s_key; + +- p = simple_get_netobj(p, end, &ctx->intg_alg); ++ p = get_key(p, end, &ctx->derived_integ_key, &ctx->intg_alg); + if (IS_ERR(p)) +- goto out_err_free_conf_key; ++ goto out_err_free_key1; + +- p = simple_get_netobj(p, end, &ctx->derived_integ_key); ++ p = simple_get_bytes(p, end, &ctx->keyestb_alg, sizeof(ctx->keyestb_alg)); + if (IS_ERR(p)) +- goto out_err_free_intg_alg; ++ goto out_err_free_key2; ++ ++ p = simple_get_bytes(p, end, &ctx->owf_alg, sizeof(ctx->owf_alg)); ++ if (IS_ERR(p)) ++ goto out_err_free_key2; + + if (p != end) +- goto out_err_free_intg_key; ++ goto out_err_free_key2; + + ctx_id->internal_ctx_id = ctx; + + dprintk("Succesfully imported new spkm context.\n"); + return 0; + +-out_err_free_intg_key: +- kfree(ctx->derived_integ_key.data); +-out_err_free_intg_alg: +- kfree(ctx->intg_alg.data); +-out_err_free_conf_key: +- kfree(ctx->derived_conf_key.data); +-out_err_free_conf_alg: +- kfree(ctx->conf_alg.data); ++out_err_free_key2: ++ crypto_free_tfm(ctx->derived_integ_key); ++out_err_free_key1: ++ crypto_free_tfm(ctx->derived_conf_key); ++out_err_free_s_key: ++ kfree(ctx->share_key.data); + out_err_free_mech: + kfree(ctx->mech_used.data); + out_err_free_ctx_id: +@@ -164,13 +224,11 @@ static void + gss_delete_sec_context_spkm3(void *internal_ctx) { + struct spkm3_ctx *sctx = internal_ctx; + +- kfree(sctx->derived_integ_key.data); +- kfree(sctx->intg_alg.data); +- kfree(sctx->derived_conf_key.data); +- kfree(sctx->conf_alg.data); +- kfree(sctx->mech_used.data); +- kfree(sctx->ctx_id.data); +- kfree(sctx); ++ crypto_free_tfm(sctx->derived_integ_key); ++ crypto_free_tfm(sctx->derived_conf_key); ++ kfree(sctx->share_key.data); ++ kfree(sctx->mech_used.data); ++ kfree(sctx); + } + + static u32 +@@ -181,6 +239,7 @@ gss_verify_mic_spkm3(struct gss_ctx *ct + u32 maj_stat = 0; + struct spkm3_ctx *sctx = ctx->internal_ctx_id; + ++ dprintk("RPC: gss_verify_mic_spkm3 calling spkm3_read_token\n"); + maj_stat = spkm3_read_token(sctx, checksum, signbuf, SPKM_MIC_TOK); + + dprintk("RPC: gss_verify_mic_spkm3 returning %d\n", maj_stat); +@@ -195,9 +254,10 @@ gss_get_mic_spkm3(struct gss_ctx *ctx, + u32 err = 0; + struct spkm3_ctx *sctx = ctx->internal_ctx_id; + ++ dprintk("RPC: gss_get_mic_spkm3\n"); ++ + err = spkm3_make_token(sctx, message_buffer, +- message_token, SPKM_MIC_TOK); +- dprintk("RPC: gss_get_mic_spkm3 returning %d\n", err); ++ message_token, SPKM_MIC_TOK); + return err; + } + +diff --git a/net/sunrpc/auth_gss/gss_spkm3_seal.c b/net/sunrpc/auth_gss/gss_spkm3_seal.c +index 17fd2ba..18c7862 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_seal.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_seal.c +@@ -39,8 +39,6 @@ + #include + #include + #include +-#include +-#include + + #ifdef RPC_DEBUG + # define RPCDBG_FACILITY RPCDBG_AUTH +@@ -68,6 +66,8 @@ spkm3_make_token(struct spkm3_ctx *ctx, + int ctxelen = 0, ctxzbit = 0; + int md5elen = 0, md5zbit = 0; + ++ dprintk("RPC: spkm3_make_token\n"); ++ + now = jiffies; + + if (ctx->ctx_id.len != 16) { +@@ -75,20 +75,21 @@ spkm3_make_token(struct spkm3_ctx *ctx, + ctx->ctx_id.len); + goto out_err; + } +- +- if(!g_OID_equal(&ctx->intg_alg, &hmac_md5_oid)) { +- dprintk("RPC: gss_spkm3_seal: unsupported I-ALG algorithm." +- "only support hmac-md5 I-ALG.\n"); +- print_hexl((u32 *)ctx->intg_alg.data, ctx->intg_alg.len, 0); +- goto out_err; +- } else { +- checksum_type = CKSUMTYPE_HMAC_MD5; ++ ++ switch (ctx->intg_alg) { ++ case NID_md5: ++ checksum_type = CKSUMTYPE_RSA_MD5; ++ break; ++ default: ++ dprintk("RPC: gss_spkm3_seal: ctx->signalg %d not" ++ " supported\n", ctx->intg_alg); ++ goto out_err; + } +- +- +- if (!g_OID_equal(&ctx->conf_alg, &cast5_cbc_oid)) { +- dprintk("RPC: gss_spkm3_seal: unsupported C-ALG algorithm\n"); +- goto out_err; ++ /* XXX since we don't support WRAP, perhaps we don't care... */ ++ if (ctx->conf_alg != NID_cast5_cbc) { ++ dprintk("RPC: gss_spkm3_seal: ctx->sealalg %d not supported\n", ++ ctx->conf_alg); ++ goto out_err; + } + + if (toktype == SPKM_MIC_TOK) { +@@ -96,10 +97,10 @@ spkm3_make_token(struct spkm3_ctx *ctx, + asn1_bitstring_len(&ctx->ctx_id, &ctxelen, &ctxzbit); + spkm3_mic_header(&mic_hdr.data, &mic_hdr.len, ctx->ctx_id.data, + ctxelen, ctxzbit); +- if (make_spkm3_checksum(checksum_type, &ctx->derived_integ_key, +- (char *)mic_hdr.data, mic_hdr.len, +- text, 0, &md5cksum)) +- goto out_err; ++ ++ if (make_checksum(checksum_type, mic_hdr.data, mic_hdr.len, ++ text, 0, &md5cksum)) ++ goto out_err; + + asn1_bitstring_len(&md5cksum, &md5elen, &md5zbit); + tokenlen = 10 + ctxelen + 1 + md5elen + 1; +@@ -120,126 +121,7 @@ spkm3_make_token(struct spkm3_ctx *ctx, + + return GSS_S_COMPLETE; + out_err: +- if(md5cksum.data) +- kfree(md5cksum.data); +- + token->data = NULL; + token->len = 0; + return GSS_S_FAILURE; + } +- +-static int +-spkm3_process_xdr_buf(struct xdr_buf *buf, int offset, int len, +- int (*actor)(struct scatterlist *, void *), void *data) +-{ +- int i, page_len, thislen, page_offset, ret = 0; +- struct scatterlist sg[1]; +- +- if (offset >= buf->head[0].iov_len) { +- offset -= buf->head[0].iov_len; +- } else { +- thislen = buf->head[0].iov_len - offset; +- if (thislen > len) +- thislen = len; +- sg_set_buf(sg, buf->head[0].iov_base + offset, thislen); +- ret = actor(sg, data); +- if (ret) +- goto out; +- offset = 0; +- len -= thislen; +- } +- if (len == 0) +- goto out; +- +- if (offset >= buf->page_len) { +- offset -= buf->page_len; +- } else { +- page_len = buf->page_len - offset; +- if (page_len > len) +- page_len = len; +- len -= page_len; +- page_offset = (offset + buf->page_base) & (PAGE_CACHE_SIZE - 1); i = (offset + buf->page_base) >> PAGE_CACHE_SHIFT; +- thislen = PAGE_CACHE_SIZE - page_offset; +- do { +- if (thislen > page_len) +- thislen = page_len; +- sg->page = buf->pages[i]; +- sg->offset = page_offset; +- sg->length = thislen; +- ret = actor(sg, data); +- if (ret) +- goto out; +- page_len -= thislen; +- i++; +- page_offset = 0; +- thislen = PAGE_CACHE_SIZE; +- } while (page_len != 0); +- offset = 0; +- } +- if (len == 0) +- goto out; +- +- if (offset < buf->tail[0].iov_len) { +- thislen = buf->tail[0].iov_len - offset; +- if (thislen > len) +- thislen = len; +- sg_set_buf(sg, buf->tail[0].iov_base + offset, thislen); +- ret = actor(sg, data); +- len -= thislen; +- } +- if (len != 0) +- ret = -EINVAL; +-out: +- return ret; +-} +- +- +-static int +-spkm3_checksummer(struct scatterlist *sg, void *data) +-{ +- struct crypto_tfm *tfm = (struct crypto_tfm *)data; +- +- crypto_hmac_update(tfm, sg, 1); +- +- return 0; +-} +- +-/* checksum the plaintext data and hdrlen bytes of the token header */ +-s32 +-make_spkm3_checksum(s32 cksumtype, struct xdr_netobj *key, char *header, +- int hdrlen, struct xdr_buf *body, +- int body_offset, struct xdr_netobj *cksum) +-{ +- char *cksumname; +- struct crypto_tfm *tfm = NULL; /* XXX add to ctx? */ +- struct scatterlist sg[1]; +- +- switch (cksumtype) { +- case CKSUMTYPE_HMAC_MD5: +- cksumname = "md5"; +- break; +- default: +- dprintk("RPC: spkm3_make_checksum:" +- " unsupported checksum %d", cksumtype); +- return GSS_S_FAILURE; +- } +- +- if(key->data == NULL || key->len <= 0) return GSS_S_FAILURE; +- +- if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP))) +- return GSS_S_FAILURE; +- cksum->len = crypto_tfm_alg_digestsize(tfm); +- +- crypto_hmac_init(tfm, key->data, &key->len); +- sg_set_buf(sg, header, hdrlen); +- crypto_hmac_update(tfm, sg, 1); +- +- spkm3_process_xdr_buf(body, body_offset, body->len - body_offset, +- spkm3_checksummer, tfm); +- crypto_hmac_final(tfm, key->data, &key->len, cksum->data); +- crypto_free_tfm(tfm); +- +- return 0; +-} +- +-EXPORT_SYMBOL(make_spkm3_checksum); +diff --git a/net/sunrpc/auth_gss/gss_spkm3_token.c b/net/sunrpc/auth_gss/gss_spkm3_token.c +index f507435..af0d7ce 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_token.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_token.c +@@ -173,10 +173,10 @@ spkm3_mic_header(unsigned char **hdrbuf, + *(u8 *)hptr++ = zbit; + memcpy(hptr, ctxdata, elen); + hptr += elen; +- *hdrlen = hptr - top; ++ *hdrlen = hptr - top; + } +- +-/* ++ ++/* + * spkm3_mic_innercontext_token() + * + * *tokp points to the beginning of the SPKM_MIC token described +diff --git a/net/sunrpc/auth_gss/gss_spkm3_unseal.c b/net/sunrpc/auth_gss/gss_spkm3_unseal.c +index 3748f06..8537f58 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_unseal.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_unseal.c +@@ -54,7 +54,6 @@ spkm3_read_token(struct spkm3_ctx *ctx, + struct xdr_buf *message_buffer, /* signbuf */ + int toktype) + { +- s32 checksum_type; + s32 code; + struct xdr_netobj wire_cksum = {.len =0, .data = NULL}; + char cksumdata[16]; +@@ -65,6 +64,8 @@ spkm3_read_token(struct spkm3_ctx *ctx, + int mic_hdrlen; + u32 ret = GSS_S_DEFECTIVE_TOKEN; + ++ dprintk("RPC: spkm3_read_token read_token->len %d\n", read_token->len); ++ + if (g_verify_token_header((struct xdr_netobj *) &ctx->mech_used, + &bodysize, &ptr, read_token->len)) + goto out; +@@ -93,28 +94,26 @@ spkm3_read_token(struct spkm3_ctx *ctx, + * mic_hdrlen + 2 = length of header piece of checksum + */ + ret = GSS_S_DEFECTIVE_TOKEN; +- if(!g_OID_equal(&ctx->intg_alg, &hmac_md5_oid)) { +- dprintk("RPC: gss_spkm3_seal: unsupported I-ALG algorithm. only support hmac-md5 I-ALG.\n"); +- goto out; +- } else { +- checksum_type = CKSUMTYPE_HMAC_MD5; +- } +- +- code = make_spkm3_checksum(checksum_type, +- &ctx->derived_integ_key, ptr + 2, mic_hdrlen + 2, +- message_buffer, 0, &md5cksum); ++ code = make_checksum(CKSUMTYPE_RSA_MD5, ptr + 2, ++ mic_hdrlen + 2, ++ message_buffer, 0, &md5cksum); + + if (code) + goto out; + ++ dprintk("RPC: spkm3_read_token: digest wire_cksum.len %d:\n", ++ wire_cksum.len); ++ dprintk(" md5cksum.data\n"); ++ print_hexl((u32 *) md5cksum.data, 16, 0); ++ dprintk(" cksum.data:\n"); ++ print_hexl((u32 *) wire_cksum.data, wire_cksum.len, 0); ++ + ret = GSS_S_BAD_SIG; + code = memcmp(md5cksum.data, wire_cksum.data, wire_cksum.len); +- if (code) { +- dprintk("RPC: bad MIC checksum\n"); ++ if (code) + goto out; +- } + +- } else { ++ } else { + dprintk("RPC: BAD or UNSUPPORTED SPKM3 token type: %d\n",toktype); + goto out; + } +diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c +index 94217ec..d51e316 100644 +--- a/net/sunrpc/auth_gss/svcauth_gss.c ++++ b/net/sunrpc/auth_gss/svcauth_gss.c +@@ -425,7 +425,6 @@ static int rsc_parse(struct cache_detail + struct rsc rsci, *rscp = NULL; + time_t expiry; + int status = -EINVAL; +- struct gss_api_mech *gm = NULL; + + memset(&rsci, 0, sizeof(rsci)); + /* context handle */ +@@ -454,6 +453,7 @@ static int rsc_parse(struct cache_detail + set_bit(CACHE_NEGATIVE, &rsci.h.flags); + else { + int N, i; ++ struct gss_api_mech *gm; + + /* gid */ + if (get_int(&mesg, &rsci.cred.cr_gid)) +@@ -488,17 +488,21 @@ static int rsc_parse(struct cache_detail + status = -EINVAL; + /* mech-specific data: */ + len = qword_get(&mesg, buf, mlen); +- if (len < 0) ++ if (len < 0) { ++ gss_mech_put(gm); + goto out; ++ } + status = gss_import_sec_context(buf, len, gm, &rsci.mechctx); +- if (status) ++ if (status) { ++ gss_mech_put(gm); + goto out; ++ } ++ gss_mech_put(gm); + } + rsci.h.expiry_time = expiry; + rscp = rsc_update(&rsci, rscp); + status = 0; + out: +- gss_mech_put(gm); + rsc_free(&rsci); + if (rscp) + cache_put(&rscp->h, &rsc_cache); +@@ -832,74 +836,6 @@ out: + return stat; + } + +-static inline int +-total_buf_len(struct xdr_buf *buf) +-{ +- return buf->head[0].iov_len + buf->page_len + buf->tail[0].iov_len; +-} +- +-static void +-fix_priv_head(struct xdr_buf *buf, int pad) +-{ +- if (buf->page_len == 0) { +- /* We need to adjust head and buf->len in tandem in this +- * case to make svc_defer() work--it finds the original +- * buffer start using buf->len - buf->head[0].iov_len. */ +- buf->head[0].iov_len -= pad; +- } +-} +- +-static int +-unwrap_priv_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct gss_ctx *ctx) +-{ +- u32 priv_len, maj_stat; +- int pad, saved_len, remaining_len, offset; +- +- rqstp->rq_sendfile_ok = 0; +- +- priv_len = ntohl(svc_getu32(&buf->head[0])); +- if (rqstp->rq_deferred) { +- /* Already decrypted last time through! The sequence number +- * check at out_seq is unnecessary but harmless: */ +- goto out_seq; +- } +- /* buf->len is the number of bytes from the original start of the +- * request to the end, where head[0].iov_len is just the bytes +- * not yet read from the head, so these two values are different: */ +- remaining_len = total_buf_len(buf); +- if (priv_len > remaining_len) +- return -EINVAL; +- pad = remaining_len - priv_len; +- buf->len -= pad; +- fix_priv_head(buf, pad); +- +- /* Maybe it would be better to give gss_unwrap a length parameter: */ +- saved_len = buf->len; +- buf->len = priv_len; +- maj_stat = gss_unwrap(ctx, 0, buf); +- pad = priv_len - buf->len; +- buf->len = saved_len; +- buf->len -= pad; +- /* The upper layers assume the buffer is aligned on 4-byte boundaries. +- * In the krb5p case, at least, the data ends up offset, so we need to +- * move it around. */ +- /* XXX: This is very inefficient. It would be better to either do +- * this while we encrypt, or maybe in the receive code, if we can peak +- * ahead and work out the service and mechanism there. */ +- offset = buf->head[0].iov_len % 4; +- if (offset) { +- buf->buflen = RPCSVC_MAXPAYLOAD; +- xdr_shift_buf(buf, offset); +- fix_priv_head(buf, pad); +- } +- if (maj_stat != GSS_S_COMPLETE) +- return -EINVAL; +-out_seq: +- if (ntohl(svc_getu32(&buf->head[0])) != seq) +- return -EINVAL; +- return 0; +-} +- + struct gss_svc_data { + /* decoded gss client cred: */ + struct rpc_gss_wire_cred clcred; +@@ -1115,14 +1051,7 @@ svcauth_gss_accept(struct svc_rqst *rqst + svc_putu32(resv, 0); + break; + case RPC_GSS_SVC_PRIVACY: +- if (unwrap_priv_data(rqstp, &rqstp->rq_arg, +- gc->gc_seq, rsci->mechctx)) +- goto auth_err; +- /* placeholders for length and seq. number: */ +- svcdata->body_start = resv->iov_base + resv->iov_len; +- svc_putu32(resv, 0); +- svc_putu32(resv, 0); +- break; ++ /* currently unsupported */ + default: + goto auth_err; + } +@@ -1147,8 +1076,8 @@ out: + return ret; + } + +-static inline int +-svcauth_gss_wrap_resp_integ(struct svc_rqst *rqstp) ++static int ++svcauth_gss_release(struct svc_rqst *rqstp) + { + struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; + struct rpc_gss_wire_cred *gc = &gsd->clcred; +@@ -1160,147 +1089,69 @@ svcauth_gss_wrap_resp_integ(struct svc_r + int integ_offset, integ_len; + int stat = -EINVAL; + +- p = gsd->body_start; +- gsd->body_start = NULL; +- /* move accept_stat to right place: */ +- memcpy(p, p + 2, 4); +- /* Don't wrap in failure case: */ +- /* Counting on not getting here if call was not even accepted! */ +- if (*p != rpc_success) { +- resbuf->head[0].iov_len -= 2 * 4; +- goto out; +- } +- p++; +- integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base; +- integ_len = resbuf->len - integ_offset; +- BUG_ON(integ_len % 4); +- *p++ = htonl(integ_len); +- *p++ = htonl(gc->gc_seq); +- if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset, +- integ_len)) +- BUG(); +- if (resbuf->page_len == 0 +- && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE +- < PAGE_SIZE) { +- BUG_ON(resbuf->tail[0].iov_len); +- /* Use head for everything */ +- resv = &resbuf->head[0]; +- } else if (resbuf->tail[0].iov_base == NULL) { +- if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE > PAGE_SIZE) +- goto out_err; +- resbuf->tail[0].iov_base = resbuf->head[0].iov_base +- + resbuf->head[0].iov_len; +- resbuf->tail[0].iov_len = 0; +- rqstp->rq_restailpage = 0; +- resv = &resbuf->tail[0]; +- } else { +- resv = &resbuf->tail[0]; +- } +- mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; +- if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) +- goto out_err; +- svc_putu32(resv, htonl(mic.len)); +- memset(mic.data + mic.len, 0, +- round_up_to_quad(mic.len) - mic.len); +- resv->iov_len += XDR_QUADLEN(mic.len) << 2; +- /* not strictly required: */ +- resbuf->len += XDR_QUADLEN(mic.len) << 2; +- BUG_ON(resv->iov_len > PAGE_SIZE); +-out: +- stat = 0; +-out_err: +- return stat; +-} +- +-static inline int +-svcauth_gss_wrap_resp_priv(struct svc_rqst *rqstp) +-{ +- struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; +- struct rpc_gss_wire_cred *gc = &gsd->clcred; +- struct xdr_buf *resbuf = &rqstp->rq_res; +- struct page **inpages = NULL; +- u32 *p; +- int offset, *len; +- int pad; +- +- p = gsd->body_start; +- gsd->body_start = NULL; +- /* move accept_stat to right place: */ +- memcpy(p, p + 2, 4); +- /* Don't wrap in failure case: */ +- /* Counting on not getting here if call was not even accepted! */ +- if (*p != rpc_success) { +- resbuf->head[0].iov_len -= 2 * 4; +- return 0; +- } +- p++; +- len = p++; +- offset = (u8 *)p - (u8 *)resbuf->head[0].iov_base; +- *p++ = htonl(gc->gc_seq); +- inpages = resbuf->pages; +- /* XXX: Would be better to write some xdr helper functions for +- * nfs{2,3,4}xdr.c that place the data right, instead of copying: */ +- if (resbuf->tail[0].iov_base && rqstp->rq_restailpage == 0) { +- BUG_ON(resbuf->tail[0].iov_base >= resbuf->head[0].iov_base +- + PAGE_SIZE); +- BUG_ON(resbuf->tail[0].iov_base < resbuf->head[0].iov_base); +- if (resbuf->tail[0].iov_len + resbuf->head[0].iov_len +- + 2 * RPC_MAX_AUTH_SIZE > PAGE_SIZE) +- return -ENOMEM; +- memmove(resbuf->tail[0].iov_base + RPC_MAX_AUTH_SIZE, +- resbuf->tail[0].iov_base, +- resbuf->tail[0].iov_len); +- resbuf->tail[0].iov_base += RPC_MAX_AUTH_SIZE; +- } +- if (resbuf->tail[0].iov_base == NULL) { +- if (resbuf->head[0].iov_len + 2*RPC_MAX_AUTH_SIZE > PAGE_SIZE) +- return -ENOMEM; +- resbuf->tail[0].iov_base = resbuf->head[0].iov_base +- + resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE; +- resbuf->tail[0].iov_len = 0; +- rqstp->rq_restailpage = 0; +- } +- if (gss_wrap(gsd->rsci->mechctx, offset, resbuf, inpages)) +- return -ENOMEM; +- *len = htonl(resbuf->len - offset); +- pad = 3 - ((resbuf->len - offset - 1)&3); +- p = (u32 *)(resbuf->tail[0].iov_base + resbuf->tail[0].iov_len); +- memset(p, 0, pad); +- resbuf->tail[0].iov_len += pad; +- resbuf->len += pad; +- return 0; +-} +- +-static int +-svcauth_gss_release(struct svc_rqst *rqstp) +-{ +- struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; +- struct rpc_gss_wire_cred *gc = &gsd->clcred; +- struct xdr_buf *resbuf = &rqstp->rq_res; +- int stat = -EINVAL; +- + if (gc->gc_proc != RPC_GSS_PROC_DATA) + goto out; + /* Release can be called twice, but we only wrap once. */ + if (gsd->body_start == NULL) + goto out; + /* normally not set till svc_send, but we need it here: */ +- /* XXX: what for? Do we mess it up the moment we call svc_putu32 +- * or whatever? */ +- resbuf->len = total_buf_len(resbuf); ++ resbuf->len = resbuf->head[0].iov_len ++ + resbuf->page_len + resbuf->tail[0].iov_len; + switch (gc->gc_svc) { + case RPC_GSS_SVC_NONE: + break; + case RPC_GSS_SVC_INTEGRITY: +- stat = svcauth_gss_wrap_resp_integ(rqstp); +- if (stat) ++ p = gsd->body_start; ++ gsd->body_start = NULL; ++ /* move accept_stat to right place: */ ++ memcpy(p, p + 2, 4); ++ /* don't wrap in failure case: */ ++ /* Note: counting on not getting here if call was not even ++ * accepted! */ ++ if (*p != rpc_success) { ++ resbuf->head[0].iov_len -= 2 * 4; ++ goto out; ++ } ++ p++; ++ integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base; ++ integ_len = resbuf->len - integ_offset; ++ BUG_ON(integ_len % 4); ++ *p++ = htonl(integ_len); ++ *p++ = htonl(gc->gc_seq); ++ if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset, ++ integ_len)) ++ BUG(); ++ if (resbuf->page_len == 0 ++ && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE ++ < PAGE_SIZE) { ++ BUG_ON(resbuf->tail[0].iov_len); ++ /* Use head for everything */ ++ resv = &resbuf->head[0]; ++ } else if (resbuf->tail[0].iov_base == NULL) { ++ if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE ++ > PAGE_SIZE) ++ goto out_err; ++ resbuf->tail[0].iov_base = ++ resbuf->head[0].iov_base ++ + resbuf->head[0].iov_len; ++ resbuf->tail[0].iov_len = 0; ++ rqstp->rq_restailpage = 0; ++ resv = &resbuf->tail[0]; ++ } else { ++ resv = &resbuf->tail[0]; ++ } ++ mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; ++ if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) + goto out_err; ++ svc_putu32(resv, htonl(mic.len)); ++ memset(mic.data + mic.len, 0, ++ round_up_to_quad(mic.len) - mic.len); ++ resv->iov_len += XDR_QUADLEN(mic.len) << 2; ++ /* not strictly required: */ ++ resbuf->len += XDR_QUADLEN(mic.len) << 2; ++ BUG_ON(resv->iov_len > PAGE_SIZE); + break; + case RPC_GSS_SVC_PRIVACY: +- stat = svcauth_gss_wrap_resp_priv(rqstp); +- if (stat) +- goto out_err; +- break; + default: + goto out_err; + } +diff --git a/net/sunrpc/auth_null.c b/net/sunrpc/auth_null.c +index 2eccffa..f56767a 100644 +--- a/net/sunrpc/auth_null.c ++++ b/net/sunrpc/auth_null.c +@@ -118,8 +118,6 @@ struct rpc_auth null_auth = { + .au_cslack = 4, + .au_rslack = 2, + .au_ops = &authnull_ops, +- .au_flavor = RPC_AUTH_NULL, +- .au_count = ATOMIC_INIT(0), + }; + + static +diff --git a/net/sunrpc/auth_unix.c b/net/sunrpc/auth_unix.c +index 74c7406..df14b6b 100644 +--- a/net/sunrpc/auth_unix.c ++++ b/net/sunrpc/auth_unix.c +@@ -225,7 +225,6 @@ struct rpc_auth unix_auth = { + .au_cslack = UNX_WRITESLACK, + .au_rslack = 2, /* assume AUTH_NULL verf */ + .au_ops = &authunix_ops, +- .au_flavor = RPC_AUTH_UNIX, + .au_count = ATOMIC_INIT(0), + .au_credcache = &unix_cred_cache, + }; +diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c +index a5226df..cc673dd 100644 +--- a/net/sunrpc/rpc_pipe.c ++++ b/net/sunrpc/rpc_pipe.c +@@ -439,7 +439,7 @@ struct vfsmount *rpc_get_mount(void) + { + int err; + +- err = simple_pin_fs(&rpc_pipe_fs_type, &rpc_mount, &rpc_mount_count); ++ err = simple_pin_fs("rpc_pipefs", &rpc_mount, &rpc_mount_count); + if (err != 0) + return ERR_PTR(err); + return rpc_mount; +diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c +index 01ba60a..b08419e 100644 +--- a/net/sunrpc/svc.c ++++ b/net/sunrpc/svc.c +@@ -280,10 +280,7 @@ svc_process(struct svc_serv *serv, struc + rqstp->rq_res.page_base = 0; + rqstp->rq_res.page_len = 0; + rqstp->rq_res.buflen = PAGE_SIZE; +- rqstp->rq_res.tail[0].iov_base = NULL; + rqstp->rq_res.tail[0].iov_len = 0; +- /* Will be turned off only in gss privacy case: */ +- rqstp->rq_sendfile_ok = 1; + /* tcp needs a space for the record length... */ + if (rqstp->rq_prot == IPPROTO_TCP) + svc_putu32(resv, 0); +diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c +index 49174f0..ca4bfa5 100644 +--- a/net/sunrpc/xdr.c ++++ b/net/sunrpc/xdr.c +@@ -568,7 +568,8 @@ EXPORT_SYMBOL(xdr_inline_decode); + * + * Moves data beyond the current pointer position from the XDR head[] buffer + * into the page list. Any data that lies beyond current position + "len" +- * bytes is moved into the XDR tail[]. ++ * bytes is moved into the XDR tail[]. The current pointer is then ++ * repositioned at the beginning of the XDR tail. + */ + void xdr_read_pages(struct xdr_stream *xdr, unsigned int len) + { +@@ -605,31 +606,6 @@ void xdr_read_pages(struct xdr_stream *x + } + EXPORT_SYMBOL(xdr_read_pages); + +-/** +- * xdr_enter_page - decode data from the XDR page +- * @xdr: pointer to xdr_stream struct +- * @len: number of bytes of page data +- * +- * Moves data beyond the current pointer position from the XDR head[] buffer +- * into the page list. Any data that lies beyond current position + "len" +- * bytes is moved into the XDR tail[]. The current pointer is then +- * repositioned at the beginning of the first XDR page. +- */ +-void xdr_enter_page(struct xdr_stream *xdr, unsigned int len) +-{ +- char * kaddr = page_address(xdr->buf->pages[0]); +- xdr_read_pages(xdr, len); +- /* +- * Position current pointer at beginning of tail, and +- * set remaining message length. +- */ +- if (len > PAGE_CACHE_SIZE - xdr->buf->page_base) +- len = PAGE_CACHE_SIZE - xdr->buf->page_base; +- xdr->p = (uint32_t *)(kaddr + xdr->buf->page_base); +- xdr->end = (uint32_t *)((char *)xdr->p + len); +-} +-EXPORT_SYMBOL(xdr_enter_page); +- + static struct kvec empty_iov = {.iov_base = NULL, .iov_len = 0}; + + void +diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c +index 02060d0..4dd5b3c 100644 +--- a/net/sunrpc/xprt.c ++++ b/net/sunrpc/xprt.c +@@ -41,7 +41,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include +@@ -830,7 +830,7 @@ static inline u32 xprt_alloc_xid(struct + + static inline void xprt_init_xid(struct rpc_xprt *xprt) + { +- xprt->xid = net_random(); ++ get_random_bytes(&xprt->xid, sizeof(xprt->xid)); + } + + static void xprt_request_init(struct rpc_task *task, struct rpc_xprt *xprt) +diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c +index 21006b1..4b4e7df 100644 +--- a/net/sunrpc/xprtsock.c ++++ b/net/sunrpc/xprtsock.c +@@ -930,13 +930,6 @@ static void xs_udp_timer(struct rpc_task + xprt_adjust_cwnd(task, -ETIMEDOUT); + } + +-static unsigned short xs_get_random_port(void) +-{ +- unsigned short range = xprt_max_resvport - xprt_min_resvport; +- unsigned short rand = (unsigned short) net_random() % range; +- return rand + xprt_min_resvport; +-} +- + /** + * xs_set_port - reset the port number in the remote endpoint address + * @xprt: generic transport +@@ -1282,7 +1275,7 @@ int xs_setup_udp(struct rpc_xprt *xprt, + memset(xprt->slot, 0, slot_table_size); + + xprt->prot = IPPROTO_UDP; +- xprt->port = xs_get_random_port(); ++ xprt->port = xprt_max_resvport; + xprt->tsh_size = 0; + xprt->resvport = capable(CAP_NET_BIND_SERVICE) ? 1 : 0; + /* XXX: header size can vary due to auth type, IPv6, etc. */ +@@ -1324,7 +1317,7 @@ int xs_setup_tcp(struct rpc_xprt *xprt, + memset(xprt->slot, 0, slot_table_size); + + xprt->prot = IPPROTO_TCP; +- xprt->port = xs_get_random_port(); ++ xprt->port = xprt_max_resvport; + xprt->tsh_size = sizeof(rpc_fraghdr) / sizeof(u32); + xprt->resvport = capable(CAP_NET_BIND_SERVICE) ? 1 : 0; + xprt->max_payload = RPC_MAX_FRAGMENT_SIZE; +diff --git a/security/inode.c b/security/inode.c +index 8bf4062..0f77b02 100644 +--- a/security/inode.c ++++ b/security/inode.c +@@ -224,7 +224,7 @@ struct dentry *securityfs_create_file(co + + pr_debug("securityfs: creating file '%s'\n",name); + +- error = simple_pin_fs(&fs_type, &mount, &mount_count); ++ error = simple_pin_fs("securityfs", &mount, &mount_count); + if (error) { + dentry = ERR_PTR(error); + goto exit; +-- +1.1.3 + --- linux-source-2.6.17-2.6.17.1.orig/.dotest/patch +++ linux-source-2.6.17-2.6.17.1/.dotest/patch @@ -0,0 +1,7585 @@ +--- + + fs/lockd/clntlock.c | 39 - + fs/lockd/clntproc.c | 14 + fs/lockd/host.c | 9 + fs/nfs/Makefile | 8 + fs/nfs/callback.c | 2 + fs/nfs/callback_xdr.c | 2 + fs/nfs/dir.c | 18 + fs/nfs/direct.c | 6 + fs/nfs/file.c | 30 - + fs/nfs/idmap.c | 1 + fs/nfs/inode.c | 1292 ++++++++++++++++++++++++++-- + fs/nfs/internal.h | 179 ---- + fs/nfs/namespace.c | 229 ----- + fs/nfs/nfs2xdr.c | 5 + fs/nfs/nfs3acl.c | 11 + fs/nfs/nfs3proc.c | 5 + fs/nfs/nfs3xdr.c | 6 + fs/nfs/nfs4_fs.h | 4 + fs/nfs/nfs4namespace.c | 201 ---- + fs/nfs/nfs4proc.c | 111 -- + fs/nfs/nfs4xdr.c | 218 ----- + fs/nfs/pagelist.c | 51 - + fs/nfs/proc.c | 5 + fs/nfs/read.c | 122 +-- + fs/nfs/super.c | 1497 -------------------------------- + fs/nfs/symlink.c | 2 + fs/nfs/sysctl.c | 10 + fs/nfs/write.c | 67 - + fs/nfsd/export.c | 119 --- + fs/nfsd/nfs4proc.c | 40 - + fs/nfsd/nfs4state.c | 32 - + fs/nfsd/nfs4xdr.c | 176 ---- + fs/nfsd/nfsfh.c | 20 + fs/nfsd/stats.c | 31 - + fs/nfsd/vfs.c | 18 + include/linux/lockd/lockd.h | 4 + include/linux/nfs4.h | 1 + include/linux/nfs_fs.h | 29 - + include/linux/nfs_fs_sb.h | 1 + include/linux/nfs_page.h | 5 + include/linux/nfs_xdr.h | 63 - + include/linux/nfsd/const.h | 4 + include/linux/nfsd/export.h | 18 + include/linux/nfsd/nfsd.h | 4 + include/linux/nfsd/stats.h | 5 + include/linux/sunrpc/gss_spkm3.h | 39 - + include/linux/sunrpc/svc.h | 4 + include/linux/sunrpc/xdr.h | 1 + net/sunrpc/auth_gss/auth_gss.c | 2 + net/sunrpc/auth_gss/gss_mech_switch.c | 6 + net/sunrpc/auth_gss/gss_spkm3_mech.c | 132 ++- + net/sunrpc/auth_gss/gss_spkm3_seal.c | 158 --- + net/sunrpc/auth_gss/gss_spkm3_token.c | 6 + net/sunrpc/auth_gss/gss_spkm3_unseal.c | 29 - + net/sunrpc/auth_gss/svcauth_gss.c | 271 +----- + net/sunrpc/auth_null.c | 2 + net/sunrpc/auth_unix.c | 1 + net/sunrpc/rpc_pipe.c | 2 + net/sunrpc/svc.c | 3 + net/sunrpc/xdr.c | 28 - + net/sunrpc/xprt.c | 4 + net/sunrpc/xprtsock.c | 11 + security/inode.c | 2 + 63 files changed, 1687 insertions(+), 3728 deletions(-) + delete mode 100644 fs/nfs/internal.h + delete mode 100644 fs/nfs/namespace.c + delete mode 100644 fs/nfs/nfs4namespace.c + delete mode 100644 fs/nfs/super.c + +95630ed1d02ade53c4b60c246aede9b89f864b72 +diff --git a/fs/lockd/clntlock.c b/fs/lockd/clntlock.c +index 52774fe..bce7444 100644 +--- a/fs/lockd/clntlock.c ++++ b/fs/lockd/clntlock.c +@@ -147,10 +147,11 @@ u32 nlmclnt_grant(const struct sockaddr_ + * Someone has sent us an SM_NOTIFY. Ensure we bind to the new port number, + * that we mark locks for reclaiming, and that we bump the pseudo NSM state. + */ +-static void nlmclnt_prepare_reclaim(struct nlm_host *host) ++static inline ++void nlmclnt_prepare_reclaim(struct nlm_host *host, u32 newstate) + { +- down_write(&host->h_rwsem); + host->h_monitored = 0; ++ host->h_nsmstate = newstate; + host->h_state++; + host->h_nextrebind = 0; + nlm_rebind_host(host); +@@ -163,13 +164,6 @@ static void nlmclnt_prepare_reclaim(stru + dprintk("NLM: reclaiming locks for host %s", host->h_name); + } + +-static void nlmclnt_finish_reclaim(struct nlm_host *host) +-{ +- host->h_reclaiming = 0; +- up_write(&host->h_rwsem); +- dprintk("NLM: done reclaiming locks for host %s", host->h_name); +-} +- + /* + * Reclaim all locks on server host. We do this by spawning a separate + * reclaimer thread. +@@ -177,10 +171,12 @@ static void nlmclnt_finish_reclaim(struc + void + nlmclnt_recovery(struct nlm_host *host, u32 newstate) + { +- if (host->h_nsmstate == newstate) +- return; +- host->h_nsmstate = newstate; +- if (!host->h_reclaiming++) { ++ if (host->h_reclaiming++) { ++ if (host->h_nsmstate == newstate) ++ return; ++ nlmclnt_prepare_reclaim(host, newstate); ++ } else { ++ nlmclnt_prepare_reclaim(host, newstate); + nlm_get_host(host); + __module_get(THIS_MODULE); + if (kernel_thread(reclaimer, host, CLONE_KERNEL) < 0) +@@ -194,7 +190,6 @@ reclaimer(void *ptr) + struct nlm_host *host = (struct nlm_host *) ptr; + struct nlm_wait *block; + struct file_lock *fl, *next; +- u32 nsmstate; + + daemonize("%s-reclaim", host->h_name); + allow_signal(SIGKILL); +@@ -204,25 +199,19 @@ reclaimer(void *ptr) + lock_kernel(); + lockd_up(); + +- nlmclnt_prepare_reclaim(host); + /* First, reclaim all locks that have been marked. */ + restart: +- nsmstate = host->h_nsmstate; + list_for_each_entry_safe(fl, next, &host->h_reclaim, fl_u.nfs_fl.list) { + list_del_init(&fl->fl_u.nfs_fl.list); + + if (signalled()) + continue; +- if (nlmclnt_reclaim(host, fl) != 0) +- continue; +- list_add_tail(&fl->fl_u.nfs_fl.list, &host->h_granted); +- if (host->h_nsmstate != nsmstate) { +- /* Argh! The server rebooted again! */ +- list_splice_init(&host->h_granted, &host->h_reclaim); +- goto restart; +- } ++ if (nlmclnt_reclaim(host, fl) == 0) ++ list_add_tail(&fl->fl_u.nfs_fl.list, &host->h_granted); ++ goto restart; + } +- nlmclnt_finish_reclaim(host); ++ ++ host->h_reclaiming = 0; + + /* Now, wake up all processes that sleep on a blocked lock */ + list_for_each_entry(block, &nlm_blocked, b_list) { +diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c +index 4db6209..f96e381 100644 +--- a/fs/lockd/clntproc.c ++++ b/fs/lockd/clntproc.c +@@ -508,10 +508,7 @@ nlmclnt_lock(struct nlm_rqst *req, struc + } + + block = nlmclnt_prepare_block(host, fl); +-again: + for(;;) { +- /* Reboot protection */ +- fl->fl_u.nfs_fl.state = host->h_state; + status = nlmclnt_call(req, NLMPROC_LOCK); + if (status < 0) + goto out_unblock; +@@ -534,16 +531,10 @@ again: + } + + if (resp->status == NLM_LCK_GRANTED) { +- down_read(&host->h_rwsem); +- /* Check whether or not the server has rebooted */ +- if (fl->fl_u.nfs_fl.state != host->h_state) { +- up_read(&host->h_rwsem); +- goto again; +- } ++ fl->fl_u.nfs_fl.state = host->h_state; + fl->fl_flags |= FL_SLEEP; + /* Ensure the resulting lock will get added to granted list */ + do_vfs_lock(fl); +- up_read(&host->h_rwsem); + } + status = nlm_stat_to_errno(resp->status); + out_unblock: +@@ -605,7 +596,6 @@ nlmclnt_reclaim(struct nlm_host *host, s + static int + nlmclnt_unlock(struct nlm_rqst *req, struct file_lock *fl) + { +- struct nlm_host *host = req->a_host; + struct nlm_res *resp = &req->a_res; + int status; + +@@ -614,9 +604,7 @@ nlmclnt_unlock(struct nlm_rqst *req, str + * request, or to deny it with NLM_LCK_DENIED_GRACE_PERIOD. In either + * case, we want to unlock. + */ +- down_read(&host->h_rwsem); + do_vfs_lock(fl); +- up_read(&host->h_rwsem); + + if (req->a_flags & RPC_TASK_ASYNC) + return nlm_async_call(req, NLMPROC_UNLOCK, &nlmclnt_unlock_ops); +diff --git a/fs/lockd/host.c b/fs/lockd/host.c +index 38b0e8a..729ac42 100644 +--- a/fs/lockd/host.c ++++ b/fs/lockd/host.c +@@ -112,12 +112,11 @@ nlm_lookup_host(int server, struct socka + host->h_version = version; + host->h_proto = proto; + host->h_rpcclnt = NULL; +- mutex_init(&host->h_mutex); ++ init_MUTEX(&host->h_sema); + host->h_nextrebind = jiffies + NLM_HOST_REBIND; + host->h_expires = jiffies + NLM_HOST_EXPIRE; + atomic_set(&host->h_count, 1); + init_waitqueue_head(&host->h_gracewait); +- init_rwsem(&host->h_rwsem); + host->h_state = 0; /* pseudo NSM state */ + host->h_nsmstate = 0; /* real NSM state */ + host->h_server = server; +@@ -173,7 +172,7 @@ nlm_bind_host(struct nlm_host *host) + (unsigned)ntohl(host->h_addr.sin_addr.s_addr)); + + /* Lock host handle */ +- mutex_lock(&host->h_mutex); ++ down(&host->h_sema); + + /* If we've already created an RPC client, check whether + * RPC rebind is required +@@ -205,12 +204,12 @@ nlm_bind_host(struct nlm_host *host) + host->h_rpcclnt = clnt; + } + +- mutex_unlock(&host->h_mutex); ++ up(&host->h_sema); + return clnt; + + forgetit: + printk("lockd: couldn't create RPC handle for %s\n", host->h_name); +- mutex_unlock(&host->h_mutex); ++ up(&host->h_sema); + return NULL; + } + +diff --git a/fs/nfs/Makefile b/fs/nfs/Makefile +index 0b572a0..ec61fd5 100644 +--- a/fs/nfs/Makefile ++++ b/fs/nfs/Makefile +@@ -4,16 +4,14 @@ + + obj-$(CONFIG_NFS_FS) += nfs.o + +-nfs-y := dir.o file.o inode.o super.o nfs2xdr.o pagelist.o \ +- proc.o read.o symlink.o unlink.o write.o \ +- namespace.o ++nfs-y := dir.o file.o inode.o nfs2xdr.o pagelist.o \ ++ proc.o read.o symlink.o unlink.o write.o + nfs-$(CONFIG_ROOT_NFS) += nfsroot.o mount_clnt.o + nfs-$(CONFIG_NFS_V3) += nfs3proc.o nfs3xdr.o + nfs-$(CONFIG_NFS_V3_ACL) += nfs3acl.o + nfs-$(CONFIG_NFS_V4) += nfs4proc.o nfs4xdr.o nfs4state.o nfs4renewd.o \ + delegation.o idmap.o \ +- callback.o callback_xdr.o callback_proc.o \ +- nfs4namespace.o ++ callback.o callback_xdr.o callback_proc.o + nfs-$(CONFIG_NFS_DIRECTIO) += direct.o + nfs-$(CONFIG_SYSCTL) += sysctl.o + nfs-objs := $(nfs-y) +diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c +index d53f8c6..90c95ad 100644 +--- a/fs/nfs/callback.c ++++ b/fs/nfs/callback.c +@@ -182,6 +182,8 @@ static int nfs_callback_authenticate(str + /* + * Define NFS4 callback program + */ ++extern struct svc_version nfs4_callback_version1; ++ + static struct svc_version *nfs4_callback_version[] = { + [1] = &nfs4_callback_version1, + }; +diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c +index c929913..05c38cf 100644 +--- a/fs/nfs/callback_xdr.c ++++ b/fs/nfs/callback_xdr.c +@@ -202,7 +202,7 @@ static unsigned decode_recall_args(struc + status = decode_fh(xdr, &args->fh); + out: + dprintk("%s: exit with status = %d\n", __FUNCTION__, status); +- return status; ++ return 0; + } + + static unsigned encode_string(struct xdr_stream *xdr, unsigned int len, const char *str) +diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c +index 3ddda6f..cae74dd 100644 +--- a/fs/nfs/dir.c ++++ b/fs/nfs/dir.c +@@ -528,7 +528,7 @@ static int nfs_readdir(struct file *filp + + lock_kernel(); + +- res = nfs_revalidate_mapping(inode, filp->f_mapping); ++ res = nfs_revalidate_inode(NFS_SERVER(inode), inode); + if (res < 0) { + unlock_kernel(); + return res; +@@ -868,17 +868,6 @@ int nfs_is_exclusive_create(struct inode + return (nd->intent.open.flags & O_EXCL) != 0; + } + +-static inline int nfs_reval_fsid(struct inode *dir, +- struct nfs_fh *fh, struct nfs_fattr *fattr) +-{ +- struct nfs_server *server = NFS_SERVER(dir); +- +- if (!nfs_fsid_equal(&server->fsid, &fattr->fsid)) +- /* Revalidate fsid on root dir */ +- return __nfs_revalidate_inode(server, dir->i_sb->s_root->d_inode); +- return 0; +-} +- + static struct dentry *nfs_lookup(struct inode *dir, struct dentry * dentry, struct nameidata *nd) + { + struct dentry *res; +@@ -911,11 +900,6 @@ static struct dentry *nfs_lookup(struct + res = ERR_PTR(error); + goto out_unlock; + } +- error = nfs_reval_fsid(dir, &fhandle, &fattr); +- if (error < 0) { +- res = ERR_PTR(error); +- goto out_unlock; +- } + inode = nfs_fhget(dentry->d_sb, &fhandle, &fattr); + res = (struct dentry *)inode; + if (IS_ERR(res)) +diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c +index a767f6f..f8aac11 100644 +--- a/fs/nfs/direct.c ++++ b/fs/nfs/direct.c +@@ -893,7 +893,7 @@ out: + * nfs_init_directcache - create a slab cache for nfs_direct_req structures + * + */ +-int __init nfs_init_directcache(void) ++int nfs_init_directcache(void) + { + nfs_direct_cachep = kmem_cache_create("nfs_direct_cache", + sizeof(struct nfs_direct_req), +@@ -907,10 +907,10 @@ int __init nfs_init_directcache(void) + } + + /** +- * nfs_destroy_directcache - destroy the slab cache for nfs_direct_req structures ++ * nfs_init_directcache - destroy the slab cache for nfs_direct_req structures + * + */ +-void __exit nfs_destroy_directcache(void) ++void nfs_destroy_directcache(void) + { + if (kmem_cache_destroy(nfs_direct_cachep)) + printk(KERN_INFO "nfs_direct_cache: not all structures were freed\n"); +diff --git a/fs/nfs/file.c b/fs/nfs/file.c +index 0211bc4..801cc0f 100644 +--- a/fs/nfs/file.c ++++ b/fs/nfs/file.c +@@ -127,6 +127,23 @@ nfs_file_release(struct inode *inode, st + } + + /** ++ * nfs_revalidate_file - Revalidate the page cache & related metadata ++ * @inode - pointer to inode struct ++ * @file - pointer to file ++ */ ++static int nfs_revalidate_file(struct inode *inode, struct file *filp) ++{ ++ struct nfs_inode *nfsi = NFS_I(inode); ++ int retval = 0; ++ ++ if ((nfsi->cache_validity & (NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_ATTR)) ++ || nfs_attribute_timeout(inode)) ++ retval = __nfs_revalidate_inode(NFS_SERVER(inode), inode); ++ nfs_revalidate_mapping(inode, filp->f_mapping); ++ return 0; ++} ++ ++/** + * nfs_revalidate_size - Revalidate the file size + * @inode - pointer to inode struct + * @file - pointer to struct file +@@ -211,7 +228,7 @@ nfs_file_read(struct kiocb *iocb, char _ + dentry->d_parent->d_name.name, dentry->d_name.name, + (unsigned long) count, (unsigned long) pos); + +- result = nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); ++ result = nfs_revalidate_file(inode, iocb->ki_filp); + nfs_add_stats(inode, NFSIOS_NORMALREADBYTES, count); + if (!result) + result = generic_file_aio_read(iocb, buf, count, pos); +@@ -230,7 +247,7 @@ nfs_file_sendfile(struct file *filp, lof + dentry->d_parent->d_name.name, dentry->d_name.name, + (unsigned long) count, (unsigned long long) *ppos); + +- res = nfs_revalidate_mapping(inode, filp->f_mapping); ++ res = nfs_revalidate_file(inode, filp); + if (!res) + res = generic_file_sendfile(filp, ppos, count, actor, target); + return res; +@@ -246,7 +263,7 @@ nfs_file_mmap(struct file * file, struct + dfprintk(VFS, "nfs: mmap(%s/%s)\n", + dentry->d_parent->d_name.name, dentry->d_name.name); + +- status = nfs_revalidate_mapping(inode, file->f_mapping); ++ status = nfs_revalidate_file(inode, file); + if (!status) + status = generic_file_mmap(file, vma); + return status; +@@ -303,11 +320,7 @@ static int nfs_commit_write(struct file + + static void nfs_invalidate_page(struct page *page, unsigned long offset) + { +- struct inode *inode = page->mapping->host; +- +- /* Cancel any unstarted writes on this page */ +- if (offset == 0) +- nfs_sync_inode_wait(inode, page->index, 1, FLUSH_INVALIDATE); ++ /* FIXME: we really should cancel any unstarted writes on this page */ + } + + static int nfs_release_page(struct page *page, gfp_t gfp) +@@ -366,6 +379,7 @@ nfs_file_write(struct kiocb *iocb, const + if (result) + goto out; + } ++ nfs_revalidate_mapping(inode, iocb->ki_filp->f_mapping); + + result = count; + if (!count) +diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c +index b81e7ed..3fab5b0 100644 +--- a/fs/nfs/idmap.c ++++ b/fs/nfs/idmap.c +@@ -47,6 +47,7 @@ + #include + #include + ++#include + #include + + #include +diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c +index 24a7139..d0b991a 100644 +--- a/fs/nfs/inode.c ++++ b/fs/nfs/inode.c +@@ -36,8 +36,6 @@ + #include + #include + #include +-#include +-#include + + #include + #include +@@ -46,17 +44,89 @@ + #include "callback.h" + #include "delegation.h" + #include "iostat.h" +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_VFS + #define NFS_PARANOIA 1 + ++/* Maximum number of readahead requests ++ * FIXME: this should really be a sysctl so that users may tune it to suit ++ * their needs. People that do NFS over a slow network, might for ++ * instance want to reduce it to something closer to 1 for improved ++ * interactive response. ++ */ ++#define NFS_MAX_READAHEAD (RPC_DEF_SLOT_TABLE - 1) ++ + static void nfs_invalidate_inode(struct inode *); + static int nfs_update_inode(struct inode *, struct nfs_fattr *); + ++static struct inode *nfs_alloc_inode(struct super_block *sb); ++static void nfs_destroy_inode(struct inode *); ++static int nfs_write_inode(struct inode *,int); ++static void nfs_delete_inode(struct inode *); ++static void nfs_clear_inode(struct inode *); ++static void nfs_umount_begin(struct super_block *); ++static int nfs_statfs(struct super_block *, struct kstatfs *); ++static int nfs_show_options(struct seq_file *, struct vfsmount *); ++static int nfs_show_stats(struct seq_file *, struct vfsmount *); + static void nfs_zap_acl_cache(struct inode *); + +-static kmem_cache_t * nfs_inode_cachep; ++static struct rpc_program nfs_program; ++ ++static struct super_operations nfs_sops = { ++ .alloc_inode = nfs_alloc_inode, ++ .destroy_inode = nfs_destroy_inode, ++ .write_inode = nfs_write_inode, ++ .delete_inode = nfs_delete_inode, ++ .statfs = nfs_statfs, ++ .clear_inode = nfs_clear_inode, ++ .umount_begin = nfs_umount_begin, ++ .show_options = nfs_show_options, ++ .show_stats = nfs_show_stats, ++}; ++ ++/* ++ * RPC cruft for NFS ++ */ ++static struct rpc_stat nfs_rpcstat = { ++ .program = &nfs_program ++}; ++static struct rpc_version * nfs_version[] = { ++ NULL, ++ NULL, ++ &nfs_version2, ++#if defined(CONFIG_NFS_V3) ++ &nfs_version3, ++#elif defined(CONFIG_NFS_V4) ++ NULL, ++#endif ++#if defined(CONFIG_NFS_V4) ++ &nfs_version4, ++#endif ++}; ++ ++static struct rpc_program nfs_program = { ++ .name = "nfs", ++ .number = NFS_PROGRAM, ++ .nrvers = ARRAY_SIZE(nfs_version), ++ .version = nfs_version, ++ .stats = &nfs_rpcstat, ++ .pipe_dir_name = "/nfs", ++}; ++ ++#ifdef CONFIG_NFS_V3_ACL ++static struct rpc_stat nfsacl_rpcstat = { &nfsacl_program }; ++static struct rpc_version * nfsacl_version[] = { ++ [3] = &nfsacl_version3, ++}; ++ ++struct rpc_program nfsacl_program = { ++ .name = "nfsacl", ++ .number = NFS_ACL_PROGRAM, ++ .nrvers = ARRAY_SIZE(nfsacl_version), ++ .version = nfsacl_version, ++ .stats = &nfsacl_rpcstat, ++}; ++#endif /* CONFIG_NFS_V3_ACL */ + + static inline unsigned long + nfs_fattr_to_ino_t(struct nfs_fattr *fattr) +@@ -64,7 +134,8 @@ nfs_fattr_to_ino_t(struct nfs_fattr *fat + return nfs_fileid_to_ino_t(fattr->fileid); + } + +-int nfs_write_inode(struct inode *inode, int sync) ++static int ++nfs_write_inode(struct inode *inode, int sync) + { + int flags = sync ? FLUSH_SYNC : 0; + int ret; +@@ -75,15 +146,31 @@ int nfs_write_inode(struct inode *inode, + return 0; + } + +-void nfs_clear_inode(struct inode *inode) ++static void ++nfs_delete_inode(struct inode * inode) + { +- struct nfs_inode *nfsi = NFS_I(inode); +- struct rpc_cred *cred; ++ dprintk("NFS: delete_inode(%s/%ld)\n", inode->i_sb->s_id, inode->i_ino); ++ ++ truncate_inode_pages(&inode->i_data, 0); + ++ nfs_wb_all(inode); + /* + * The following should never happen... + */ +- BUG_ON(nfs_have_writebacks(inode)); ++ if (nfs_have_writebacks(inode)) { ++ printk(KERN_ERR "nfs_delete_inode: inode %ld has pending RPC requests\n", inode->i_ino); ++ } ++ ++ clear_inode(inode); ++} ++ ++static void ++nfs_clear_inode(struct inode *inode) ++{ ++ struct nfs_inode *nfsi = NFS_I(inode); ++ struct rpc_cred *cred; ++ ++ nfs_wb_all(inode); + BUG_ON (!list_empty(&nfsi->open_files)); + nfs_zap_acl_cache(inode); + cred = nfsi->cache_access.cred; +@@ -92,6 +179,554 @@ void nfs_clear_inode(struct inode *inode + BUG_ON(atomic_read(&nfsi->data_updates) != 0); + } + ++void ++nfs_umount_begin(struct super_block *sb) ++{ ++ struct rpc_clnt *rpc = NFS_SB(sb)->client; ++ ++ /* -EIO all pending I/O */ ++ if (!IS_ERR(rpc)) ++ rpc_killall_tasks(rpc); ++ rpc = NFS_SB(sb)->client_acl; ++ if (!IS_ERR(rpc)) ++ rpc_killall_tasks(rpc); ++} ++ ++ ++static inline unsigned long ++nfs_block_bits(unsigned long bsize, unsigned char *nrbitsp) ++{ ++ /* make sure blocksize is a power of two */ ++ if ((bsize & (bsize - 1)) || nrbitsp) { ++ unsigned char nrbits; ++ ++ for (nrbits = 31; nrbits && !(bsize & (1 << nrbits)); nrbits--) ++ ; ++ bsize = 1 << nrbits; ++ if (nrbitsp) ++ *nrbitsp = nrbits; ++ } ++ ++ return bsize; ++} ++ ++/* ++ * Calculate the number of 512byte blocks used. ++ */ ++static inline unsigned long ++nfs_calc_block_size(u64 tsize) ++{ ++ loff_t used = (tsize + 511) >> 9; ++ return (used > ULONG_MAX) ? ULONG_MAX : used; ++} ++ ++/* ++ * Compute and set NFS server blocksize ++ */ ++static inline unsigned long ++nfs_block_size(unsigned long bsize, unsigned char *nrbitsp) ++{ ++ if (bsize < NFS_MIN_FILE_IO_SIZE) ++ bsize = NFS_DEF_FILE_IO_SIZE; ++ else if (bsize >= NFS_MAX_FILE_IO_SIZE) ++ bsize = NFS_MAX_FILE_IO_SIZE; ++ ++ return nfs_block_bits(bsize, nrbitsp); ++} ++ ++/* ++ * Obtain the root inode of the file system. ++ */ ++static struct inode * ++nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *fsinfo) ++{ ++ struct nfs_server *server = NFS_SB(sb); ++ int error; ++ ++ error = server->rpc_ops->getroot(server, rootfh, fsinfo); ++ if (error < 0) { ++ dprintk("nfs_get_root: getattr error = %d\n", -error); ++ return ERR_PTR(error); ++ } ++ ++ return nfs_fhget(sb, rootfh, fsinfo->fattr); ++} ++ ++/* ++ * Do NFS version-independent mount processing, and sanity checking ++ */ ++static int ++nfs_sb_init(struct super_block *sb, rpc_authflavor_t authflavor) ++{ ++ struct nfs_server *server; ++ struct inode *root_inode; ++ struct nfs_fattr fattr; ++ struct nfs_fsinfo fsinfo = { ++ .fattr = &fattr, ++ }; ++ struct nfs_pathconf pathinfo = { ++ .fattr = &fattr, ++ }; ++ int no_root_error = 0; ++ unsigned long max_rpc_payload; ++ ++ /* We probably want something more informative here */ ++ snprintf(sb->s_id, sizeof(sb->s_id), "%x:%x", MAJOR(sb->s_dev), MINOR(sb->s_dev)); ++ ++ server = NFS_SB(sb); ++ ++ sb->s_magic = NFS_SUPER_MAGIC; ++ ++ server->io_stats = nfs_alloc_iostats(); ++ if (server->io_stats == NULL) ++ return -ENOMEM; ++ ++ root_inode = nfs_get_root(sb, &server->fh, &fsinfo); ++ /* Did getting the root inode fail? */ ++ if (IS_ERR(root_inode)) { ++ no_root_error = PTR_ERR(root_inode); ++ goto out_no_root; ++ } ++ sb->s_root = d_alloc_root(root_inode); ++ if (!sb->s_root) { ++ no_root_error = -ENOMEM; ++ goto out_no_root; ++ } ++ sb->s_root->d_op = server->rpc_ops->dentry_ops; ++ ++ /* mount time stamp, in seconds */ ++ server->mount_time = jiffies; ++ ++ /* Get some general file system info */ ++ if (server->namelen == 0 && ++ server->rpc_ops->pathconf(server, &server->fh, &pathinfo) >= 0) ++ server->namelen = pathinfo.max_namelen; ++ /* Work out a lot of parameters */ ++ if (server->rsize == 0) ++ server->rsize = nfs_block_size(fsinfo.rtpref, NULL); ++ if (server->wsize == 0) ++ server->wsize = nfs_block_size(fsinfo.wtpref, NULL); ++ ++ if (fsinfo.rtmax >= 512 && server->rsize > fsinfo.rtmax) ++ server->rsize = nfs_block_size(fsinfo.rtmax, NULL); ++ if (fsinfo.wtmax >= 512 && server->wsize > fsinfo.wtmax) ++ server->wsize = nfs_block_size(fsinfo.wtmax, NULL); ++ ++ max_rpc_payload = nfs_block_size(rpc_max_payload(server->client), NULL); ++ if (server->rsize > max_rpc_payload) ++ server->rsize = max_rpc_payload; ++ if (server->rsize > NFS_MAX_FILE_IO_SIZE) ++ server->rsize = NFS_MAX_FILE_IO_SIZE; ++ server->rpages = (server->rsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; ++ ++ if (server->wsize > max_rpc_payload) ++ server->wsize = max_rpc_payload; ++ if (server->wsize > NFS_MAX_FILE_IO_SIZE) ++ server->wsize = NFS_MAX_FILE_IO_SIZE; ++ server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; ++ ++ if (sb->s_blocksize == 0) ++ sb->s_blocksize = nfs_block_bits(server->wsize, ++ &sb->s_blocksize_bits); ++ server->wtmult = nfs_block_bits(fsinfo.wtmult, NULL); ++ ++ server->dtsize = nfs_block_size(fsinfo.dtpref, NULL); ++ if (server->dtsize > PAGE_CACHE_SIZE) ++ server->dtsize = PAGE_CACHE_SIZE; ++ if (server->dtsize > server->rsize) ++ server->dtsize = server->rsize; ++ ++ if (server->flags & NFS_MOUNT_NOAC) { ++ server->acregmin = server->acregmax = 0; ++ server->acdirmin = server->acdirmax = 0; ++ sb->s_flags |= MS_SYNCHRONOUS; ++ } ++ server->backing_dev_info.ra_pages = server->rpages * NFS_MAX_READAHEAD; ++ ++ sb->s_maxbytes = fsinfo.maxfilesize; ++ if (sb->s_maxbytes > MAX_LFS_FILESIZE) ++ sb->s_maxbytes = MAX_LFS_FILESIZE; ++ ++ server->client->cl_intr = (server->flags & NFS_MOUNT_INTR) ? 1 : 0; ++ server->client->cl_softrtry = (server->flags & NFS_MOUNT_SOFT) ? 1 : 0; ++ ++ /* We're airborne Set socket buffersize */ ++ rpc_setbufsize(server->client, server->wsize + 100, server->rsize + 100); ++ return 0; ++ /* Yargs. It didn't work out. */ ++out_no_root: ++ dprintk("nfs_sb_init: get root inode failed: errno %d\n", -no_root_error); ++ if (!IS_ERR(root_inode)) ++ iput(root_inode); ++ return no_root_error; ++} ++ ++static void nfs_init_timeout_values(struct rpc_timeout *to, int proto, unsigned int timeo, unsigned int retrans) ++{ ++ to->to_initval = timeo * HZ / 10; ++ to->to_retries = retrans; ++ if (!to->to_retries) ++ to->to_retries = 2; ++ ++ switch (proto) { ++ case IPPROTO_TCP: ++ if (!to->to_initval) ++ to->to_initval = 60 * HZ; ++ if (to->to_initval > NFS_MAX_TCP_TIMEOUT) ++ to->to_initval = NFS_MAX_TCP_TIMEOUT; ++ to->to_increment = to->to_initval; ++ to->to_maxval = to->to_initval + (to->to_increment * to->to_retries); ++ to->to_exponential = 0; ++ break; ++ case IPPROTO_UDP: ++ default: ++ if (!to->to_initval) ++ to->to_initval = 11 * HZ / 10; ++ if (to->to_initval > NFS_MAX_UDP_TIMEOUT) ++ to->to_initval = NFS_MAX_UDP_TIMEOUT; ++ to->to_maxval = NFS_MAX_UDP_TIMEOUT; ++ to->to_exponential = 1; ++ break; ++ } ++} ++ ++/* ++ * Create an RPC client handle. ++ */ ++static struct rpc_clnt * ++nfs_create_client(struct nfs_server *server, const struct nfs_mount_data *data) ++{ ++ struct rpc_timeout timeparms; ++ struct rpc_xprt *xprt = NULL; ++ struct rpc_clnt *clnt = NULL; ++ int proto = (data->flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP; ++ ++ nfs_init_timeout_values(&timeparms, proto, data->timeo, data->retrans); ++ ++ server->retrans_timeo = timeparms.to_initval; ++ server->retrans_count = timeparms.to_retries; ++ ++ /* create transport and client */ ++ xprt = xprt_create_proto(proto, &server->addr, &timeparms); ++ if (IS_ERR(xprt)) { ++ dprintk("%s: cannot create RPC transport. Error = %ld\n", ++ __FUNCTION__, PTR_ERR(xprt)); ++ return (struct rpc_clnt *)xprt; ++ } ++ clnt = rpc_create_client(xprt, server->hostname, &nfs_program, ++ server->rpc_ops->version, data->pseudoflavor); ++ if (IS_ERR(clnt)) { ++ dprintk("%s: cannot create RPC client. Error = %ld\n", ++ __FUNCTION__, PTR_ERR(xprt)); ++ goto out_fail; ++ } ++ ++ clnt->cl_intr = 1; ++ clnt->cl_softrtry = 1; ++ ++ return clnt; ++ ++out_fail: ++ return clnt; ++} ++ ++/* ++ * The way this works is that the mount process passes a structure ++ * in the data argument which contains the server's IP address ++ * and the root file handle obtained from the server's mount ++ * daemon. We stash these away in the private superblock fields. ++ */ ++static int ++nfs_fill_super(struct super_block *sb, struct nfs_mount_data *data, int silent) ++{ ++ struct nfs_server *server; ++ rpc_authflavor_t authflavor; ++ ++ server = NFS_SB(sb); ++ sb->s_blocksize_bits = 0; ++ sb->s_blocksize = 0; ++ if (data->bsize) ++ sb->s_blocksize = nfs_block_size(data->bsize, &sb->s_blocksize_bits); ++ if (data->rsize) ++ server->rsize = nfs_block_size(data->rsize, NULL); ++ if (data->wsize) ++ server->wsize = nfs_block_size(data->wsize, NULL); ++ server->flags = data->flags & NFS_MOUNT_FLAGMASK; ++ ++ server->acregmin = data->acregmin*HZ; ++ server->acregmax = data->acregmax*HZ; ++ server->acdirmin = data->acdirmin*HZ; ++ server->acdirmax = data->acdirmax*HZ; ++ ++ /* Start lockd here, before we might error out */ ++ if (!(server->flags & NFS_MOUNT_NONLM)) ++ lockd_up(); ++ ++ server->namelen = data->namlen; ++ server->hostname = kmalloc(strlen(data->hostname) + 1, GFP_KERNEL); ++ if (!server->hostname) ++ return -ENOMEM; ++ strcpy(server->hostname, data->hostname); ++ ++ /* Check NFS protocol revision and initialize RPC op vector ++ * and file handle pool. */ ++#ifdef CONFIG_NFS_V3 ++ if (server->flags & NFS_MOUNT_VER3) { ++ server->rpc_ops = &nfs_v3_clientops; ++ server->caps |= NFS_CAP_READDIRPLUS; ++ } else { ++ server->rpc_ops = &nfs_v2_clientops; ++ } ++#else ++ server->rpc_ops = &nfs_v2_clientops; ++#endif ++ ++ /* Fill in pseudoflavor for mount version < 5 */ ++ if (!(data->flags & NFS_MOUNT_SECFLAVOUR)) ++ data->pseudoflavor = RPC_AUTH_UNIX; ++ authflavor = data->pseudoflavor; /* save for sb_init() */ ++ /* XXX maybe we want to add a server->pseudoflavor field */ ++ ++ /* Create RPC client handles */ ++ server->client = nfs_create_client(server, data); ++ if (IS_ERR(server->client)) ++ return PTR_ERR(server->client); ++ /* RFC 2623, sec 2.3.2 */ ++ if (authflavor != RPC_AUTH_UNIX) { ++ struct rpc_auth *auth; ++ ++ server->client_sys = rpc_clone_client(server->client); ++ if (IS_ERR(server->client_sys)) ++ return PTR_ERR(server->client_sys); ++ auth = rpcauth_create(RPC_AUTH_UNIX, server->client_sys); ++ if (IS_ERR(auth)) ++ return PTR_ERR(auth); ++ } else { ++ atomic_inc(&server->client->cl_count); ++ server->client_sys = server->client; ++ } ++ if (server->flags & NFS_MOUNT_VER3) { ++#ifdef CONFIG_NFS_V3_ACL ++ if (!(server->flags & NFS_MOUNT_NOACL)) { ++ server->client_acl = rpc_bind_new_program(server->client, &nfsacl_program, 3); ++ /* No errors! Assume that Sun nfsacls are supported */ ++ if (!IS_ERR(server->client_acl)) ++ server->caps |= NFS_CAP_ACLS; ++ } ++#else ++ server->flags &= ~NFS_MOUNT_NOACL; ++#endif /* CONFIG_NFS_V3_ACL */ ++ /* ++ * The VFS shouldn't apply the umask to mode bits. We will ++ * do so ourselves when necessary. ++ */ ++ sb->s_flags |= MS_POSIXACL; ++ if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN) ++ server->namelen = NFS3_MAXNAMLEN; ++ sb->s_time_gran = 1; ++ } else { ++ if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN) ++ server->namelen = NFS2_MAXNAMLEN; ++ } ++ ++ sb->s_op = &nfs_sops; ++ return nfs_sb_init(sb, authflavor); ++} ++ ++static int ++nfs_statfs(struct super_block *sb, struct kstatfs *buf) ++{ ++ struct nfs_server *server = NFS_SB(sb); ++ unsigned char blockbits; ++ unsigned long blockres; ++ struct nfs_fh *rootfh = NFS_FH(sb->s_root->d_inode); ++ struct nfs_fattr fattr; ++ struct nfs_fsstat res = { ++ .fattr = &fattr, ++ }; ++ int error; ++ ++ lock_kernel(); ++ ++ error = server->rpc_ops->statfs(server, rootfh, &res); ++ buf->f_type = NFS_SUPER_MAGIC; ++ if (error < 0) ++ goto out_err; ++ ++ /* ++ * Current versions of glibc do not correctly handle the ++ * case where f_frsize != f_bsize. Eventually we want to ++ * report the value of wtmult in this field. ++ */ ++ buf->f_frsize = sb->s_blocksize; ++ ++ /* ++ * On most *nix systems, f_blocks, f_bfree, and f_bavail ++ * are reported in units of f_frsize. Linux hasn't had ++ * an f_frsize field in its statfs struct until recently, ++ * thus historically Linux's sys_statfs reports these ++ * fields in units of f_bsize. ++ */ ++ buf->f_bsize = sb->s_blocksize; ++ blockbits = sb->s_blocksize_bits; ++ blockres = (1 << blockbits) - 1; ++ buf->f_blocks = (res.tbytes + blockres) >> blockbits; ++ buf->f_bfree = (res.fbytes + blockres) >> blockbits; ++ buf->f_bavail = (res.abytes + blockres) >> blockbits; ++ ++ buf->f_files = res.tfiles; ++ buf->f_ffree = res.afiles; ++ ++ buf->f_namelen = server->namelen; ++ out: ++ unlock_kernel(); ++ return 0; ++ ++ out_err: ++ dprintk("%s: statfs error = %d\n", __FUNCTION__, -error); ++ buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; ++ goto out; ++ ++} ++ ++static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss, int showdefaults) ++{ ++ static struct proc_nfs_info { ++ int flag; ++ char *str; ++ char *nostr; ++ } nfs_info[] = { ++ { NFS_MOUNT_SOFT, ",soft", ",hard" }, ++ { NFS_MOUNT_INTR, ",intr", "" }, ++ { NFS_MOUNT_NOCTO, ",nocto", "" }, ++ { NFS_MOUNT_NOAC, ",noac", "" }, ++ { NFS_MOUNT_NONLM, ",nolock", "" }, ++ { NFS_MOUNT_NOACL, ",noacl", "" }, ++ { 0, NULL, NULL } ++ }; ++ struct proc_nfs_info *nfs_infop; ++ char buf[12]; ++ char *proto; ++ ++ seq_printf(m, ",vers=%d", nfss->rpc_ops->version); ++ seq_printf(m, ",rsize=%d", nfss->rsize); ++ seq_printf(m, ",wsize=%d", nfss->wsize); ++ if (nfss->acregmin != 3*HZ || showdefaults) ++ seq_printf(m, ",acregmin=%d", nfss->acregmin/HZ); ++ if (nfss->acregmax != 60*HZ || showdefaults) ++ seq_printf(m, ",acregmax=%d", nfss->acregmax/HZ); ++ if (nfss->acdirmin != 30*HZ || showdefaults) ++ seq_printf(m, ",acdirmin=%d", nfss->acdirmin/HZ); ++ if (nfss->acdirmax != 60*HZ || showdefaults) ++ seq_printf(m, ",acdirmax=%d", nfss->acdirmax/HZ); ++ for (nfs_infop = nfs_info; nfs_infop->flag; nfs_infop++) { ++ if (nfss->flags & nfs_infop->flag) ++ seq_puts(m, nfs_infop->str); ++ else ++ seq_puts(m, nfs_infop->nostr); ++ } ++ switch (nfss->client->cl_xprt->prot) { ++ case IPPROTO_TCP: ++ proto = "tcp"; ++ break; ++ case IPPROTO_UDP: ++ proto = "udp"; ++ break; ++ default: ++ snprintf(buf, sizeof(buf), "%u", nfss->client->cl_xprt->prot); ++ proto = buf; ++ } ++ seq_printf(m, ",proto=%s", proto); ++ seq_printf(m, ",timeo=%lu", 10U * nfss->retrans_timeo / HZ); ++ seq_printf(m, ",retrans=%u", nfss->retrans_count); ++} ++ ++static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) ++{ ++ struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); ++ ++ nfs_show_mount_options(m, nfss, 0); ++ ++ seq_puts(m, ",addr="); ++ seq_escape(m, nfss->hostname, " \t\n\\"); ++ ++ return 0; ++} ++ ++static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) ++{ ++ int i, cpu; ++ struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); ++ struct rpc_auth *auth = nfss->client->cl_auth; ++ struct nfs_iostats totals = { }; ++ ++ seq_printf(m, "statvers=%s", NFS_IOSTAT_VERS); ++ ++ /* ++ * Display all mount option settings ++ */ ++ seq_printf(m, "\n\topts:\t"); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_RDONLY ? "ro" : "rw"); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_SYNCHRONOUS ? ",sync" : ""); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_NOATIME ? ",noatime" : ""); ++ seq_puts(m, mnt->mnt_sb->s_flags & MS_NODIRATIME ? ",nodiratime" : ""); ++ nfs_show_mount_options(m, nfss, 1); ++ ++ seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ); ++ ++ seq_printf(m, "\n\tcaps:\t"); ++ seq_printf(m, "caps=0x%x", nfss->caps); ++ seq_printf(m, ",wtmult=%d", nfss->wtmult); ++ seq_printf(m, ",dtsize=%d", nfss->dtsize); ++ seq_printf(m, ",bsize=%d", nfss->bsize); ++ seq_printf(m, ",namelen=%d", nfss->namelen); ++ ++#ifdef CONFIG_NFS_V4 ++ if (nfss->rpc_ops->version == 4) { ++ seq_printf(m, "\n\tnfsv4:\t"); ++ seq_printf(m, "bm0=0x%x", nfss->attr_bitmask[0]); ++ seq_printf(m, ",bm1=0x%x", nfss->attr_bitmask[1]); ++ seq_printf(m, ",acl=0x%x", nfss->acl_bitmask); ++ } ++#endif ++ ++ /* ++ * Display security flavor in effect for this mount ++ */ ++ seq_printf(m, "\n\tsec:\tflavor=%d", auth->au_ops->au_flavor); ++ if (auth->au_flavor) ++ seq_printf(m, ",pseudoflavor=%d", auth->au_flavor); ++ ++ /* ++ * Display superblock I/O counters ++ */ ++ for_each_possible_cpu(cpu) { ++ struct nfs_iostats *stats; ++ ++ preempt_disable(); ++ stats = per_cpu_ptr(nfss->io_stats, cpu); ++ ++ for (i = 0; i < __NFSIOS_COUNTSMAX; i++) ++ totals.events[i] += stats->events[i]; ++ for (i = 0; i < __NFSIOS_BYTESMAX; i++) ++ totals.bytes[i] += stats->bytes[i]; ++ ++ preempt_enable(); ++ } ++ ++ seq_printf(m, "\n\tevents:\t"); ++ for (i = 0; i < __NFSIOS_COUNTSMAX; i++) ++ seq_printf(m, "%lu ", totals.events[i]); ++ seq_printf(m, "\n\tbytes:\t"); ++ for (i = 0; i < __NFSIOS_BYTESMAX; i++) ++ seq_printf(m, "%Lu ", totals.bytes[i]); ++ seq_printf(m, "\n"); ++ ++ rpc_print_iostats(m, nfss->client); ++ ++ return 0; ++} ++ + /** + * nfs_sync_mapping - helper to flush all mmapped dirty data to disk + */ +@@ -254,14 +889,6 @@ nfs_fhget(struct super_block *sb, struct + if (nfs_server_capable(inode, NFS_CAP_READDIRPLUS) + && fattr->size <= NFS_LIMIT_READDIRPLUS) + set_bit(NFS_INO_ADVISE_RDPLUS, &NFS_FLAGS(inode)); +- /* Deal with crossing mountpoints */ +- if (!nfs_fsid_equal(&NFS_SB(sb)->fsid, &fattr->fsid)) { +- if (fattr->valid & NFS_ATTR_FATTR_V4_REFERRAL) +- inode->i_op = &nfs_referral_inode_operations; +- else +- inode->i_op = &nfs_mountpoint_inode_operations; +- inode->i_fop = NULL; +- } + } else if (S_ISLNK(inode->i_mode)) + inode->i_op = &nfs_symlink_inode_operations; + else +@@ -580,7 +1207,6 @@ __nfs_revalidate_inode(struct nfs_server + dfprintk(PAGECACHE, "NFS: revalidating (%s/%Ld)\n", + inode->i_sb->s_id, (long long)NFS_FILEID(inode)); + +- nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE); + lock_kernel(); + if (!inode || is_bad_inode(inode)) + goto out_nowait; +@@ -594,7 +1220,7 @@ __nfs_revalidate_inode(struct nfs_server + status = -ESTALE; + /* Do we trust the cached ESTALE? */ + if (NFS_ATTRTIMEO(inode) != 0) { +- if (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ATIME)) { ++ if (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ATIME)) { + /* no */ + } else + goto out; +@@ -625,6 +1251,8 @@ __nfs_revalidate_inode(struct nfs_server + } + spin_unlock(&inode->i_lock); + ++ nfs_revalidate_mapping(inode, inode->i_mapping); ++ + if (nfsi->cache_validity & NFS_INO_INVALID_ACL) + nfs_zap_acl_cache(inode); + +@@ -658,7 +1286,8 @@ int nfs_attribute_timeout(struct inode * + */ + int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode) + { +- if (!(NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATTR) ++ nfs_inc_stats(inode, NFSIOS_INODEREVALIDATE); ++ if (!(NFS_I(inode)->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA)) + && !nfs_attribute_timeout(inode)) + return NFS_STALE(inode) ? -ESTALE : 0; + return __nfs_revalidate_inode(server, inode); +@@ -669,16 +1298,9 @@ int nfs_revalidate_inode(struct nfs_serv + * @inode - pointer to host inode + * @mapping - pointer to mapping + */ +-int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping) ++void nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping) + { + struct nfs_inode *nfsi = NFS_I(inode); +- int ret = 0; +- +- if (NFS_STALE(inode)) +- ret = -ESTALE; +- if ((nfsi->cache_validity & NFS_INO_REVAL_PAGECACHE) +- || nfs_attribute_timeout(inode)) +- ret = __nfs_revalidate_inode(NFS_SERVER(inode), inode); + + if (nfsi->cache_validity & NFS_INO_INVALID_DATA) { + nfs_inc_stats(inode, NFSIOS_DATAINVALIDATE); +@@ -699,7 +1321,6 @@ int nfs_revalidate_mapping(struct inode + inode->i_sb->s_id, + (long long)NFS_FILEID(inode)); + } +- return ret; + } + + /** +@@ -739,6 +1360,12 @@ static void nfs_wcc_update_inode(struct + { + struct nfs_inode *nfsi = NFS_I(inode); + ++ if ((fattr->valid & NFS_ATTR_PRE_CHANGE) != 0 ++ && nfsi->change_attr == fattr->pre_change_attr) { ++ nfsi->change_attr = fattr->change_attr; ++ nfsi->cache_change_attribute = jiffies; ++ } ++ + /* If we have atomic WCC data, we may update some attributes */ + if ((fattr->valid & NFS_ATTR_WCC) != 0) { + if (timespec_equal(&inode->i_ctime, &fattr->pre_ctime)) { +@@ -772,6 +1399,9 @@ static int nfs_check_inode_attributes(st + int data_unstable; + + ++ if ((fattr->valid & NFS_ATTR_FATTR) == 0) ++ return 0; ++ + /* Has the inode gone and changed behind our back? */ + if (nfsi->fileid != fattr->fileid + || (inode->i_mode & S_IFMT) != (fattr->mode & S_IFMT)) { +@@ -784,13 +1414,20 @@ static int nfs_check_inode_attributes(st + /* Do atomic weak cache consistency updates */ + nfs_wcc_update_inode(inode, fattr); + +- if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0 && +- nfsi->change_attr != fattr->change_attr) +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; ++ if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0) { ++ if (nfsi->change_attr == fattr->change_attr) ++ goto out; ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR; ++ if (!data_unstable) ++ nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE; ++ } + + /* Verify a few of the more important attributes */ +- if (!timespec_equal(&inode->i_mtime, &fattr->mtime)) +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; ++ if (!timespec_equal(&inode->i_mtime, &fattr->mtime)) { ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR; ++ if (!data_unstable) ++ nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE; ++ } + + cur_size = i_size_read(inode); + new_isize = nfs_size_to_loff_t(fattr->size); +@@ -807,6 +1444,7 @@ static int nfs_check_inode_attributes(st + if (inode->i_nlink != fattr->nlink) + nfsi->cache_validity |= NFS_INO_INVALID_ATTR; + ++out: + if (!timespec_equal(&inode->i_atime, &fattr->atime)) + nfsi->cache_validity |= NFS_INO_INVALID_ATIME; + +@@ -832,6 +1470,7 @@ int nfs_refresh_inode(struct inode *inod + if ((fattr->valid & NFS_ATTR_FATTR) == 0) + return 0; + spin_lock(&inode->i_lock); ++ nfsi->cache_validity &= ~NFS_INO_REVAL_PAGECACHE; + if (time_after(fattr->time_start, nfsi->last_updated)) + status = nfs_update_inode(inode, fattr); + else +@@ -856,7 +1495,7 @@ int nfs_post_op_update_inode(struct inod + + spin_lock(&inode->i_lock); + if (unlikely((fattr->valid & NFS_ATTR_FATTR) == 0)) { +- nfsi->cache_validity |= NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE; ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; + goto out; + } + status = nfs_update_inode(inode, fattr); +@@ -879,7 +1518,6 @@ out: + */ + static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) + { +- struct nfs_server *server; + struct nfs_inode *nfsi = NFS_I(inode); + loff_t cur_isize, new_isize; + unsigned int invalid = 0; +@@ -889,6 +1527,9 @@ static int nfs_update_inode(struct inode + __FUNCTION__, inode->i_sb->s_id, inode->i_ino, + atomic_read(&inode->i_count), fattr->valid); + ++ if ((fattr->valid & NFS_ATTR_FATTR) == 0) ++ return 0; ++ + if (nfsi->fileid != fattr->fileid) + goto out_fileid; + +@@ -898,12 +1539,6 @@ static int nfs_update_inode(struct inode + if ((inode->i_mode & S_IFMT) != (fattr->mode & S_IFMT)) + goto out_changed; + +- server = NFS_SERVER(inode); +- /* Update the fsid if and only if this is the root directory */ +- if (inode == inode->i_sb->s_root->d_inode +- && !nfs_fsid_equal(&server->fsid, &fattr->fsid)) +- server->fsid = fattr->fsid; +- + /* + * Update the read time so we don't revalidate too often. + */ +@@ -913,7 +1548,7 @@ static int nfs_update_inode(struct inode + /* Are we racing with known updates of the metadata on the server? */ + data_stable = nfs_verify_change_attribute(inode, fattr->time_start); + if (data_stable) +- nfsi->cache_validity &= ~(NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_ATIME); ++ nfsi->cache_validity &= ~(NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ATIME); + + /* Do atomic weak cache consistency updates */ + nfs_wcc_update_inode(inode, fattr); +@@ -977,13 +1612,15 @@ static int nfs_update_inode(struct inode + inode->i_blksize = fattr->du.nfs2.blocksize; + } + +- if ((fattr->valid & NFS_ATTR_FATTR_V4) != 0 && +- nfsi->change_attr != fattr->change_attr) { +- dprintk("NFS: change_attr change on server for file %s/%ld\n", +- inode->i_sb->s_id, inode->i_ino); +- nfsi->change_attr = fattr->change_attr; +- invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; +- nfsi->cache_change_attribute = jiffies; ++ if ((fattr->valid & NFS_ATTR_FATTR_V4)) { ++ if (nfsi->change_attr != fattr->change_attr) { ++ dprintk("NFS: change_attr change on server for file %s/%ld\n", ++ inode->i_sb->s_id, inode->i_ino); ++ nfsi->change_attr = fattr->change_attr; ++ invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; ++ nfsi->cache_change_attribute = jiffies; ++ } else ++ invalid &= ~(NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA); + } + + /* Update attrtimeo value if we're out of the unstable period */ +@@ -1031,15 +1668,190 @@ static int nfs_update_inode(struct inode + goto out_err; + } + ++/* ++ * File system information ++ */ ++ ++static int nfs_set_super(struct super_block *s, void *data) ++{ ++ s->s_fs_info = data; ++ return set_anon_super(s, data); ++} ++ ++static int nfs_compare_super(struct super_block *sb, void *data) ++{ ++ struct nfs_server *server = data; ++ struct nfs_server *old = NFS_SB(sb); ++ ++ if (old->addr.sin_addr.s_addr != server->addr.sin_addr.s_addr) ++ return 0; ++ if (old->addr.sin_port != server->addr.sin_port) ++ return 0; ++ return !nfs_compare_fh(&old->fh, &server->fh); ++} ++ ++static struct super_block *nfs_get_sb(struct file_system_type *fs_type, ++ int flags, const char *dev_name, void *raw_data) ++{ ++ int error; ++ struct nfs_server *server = NULL; ++ struct super_block *s; ++ struct nfs_fh *root; ++ struct nfs_mount_data *data = raw_data; ++ ++ s = ERR_PTR(-EINVAL); ++ if (data == NULL) { ++ dprintk("%s: missing data argument\n", __FUNCTION__); ++ goto out_err; ++ } ++ if (data->version <= 0 || data->version > NFS_MOUNT_VERSION) { ++ dprintk("%s: bad mount version\n", __FUNCTION__); ++ goto out_err; ++ } ++ switch (data->version) { ++ case 1: ++ data->namlen = 0; ++ case 2: ++ data->bsize = 0; ++ case 3: ++ if (data->flags & NFS_MOUNT_VER3) { ++ dprintk("%s: mount structure version %d does not support NFSv3\n", ++ __FUNCTION__, ++ data->version); ++ goto out_err; ++ } ++ data->root.size = NFS2_FHSIZE; ++ memcpy(data->root.data, data->old_root.data, NFS2_FHSIZE); ++ case 4: ++ if (data->flags & NFS_MOUNT_SECFLAVOUR) { ++ dprintk("%s: mount structure version %d does not support strong security\n", ++ __FUNCTION__, ++ data->version); ++ goto out_err; ++ } ++ case 5: ++ memset(data->context, 0, sizeof(data->context)); ++ } ++#ifndef CONFIG_NFS_V3 ++ /* If NFSv3 is not compiled in, return -EPROTONOSUPPORT */ ++ s = ERR_PTR(-EPROTONOSUPPORT); ++ if (data->flags & NFS_MOUNT_VER3) { ++ dprintk("%s: NFSv3 not compiled into kernel\n", __FUNCTION__); ++ goto out_err; ++ } ++#endif /* CONFIG_NFS_V3 */ ++ ++ s = ERR_PTR(-ENOMEM); ++ server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); ++ if (!server) ++ goto out_err; ++ /* Zero out the NFS state stuff */ ++ init_nfsv4_state(server); ++ server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); ++ ++ root = &server->fh; ++ if (data->flags & NFS_MOUNT_VER3) ++ root->size = data->root.size; ++ else ++ root->size = NFS2_FHSIZE; ++ s = ERR_PTR(-EINVAL); ++ if (root->size > sizeof(root->data)) { ++ dprintk("%s: invalid root filehandle\n", __FUNCTION__); ++ goto out_err; ++ } ++ memcpy(root->data, data->root.data, root->size); ++ ++ /* We now require that the mount process passes the remote address */ ++ memcpy(&server->addr, &data->addr, sizeof(server->addr)); ++ if (server->addr.sin_addr.s_addr == INADDR_ANY) { ++ dprintk("%s: mount program didn't pass remote address!\n", ++ __FUNCTION__); ++ goto out_err; ++ } ++ ++ /* Fire up rpciod if not yet running */ ++ s = ERR_PTR(rpciod_up()); ++ if (IS_ERR(s)) { ++ dprintk("%s: couldn't start rpciod! Error = %ld\n", ++ __FUNCTION__, PTR_ERR(s)); ++ goto out_err; ++ } ++ ++ s = sget(fs_type, nfs_compare_super, nfs_set_super, server); ++ if (IS_ERR(s) || s->s_root) ++ goto out_rpciod_down; ++ ++ s->s_flags = flags; ++ ++ error = nfs_fill_super(s, data, flags & MS_SILENT ? 1 : 0); ++ if (error) { ++ up_write(&s->s_umount); ++ deactivate_super(s); ++ return ERR_PTR(error); ++ } ++ s->s_flags |= MS_ACTIVE; ++ return s; ++out_rpciod_down: ++ rpciod_down(); ++out_err: ++ kfree(server); ++ return s; ++} ++ ++static void nfs_kill_super(struct super_block *s) ++{ ++ struct nfs_server *server = NFS_SB(s); ++ ++ kill_anon_super(s); ++ ++ if (!IS_ERR(server->client)) ++ rpc_shutdown_client(server->client); ++ if (!IS_ERR(server->client_sys)) ++ rpc_shutdown_client(server->client_sys); ++ if (!IS_ERR(server->client_acl)) ++ rpc_shutdown_client(server->client_acl); ++ ++ if (!(server->flags & NFS_MOUNT_NONLM)) ++ lockd_down(); /* release rpc.lockd */ ++ ++ rpciod_down(); /* release rpciod */ ++ ++ nfs_free_iostats(server->io_stats); ++ kfree(server->hostname); ++ kfree(server); ++} ++ ++static struct file_system_type nfs_fs_type = { ++ .owner = THIS_MODULE, ++ .name = "nfs", ++ .get_sb = nfs_get_sb, ++ .kill_sb = nfs_kill_super, ++ .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, ++}; + + #ifdef CONFIG_NFS_V4 + ++static void nfs4_clear_inode(struct inode *); ++ ++ ++static struct super_operations nfs4_sops = { ++ .alloc_inode = nfs_alloc_inode, ++ .destroy_inode = nfs_destroy_inode, ++ .write_inode = nfs_write_inode, ++ .delete_inode = nfs_delete_inode, ++ .statfs = nfs_statfs, ++ .clear_inode = nfs4_clear_inode, ++ .umount_begin = nfs_umount_begin, ++ .show_options = nfs_show_options, ++ .show_stats = nfs_show_stats, ++}; ++ + /* + * Clean out any remaining NFSv4 state that might be left over due + * to open() calls that passed nfs_atomic_lookup, but failed to call + * nfs_open(). + */ +-void nfs4_clear_inode(struct inode *inode) ++static void nfs4_clear_inode(struct inode *inode) + { + struct nfs_inode *nfsi = NFS_I(inode); + +@@ -1063,9 +1875,357 @@ void nfs4_clear_inode(struct inode *inod + nfs4_close_state(state, state->state); + } + } ++ ++ ++static int nfs4_fill_super(struct super_block *sb, struct nfs4_mount_data *data, int silent) ++{ ++ struct nfs_server *server; ++ struct nfs4_client *clp = NULL; ++ struct rpc_xprt *xprt = NULL; ++ struct rpc_clnt *clnt = NULL; ++ struct rpc_timeout timeparms; ++ rpc_authflavor_t authflavour; ++ int err = -EIO; ++ ++ sb->s_blocksize_bits = 0; ++ sb->s_blocksize = 0; ++ server = NFS_SB(sb); ++ if (data->rsize != 0) ++ server->rsize = nfs_block_size(data->rsize, NULL); ++ if (data->wsize != 0) ++ server->wsize = nfs_block_size(data->wsize, NULL); ++ server->flags = data->flags & NFS_MOUNT_FLAGMASK; ++ server->caps = NFS_CAP_ATOMIC_OPEN; ++ ++ server->acregmin = data->acregmin*HZ; ++ server->acregmax = data->acregmax*HZ; ++ server->acdirmin = data->acdirmin*HZ; ++ server->acdirmax = data->acdirmax*HZ; ++ ++ server->rpc_ops = &nfs_v4_clientops; ++ ++ nfs_init_timeout_values(&timeparms, data->proto, data->timeo, data->retrans); ++ ++ server->retrans_timeo = timeparms.to_initval; ++ server->retrans_count = timeparms.to_retries; ++ ++ clp = nfs4_get_client(&server->addr.sin_addr); ++ if (!clp) { ++ dprintk("%s: failed to create NFS4 client.\n", __FUNCTION__); ++ return -EIO; ++ } ++ ++ /* Now create transport and client */ ++ authflavour = RPC_AUTH_UNIX; ++ if (data->auth_flavourlen != 0) { ++ if (data->auth_flavourlen != 1) { ++ dprintk("%s: Invalid number of RPC auth flavours %d.\n", ++ __FUNCTION__, data->auth_flavourlen); ++ err = -EINVAL; ++ goto out_fail; ++ } ++ if (copy_from_user(&authflavour, data->auth_flavours, sizeof(authflavour))) { ++ err = -EFAULT; ++ goto out_fail; ++ } ++ } ++ ++ down_write(&clp->cl_sem); ++ if (IS_ERR(clp->cl_rpcclient)) { ++ xprt = xprt_create_proto(data->proto, &server->addr, &timeparms); ++ if (IS_ERR(xprt)) { ++ up_write(&clp->cl_sem); ++ err = PTR_ERR(xprt); ++ dprintk("%s: cannot create RPC transport. Error = %d\n", ++ __FUNCTION__, err); ++ goto out_fail; ++ } ++ clnt = rpc_create_client(xprt, server->hostname, &nfs_program, ++ server->rpc_ops->version, authflavour); ++ if (IS_ERR(clnt)) { ++ up_write(&clp->cl_sem); ++ err = PTR_ERR(clnt); ++ dprintk("%s: cannot create RPC client. Error = %d\n", ++ __FUNCTION__, err); ++ goto out_fail; ++ } ++ clnt->cl_intr = 1; ++ clnt->cl_softrtry = 1; ++ clp->cl_rpcclient = clnt; ++ memcpy(clp->cl_ipaddr, server->ip_addr, sizeof(clp->cl_ipaddr)); ++ nfs_idmap_new(clp); ++ } ++ list_add_tail(&server->nfs4_siblings, &clp->cl_superblocks); ++ clnt = rpc_clone_client(clp->cl_rpcclient); ++ if (!IS_ERR(clnt)) ++ server->nfs4_state = clp; ++ up_write(&clp->cl_sem); ++ clp = NULL; ++ ++ if (IS_ERR(clnt)) { ++ err = PTR_ERR(clnt); ++ dprintk("%s: cannot create RPC client. Error = %d\n", ++ __FUNCTION__, err); ++ return err; ++ } ++ ++ server->client = clnt; ++ ++ if (server->nfs4_state->cl_idmap == NULL) { ++ dprintk("%s: failed to create idmapper.\n", __FUNCTION__); ++ return -ENOMEM; ++ } ++ ++ if (clnt->cl_auth->au_flavor != authflavour) { ++ struct rpc_auth *auth; ++ ++ auth = rpcauth_create(authflavour, clnt); ++ if (IS_ERR(auth)) { ++ dprintk("%s: couldn't create credcache!\n", __FUNCTION__); ++ return PTR_ERR(auth); ++ } ++ } ++ ++ sb->s_time_gran = 1; ++ ++ sb->s_op = &nfs4_sops; ++ err = nfs_sb_init(sb, authflavour); ++ if (err == 0) ++ return 0; ++out_fail: ++ if (clp) ++ nfs4_put_client(clp); ++ return err; ++} ++ ++static int nfs4_compare_super(struct super_block *sb, void *data) ++{ ++ struct nfs_server *server = data; ++ struct nfs_server *old = NFS_SB(sb); ++ ++ if (strcmp(server->hostname, old->hostname) != 0) ++ return 0; ++ if (strcmp(server->mnt_path, old->mnt_path) != 0) ++ return 0; ++ return 1; ++} ++ ++static void * ++nfs_copy_user_string(char *dst, struct nfs_string *src, int maxlen) ++{ ++ void *p = NULL; ++ ++ if (!src->len) ++ return ERR_PTR(-EINVAL); ++ if (src->len < maxlen) ++ maxlen = src->len; ++ if (dst == NULL) { ++ p = dst = kmalloc(maxlen + 1, GFP_KERNEL); ++ if (p == NULL) ++ return ERR_PTR(-ENOMEM); ++ } ++ if (copy_from_user(dst, src->data, maxlen)) { ++ kfree(p); ++ return ERR_PTR(-EFAULT); ++ } ++ dst[maxlen] = '\0'; ++ return dst; ++} ++ ++static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, ++ int flags, const char *dev_name, void *raw_data) ++{ ++ int error; ++ struct nfs_server *server; ++ struct super_block *s; ++ struct nfs4_mount_data *data = raw_data; ++ void *p; ++ ++ if (data == NULL) { ++ dprintk("%s: missing data argument\n", __FUNCTION__); ++ return ERR_PTR(-EINVAL); ++ } ++ if (data->version <= 0 || data->version > NFS4_MOUNT_VERSION) { ++ dprintk("%s: bad mount version\n", __FUNCTION__); ++ return ERR_PTR(-EINVAL); ++ } ++ ++ server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); ++ if (!server) ++ return ERR_PTR(-ENOMEM); ++ /* Zero out the NFS state stuff */ ++ init_nfsv4_state(server); ++ server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); ++ ++ p = nfs_copy_user_string(NULL, &data->hostname, 256); ++ if (IS_ERR(p)) ++ goto out_err; ++ server->hostname = p; ++ ++ p = nfs_copy_user_string(NULL, &data->mnt_path, 1024); ++ if (IS_ERR(p)) ++ goto out_err; ++ server->mnt_path = p; ++ ++ p = nfs_copy_user_string(server->ip_addr, &data->client_addr, ++ sizeof(server->ip_addr) - 1); ++ if (IS_ERR(p)) ++ goto out_err; ++ ++ /* We now require that the mount process passes the remote address */ ++ if (data->host_addrlen != sizeof(server->addr)) { ++ s = ERR_PTR(-EINVAL); ++ goto out_free; ++ } ++ if (copy_from_user(&server->addr, data->host_addr, sizeof(server->addr))) { ++ s = ERR_PTR(-EFAULT); ++ goto out_free; ++ } ++ if (server->addr.sin_family != AF_INET || ++ server->addr.sin_addr.s_addr == INADDR_ANY) { ++ dprintk("%s: mount program didn't pass remote IP address!\n", ++ __FUNCTION__); ++ s = ERR_PTR(-EINVAL); ++ goto out_free; ++ } ++ ++ /* Fire up rpciod if not yet running */ ++ s = ERR_PTR(rpciod_up()); ++ if (IS_ERR(s)) { ++ dprintk("%s: couldn't start rpciod! Error = %ld\n", ++ __FUNCTION__, PTR_ERR(s)); ++ goto out_free; ++ } ++ ++ s = sget(fs_type, nfs4_compare_super, nfs_set_super, server); ++ ++ if (IS_ERR(s) || s->s_root) ++ goto out_free; ++ ++ s->s_flags = flags; ++ ++ error = nfs4_fill_super(s, data, flags & MS_SILENT ? 1 : 0); ++ if (error) { ++ up_write(&s->s_umount); ++ deactivate_super(s); ++ return ERR_PTR(error); ++ } ++ s->s_flags |= MS_ACTIVE; ++ return s; ++out_err: ++ s = (struct super_block *)p; ++out_free: ++ kfree(server->mnt_path); ++ kfree(server->hostname); ++ kfree(server); ++ return s; ++} ++ ++static void nfs4_kill_super(struct super_block *sb) ++{ ++ struct nfs_server *server = NFS_SB(sb); ++ ++ nfs_return_all_delegations(sb); ++ kill_anon_super(sb); ++ ++ nfs4_renewd_prepare_shutdown(server); ++ ++ if (server->client != NULL && !IS_ERR(server->client)) ++ rpc_shutdown_client(server->client); ++ ++ destroy_nfsv4_state(server); ++ ++ rpciod_down(); ++ ++ nfs_free_iostats(server->io_stats); ++ kfree(server->hostname); ++ kfree(server); ++} ++ ++static struct file_system_type nfs4_fs_type = { ++ .owner = THIS_MODULE, ++ .name = "nfs4", ++ .get_sb = nfs4_get_sb, ++ .kill_sb = nfs4_kill_super, ++ .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, ++}; ++ ++static const int nfs_set_port_min = 0; ++static const int nfs_set_port_max = 65535; ++static int param_set_port(const char *val, struct kernel_param *kp) ++{ ++ char *endp; ++ int num = simple_strtol(val, &endp, 0); ++ if (endp == val || *endp || num < nfs_set_port_min || num > nfs_set_port_max) ++ return -EINVAL; ++ *((int *)kp->arg) = num; ++ return 0; ++} ++ ++module_param_call(callback_tcpport, param_set_port, param_get_int, ++ &nfs_callback_set_tcpport, 0644); ++ ++static int param_set_idmap_timeout(const char *val, struct kernel_param *kp) ++{ ++ char *endp; ++ int num = simple_strtol(val, &endp, 0); ++ int jif = num * HZ; ++ if (endp == val || *endp || num < 0 || jif < num) ++ return -EINVAL; ++ *((int *)kp->arg) = jif; ++ return 0; ++} ++ ++module_param_call(idmap_cache_timeout, param_set_idmap_timeout, param_get_int, ++ &nfs_idmap_cache_timeout, 0644); ++ ++#define nfs4_init_once(nfsi) \ ++ do { \ ++ INIT_LIST_HEAD(&(nfsi)->open_states); \ ++ nfsi->delegation = NULL; \ ++ nfsi->delegation_state = 0; \ ++ init_rwsem(&nfsi->rwsem); \ ++ } while(0) ++ ++static inline int register_nfs4fs(void) ++{ ++ int ret; ++ ++ ret = nfs_register_sysctl(); ++ if (ret != 0) ++ return ret; ++ ret = register_filesystem(&nfs4_fs_type); ++ if (ret != 0) ++ nfs_unregister_sysctl(); ++ return ret; ++} ++ ++static inline void unregister_nfs4fs(void) ++{ ++ unregister_filesystem(&nfs4_fs_type); ++ nfs_unregister_sysctl(); ++} ++#else ++#define nfs4_init_once(nfsi) \ ++ do { } while (0) ++#define register_nfs4fs() (0) ++#define unregister_nfs4fs() + #endif + +-struct inode *nfs_alloc_inode(struct super_block *sb) ++extern int nfs_init_nfspagecache(void); ++extern void nfs_destroy_nfspagecache(void); ++extern int nfs_init_readpagecache(void); ++extern void nfs_destroy_readpagecache(void); ++extern int nfs_init_writepagecache(void); ++extern void nfs_destroy_writepagecache(void); ++#ifdef CONFIG_NFS_DIRECTIO ++extern int nfs_init_directcache(void); ++extern void nfs_destroy_directcache(void); ++#endif ++ ++static kmem_cache_t * nfs_inode_cachep; ++ ++static struct inode *nfs_alloc_inode(struct super_block *sb) + { + struct nfs_inode *nfsi; + nfsi = (struct nfs_inode *)kmem_cache_alloc(nfs_inode_cachep, SLAB_KERNEL); +@@ -1084,19 +2244,11 @@ struct inode *nfs_alloc_inode(struct sup + return &nfsi->vfs_inode; + } + +-void nfs_destroy_inode(struct inode *inode) ++static void nfs_destroy_inode(struct inode *inode) + { + kmem_cache_free(nfs_inode_cachep, NFS_I(inode)); + } + +-#define nfs4_init_once(nfsi) \ +- do { \ +- INIT_LIST_HEAD(&(nfsi)->open_states); \ +- nfsi->delegation = NULL; \ +- nfsi->delegation_state = 0; \ +- init_rwsem(&nfsi->rwsem); \ +- } while(0) +- + static void init_once(void * foo, kmem_cache_t * cachep, unsigned long flags) + { + struct nfs_inode *nfsi = (struct nfs_inode *) foo; +@@ -1117,7 +2269,7 @@ static void init_once(void * foo, kmem_c + } + } + +-static int __init nfs_init_inodecache(void) ++static int nfs_init_inodecache(void) + { + nfs_inode_cachep = kmem_cache_create("nfs_inode_cache", + sizeof(struct nfs_inode), +@@ -1130,7 +2282,7 @@ static int __init nfs_init_inodecache(vo + return 0; + } + +-static void __exit nfs_destroy_inodecache(void) ++static void nfs_destroy_inodecache(void) + { + if (kmem_cache_destroy(nfs_inode_cachep)) + printk(KERN_INFO "nfs_inode_cache: not all structures were freed\n"); +@@ -1159,22 +2311,29 @@ static int __init init_nfs_fs(void) + if (err) + goto out1; + ++#ifdef CONFIG_NFS_DIRECTIO + err = nfs_init_directcache(); + if (err) + goto out0; ++#endif + + #ifdef CONFIG_PROC_FS + rpc_proc_register(&nfs_rpcstat); + #endif +- if ((err = register_nfs_fs()) != 0) ++ err = register_filesystem(&nfs_fs_type); ++ if (err) ++ goto out; ++ if ((err = register_nfs4fs()) != 0) + goto out; + return 0; + out: + #ifdef CONFIG_PROC_FS + rpc_proc_unregister("nfs"); + #endif ++#ifdef CONFIG_NFS_DIRECTIO + nfs_destroy_directcache(); + out0: ++#endif + nfs_destroy_writepagecache(); + out1: + nfs_destroy_readpagecache(); +@@ -1188,7 +2347,9 @@ out4: + + static void __exit exit_nfs_fs(void) + { ++#ifdef CONFIG_NFS_DIRECTIO + nfs_destroy_directcache(); ++#endif + nfs_destroy_writepagecache(); + nfs_destroy_readpagecache(); + nfs_destroy_inodecache(); +@@ -1196,7 +2357,8 @@ static void __exit exit_nfs_fs(void) + #ifdef CONFIG_PROC_FS + rpc_proc_unregister("nfs"); + #endif +- unregister_nfs_fs(); ++ unregister_filesystem(&nfs_fs_type); ++ unregister_nfs4fs(); + } + + /* Not quite true; I just maintain it */ +diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h +deleted file mode 100644 +index 5e51c45..0000000 +--- a/fs/nfs/internal.h ++++ /dev/null +@@ -1,179 +0,0 @@ +-/* +- * NFS internal definitions +- */ +- +-#include +- +-struct nfs_clone_mount { +- const struct super_block *sb; +- const struct dentry *dentry; +- struct nfs_fh *fh; +- struct nfs_fattr *fattr; +- char *hostname; +- char *mnt_path; +- struct sockaddr_in *addr; +- rpc_authflavor_t authflavor; +-}; +- +-/* namespace-nfs4.c */ +-#ifdef CONFIG_NFS_V4 +-extern struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry); +-#else +-static inline +-struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry) +-{ +- return ERR_PTR(-ENOENT); +-} +-#endif +- +-/* callback_xdr.c */ +-extern struct svc_version nfs4_callback_version1; +- +-/* pagelist.c */ +-extern int __init nfs_init_nfspagecache(void); +-extern void __exit nfs_destroy_nfspagecache(void); +-extern int __init nfs_init_readpagecache(void); +-extern void __exit nfs_destroy_readpagecache(void); +-extern int __init nfs_init_writepagecache(void); +-extern void __exit nfs_destroy_writepagecache(void); +- +-#ifdef CONFIG_NFS_DIRECTIO +-extern int __init nfs_init_directcache(void); +-extern void __exit nfs_destroy_directcache(void); +-#else +-#define nfs_init_directcache() (0) +-#define nfs_destroy_directcache() do {} while(0) +-#endif +- +-/* nfs2xdr.c */ +-extern struct rpc_procinfo nfs_procedures[]; +-extern u32 * nfs_decode_dirent(u32 *, struct nfs_entry *, int); +- +-/* nfs3xdr.c */ +-extern struct rpc_procinfo nfs3_procedures[]; +-extern u32 *nfs3_decode_dirent(u32 *, struct nfs_entry *, int); +- +-/* nfs4xdr.c */ +-extern int nfs_stat_to_errno(int); +-extern u32 *nfs4_decode_dirent(u32 *p, struct nfs_entry *entry, int plus); +- +-/* nfs4proc.c */ +-extern struct rpc_procinfo nfs4_procedures[]; +- +-extern int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, +- struct nfs4_fs_locations *fs_locations, +- struct page *page); +- +-/* inode.c */ +-extern struct inode *nfs_alloc_inode(struct super_block *sb); +-extern void nfs_destroy_inode(struct inode *); +-extern int nfs_write_inode(struct inode *,int); +-extern void nfs_clear_inode(struct inode *); +-#ifdef CONFIG_NFS_V4 +-extern void nfs4_clear_inode(struct inode *); +-#endif +- +-/* super.c */ +-extern struct file_system_type nfs_referral_nfs4_fs_type; +-extern struct file_system_type clone_nfs_fs_type; +-#ifdef CONFIG_NFS_V4 +-extern struct file_system_type clone_nfs4_fs_type; +-#endif +-#ifdef CONFIG_PROC_FS +-extern struct rpc_stat nfs_rpcstat; +-#endif +-extern int __init register_nfs_fs(void); +-extern void __exit unregister_nfs_fs(void); +- +-/* namespace.c */ +-extern char *nfs_path(const char *base, const struct dentry *dentry, +- char *buffer, ssize_t buflen); +- +-/* +- * Determine the mount path as a string +- */ +-static inline char *nfs4_path(const struct dentry *dentry, char *buffer, ssize_t buflen) +-{ +- return nfs_path(NFS_SB(dentry->d_sb)->mnt_path, dentry, buffer, buflen); +-} +- +-/* +- * Determine the device name as a string +- */ +-static inline char *nfs_devname(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, +- char *buffer, ssize_t buflen) +-{ +- return nfs_path(mnt_parent->mnt_devname, dentry, buffer, buflen); +-} +- +-/* +- * Determine the actual block size (and log2 thereof) +- */ +-static inline +-unsigned long nfs_block_bits(unsigned long bsize, unsigned char *nrbitsp) +-{ +- /* make sure blocksize is a power of two */ +- if ((bsize & (bsize - 1)) || nrbitsp) { +- unsigned char nrbits; +- +- for (nrbits = 31; nrbits && !(bsize & (1 << nrbits)); nrbits--) +- ; +- bsize = 1 << nrbits; +- if (nrbitsp) +- *nrbitsp = nrbits; +- } +- +- return bsize; +-} +- +-/* +- * Calculate the number of 512byte blocks used. +- */ +-static inline unsigned long nfs_calc_block_size(u64 tsize) +-{ +- loff_t used = (tsize + 511) >> 9; +- return (used > ULONG_MAX) ? ULONG_MAX : used; +-} +- +-/* +- * Compute and set NFS server blocksize +- */ +-static inline +-unsigned long nfs_block_size(unsigned long bsize, unsigned char *nrbitsp) +-{ +- if (bsize < NFS_MIN_FILE_IO_SIZE) +- bsize = NFS_DEF_FILE_IO_SIZE; +- else if (bsize >= NFS_MAX_FILE_IO_SIZE) +- bsize = NFS_MAX_FILE_IO_SIZE; +- +- return nfs_block_bits(bsize, nrbitsp); +-} +- +-/* +- * Determine the maximum file size for a superblock +- */ +-static inline +-void nfs_super_set_maxbytes(struct super_block *sb, __u64 maxfilesize) +-{ +- sb->s_maxbytes = (loff_t)maxfilesize; +- if (sb->s_maxbytes > MAX_LFS_FILESIZE || sb->s_maxbytes <= 0) +- sb->s_maxbytes = MAX_LFS_FILESIZE; +-} +- +-/* +- * Check if the string represents a "valid" IPv4 address +- */ +-static inline int valid_ipaddr4(const char *buf) +-{ +- int rc, count, in[4]; +- +- rc = sscanf(buf, "%d.%d.%d.%d", &in[0], &in[1], &in[2], &in[3]); +- if (rc != 4) +- return -EINVAL; +- for (count = 0; count < 4; count++) { +- if (in[count] > 255) +- return -EINVAL; +- } +- return 0; +-} +diff --git a/fs/nfs/namespace.c b/fs/nfs/namespace.c +deleted file mode 100644 +index 19b98ca..0000000 +--- a/fs/nfs/namespace.c ++++ /dev/null +@@ -1,229 +0,0 @@ +-/* +- * linux/fs/nfs/namespace.c +- * +- * Copyright (C) 2005 Trond Myklebust +- * +- * NFS namespace +- */ +- +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include "internal.h" +- +-#define NFSDBG_FACILITY NFSDBG_VFS +- +-static void nfs_expire_automounts(void *list); +- +-LIST_HEAD(nfs_automount_list); +-static DECLARE_WORK(nfs_automount_task, nfs_expire_automounts, &nfs_automount_list); +-int nfs_mountpoint_expiry_timeout = 500 * HZ; +- +-/* +- * nfs_path - reconstruct the path given an arbitrary dentry +- * @base - arbitrary string to prepend to the path +- * @dentry - pointer to dentry +- * @buffer - result buffer +- * @buflen - length of buffer +- * +- * Helper function for constructing the path from the +- * root dentry to an arbitrary hashed dentry. +- * +- * This is mainly for use in figuring out the path on the +- * server side when automounting on top of an existing partition. +- */ +-char *nfs_path(const char *base, const struct dentry *dentry, +- char *buffer, ssize_t buflen) +-{ +- char *end = buffer+buflen; +- int namelen; +- +- *--end = '\0'; +- buflen--; +- spin_lock(&dcache_lock); +- while (!IS_ROOT(dentry)) { +- namelen = dentry->d_name.len; +- buflen -= namelen + 1; +- if (buflen < 0) +- goto Elong; +- end -= namelen; +- memcpy(end, dentry->d_name.name, namelen); +- *--end = '/'; +- dentry = dentry->d_parent; +- } +- spin_unlock(&dcache_lock); +- namelen = strlen(base); +- /* Strip off excess slashes in base string */ +- while (namelen > 0 && base[namelen - 1] == '/') +- namelen--; +- buflen -= namelen; +- if (buflen < 0) +- goto Elong; +- end -= namelen; +- memcpy(end, base, namelen); +- return end; +-Elong: +- return ERR_PTR(-ENAMETOOLONG); +-} +- +-/* +- * nfs_follow_mountpoint - handle crossing a mountpoint on the server +- * @dentry - dentry of mountpoint +- * @nd - nameidata info +- * +- * When we encounter a mountpoint on the server, we want to set up +- * a mountpoint on the client too, to prevent inode numbers from +- * colliding, and to allow "df" to work properly. +- * On NFSv4, we also want to allow for the fact that different +- * filesystems may be migrated to different servers in a failover +- * situation, and that different filesystems may want to use +- * different security flavours. +- */ +-static void * nfs_follow_mountpoint(struct dentry *dentry, struct nameidata *nd) +-{ +- struct vfsmount *mnt; +- struct nfs_server *server = NFS_SERVER(dentry->d_inode); +- struct dentry *parent; +- struct nfs_fh fh; +- struct nfs_fattr fattr; +- int err; +- +- BUG_ON(IS_ROOT(dentry)); +- dprintk("%s: enter\n", __FUNCTION__); +- dput(nd->dentry); +- nd->dentry = dget(dentry); +- if (d_mountpoint(nd->dentry)) +- goto out_follow; +- /* Look it up again */ +- parent = dget_parent(nd->dentry); +- err = server->rpc_ops->lookup(parent->d_inode, &nd->dentry->d_name, &fh, &fattr); +- dput(parent); +- if (err != 0) +- goto out_err; +- +- if (fattr.valid & NFS_ATTR_FATTR_V4_REFERRAL) +- mnt = nfs_do_refmount(nd->mnt, nd->dentry); +- else +- mnt = nfs_do_submount(nd->mnt, nd->dentry, &fh, &fattr); +- err = PTR_ERR(mnt); +- if (IS_ERR(mnt)) +- goto out_err; +- +- mntget(mnt); +- err = do_add_mount(mnt, nd, nd->mnt->mnt_flags|MNT_SHRINKABLE, &nfs_automount_list); +- if (err < 0) { +- mntput(mnt); +- if (err == -EBUSY) +- goto out_follow; +- goto out_err; +- } +- mntput(nd->mnt); +- dput(nd->dentry); +- nd->mnt = mnt; +- nd->dentry = dget(mnt->mnt_root); +- schedule_delayed_work(&nfs_automount_task, nfs_mountpoint_expiry_timeout); +-out: +- dprintk("%s: done, returned %d\n", __FUNCTION__, err); +- return ERR_PTR(err); +-out_err: +- path_release(nd); +- goto out; +-out_follow: +- while(d_mountpoint(nd->dentry) && follow_down(&nd->mnt, &nd->dentry)) +- ; +- err = 0; +- goto out; +-} +- +-struct inode_operations nfs_mountpoint_inode_operations = { +- .follow_link = nfs_follow_mountpoint, +- .getattr = nfs_getattr, +-}; +- +-struct inode_operations nfs_referral_inode_operations = { +- .follow_link = nfs_follow_mountpoint, +-}; +- +-static void nfs_expire_automounts(void *data) +-{ +- struct list_head *list = (struct list_head *)data; +- +- mark_mounts_for_expiry(list); +- if (!list_empty(list)) +- schedule_delayed_work(&nfs_automount_task, nfs_mountpoint_expiry_timeout); +-} +- +-void nfs_release_automount_timer(void) +-{ +- if (list_empty(&nfs_automount_list)) { +- cancel_delayed_work(&nfs_automount_task); +- flush_scheduled_work(); +- } +-} +- +-/* +- * Clone a mountpoint of the appropriate type +- */ +-static struct vfsmount *nfs_do_clone_mount(struct nfs_server *server, char *devname, +- struct nfs_clone_mount *mountdata) +-{ +-#ifdef CONFIG_NFS_V4 +- struct vfsmount *mnt = NULL; +- switch (server->rpc_ops->version) { +- case 2: +- case 3: +- mnt = vfs_kern_mount(&clone_nfs_fs_type, 0, devname, mountdata); +- break; +- case 4: +- mnt = vfs_kern_mount(&clone_nfs4_fs_type, 0, devname, mountdata); +- } +- return mnt; +-#else +- return vfs_kern_mount(&clone_nfs_fs_type, 0, devname, mountdata); +-#endif +-} +- +-/** +- * nfs_do_submount - set up mountpoint when crossing a filesystem boundary +- * @mnt_parent - mountpoint of parent directory +- * @dentry - parent directory +- * @fh - filehandle for new root dentry +- * @fattr - attributes for new root inode +- * +- */ +-struct vfsmount *nfs_do_submount(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, struct nfs_fh *fh, +- struct nfs_fattr *fattr) +-{ +- struct nfs_clone_mount mountdata = { +- .sb = mnt_parent->mnt_sb, +- .dentry = dentry, +- .fh = fh, +- .fattr = fattr, +- }; +- struct vfsmount *mnt = ERR_PTR(-ENOMEM); +- char *page = (char *) __get_free_page(GFP_USER); +- char *devname; +- +- dprintk("%s: submounting on %s/%s\n", __FUNCTION__, +- dentry->d_parent->d_name.name, +- dentry->d_name.name); +- if (page == NULL) +- goto out; +- devname = nfs_devname(mnt_parent, dentry, page, PAGE_SIZE); +- mnt = (struct vfsmount *)devname; +- if (IS_ERR(devname)) +- goto free_page; +- mnt = nfs_do_clone_mount(NFS_SB(mnt_parent->mnt_sb), devname, &mountdata); +-free_page: +- free_page((unsigned long)page); +-out: +- dprintk("%s: done\n", __FUNCTION__); +- return mnt; +-} +diff --git a/fs/nfs/nfs2xdr.c b/fs/nfs/nfs2xdr.c +index 4a006f8..f0015fa 100644 +--- a/fs/nfs/nfs2xdr.c ++++ b/fs/nfs/nfs2xdr.c +@@ -27,6 +27,8 @@ + #define NFSDBG_FACILITY NFSDBG_XDR + /* #define NFS_PARANOIA 1 */ + ++extern int nfs_stat_to_errno(int stat); ++ + /* Mapping from NFS error code to "errno" error code. */ + #define errno_NFSERR_IO EIO + +@@ -129,8 +131,7 @@ xdr_decode_fattr(u32 *p, struct nfs_fatt + fattr->du.nfs2.blocksize = ntohl(*p++); + rdev = ntohl(*p++); + fattr->du.nfs2.blocks = ntohl(*p++); +- fattr->fsid.major = ntohl(*p++); +- fattr->fsid.minor = 0; ++ fattr->fsid_u.nfs3 = ntohl(*p++); + fattr->fileid = ntohl(*p++); + p = xdr_decode_time(p, &fattr->atime); + p = xdr_decode_time(p, &fattr->mtime); +diff --git a/fs/nfs/nfs3acl.c b/fs/nfs/nfs3acl.c +index 7322da4..3328787 100644 +--- a/fs/nfs/nfs3acl.c ++++ b/fs/nfs/nfs3acl.c +@@ -172,10 +172,8 @@ static void nfs3_cache_acls(struct inode + inode->i_ino, acl, dfacl); + spin_lock(&inode->i_lock); + __nfs3_forget_cached_acls(NFS_I(inode)); +- if (!IS_ERR(acl)) +- nfsi->acl_access = posix_acl_dup(acl); +- if (!IS_ERR(dfacl)) +- nfsi->acl_default = posix_acl_dup(dfacl); ++ nfsi->acl_access = posix_acl_dup(acl); ++ nfsi->acl_default = posix_acl_dup(dfacl); + spin_unlock(&inode->i_lock); + } + +@@ -256,9 +254,7 @@ struct posix_acl *nfs3_proc_getacl(struc + res.acl_access = NULL; + } + } +- nfs3_cache_acls(inode, +- (res.mask & NFS_ACL) ? res.acl_access : ERR_PTR(-EINVAL), +- (res.mask & NFS_DFACL) ? res.acl_default : ERR_PTR(-EINVAL)); ++ nfs3_cache_acls(inode, res.acl_access, res.acl_default); + + switch(type) { + case ACL_TYPE_ACCESS: +@@ -333,7 +329,6 @@ static int nfs3_proc_setacls(struct inod + switch (status) { + case 0: + status = nfs_refresh_inode(inode, &fattr); +- nfs3_cache_acls(inode, acl, dfacl); + break; + case -EPFNOSUPPORT: + case -EPROTONOSUPPORT: +diff --git a/fs/nfs/nfs3proc.c b/fs/nfs/nfs3proc.c +index 7143b1f..cf186f0 100644 +--- a/fs/nfs/nfs3proc.c ++++ b/fs/nfs/nfs3proc.c +@@ -20,10 +20,11 @@ + #include + + #include "iostat.h" +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_PROC + ++extern struct rpc_procinfo nfs3_procedures[]; ++ + /* A wrapper to handle the EJUKEBOX error message */ + static int + nfs3_rpc_wrapper(struct rpc_clnt *clnt, struct rpc_message *msg, int flags) +@@ -808,6 +809,8 @@ nfs3_proc_pathconf(struct nfs_server *se + return status; + } + ++extern u32 *nfs3_decode_dirent(u32 *, struct nfs_entry *, int); ++ + static int nfs3_read_done(struct rpc_task *task, struct nfs_read_data *data) + { + if (nfs3_async_handle_jukebox(task, data->inode)) +diff --git a/fs/nfs/nfs3xdr.c b/fs/nfs/nfs3xdr.c +index 0250269..ec23361 100644 +--- a/fs/nfs/nfs3xdr.c ++++ b/fs/nfs/nfs3xdr.c +@@ -22,13 +22,14 @@ + #include + #include + #include +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_XDR + + /* Mapping from NFS error code to "errno" error code. */ + #define errno_NFSERR_IO EIO + ++extern int nfs_stat_to_errno(int); ++ + /* + * Declare the space requirements for NFS arguments and replies as + * number of 32bit-words +@@ -165,8 +166,7 @@ xdr_decode_fattr(u32 *p, struct nfs_fatt + if (MAJOR(fattr->rdev) != major || MINOR(fattr->rdev) != minor) + fattr->rdev = 0; + +- p = xdr_decode_hyper(p, &fattr->fsid.major); +- fattr->fsid.minor = 0; ++ p = xdr_decode_hyper(p, &fattr->fsid_u.nfs3); + p = xdr_decode_hyper(p, &fattr->fileid); + p = xdr_decode_time3(p, &fattr->atime); + p = xdr_decode_time3(p, &fattr->mtime); +diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h +index 9a10286..0f5e4e7 100644 +--- a/fs/nfs/nfs4_fs.h ++++ b/fs/nfs/nfs4_fs.h +@@ -217,9 +217,6 @@ extern int nfs4_proc_renew(struct nfs4_c + extern int nfs4_do_close(struct inode *inode, struct nfs4_state *state); + extern struct dentry *nfs4_atomic_open(struct inode *, struct dentry *, struct nameidata *); + extern int nfs4_open_revalidate(struct inode *, struct dentry *, int, struct nameidata *); +-extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); +-extern int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, +- struct nfs4_fs_locations *fs_locations, struct page *page); + + extern struct nfs4_state_recovery_ops nfs4_reboot_recovery_ops; + extern struct nfs4_state_recovery_ops nfs4_network_partition_recovery_ops; +@@ -228,7 +225,6 @@ extern const u32 nfs4_fattr_bitmap[2]; + extern const u32 nfs4_statfs_bitmap[2]; + extern const u32 nfs4_pathconf_bitmap[2]; + extern const u32 nfs4_fsinfo_bitmap[2]; +-extern const u32 nfs4_fs_locations_bitmap[2]; + + /* nfs4renewd.c */ + extern void nfs4_schedule_state_renewal(struct nfs4_client *); +diff --git a/fs/nfs/nfs4namespace.c b/fs/nfs/nfs4namespace.c +deleted file mode 100644 +index ea38d27..0000000 +--- a/fs/nfs/nfs4namespace.c ++++ /dev/null +@@ -1,201 +0,0 @@ +-/* +- * linux/fs/nfs/nfs4namespace.c +- * +- * Copyright (C) 2005 Trond Myklebust +- * +- * NFSv4 namespace +- */ +- +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include "internal.h" +- +-#define NFSDBG_FACILITY NFSDBG_VFS +- +-/* +- * Check if fs_root is valid +- */ +-static inline char *nfs4_pathname_string(struct nfs4_pathname *pathname, +- char *buffer, ssize_t buflen) +-{ +- char *end = buffer + buflen; +- int n; +- +- *--end = '\0'; +- buflen--; +- +- n = pathname->ncomponents; +- while (--n >= 0) { +- struct nfs4_string *component = &pathname->components[n]; +- buflen -= component->len + 1; +- if (buflen < 0) +- goto Elong; +- end -= component->len; +- memcpy(end, component->data, component->len); +- *--end = '/'; +- } +- return end; +-Elong: +- return ERR_PTR(-ENAMETOOLONG); +-} +- +- +-/** +- * nfs_follow_referral - set up mountpoint when hitting a referral on moved error +- * @mnt_parent - mountpoint of parent directory +- * @dentry - parent directory +- * @fspath - fs path returned in fs_locations +- * @mntpath - mount path to new server +- * @hostname - hostname of new server +- * @addr - host addr of new server +- * +- */ +-static struct vfsmount *nfs_follow_referral(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, +- struct nfs4_fs_locations *locations) +-{ +- struct vfsmount *mnt = ERR_PTR(-ENOENT); +- struct nfs_clone_mount mountdata = { +- .sb = mnt_parent->mnt_sb, +- .dentry = dentry, +- .authflavor = NFS_SB(mnt_parent->mnt_sb)->client->cl_auth->au_flavor, +- }; +- char *page, *page2; +- char *path, *fs_path; +- char *devname; +- int loc, s; +- +- if (locations == NULL || locations->nlocations <= 0) +- goto out; +- +- dprintk("%s: referral at %s/%s\n", __FUNCTION__, +- dentry->d_parent->d_name.name, dentry->d_name.name); +- +- /* Ensure fs path is a prefix of current dentry path */ +- page = (char *) __get_free_page(GFP_USER); +- if (page == NULL) +- goto out; +- page2 = (char *) __get_free_page(GFP_USER); +- if (page2 == NULL) +- goto out; +- +- path = nfs4_path(dentry, page, PAGE_SIZE); +- if (IS_ERR(path)) +- goto out_free; +- +- fs_path = nfs4_pathname_string(&locations->fs_path, page2, PAGE_SIZE); +- if (IS_ERR(fs_path)) +- goto out_free; +- +- if (strncmp(path, fs_path, strlen(fs_path)) != 0) { +- dprintk("%s: path %s does not begin with fsroot %s\n", __FUNCTION__, path, fs_path); +- goto out_free; +- } +- +- devname = nfs_devname(mnt_parent, dentry, page, PAGE_SIZE); +- if (IS_ERR(devname)) { +- mnt = (struct vfsmount *)devname; +- goto out_free; +- } +- +- loc = 0; +- while (loc < locations->nlocations && IS_ERR(mnt)) { +- struct nfs4_fs_location *location = &locations->locations[loc]; +- char *mnt_path; +- +- if (location == NULL || location->nservers <= 0 || +- location->rootpath.ncomponents == 0) { +- loc++; +- continue; +- } +- +- mnt_path = nfs4_pathname_string(&location->rootpath, page2, PAGE_SIZE); +- if (IS_ERR(mnt_path)) { +- loc++; +- continue; +- } +- mountdata.mnt_path = mnt_path; +- +- s = 0; +- while (s < location->nservers) { +- struct sockaddr_in addr = {}; +- +- if (location->servers[s].len <= 0 || +- valid_ipaddr4(location->servers[s].data) < 0) { +- s++; +- continue; +- } +- +- mountdata.hostname = location->servers[s].data; +- addr.sin_addr.s_addr = in_aton(mountdata.hostname); +- addr.sin_family = AF_INET; +- addr.sin_port = htons(NFS_PORT); +- mountdata.addr = &addr; +- +- mnt = vfs_kern_mount(&nfs_referral_nfs4_fs_type, 0, devname, &mountdata); +- if (!IS_ERR(mnt)) { +- break; +- } +- s++; +- } +- loc++; +- } +- +-out_free: +- free_page((unsigned long)page); +- free_page((unsigned long)page2); +-out: +- dprintk("%s: done\n", __FUNCTION__); +- return mnt; +-} +- +-/* +- * nfs_do_refmount - handle crossing a referral on server +- * @dentry - dentry of referral +- * @nd - nameidata info +- * +- */ +-struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, struct dentry *dentry) +-{ +- struct vfsmount *mnt = ERR_PTR(-ENOENT); +- struct dentry *parent; +- struct nfs4_fs_locations *fs_locations = NULL; +- struct page *page; +- int err; +- +- /* BUG_ON(IS_ROOT(dentry)); */ +- dprintk("%s: enter\n", __FUNCTION__); +- +- page = alloc_page(GFP_KERNEL); +- if (page == NULL) +- goto out; +- +- fs_locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); +- if (fs_locations == NULL) +- goto out_free; +- +- /* Get locations */ +- parent = dget_parent(dentry); +- dprintk("%s: getting locations for %s/%s\n", __FUNCTION__, parent->d_name.name, dentry->d_name.name); +- err = nfs4_proc_fs_locations(parent->d_inode, dentry, fs_locations, page); +- dput(parent); +- if (err != 0 || fs_locations->nlocations <= 0 || +- fs_locations->fs_path.ncomponents <= 0) +- goto out_free; +- +- mnt = nfs_follow_referral(mnt_parent, dentry, fs_locations); +-out_free: +- __free_page(page); +- kfree(fs_locations); +-out: +- dprintk("%s: done\n", __FUNCTION__); +- return mnt; +-} +diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c +index b4916b0..d86c0db 100644 +--- a/fs/nfs/nfs4proc.c ++++ b/fs/nfs/nfs4proc.c +@@ -65,6 +65,8 @@ static int nfs4_async_handle_error(struc + static int _nfs4_proc_access(struct inode *inode, struct nfs_access_entry *entry); + static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, struct nfs4_exception *exception); + static int nfs4_wait_clnt_recover(struct rpc_clnt *clnt, struct nfs4_client *clp); ++extern u32 *nfs4_decode_dirent(u32 *p, struct nfs_entry *entry, int plus); ++extern struct rpc_procinfo nfs4_procedures[]; + + /* Prevent leaks of NFSv4 errors into userland */ + int nfs4_map_errors(int err) +@@ -119,25 +121,6 @@ const u32 nfs4_fsinfo_bitmap[2] = { FATT + 0 + }; + +-const u32 nfs4_fs_locations_bitmap[2] = { +- FATTR4_WORD0_TYPE +- | FATTR4_WORD0_CHANGE +- | FATTR4_WORD0_SIZE +- | FATTR4_WORD0_FSID +- | FATTR4_WORD0_FILEID +- | FATTR4_WORD0_FS_LOCATIONS, +- FATTR4_WORD1_MODE +- | FATTR4_WORD1_NUMLINKS +- | FATTR4_WORD1_OWNER +- | FATTR4_WORD1_OWNER_GROUP +- | FATTR4_WORD1_RAWDEV +- | FATTR4_WORD1_SPACE_USED +- | FATTR4_WORD1_TIME_ACCESS +- | FATTR4_WORD1_TIME_METADATA +- | FATTR4_WORD1_TIME_MODIFY +- | FATTR4_WORD1_MOUNTED_ON_FILEID +-}; +- + static void nfs4_setup_readdir(u64 cookie, u32 *verifier, struct dentry *dentry, + struct nfs4_readdir_arg *readdir) + { +@@ -202,15 +185,15 @@ static void renew_lease(const struct nfs + spin_unlock(&clp->cl_lock); + } + +-static void update_changeattr(struct inode *dir, struct nfs4_change_info *cinfo) ++static void update_changeattr(struct inode *inode, struct nfs4_change_info *cinfo) + { +- struct nfs_inode *nfsi = NFS_I(dir); ++ struct nfs_inode *nfsi = NFS_I(inode); + +- spin_lock(&dir->i_lock); +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA; ++ spin_lock(&inode->i_lock); ++ nfsi->cache_validity |= NFS_INO_INVALID_ATTR; + if (cinfo->before == nfsi->change_attr && cinfo->atomic) + nfsi->change_attr = cinfo->after; +- spin_unlock(&dir->i_lock); ++ spin_unlock(&inode->i_lock); + } + + struct nfs4_opendata { +@@ -1348,7 +1331,7 @@ static int _nfs4_server_capabilities(str + return status; + } + +-int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) ++static int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) + { + struct nfs4_exception exception = { }; + int err; +@@ -1460,50 +1443,6 @@ out: + return nfs4_map_errors(status); + } + +-/* +- * Get locations and (maybe) other attributes of a referral. +- * Note that we'll actually follow the referral later when +- * we detect fsid mismatch in inode revalidation +- */ +-static int nfs4_get_referral(struct inode *dir, struct qstr *name, struct nfs_fattr *fattr, struct nfs_fh *fhandle) +-{ +- int status = -ENOMEM; +- struct page *page = NULL; +- struct nfs4_fs_locations *locations = NULL; +- struct dentry dentry = {}; +- +- page = alloc_page(GFP_KERNEL); +- if (page == NULL) +- goto out; +- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); +- if (locations == NULL) +- goto out; +- +- dentry.d_name.name = name->name; +- dentry.d_name.len = name->len; +- status = nfs4_proc_fs_locations(dir, &dentry, locations, page); +- if (status != 0) +- goto out; +- /* Make sure server returned a different fsid for the referral */ +- if (nfs_fsid_equal(&NFS_SERVER(dir)->fsid, &locations->fattr.fsid)) { +- dprintk("%s: server did not return a different fsid for a referral at %s\n", __FUNCTION__, name->name); +- status = -EIO; +- goto out; +- } +- +- memcpy(fattr, &locations->fattr, sizeof(struct nfs_fattr)); +- fattr->valid |= NFS_ATTR_FATTR_V4_REFERRAL; +- if (!fattr->mode) +- fattr->mode = S_IFDIR; +- memset(fhandle, 0, sizeof(struct nfs_fh)); +-out: +- if (page) +- __free_page(page); +- if (locations) +- kfree(locations); +- return status; +-} +- + static int _nfs4_proc_getattr(struct nfs_server *server, struct nfs_fh *fhandle, struct nfs_fattr *fattr) + { + struct nfs4_getattr_arg args = { +@@ -1608,8 +1547,6 @@ static int _nfs4_proc_lookup(struct inod + + dprintk("NFS call lookup %s\n", name->name); + status = rpc_call_sync(NFS_CLIENT(dir), &msg, 0); +- if (status == -NFS4ERR_MOVED) +- status = nfs4_get_referral(dir, name, fattr, fhandle); + dprintk("NFS reply lookup: %d\n", status); + return status; + } +@@ -2071,7 +2008,7 @@ static int _nfs4_proc_link(struct inode + if (!status) { + update_changeattr(dir, &res.cinfo); + nfs_post_op_update_inode(dir, res.dir_attr); +- nfs_post_op_update_inode(inode, res.fattr); ++ nfs_refresh_inode(inode, res.fattr); + } + + return status; +@@ -3633,36 +3570,6 @@ ssize_t nfs4_listxattr(struct dentry *de + return len; + } + +-int nfs4_proc_fs_locations(struct inode *dir, struct dentry *dentry, +- struct nfs4_fs_locations *fs_locations, struct page *page) +-{ +- struct nfs_server *server = NFS_SERVER(dir); +- u32 bitmask[2] = { +- [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, +- [1] = FATTR4_WORD1_MOUNTED_ON_FILEID, +- }; +- struct nfs4_fs_locations_arg args = { +- .dir_fh = NFS_FH(dir), +- .name = &dentry->d_name, +- .page = page, +- .bitmask = bitmask, +- }; +- struct rpc_message msg = { +- .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_FS_LOCATIONS], +- .rpc_argp = &args, +- .rpc_resp = fs_locations, +- }; +- int status; +- +- dprintk("%s: start\n", __FUNCTION__); +- fs_locations->fattr.valid = 0; +- fs_locations->server = server; +- fs_locations->nlocations = 0; +- status = rpc_call_sync(server->client, &msg, 0); +- dprintk("%s: returned status = %d\n", __FUNCTION__, status); +- return status; +-} +- + struct nfs4_state_recovery_ops nfs4_reboot_recovery_ops = { + .recover_open = nfs4_open_reclaim, + .recover_lock = nfs4_lock_reclaim, +diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c +index 1750d99..7c5d70e 100644 +--- a/fs/nfs/nfs4xdr.c ++++ b/fs/nfs/nfs4xdr.c +@@ -411,15 +411,6 @@ static int nfs_stat_to_errno(int); + #define NFS4_dec_setacl_sz (compound_decode_hdr_maxsz + \ + decode_putfh_maxsz + \ + op_decode_hdr_maxsz + nfs4_fattr_bitmap_maxsz) +-#define NFS4_enc_fs_locations_sz \ +- (compound_encode_hdr_maxsz + \ +- encode_putfh_maxsz + \ +- encode_getattr_maxsz) +-#define NFS4_dec_fs_locations_sz \ +- (compound_decode_hdr_maxsz + \ +- decode_putfh_maxsz + \ +- op_decode_hdr_maxsz + \ +- nfs4_fattr_bitmap_maxsz) + + static struct { + unsigned int mode; +@@ -731,13 +722,6 @@ static int encode_fsinfo(struct xdr_stre + bitmask[1] & nfs4_fsinfo_bitmap[1]); + } + +-static int encode_fs_locations(struct xdr_stream *xdr, const u32* bitmask) +-{ +- return encode_getattr_two(xdr, +- bitmask[0] & nfs4_fs_locations_bitmap[0], +- bitmask[1] & nfs4_fs_locations_bitmap[1]); +-} +- + static int encode_getfh(struct xdr_stream *xdr) + { + uint32_t *p; +@@ -2019,38 +2003,6 @@ out: + } + + /* +- * Encode FS_LOCATIONS request +- */ +-static int nfs4_xdr_enc_fs_locations(struct rpc_rqst *req, uint32_t *p, struct nfs4_fs_locations_arg *args) +-{ +- struct xdr_stream xdr; +- struct compound_hdr hdr = { +- .nops = 3, +- }; +- struct rpc_auth *auth = req->rq_task->tk_auth; +- int replen; +- int status; +- +- xdr_init_encode(&xdr, &req->rq_snd_buf, p); +- encode_compound_hdr(&xdr, &hdr); +- if ((status = encode_putfh(&xdr, args->dir_fh)) != 0) +- goto out; +- if ((status = encode_lookup(&xdr, args->name)) != 0) +- goto out; +- if ((status = encode_fs_locations(&xdr, args->bitmask)) != 0) +- goto out; +- /* set up reply +- * toplevel_status + OP_PUTFH + status +- * + OP_LOOKUP + status + OP_GETATTR + status = 7 +- */ +- replen = (RPC_REPHDRSIZE + auth->au_rslack + 7) << 2; +- xdr_inline_pages(&req->rq_rcv_buf, replen, &args->page, +- 0, PAGE_SIZE); +-out: +- return status; +-} +- +-/* + * START OF "GENERIC" DECODE ROUTINES. + * These may look a little ugly since they are imported from a "generic" + * set of XDR encode/decode routines which are intended to be shared by +@@ -2084,7 +2036,7 @@ out: + } \ + } while (0) + +-static int decode_opaque_inline(struct xdr_stream *xdr, unsigned int *len, char **string) ++static int decode_opaque_inline(struct xdr_stream *xdr, uint32_t *len, char **string) + { + uint32_t *p; + +@@ -2135,7 +2087,7 @@ static int decode_op_hdr(struct xdr_stre + static int decode_ace(struct xdr_stream *xdr, void *ace, struct nfs4_client *clp) + { + uint32_t *p; +- unsigned int strlen; ++ uint32_t strlen; + char *str; + + READ_BUF(12); +@@ -2265,7 +2217,7 @@ static int decode_attr_symlink_support(s + return 0; + } + +-static int decode_attr_fsid(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs_fsid *fsid) ++static int decode_attr_fsid(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs4_fsid *fsid) + { + uint32_t *p; + +@@ -2333,22 +2285,6 @@ static int decode_attr_fileid(struct xdr + return 0; + } + +-static int decode_attr_mounted_on_fileid(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *fileid) +-{ +- uint32_t *p; +- +- *fileid = 0; +- if (unlikely(bitmap[1] & (FATTR4_WORD1_MOUNTED_ON_FILEID - 1U))) +- return -EIO; +- if (likely(bitmap[1] & FATTR4_WORD1_MOUNTED_ON_FILEID)) { +- READ_BUF(8); +- READ64(*fileid); +- bitmap[1] &= ~FATTR4_WORD1_MOUNTED_ON_FILEID; +- } +- dprintk("%s: fileid=%Lu\n", __FUNCTION__, (unsigned long long)*fileid); +- return 0; +-} +- + static int decode_attr_files_avail(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *res) + { + uint32_t *p; +@@ -2400,116 +2336,6 @@ static int decode_attr_files_total(struc + return status; + } + +-static int decode_pathname(struct xdr_stream *xdr, struct nfs4_pathname *path) +-{ +- int n; +- uint32_t *p; +- int status = 0; +- +- READ_BUF(4); +- READ32(n); +- if (n < 0) +- goto out_eio; +- if (n == 0) +- goto root_path; +- dprintk("path "); +- path->ncomponents = 0; +- while (path->ncomponents < n) { +- struct nfs4_string *component = &path->components[path->ncomponents]; +- status = decode_opaque_inline(xdr, &component->len, &component->data); +- if (unlikely(status != 0)) +- goto out_eio; +- if (path->ncomponents != n) +- dprintk("/"); +- dprintk("%s", component->data); +- if (path->ncomponents < NFS4_PATHNAME_MAXCOMPONENTS) +- path->ncomponents++; +- else { +- dprintk("cannot parse %d components in path\n", n); +- goto out_eio; +- } +- } +-out: +- dprintk("\n"); +- return status; +-root_path: +-/* a root pathname is sent as a zero component4 */ +- path->ncomponents = 1; +- path->components[0].len=0; +- path->components[0].data=NULL; +- dprintk("path /\n"); +- goto out; +-out_eio: +- dprintk(" status %d", status); +- status = -EIO; +- goto out; +-} +- +-static int decode_attr_fs_locations(struct xdr_stream *xdr, uint32_t *bitmap, struct nfs4_fs_locations *res) +-{ +- int n; +- uint32_t *p; +- int status = -EIO; +- +- if (unlikely(bitmap[0] & (FATTR4_WORD0_FS_LOCATIONS -1U))) +- goto out; +- status = 0; +- if (unlikely(!(bitmap[0] & FATTR4_WORD0_FS_LOCATIONS))) +- goto out; +- dprintk("%s: fsroot ", __FUNCTION__); +- status = decode_pathname(xdr, &res->fs_path); +- if (unlikely(status != 0)) +- goto out; +- READ_BUF(4); +- READ32(n); +- if (n <= 0) +- goto out_eio; +- res->nlocations = 0; +- while (res->nlocations < n) { +- int m; +- struct nfs4_fs_location *loc = &res->locations[res->nlocations]; +- +- READ_BUF(4); +- READ32(m); +- if (m <= 0) +- goto out_eio; +- +- loc->nservers = 0; +- dprintk("%s: servers ", __FUNCTION__); +- while (loc->nservers < m) { +- struct nfs4_string *server = &loc->servers[loc->nservers]; +- status = decode_opaque_inline(xdr, &server->len, &server->data); +- if (unlikely(status != 0)) +- goto out_eio; +- dprintk("%s ", server->data); +- if (loc->nservers < NFS4_FS_LOCATION_MAXSERVERS) +- loc->nservers++; +- else { +- int i; +- dprintk("%s: using first %d of %d servers returned for location %d\n", __FUNCTION__, NFS4_FS_LOCATION_MAXSERVERS, m, res->nlocations); +- for (i = loc->nservers; i < m; i++) { +- int len; +- char *data; +- status = decode_opaque_inline(xdr, &len, &data); +- if (unlikely(status != 0)) +- goto out_eio; +- } +- } +- } +- status = decode_pathname(xdr, &loc->rootpath); +- if (unlikely(status != 0)) +- goto out_eio; +- if (res->nlocations < NFS4_FS_LOCATIONS_MAXENTRIES) +- res->nlocations++; +- } +-out: +- dprintk("%s: fs_locations done, error = %d\n", __FUNCTION__, status); +- return status; +-out_eio: +- status = -EIO; +- goto out; +-} +- + static int decode_attr_maxfilesize(struct xdr_stream *xdr, uint32_t *bitmap, uint64_t *res) + { + uint32_t *p; +@@ -3015,7 +2841,6 @@ static int decode_getfattr(struct xdr_st + bitmap[2] = {0}, + type; + int status, fmode = 0; +- uint64_t fileid; + + if ((status = decode_op_hdr(xdr, OP_GETATTR)) != 0) + goto xdr_error; +@@ -3038,14 +2863,10 @@ static int decode_getfattr(struct xdr_st + goto xdr_error; + if ((status = decode_attr_size(xdr, bitmap, &fattr->size)) != 0) + goto xdr_error; +- if ((status = decode_attr_fsid(xdr, bitmap, &fattr->fsid)) != 0) ++ if ((status = decode_attr_fsid(xdr, bitmap, &fattr->fsid_u.nfs4)) != 0) + goto xdr_error; + if ((status = decode_attr_fileid(xdr, bitmap, &fattr->fileid)) != 0) + goto xdr_error; +- if ((status = decode_attr_fs_locations(xdr, bitmap, container_of(fattr, +- struct nfs4_fs_locations, +- fattr))) != 0) +- goto xdr_error; + if ((status = decode_attr_mode(xdr, bitmap, &fattr->mode)) != 0) + goto xdr_error; + fattr->mode |= fmode; +@@ -3065,10 +2886,6 @@ static int decode_getfattr(struct xdr_st + goto xdr_error; + if ((status = decode_attr_time_modify(xdr, bitmap, &fattr->mtime)) != 0) + goto xdr_error; +- if ((status = decode_attr_mounted_on_fileid(xdr, bitmap, &fileid)) != 0) +- goto xdr_error; +- if (fattr->fileid == 0 && fileid != 0) +- fattr->fileid = fileid; + if ((status = verify_attr_len(xdr, savep, attrlen)) == 0) + fattr->valid = NFS_ATTR_FATTR | NFS_ATTR_FATTR_V3 | NFS_ATTR_FATTR_V4; + xdr_error: +@@ -3533,7 +3350,8 @@ static int decode_getacl(struct xdr_stre + attrlen, recvd); + return -EINVAL; + } +- xdr_read_pages(xdr, attrlen); ++ if (attrlen <= *acl_len) ++ xdr_read_pages(xdr, attrlen); + *acl_len = attrlen; + } else + status = -EOPNOTSUPP; +@@ -4393,29 +4211,6 @@ out: + return status; + } + +-/* +- * FS_LOCATIONS request +- */ +-static int nfs4_xdr_dec_fs_locations(struct rpc_rqst *req, uint32_t *p, struct nfs4_fs_locations *res) +-{ +- struct xdr_stream xdr; +- struct compound_hdr hdr; +- int status; +- +- xdr_init_decode(&xdr, &req->rq_rcv_buf, p); +- status = decode_compound_hdr(&xdr, &hdr); +- if (status != 0) +- goto out; +- if ((status = decode_putfh(&xdr)) != 0) +- goto out; +- if ((status = decode_lookup(&xdr)) != 0) +- goto out; +- xdr_enter_page(&xdr, PAGE_SIZE); +- status = decode_getfattr(&xdr, &res->fattr, res->server); +-out: +- return status; +-} +- + uint32_t *nfs4_decode_dirent(uint32_t *p, struct nfs_entry *entry, int plus) + { + uint32_t bitmap[2] = {0}; +@@ -4587,7 +4382,6 @@ struct rpc_procinfo nfs4_procedures[] = + PROC(DELEGRETURN, enc_delegreturn, dec_delegreturn), + PROC(GETACL, enc_getacl, dec_getacl), + PROC(SETACL, enc_setacl, dec_setacl), +- PROC(FS_LOCATIONS, enc_fs_locations, dec_fs_locations), + }; + + struct rpc_version nfs_version4 = { +diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c +index ef94296..106aca3 100644 +--- a/fs/nfs/pagelist.c ++++ b/fs/nfs/pagelist.c +@@ -325,7 +325,6 @@ out: + + /** + * nfs_scan_list - Scan a list for matching requests +- * @nfsi: NFS inode + * @head: One of the NFS inode request lists + * @dst: Destination list + * @idx_start: lower bound of page->index to scan +@@ -337,15 +336,14 @@ out: + * The requests are *not* checked to ensure that they form a contiguous set. + * You must be holding the inode's req_lock when calling this function + */ +-int nfs_scan_list(struct nfs_inode *nfsi, struct list_head *head, +- struct list_head *dst, unsigned long idx_start, +- unsigned int npages) ++int ++nfs_scan_list(struct list_head *head, struct list_head *dst, ++ unsigned long idx_start, unsigned int npages) + { +- struct nfs_page *pgvec[NFS_SCAN_MAXENTRIES]; +- struct nfs_page *req; +- unsigned long idx_end; +- int found, i; +- int res; ++ struct list_head *pos, *tmp; ++ struct nfs_page *req; ++ unsigned long idx_end; ++ int res; + + res = 0; + if (npages == 0) +@@ -353,32 +351,25 @@ int nfs_scan_list(struct nfs_inode *nfsi + else + idx_end = idx_start + npages - 1; + +- for (;;) { +- found = radix_tree_gang_lookup(&nfsi->nfs_page_tree, +- (void **)&pgvec[0], idx_start, +- NFS_SCAN_MAXENTRIES); +- if (found <= 0) ++ list_for_each_safe(pos, tmp, head) { ++ ++ req = nfs_list_entry(pos); ++ ++ if (req->wb_index < idx_start) ++ continue; ++ if (req->wb_index > idx_end) + break; +- for (i = 0; i < found; i++) { +- req = pgvec[i]; +- if (req->wb_index > idx_end) +- goto out; +- idx_start = req->wb_index + 1; +- if (req->wb_list_head != head) +- continue; +- if (nfs_set_page_writeback_locked(req)) { +- nfs_list_remove_request(req); +- nfs_list_add_request(req, dst); +- res++; +- } +- } + ++ if (!nfs_set_page_writeback_locked(req)) ++ continue; ++ nfs_list_remove_request(req); ++ nfs_list_add_request(req, dst); ++ res++; + } +-out: + return res; + } + +-int __init nfs_init_nfspagecache(void) ++int nfs_init_nfspagecache(void) + { + nfs_page_cachep = kmem_cache_create("nfs_page", + sizeof(struct nfs_page), +@@ -390,7 +381,7 @@ int __init nfs_init_nfspagecache(void) + return 0; + } + +-void __exit nfs_destroy_nfspagecache(void) ++void nfs_destroy_nfspagecache(void) + { + if (kmem_cache_destroy(nfs_page_cachep)) + printk(KERN_INFO "nfs_page: not all structures were freed\n"); +diff --git a/fs/nfs/proc.c b/fs/nfs/proc.c +index b3899ea..9dd85ca 100644 +--- a/fs/nfs/proc.c ++++ b/fs/nfs/proc.c +@@ -44,10 +44,11 @@ + #include + #include + #include +-#include "internal.h" + + #define NFSDBG_FACILITY NFSDBG_PROC + ++extern struct rpc_procinfo nfs_procedures[]; ++ + /* + * Bare-bones access to getattr: this is for nfs_read_super. + */ +@@ -610,6 +611,8 @@ nfs_proc_pathconf(struct nfs_server *ser + return 0; + } + ++extern u32 * nfs_decode_dirent(u32 *, struct nfs_entry *, int); ++ + static int nfs_read_done(struct rpc_task *task, struct nfs_read_data *data) + { + if (task->tk_status >= 0) { +diff --git a/fs/nfs/read.c b/fs/nfs/read.c +index 41c2ffe..624ca71 100644 +--- a/fs/nfs/read.c ++++ b/fs/nfs/read.c +@@ -51,11 +51,14 @@ struct nfs_read_data *nfs_readdata_alloc + if (p) { + memset(p, 0, sizeof(*p)); + INIT_LIST_HEAD(&p->pages); +- if (pagecount <= ARRAY_SIZE(p->page_array)) +- p->pagevec = p->page_array; ++ if (pagecount < NFS_PAGEVEC_SIZE) ++ p->pagevec = &p->page_array[0]; + else { +- p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); +- if (!p->pagevec) { ++ size_t size = ++pagecount * sizeof(struct page *); ++ p->pagevec = kmalloc(size, GFP_NOFS); ++ if (p->pagevec) { ++ memset(p->pagevec, 0, size); ++ } else { + mempool_free(p, nfs_rdata_mempool); + p = NULL; + } +@@ -101,28 +104,6 @@ int nfs_return_empty_page(struct page *p + return 0; + } + +-static void nfs_readpage_truncate_uninitialised_page(struct nfs_read_data *data) +-{ +- unsigned int remainder = data->args.count - data->res.count; +- unsigned int base = data->args.pgbase + data->res.count; +- unsigned int pglen; +- struct page **pages; +- +- if (data->res.eof == 0 || remainder == 0) +- return; +- /* +- * Note: "remainder" can never be negative, since we check for +- * this in the XDR code. +- */ +- pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; +- base &= ~PAGE_CACHE_MASK; +- pglen = PAGE_CACHE_SIZE - base; +- if (pglen < remainder) +- memclear_highpage_flush(*pages, base, pglen); +- else +- memclear_highpage_flush(*pages, base, remainder); +-} +- + /* + * Read a page synchronously. + */ +@@ -196,9 +177,11 @@ static int nfs_readpage_sync(struct nfs_ + NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATIME; + spin_unlock(&inode->i_lock); + +- nfs_readpage_truncate_uninitialised_page(rdata); +- if (rdata->res.eof || rdata->res.count == rdata->args.count) +- SetPageUptodate(page); ++ if (count) ++ memclear_highpage_flush(page, rdata->args.pgbase, count); ++ SetPageUptodate(page); ++ if (PageError(page)) ++ ClearPageError(page); + result = 0; + + io_error: +@@ -453,12 +436,20 @@ static void nfs_readpage_result_partial( + struct nfs_page *req = data->req; + struct page *page = req->wb_page; + +- if (likely(task->tk_status >= 0)) +- nfs_readpage_truncate_uninitialised_page(data); +- else +- SetPageError(page); + if (nfs_readpage_result(task, data) != 0) + return; ++ if (task->tk_status >= 0) { ++ unsigned int request = data->args.count; ++ unsigned int result = data->res.count; ++ ++ if (result < request) { ++ memclear_highpage_flush(page, ++ data->args.pgbase + result, ++ request - result); ++ } ++ } else ++ SetPageError(page); ++ + if (atomic_dec_and_test(&req->wb_complete)) { + if (!PageError(page)) + SetPageUptodate(page); +@@ -471,40 +462,6 @@ static const struct rpc_call_ops nfs_rea + .rpc_release = nfs_readdata_release, + }; + +-static void nfs_readpage_set_pages_uptodate(struct nfs_read_data *data) +-{ +- unsigned int count = data->res.count; +- unsigned int base = data->args.pgbase; +- struct page **pages; +- +- if (unlikely(count == 0)) +- return; +- pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; +- base &= ~PAGE_CACHE_MASK; +- count += base; +- for (;count >= PAGE_CACHE_SIZE; count -= PAGE_CACHE_SIZE, pages++) +- SetPageUptodate(*pages); +- /* +- * Was this an eof or a short read? If the latter, don't mark the page +- * as uptodate yet. +- */ +- if (count > 0 && (data->res.eof || data->args.count == data->res.count)) +- SetPageUptodate(*pages); +-} +- +-static void nfs_readpage_set_pages_error(struct nfs_read_data *data) +-{ +- unsigned int count = data->args.count; +- unsigned int base = data->args.pgbase; +- struct page **pages; +- +- pages = &data->args.pages[base >> PAGE_CACHE_SHIFT]; +- base &= ~PAGE_CACHE_MASK; +- count += base; +- for (;count >= PAGE_CACHE_SIZE; count -= PAGE_CACHE_SIZE, pages++) +- SetPageError(*pages); +-} +- + /* + * This is the callback from RPC telling us whether a reply was + * received or some error occurred (timeout or socket shutdown). +@@ -512,24 +469,27 @@ static void nfs_readpage_set_pages_error + static void nfs_readpage_result_full(struct rpc_task *task, void *calldata) + { + struct nfs_read_data *data = calldata; ++ unsigned int count = data->res.count; + +- /* +- * Note: nfs_readpage_result may change the values of +- * data->args. In the multi-page case, we therefore need +- * to ensure that we call the next nfs_readpage_set_page_uptodate() +- * first in the multi-page case. +- */ +- if (likely(task->tk_status >= 0)) { +- nfs_readpage_truncate_uninitialised_page(data); +- nfs_readpage_set_pages_uptodate(data); +- } else +- nfs_readpage_set_pages_error(data); + if (nfs_readpage_result(task, data) != 0) + return; + while (!list_empty(&data->pages)) { + struct nfs_page *req = nfs_list_entry(data->pages.next); +- ++ struct page *page = req->wb_page; + nfs_list_remove_request(req); ++ ++ if (task->tk_status >= 0) { ++ if (count < PAGE_CACHE_SIZE) { ++ if (count < req->wb_bytes) ++ memclear_highpage_flush(page, ++ req->wb_pgbase + count, ++ req->wb_bytes - count); ++ count = 0; ++ } else ++ count -= PAGE_CACHE_SIZE; ++ SetPageUptodate(page); ++ } else ++ SetPageError(page); + nfs_readpage_release(req); + } + } +@@ -694,7 +654,7 @@ int nfs_readpages(struct file *filp, str + return ret; + } + +-int __init nfs_init_readpagecache(void) ++int nfs_init_readpagecache(void) + { + nfs_rdata_cachep = kmem_cache_create("nfs_read_data", + sizeof(struct nfs_read_data), +@@ -711,7 +671,7 @@ int __init nfs_init_readpagecache(void) + return 0; + } + +-void __exit nfs_destroy_readpagecache(void) ++void nfs_destroy_readpagecache(void) + { + mempool_destroy(nfs_rdata_mempool); + if (kmem_cache_destroy(nfs_rdata_cachep)) +diff --git a/fs/nfs/super.c b/fs/nfs/super.c +deleted file mode 100644 +index 30f939b..0000000 +--- a/fs/nfs/super.c ++++ /dev/null +@@ -1,1497 +0,0 @@ +-/* +- * linux/fs/nfs/super.c +- * +- * Copyright (C) 1992 Rick Sladkey +- * +- * nfs superblock handling functions +- * +- * Modularised by Alan Cox , while hacking some +- * experimental NFS changes. Modularisation taken straight from SYS5 fs. +- * +- * Change to nfs_read_super() to permit NFS mounts to multi-homed hosts. +- * J.S.Peatfield@damtp.cam.ac.uk +- * +- * Split from inode.c by David Howells +- * +- */ +- +-#include +-#include +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include +-#include +- +-#include "nfs4_fs.h" +-#include "callback.h" +-#include "delegation.h" +-#include "iostat.h" +-#include "internal.h" +- +-#define NFSDBG_FACILITY NFSDBG_VFS +- +-/* Maximum number of readahead requests +- * FIXME: this should really be a sysctl so that users may tune it to suit +- * their needs. People that do NFS over a slow network, might for +- * instance want to reduce it to something closer to 1 for improved +- * interactive response. +- */ +-#define NFS_MAX_READAHEAD (RPC_DEF_SLOT_TABLE - 1) +- +-/* +- * RPC cruft for NFS +- */ +-static struct rpc_version * nfs_version[] = { +- NULL, +- NULL, +- &nfs_version2, +-#if defined(CONFIG_NFS_V3) +- &nfs_version3, +-#elif defined(CONFIG_NFS_V4) +- NULL, +-#endif +-#if defined(CONFIG_NFS_V4) +- &nfs_version4, +-#endif +-}; +- +-static struct rpc_program nfs_program = { +- .name = "nfs", +- .number = NFS_PROGRAM, +- .nrvers = ARRAY_SIZE(nfs_version), +- .version = nfs_version, +- .stats = &nfs_rpcstat, +- .pipe_dir_name = "/nfs", +-}; +- +-struct rpc_stat nfs_rpcstat = { +- .program = &nfs_program +-}; +- +- +-#ifdef CONFIG_NFS_V3_ACL +-static struct rpc_stat nfsacl_rpcstat = { &nfsacl_program }; +-static struct rpc_version * nfsacl_version[] = { +- [3] = &nfsacl_version3, +-}; +- +-struct rpc_program nfsacl_program = { +- .name = "nfsacl", +- .number = NFS_ACL_PROGRAM, +- .nrvers = ARRAY_SIZE(nfsacl_version), +- .version = nfsacl_version, +- .stats = &nfsacl_rpcstat, +-}; +-#endif /* CONFIG_NFS_V3_ACL */ +- +-static void nfs_umount_begin(struct vfsmount *, int); +-static int nfs_statfs(struct super_block *, struct kstatfs *); +-static int nfs_show_options(struct seq_file *, struct vfsmount *); +-static int nfs_show_stats(struct seq_file *, struct vfsmount *); +-static struct super_block *nfs_get_sb(struct file_system_type *, int, const char *, void *); +-static struct super_block *nfs_clone_nfs_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static void nfs_kill_super(struct super_block *); +- +-static struct file_system_type nfs_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs", +- .get_sb = nfs_get_sb, +- .kill_sb = nfs_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-struct file_system_type clone_nfs_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs", +- .get_sb = nfs_clone_nfs_sb, +- .kill_sb = nfs_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-static struct super_operations nfs_sops = { +- .alloc_inode = nfs_alloc_inode, +- .destroy_inode = nfs_destroy_inode, +- .write_inode = nfs_write_inode, +- .statfs = nfs_statfs, +- .clear_inode = nfs_clear_inode, +- .umount_begin = nfs_umount_begin, +- .show_options = nfs_show_options, +- .show_stats = nfs_show_stats, +-}; +- +-#ifdef CONFIG_NFS_V4 +-static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static struct super_block *nfs_clone_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static struct super_block *nfs_referral_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data); +-static void nfs4_kill_super(struct super_block *sb); +- +-static struct file_system_type nfs4_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs4", +- .get_sb = nfs4_get_sb, +- .kill_sb = nfs4_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-struct file_system_type clone_nfs4_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs4", +- .get_sb = nfs_clone_nfs4_sb, +- .kill_sb = nfs4_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-struct file_system_type nfs_referral_nfs4_fs_type = { +- .owner = THIS_MODULE, +- .name = "nfs4", +- .get_sb = nfs_referral_nfs4_sb, +- .kill_sb = nfs4_kill_super, +- .fs_flags = FS_ODD_RENAME|FS_REVAL_DOT|FS_BINARY_MOUNTDATA, +-}; +- +-static struct super_operations nfs4_sops = { +- .alloc_inode = nfs_alloc_inode, +- .destroy_inode = nfs_destroy_inode, +- .write_inode = nfs_write_inode, +- .statfs = nfs_statfs, +- .clear_inode = nfs4_clear_inode, +- .umount_begin = nfs_umount_begin, +- .show_options = nfs_show_options, +- .show_stats = nfs_show_stats, +-}; +-#endif +- +-static const int nfs_set_port_min = 0; +-static const int nfs_set_port_max = 65535; +- +-static int param_set_port(const char *val, struct kernel_param *kp) +-{ +- char *endp; +- int num = simple_strtol(val, &endp, 0); +- if (endp == val || *endp || num < nfs_set_port_min || num > nfs_set_port_max) +- return -EINVAL; +- *((int *)kp->arg) = num; +- return 0; +-} +- +-module_param_call(callback_tcpport, param_set_port, param_get_int, +- &nfs_callback_set_tcpport, 0644); +- +-static int param_set_idmap_timeout(const char *val, struct kernel_param *kp) +-{ +- char *endp; +- int num = simple_strtol(val, &endp, 0); +- int jif = num * HZ; +- if (endp == val || *endp || num < 0 || jif < num) +- return -EINVAL; +- *((int *)kp->arg) = jif; +- return 0; +-} +- +-module_param_call(idmap_cache_timeout, param_set_idmap_timeout, param_get_int, +- &nfs_idmap_cache_timeout, 0644); +- +-/* +- * Register the NFS filesystems +- */ +-int __init register_nfs_fs(void) +-{ +- int ret; +- +- ret = register_filesystem(&nfs_fs_type); +- if (ret < 0) +- goto error_0; +- +-#ifdef CONFIG_NFS_V4 +- ret = nfs_register_sysctl(); +- if (ret < 0) +- goto error_1; +- ret = register_filesystem(&nfs4_fs_type); +- if (ret < 0) +- goto error_2; +-#endif +- return 0; +- +-#ifdef CONFIG_NFS_V4 +-error_2: +- nfs_unregister_sysctl(); +-error_1: +- unregister_filesystem(&nfs_fs_type); +-#endif +-error_0: +- return ret; +-} +- +-/* +- * Unregister the NFS filesystems +- */ +-void __exit unregister_nfs_fs(void) +-{ +-#ifdef CONFIG_NFS_V4 +- unregister_filesystem(&nfs4_fs_type); +- nfs_unregister_sysctl(); +-#endif +- unregister_filesystem(&nfs_fs_type); +-} +- +-/* +- * Deliver file system statistics to userspace +- */ +-static int nfs_statfs(struct super_block *sb, struct kstatfs *buf) +-{ +- struct nfs_server *server = NFS_SB(sb); +- unsigned char blockbits; +- unsigned long blockres; +- struct nfs_fh *rootfh = NFS_FH(sb->s_root->d_inode); +- struct nfs_fattr fattr; +- struct nfs_fsstat res = { +- .fattr = &fattr, +- }; +- int error; +- +- lock_kernel(); +- +- error = server->rpc_ops->statfs(server, rootfh, &res); +- buf->f_type = NFS_SUPER_MAGIC; +- if (error < 0) +- goto out_err; +- +- /* +- * Current versions of glibc do not correctly handle the +- * case where f_frsize != f_bsize. Eventually we want to +- * report the value of wtmult in this field. +- */ +- buf->f_frsize = sb->s_blocksize; +- +- /* +- * On most *nix systems, f_blocks, f_bfree, and f_bavail +- * are reported in units of f_frsize. Linux hasn't had +- * an f_frsize field in its statfs struct until recently, +- * thus historically Linux's sys_statfs reports these +- * fields in units of f_bsize. +- */ +- buf->f_bsize = sb->s_blocksize; +- blockbits = sb->s_blocksize_bits; +- blockres = (1 << blockbits) - 1; +- buf->f_blocks = (res.tbytes + blockres) >> blockbits; +- buf->f_bfree = (res.fbytes + blockres) >> blockbits; +- buf->f_bavail = (res.abytes + blockres) >> blockbits; +- +- buf->f_files = res.tfiles; +- buf->f_ffree = res.afiles; +- +- buf->f_namelen = server->namelen; +- out: +- unlock_kernel(); +- return 0; +- +- out_err: +- dprintk("%s: statfs error = %d\n", __FUNCTION__, -error); +- buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; +- goto out; +- +-} +- +-static const char *nfs_pseudoflavour_to_name(rpc_authflavor_t flavour) +-{ +- static struct { +- rpc_authflavor_t flavour; +- const char *str; +- } sec_flavours[] = { +- { RPC_AUTH_NULL, "null" }, +- { RPC_AUTH_UNIX, "sys" }, +- { RPC_AUTH_GSS_KRB5, "krb5" }, +- { RPC_AUTH_GSS_KRB5I, "krb5i" }, +- { RPC_AUTH_GSS_KRB5P, "krb5p" }, +- { RPC_AUTH_GSS_LKEY, "lkey" }, +- { RPC_AUTH_GSS_LKEYI, "lkeyi" }, +- { RPC_AUTH_GSS_LKEYP, "lkeyp" }, +- { RPC_AUTH_GSS_SPKM, "spkm" }, +- { RPC_AUTH_GSS_SPKMI, "spkmi" }, +- { RPC_AUTH_GSS_SPKMP, "spkmp" }, +- { -1, "unknown" } +- }; +- int i; +- +- for (i=0; sec_flavours[i].flavour != -1; i++) { +- if (sec_flavours[i].flavour == flavour) +- break; +- } +- return sec_flavours[i].str; +-} +- +-/* +- * Describe the mount options in force on this server representation +- */ +-static void nfs_show_mount_options(struct seq_file *m, struct nfs_server *nfss, int showdefaults) +-{ +- static struct proc_nfs_info { +- int flag; +- char *str; +- char *nostr; +- } nfs_info[] = { +- { NFS_MOUNT_SOFT, ",soft", ",hard" }, +- { NFS_MOUNT_INTR, ",intr", "" }, +- { NFS_MOUNT_NOCTO, ",nocto", "" }, +- { NFS_MOUNT_NOAC, ",noac", "" }, +- { NFS_MOUNT_NONLM, ",nolock", "" }, +- { NFS_MOUNT_NOACL, ",noacl", "" }, +- { 0, NULL, NULL } +- }; +- struct proc_nfs_info *nfs_infop; +- char buf[12]; +- char *proto; +- +- seq_printf(m, ",vers=%d", nfss->rpc_ops->version); +- seq_printf(m, ",rsize=%d", nfss->rsize); +- seq_printf(m, ",wsize=%d", nfss->wsize); +- if (nfss->acregmin != 3*HZ || showdefaults) +- seq_printf(m, ",acregmin=%d", nfss->acregmin/HZ); +- if (nfss->acregmax != 60*HZ || showdefaults) +- seq_printf(m, ",acregmax=%d", nfss->acregmax/HZ); +- if (nfss->acdirmin != 30*HZ || showdefaults) +- seq_printf(m, ",acdirmin=%d", nfss->acdirmin/HZ); +- if (nfss->acdirmax != 60*HZ || showdefaults) +- seq_printf(m, ",acdirmax=%d", nfss->acdirmax/HZ); +- for (nfs_infop = nfs_info; nfs_infop->flag; nfs_infop++) { +- if (nfss->flags & nfs_infop->flag) +- seq_puts(m, nfs_infop->str); +- else +- seq_puts(m, nfs_infop->nostr); +- } +- switch (nfss->client->cl_xprt->prot) { +- case IPPROTO_TCP: +- proto = "tcp"; +- break; +- case IPPROTO_UDP: +- proto = "udp"; +- break; +- default: +- snprintf(buf, sizeof(buf), "%u", nfss->client->cl_xprt->prot); +- proto = buf; +- } +- seq_printf(m, ",proto=%s", proto); +- seq_printf(m, ",timeo=%lu", 10U * nfss->retrans_timeo / HZ); +- seq_printf(m, ",retrans=%u", nfss->retrans_count); +- seq_printf(m, ",sec=%s", nfs_pseudoflavour_to_name(nfss->client->cl_auth->au_flavor)); +-} +- +-/* +- * Describe the mount options on this VFS mountpoint +- */ +-static int nfs_show_options(struct seq_file *m, struct vfsmount *mnt) +-{ +- struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); +- +- nfs_show_mount_options(m, nfss, 0); +- +- seq_puts(m, ",addr="); +- seq_escape(m, nfss->hostname, " \t\n\\"); +- +- return 0; +-} +- +-/* +- * Present statistical information for this VFS mountpoint +- */ +-static int nfs_show_stats(struct seq_file *m, struct vfsmount *mnt) +-{ +- int i, cpu; +- struct nfs_server *nfss = NFS_SB(mnt->mnt_sb); +- struct rpc_auth *auth = nfss->client->cl_auth; +- struct nfs_iostats totals = { }; +- +- seq_printf(m, "statvers=%s", NFS_IOSTAT_VERS); +- +- /* +- * Display all mount option settings +- */ +- seq_printf(m, "\n\topts:\t"); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_RDONLY ? "ro" : "rw"); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_SYNCHRONOUS ? ",sync" : ""); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_NOATIME ? ",noatime" : ""); +- seq_puts(m, mnt->mnt_sb->s_flags & MS_NODIRATIME ? ",nodiratime" : ""); +- nfs_show_mount_options(m, nfss, 1); +- +- seq_printf(m, "\n\tage:\t%lu", (jiffies - nfss->mount_time) / HZ); +- +- seq_printf(m, "\n\tcaps:\t"); +- seq_printf(m, "caps=0x%x", nfss->caps); +- seq_printf(m, ",wtmult=%d", nfss->wtmult); +- seq_printf(m, ",dtsize=%d", nfss->dtsize); +- seq_printf(m, ",bsize=%d", nfss->bsize); +- seq_printf(m, ",namelen=%d", nfss->namelen); +- +-#ifdef CONFIG_NFS_V4 +- if (nfss->rpc_ops->version == 4) { +- seq_printf(m, "\n\tnfsv4:\t"); +- seq_printf(m, "bm0=0x%x", nfss->attr_bitmask[0]); +- seq_printf(m, ",bm1=0x%x", nfss->attr_bitmask[1]); +- seq_printf(m, ",acl=0x%x", nfss->acl_bitmask); +- } +-#endif +- +- /* +- * Display security flavor in effect for this mount +- */ +- seq_printf(m, "\n\tsec:\tflavor=%d", auth->au_ops->au_flavor); +- if (auth->au_flavor) +- seq_printf(m, ",pseudoflavor=%d", auth->au_flavor); +- +- /* +- * Display superblock I/O counters +- */ +- for_each_possible_cpu(cpu) { +- struct nfs_iostats *stats; +- +- preempt_disable(); +- stats = per_cpu_ptr(nfss->io_stats, cpu); +- +- for (i = 0; i < __NFSIOS_COUNTSMAX; i++) +- totals.events[i] += stats->events[i]; +- for (i = 0; i < __NFSIOS_BYTESMAX; i++) +- totals.bytes[i] += stats->bytes[i]; +- +- preempt_enable(); +- } +- +- seq_printf(m, "\n\tevents:\t"); +- for (i = 0; i < __NFSIOS_COUNTSMAX; i++) +- seq_printf(m, "%lu ", totals.events[i]); +- seq_printf(m, "\n\tbytes:\t"); +- for (i = 0; i < __NFSIOS_BYTESMAX; i++) +- seq_printf(m, "%Lu ", totals.bytes[i]); +- seq_printf(m, "\n"); +- +- rpc_print_iostats(m, nfss->client); +- +- return 0; +-} +- +-/* +- * Begin unmount by attempting to remove all automounted mountpoints we added +- * in response to traversals +- */ +-static void nfs_umount_begin(struct vfsmount *vfsmnt, int flags) +-{ +- struct nfs_server *server; +- struct rpc_clnt *rpc; +- +- shrink_submounts(vfsmnt, &nfs_automount_list); +- if (!(flags & MNT_FORCE)) +- return; +- /* -EIO all pending I/O */ +- server = NFS_SB(vfsmnt->mnt_sb); +- rpc = server->client; +- if (!IS_ERR(rpc)) +- rpc_killall_tasks(rpc); +- rpc = server->client_acl; +- if (!IS_ERR(rpc)) +- rpc_killall_tasks(rpc); +-} +- +-/* +- * Obtain the root inode of the file system. +- */ +-static struct inode * +-nfs_get_root(struct super_block *sb, struct nfs_fh *rootfh, struct nfs_fsinfo *fsinfo) +-{ +- struct nfs_server *server = NFS_SB(sb); +- int error; +- +- error = server->rpc_ops->getroot(server, rootfh, fsinfo); +- if (error < 0) { +- dprintk("nfs_get_root: getattr error = %d\n", -error); +- return ERR_PTR(error); +- } +- +- server->fsid = fsinfo->fattr->fsid; +- return nfs_fhget(sb, rootfh, fsinfo->fattr); +-} +- +-/* +- * Do NFS version-independent mount processing, and sanity checking +- */ +-static int +-nfs_sb_init(struct super_block *sb, rpc_authflavor_t authflavor) +-{ +- struct nfs_server *server; +- struct inode *root_inode; +- struct nfs_fattr fattr; +- struct nfs_fsinfo fsinfo = { +- .fattr = &fattr, +- }; +- struct nfs_pathconf pathinfo = { +- .fattr = &fattr, +- }; +- int no_root_error = 0; +- unsigned long max_rpc_payload; +- +- /* We probably want something more informative here */ +- snprintf(sb->s_id, sizeof(sb->s_id), "%x:%x", MAJOR(sb->s_dev), MINOR(sb->s_dev)); +- +- server = NFS_SB(sb); +- +- sb->s_magic = NFS_SUPER_MAGIC; +- +- server->io_stats = nfs_alloc_iostats(); +- if (server->io_stats == NULL) +- return -ENOMEM; +- +- root_inode = nfs_get_root(sb, &server->fh, &fsinfo); +- /* Did getting the root inode fail? */ +- if (IS_ERR(root_inode)) { +- no_root_error = PTR_ERR(root_inode); +- goto out_no_root; +- } +- sb->s_root = d_alloc_root(root_inode); +- if (!sb->s_root) { +- no_root_error = -ENOMEM; +- goto out_no_root; +- } +- sb->s_root->d_op = server->rpc_ops->dentry_ops; +- +- /* mount time stamp, in seconds */ +- server->mount_time = jiffies; +- +- /* Get some general file system info */ +- if (server->namelen == 0 && +- server->rpc_ops->pathconf(server, &server->fh, &pathinfo) >= 0) +- server->namelen = pathinfo.max_namelen; +- /* Work out a lot of parameters */ +- if (server->rsize == 0) +- server->rsize = nfs_block_size(fsinfo.rtpref, NULL); +- if (server->wsize == 0) +- server->wsize = nfs_block_size(fsinfo.wtpref, NULL); +- +- if (fsinfo.rtmax >= 512 && server->rsize > fsinfo.rtmax) +- server->rsize = nfs_block_size(fsinfo.rtmax, NULL); +- if (fsinfo.wtmax >= 512 && server->wsize > fsinfo.wtmax) +- server->wsize = nfs_block_size(fsinfo.wtmax, NULL); +- +- max_rpc_payload = nfs_block_size(rpc_max_payload(server->client), NULL); +- if (server->rsize > max_rpc_payload) +- server->rsize = max_rpc_payload; +- if (server->rsize > NFS_MAX_FILE_IO_SIZE) +- server->rsize = NFS_MAX_FILE_IO_SIZE; +- server->rpages = (server->rsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; +- +- if (server->wsize > max_rpc_payload) +- server->wsize = max_rpc_payload; +- if (server->wsize > NFS_MAX_FILE_IO_SIZE) +- server->wsize = NFS_MAX_FILE_IO_SIZE; +- server->wpages = (server->wsize + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; +- +- if (sb->s_blocksize == 0) +- sb->s_blocksize = nfs_block_bits(server->wsize, +- &sb->s_blocksize_bits); +- server->wtmult = nfs_block_bits(fsinfo.wtmult, NULL); +- +- server->dtsize = nfs_block_size(fsinfo.dtpref, NULL); +- if (server->dtsize > PAGE_CACHE_SIZE) +- server->dtsize = PAGE_CACHE_SIZE; +- if (server->dtsize > server->rsize) +- server->dtsize = server->rsize; +- +- if (server->flags & NFS_MOUNT_NOAC) { +- server->acregmin = server->acregmax = 0; +- server->acdirmin = server->acdirmax = 0; +- sb->s_flags |= MS_SYNCHRONOUS; +- } +- server->backing_dev_info.ra_pages = server->rpages * NFS_MAX_READAHEAD; +- +- nfs_super_set_maxbytes(sb, fsinfo.maxfilesize); +- +- server->client->cl_intr = (server->flags & NFS_MOUNT_INTR) ? 1 : 0; +- server->client->cl_softrtry = (server->flags & NFS_MOUNT_SOFT) ? 1 : 0; +- +- /* We're airborne Set socket buffersize */ +- rpc_setbufsize(server->client, server->wsize + 100, server->rsize + 100); +- return 0; +- /* Yargs. It didn't work out. */ +-out_no_root: +- dprintk("nfs_sb_init: get root inode failed: errno %d\n", -no_root_error); +- if (!IS_ERR(root_inode)) +- iput(root_inode); +- return no_root_error; +-} +- +-/* +- * Initialise the timeout values for a connection +- */ +-static void nfs_init_timeout_values(struct rpc_timeout *to, int proto, unsigned int timeo, unsigned int retrans) +-{ +- to->to_initval = timeo * HZ / 10; +- to->to_retries = retrans; +- if (!to->to_retries) +- to->to_retries = 2; +- +- switch (proto) { +- case IPPROTO_TCP: +- if (!to->to_initval) +- to->to_initval = 60 * HZ; +- if (to->to_initval > NFS_MAX_TCP_TIMEOUT) +- to->to_initval = NFS_MAX_TCP_TIMEOUT; +- to->to_increment = to->to_initval; +- to->to_maxval = to->to_initval + (to->to_increment * to->to_retries); +- to->to_exponential = 0; +- break; +- case IPPROTO_UDP: +- default: +- if (!to->to_initval) +- to->to_initval = 11 * HZ / 10; +- if (to->to_initval > NFS_MAX_UDP_TIMEOUT) +- to->to_initval = NFS_MAX_UDP_TIMEOUT; +- to->to_maxval = NFS_MAX_UDP_TIMEOUT; +- to->to_exponential = 1; +- break; +- } +-} +- +-/* +- * Create an RPC client handle. +- */ +-static struct rpc_clnt * +-nfs_create_client(struct nfs_server *server, const struct nfs_mount_data *data) +-{ +- struct rpc_timeout timeparms; +- struct rpc_xprt *xprt = NULL; +- struct rpc_clnt *clnt = NULL; +- int proto = (data->flags & NFS_MOUNT_TCP) ? IPPROTO_TCP : IPPROTO_UDP; +- +- nfs_init_timeout_values(&timeparms, proto, data->timeo, data->retrans); +- +- server->retrans_timeo = timeparms.to_initval; +- server->retrans_count = timeparms.to_retries; +- +- /* create transport and client */ +- xprt = xprt_create_proto(proto, &server->addr, &timeparms); +- if (IS_ERR(xprt)) { +- dprintk("%s: cannot create RPC transport. Error = %ld\n", +- __FUNCTION__, PTR_ERR(xprt)); +- return (struct rpc_clnt *)xprt; +- } +- clnt = rpc_create_client(xprt, server->hostname, &nfs_program, +- server->rpc_ops->version, data->pseudoflavor); +- if (IS_ERR(clnt)) { +- dprintk("%s: cannot create RPC client. Error = %ld\n", +- __FUNCTION__, PTR_ERR(xprt)); +- goto out_fail; +- } +- +- clnt->cl_intr = 1; +- clnt->cl_softrtry = 1; +- +- return clnt; +- +-out_fail: +- return clnt; +-} +- +-/* +- * Clone a server record +- */ +-static struct nfs_server *nfs_clone_server(struct super_block *sb, struct nfs_clone_mount *data) +-{ +- struct nfs_server *server = NFS_SB(sb); +- struct nfs_server *parent = NFS_SB(data->sb); +- struct inode *root_inode; +- struct nfs_fsinfo fsinfo; +- void *err = ERR_PTR(-ENOMEM); +- +- sb->s_op = data->sb->s_op; +- sb->s_blocksize = data->sb->s_blocksize; +- sb->s_blocksize_bits = data->sb->s_blocksize_bits; +- sb->s_maxbytes = data->sb->s_maxbytes; +- +- server->client_sys = server->client_acl = ERR_PTR(-EINVAL); +- server->io_stats = nfs_alloc_iostats(); +- if (server->io_stats == NULL) +- goto out; +- +- server->client = rpc_clone_client(parent->client); +- if (IS_ERR((err = server->client))) +- goto out; +- +- if (!IS_ERR(parent->client_sys)) { +- server->client_sys = rpc_clone_client(parent->client_sys); +- if (IS_ERR((err = server->client_sys))) +- goto out; +- } +- if (!IS_ERR(parent->client_acl)) { +- server->client_acl = rpc_clone_client(parent->client_acl); +- if (IS_ERR((err = server->client_acl))) +- goto out; +- } +- root_inode = nfs_fhget(sb, data->fh, data->fattr); +- if (!root_inode) +- goto out; +- sb->s_root = d_alloc_root(root_inode); +- if (!sb->s_root) +- goto out_put_root; +- fsinfo.fattr = data->fattr; +- if (NFS_PROTO(root_inode)->fsinfo(server, data->fh, &fsinfo) == 0) +- nfs_super_set_maxbytes(sb, fsinfo.maxfilesize); +- sb->s_root->d_op = server->rpc_ops->dentry_ops; +- sb->s_flags |= MS_ACTIVE; +- return server; +-out_put_root: +- iput(root_inode); +-out: +- return err; +-} +- +-/* +- * Copy an existing superblock and attach revised data +- */ +-static struct super_block *nfs_clone_generic_sb(struct nfs_clone_mount *data, +- struct super_block *(*fill_sb)(struct nfs_server *, struct nfs_clone_mount *), +- struct nfs_server *(*fill_server)(struct super_block *, struct nfs_clone_mount *)) +-{ +- struct nfs_server *server; +- struct nfs_server *parent = NFS_SB(data->sb); +- struct super_block *sb = ERR_PTR(-EINVAL); +- void *err = ERR_PTR(-ENOMEM); +- char *hostname; +- int len; +- +- server = kmalloc(sizeof(struct nfs_server), GFP_KERNEL); +- if (server == NULL) +- goto out_err; +- memcpy(server, parent, sizeof(*server)); +- hostname = (data->hostname != NULL) ? data->hostname : parent->hostname; +- len = strlen(hostname) + 1; +- server->hostname = kmalloc(len, GFP_KERNEL); +- if (server->hostname == NULL) +- goto free_server; +- memcpy(server->hostname, hostname, len); +- if (rpciod_up() != 0) +- goto free_hostname; +- +- sb = fill_sb(server, data); +- if (IS_ERR((err = sb)) || sb->s_root) +- goto kill_rpciod; +- +- server = fill_server(sb, data); +- if (IS_ERR((err = server))) +- goto out_deactivate; +- return sb; +-out_deactivate: +- up_write(&sb->s_umount); +- deactivate_super(sb); +- return (struct super_block *)err; +-kill_rpciod: +- rpciod_down(); +-free_hostname: +- kfree(server->hostname); +-free_server: +- kfree(server); +-out_err: +- return (struct super_block *)err; +-} +- +-/* +- * Set up an NFS2/3 superblock +- * +- * The way this works is that the mount process passes a structure +- * in the data argument which contains the server's IP address +- * and the root file handle obtained from the server's mount +- * daemon. We stash these away in the private superblock fields. +- */ +-static int +-nfs_fill_super(struct super_block *sb, struct nfs_mount_data *data, int silent) +-{ +- struct nfs_server *server; +- rpc_authflavor_t authflavor; +- +- server = NFS_SB(sb); +- sb->s_blocksize_bits = 0; +- sb->s_blocksize = 0; +- if (data->bsize) +- sb->s_blocksize = nfs_block_size(data->bsize, &sb->s_blocksize_bits); +- if (data->rsize) +- server->rsize = nfs_block_size(data->rsize, NULL); +- if (data->wsize) +- server->wsize = nfs_block_size(data->wsize, NULL); +- server->flags = data->flags & NFS_MOUNT_FLAGMASK; +- +- server->acregmin = data->acregmin*HZ; +- server->acregmax = data->acregmax*HZ; +- server->acdirmin = data->acdirmin*HZ; +- server->acdirmax = data->acdirmax*HZ; +- +- /* Start lockd here, before we might error out */ +- if (!(server->flags & NFS_MOUNT_NONLM)) +- lockd_up(); +- +- server->namelen = data->namlen; +- server->hostname = kmalloc(strlen(data->hostname) + 1, GFP_KERNEL); +- if (!server->hostname) +- return -ENOMEM; +- strcpy(server->hostname, data->hostname); +- +- /* Check NFS protocol revision and initialize RPC op vector +- * and file handle pool. */ +-#ifdef CONFIG_NFS_V3 +- if (server->flags & NFS_MOUNT_VER3) { +- server->rpc_ops = &nfs_v3_clientops; +- server->caps |= NFS_CAP_READDIRPLUS; +- } else { +- server->rpc_ops = &nfs_v2_clientops; +- } +-#else +- server->rpc_ops = &nfs_v2_clientops; +-#endif +- +- /* Fill in pseudoflavor for mount version < 5 */ +- if (!(data->flags & NFS_MOUNT_SECFLAVOUR)) +- data->pseudoflavor = RPC_AUTH_UNIX; +- authflavor = data->pseudoflavor; /* save for sb_init() */ +- /* XXX maybe we want to add a server->pseudoflavor field */ +- +- /* Create RPC client handles */ +- server->client = nfs_create_client(server, data); +- if (IS_ERR(server->client)) +- return PTR_ERR(server->client); +- /* RFC 2623, sec 2.3.2 */ +- if (authflavor != RPC_AUTH_UNIX) { +- struct rpc_auth *auth; +- +- server->client_sys = rpc_clone_client(server->client); +- if (IS_ERR(server->client_sys)) +- return PTR_ERR(server->client_sys); +- auth = rpcauth_create(RPC_AUTH_UNIX, server->client_sys); +- if (IS_ERR(auth)) +- return PTR_ERR(auth); +- } else { +- atomic_inc(&server->client->cl_count); +- server->client_sys = server->client; +- } +- if (server->flags & NFS_MOUNT_VER3) { +-#ifdef CONFIG_NFS_V3_ACL +- if (!(server->flags & NFS_MOUNT_NOACL)) { +- server->client_acl = rpc_bind_new_program(server->client, &nfsacl_program, 3); +- /* No errors! Assume that Sun nfsacls are supported */ +- if (!IS_ERR(server->client_acl)) +- server->caps |= NFS_CAP_ACLS; +- } +-#else +- server->flags &= ~NFS_MOUNT_NOACL; +-#endif /* CONFIG_NFS_V3_ACL */ +- /* +- * The VFS shouldn't apply the umask to mode bits. We will +- * do so ourselves when necessary. +- */ +- sb->s_flags |= MS_POSIXACL; +- if (server->namelen == 0 || server->namelen > NFS3_MAXNAMLEN) +- server->namelen = NFS3_MAXNAMLEN; +- sb->s_time_gran = 1; +- } else { +- if (server->namelen == 0 || server->namelen > NFS2_MAXNAMLEN) +- server->namelen = NFS2_MAXNAMLEN; +- } +- +- sb->s_op = &nfs_sops; +- return nfs_sb_init(sb, authflavor); +-} +- +-static int nfs_set_super(struct super_block *s, void *data) +-{ +- s->s_fs_info = data; +- return set_anon_super(s, data); +-} +- +-static int nfs_compare_super(struct super_block *sb, void *data) +-{ +- struct nfs_server *server = data; +- struct nfs_server *old = NFS_SB(sb); +- +- if (old->addr.sin_addr.s_addr != server->addr.sin_addr.s_addr) +- return 0; +- if (old->addr.sin_port != server->addr.sin_port) +- return 0; +- return !nfs_compare_fh(&old->fh, &server->fh); +-} +- +-static struct super_block *nfs_get_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- int error; +- struct nfs_server *server = NULL; +- struct super_block *s; +- struct nfs_fh *root; +- struct nfs_mount_data *data = raw_data; +- +- s = ERR_PTR(-EINVAL); +- if (data == NULL) { +- dprintk("%s: missing data argument\n", __FUNCTION__); +- goto out_err; +- } +- if (data->version <= 0 || data->version > NFS_MOUNT_VERSION) { +- dprintk("%s: bad mount version\n", __FUNCTION__); +- goto out_err; +- } +- switch (data->version) { +- case 1: +- data->namlen = 0; +- case 2: +- data->bsize = 0; +- case 3: +- if (data->flags & NFS_MOUNT_VER3) { +- dprintk("%s: mount structure version %d does not support NFSv3\n", +- __FUNCTION__, +- data->version); +- goto out_err; +- } +- data->root.size = NFS2_FHSIZE; +- memcpy(data->root.data, data->old_root.data, NFS2_FHSIZE); +- case 4: +- if (data->flags & NFS_MOUNT_SECFLAVOUR) { +- dprintk("%s: mount structure version %d does not support strong security\n", +- __FUNCTION__, +- data->version); +- goto out_err; +- } +- case 5: +- memset(data->context, 0, sizeof(data->context)); +- } +-#ifndef CONFIG_NFS_V3 +- /* If NFSv3 is not compiled in, return -EPROTONOSUPPORT */ +- s = ERR_PTR(-EPROTONOSUPPORT); +- if (data->flags & NFS_MOUNT_VER3) { +- dprintk("%s: NFSv3 not compiled into kernel\n", __FUNCTION__); +- goto out_err; +- } +-#endif /* CONFIG_NFS_V3 */ +- +- s = ERR_PTR(-ENOMEM); +- server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); +- if (!server) +- goto out_err; +- /* Zero out the NFS state stuff */ +- init_nfsv4_state(server); +- server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); +- +- root = &server->fh; +- if (data->flags & NFS_MOUNT_VER3) +- root->size = data->root.size; +- else +- root->size = NFS2_FHSIZE; +- s = ERR_PTR(-EINVAL); +- if (root->size > sizeof(root->data)) { +- dprintk("%s: invalid root filehandle\n", __FUNCTION__); +- goto out_err; +- } +- memcpy(root->data, data->root.data, root->size); +- +- /* We now require that the mount process passes the remote address */ +- memcpy(&server->addr, &data->addr, sizeof(server->addr)); +- if (server->addr.sin_addr.s_addr == INADDR_ANY) { +- dprintk("%s: mount program didn't pass remote address!\n", +- __FUNCTION__); +- goto out_err; +- } +- +- /* Fire up rpciod if not yet running */ +- s = ERR_PTR(rpciod_up()); +- if (IS_ERR(s)) { +- dprintk("%s: couldn't start rpciod! Error = %ld\n", +- __FUNCTION__, PTR_ERR(s)); +- goto out_err; +- } +- +- s = sget(fs_type, nfs_compare_super, nfs_set_super, server); +- if (IS_ERR(s) || s->s_root) +- goto out_rpciod_down; +- +- s->s_flags = flags; +- +- error = nfs_fill_super(s, data, flags & MS_SILENT ? 1 : 0); +- if (error) { +- up_write(&s->s_umount); +- deactivate_super(s); +- return ERR_PTR(error); +- } +- s->s_flags |= MS_ACTIVE; +- return s; +-out_rpciod_down: +- rpciod_down(); +-out_err: +- kfree(server); +- return s; +-} +- +-static void nfs_kill_super(struct super_block *s) +-{ +- struct nfs_server *server = NFS_SB(s); +- +- kill_anon_super(s); +- +- if (!IS_ERR(server->client)) +- rpc_shutdown_client(server->client); +- if (!IS_ERR(server->client_sys)) +- rpc_shutdown_client(server->client_sys); +- if (!IS_ERR(server->client_acl)) +- rpc_shutdown_client(server->client_acl); +- +- if (!(server->flags & NFS_MOUNT_NONLM)) +- lockd_down(); /* release rpc.lockd */ +- +- rpciod_down(); /* release rpciod */ +- +- nfs_free_iostats(server->io_stats); +- kfree(server->hostname); +- kfree(server); +- nfs_release_automount_timer(); +-} +- +-static struct super_block *nfs_clone_sb(struct nfs_server *server, struct nfs_clone_mount *data) +-{ +- struct super_block *sb; +- +- server->fsid = data->fattr->fsid; +- nfs_copy_fh(&server->fh, data->fh); +- sb = sget(&nfs_fs_type, nfs_compare_super, nfs_set_super, server); +- if (!IS_ERR(sb) && sb->s_root == NULL && !(server->flags & NFS_MOUNT_NONLM)) +- lockd_up(); +- return sb; +-} +- +-static struct super_block *nfs_clone_nfs_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- struct nfs_clone_mount *data = raw_data; +- return nfs_clone_generic_sb(data, nfs_clone_sb, nfs_clone_server); +-} +- +-#ifdef CONFIG_NFS_V4 +-static struct rpc_clnt *nfs4_create_client(struct nfs_server *server, +- struct rpc_timeout *timeparms, int proto, rpc_authflavor_t flavor) +-{ +- struct nfs4_client *clp; +- struct rpc_xprt *xprt = NULL; +- struct rpc_clnt *clnt = NULL; +- int err = -EIO; +- +- clp = nfs4_get_client(&server->addr.sin_addr); +- if (!clp) { +- dprintk("%s: failed to create NFS4 client.\n", __FUNCTION__); +- return ERR_PTR(err); +- } +- +- /* Now create transport and client */ +- down_write(&clp->cl_sem); +- if (IS_ERR(clp->cl_rpcclient)) { +- xprt = xprt_create_proto(proto, &server->addr, timeparms); +- if (IS_ERR(xprt)) { +- up_write(&clp->cl_sem); +- err = PTR_ERR(xprt); +- dprintk("%s: cannot create RPC transport. Error = %d\n", +- __FUNCTION__, err); +- goto out_fail; +- } +- /* Bind to a reserved port! */ +- xprt->resvport = 1; +- clnt = rpc_create_client(xprt, server->hostname, &nfs_program, +- server->rpc_ops->version, flavor); +- if (IS_ERR(clnt)) { +- up_write(&clp->cl_sem); +- err = PTR_ERR(clnt); +- dprintk("%s: cannot create RPC client. Error = %d\n", +- __FUNCTION__, err); +- goto out_fail; +- } +- clnt->cl_intr = 1; +- clnt->cl_softrtry = 1; +- clp->cl_rpcclient = clnt; +- memcpy(clp->cl_ipaddr, server->ip_addr, sizeof(clp->cl_ipaddr)); +- nfs_idmap_new(clp); +- } +- list_add_tail(&server->nfs4_siblings, &clp->cl_superblocks); +- clnt = rpc_clone_client(clp->cl_rpcclient); +- if (!IS_ERR(clnt)) +- server->nfs4_state = clp; +- up_write(&clp->cl_sem); +- clp = NULL; +- +- if (IS_ERR(clnt)) { +- dprintk("%s: cannot create RPC client. Error = %d\n", +- __FUNCTION__, err); +- return clnt; +- } +- +- if (server->nfs4_state->cl_idmap == NULL) { +- dprintk("%s: failed to create idmapper.\n", __FUNCTION__); +- return ERR_PTR(-ENOMEM); +- } +- +- if (clnt->cl_auth->au_flavor != flavor) { +- struct rpc_auth *auth; +- +- auth = rpcauth_create(flavor, clnt); +- if (IS_ERR(auth)) { +- dprintk("%s: couldn't create credcache!\n", __FUNCTION__); +- return (struct rpc_clnt *)auth; +- } +- } +- return clnt; +- +- out_fail: +- if (clp) +- nfs4_put_client(clp); +- return ERR_PTR(err); +-} +- +-/* +- * Set up an NFS4 superblock +- */ +-static int nfs4_fill_super(struct super_block *sb, struct nfs4_mount_data *data, int silent) +-{ +- struct nfs_server *server; +- struct rpc_timeout timeparms; +- rpc_authflavor_t authflavour; +- int err = -EIO; +- +- sb->s_blocksize_bits = 0; +- sb->s_blocksize = 0; +- server = NFS_SB(sb); +- if (data->rsize != 0) +- server->rsize = nfs_block_size(data->rsize, NULL); +- if (data->wsize != 0) +- server->wsize = nfs_block_size(data->wsize, NULL); +- server->flags = data->flags & NFS_MOUNT_FLAGMASK; +- server->caps = NFS_CAP_ATOMIC_OPEN; +- +- server->acregmin = data->acregmin*HZ; +- server->acregmax = data->acregmax*HZ; +- server->acdirmin = data->acdirmin*HZ; +- server->acdirmax = data->acdirmax*HZ; +- +- server->rpc_ops = &nfs_v4_clientops; +- +- nfs_init_timeout_values(&timeparms, data->proto, data->timeo, data->retrans); +- +- server->retrans_timeo = timeparms.to_initval; +- server->retrans_count = timeparms.to_retries; +- +- /* Now create transport and client */ +- authflavour = RPC_AUTH_UNIX; +- if (data->auth_flavourlen != 0) { +- if (data->auth_flavourlen != 1) { +- dprintk("%s: Invalid number of RPC auth flavours %d.\n", +- __FUNCTION__, data->auth_flavourlen); +- err = -EINVAL; +- goto out_fail; +- } +- if (copy_from_user(&authflavour, data->auth_flavours, sizeof(authflavour))) { +- err = -EFAULT; +- goto out_fail; +- } +- } +- +- server->client = nfs4_create_client(server, &timeparms, data->proto, authflavour); +- if (IS_ERR(server->client)) { +- err = PTR_ERR(server->client); +- dprintk("%s: cannot create RPC client. Error = %d\n", +- __FUNCTION__, err); +- goto out_fail; +- } +- +- sb->s_time_gran = 1; +- +- sb->s_op = &nfs4_sops; +- err = nfs_sb_init(sb, authflavour); +- +- out_fail: +- return err; +-} +- +-static int nfs4_compare_super(struct super_block *sb, void *data) +-{ +- struct nfs_server *server = data; +- struct nfs_server *old = NFS_SB(sb); +- +- if (strcmp(server->hostname, old->hostname) != 0) +- return 0; +- if (strcmp(server->mnt_path, old->mnt_path) != 0) +- return 0; +- return 1; +-} +- +-static void * +-nfs_copy_user_string(char *dst, struct nfs_string *src, int maxlen) +-{ +- void *p = NULL; +- +- if (!src->len) +- return ERR_PTR(-EINVAL); +- if (src->len < maxlen) +- maxlen = src->len; +- if (dst == NULL) { +- p = dst = kmalloc(maxlen + 1, GFP_KERNEL); +- if (p == NULL) +- return ERR_PTR(-ENOMEM); +- } +- if (copy_from_user(dst, src->data, maxlen)) { +- kfree(p); +- return ERR_PTR(-EFAULT); +- } +- dst[maxlen] = '\0'; +- return dst; +-} +- +-static struct super_block *nfs4_get_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- int error; +- struct nfs_server *server; +- struct super_block *s; +- struct nfs4_mount_data *data = raw_data; +- void *p; +- +- if (data == NULL) { +- dprintk("%s: missing data argument\n", __FUNCTION__); +- return ERR_PTR(-EINVAL); +- } +- if (data->version <= 0 || data->version > NFS4_MOUNT_VERSION) { +- dprintk("%s: bad mount version\n", __FUNCTION__); +- return ERR_PTR(-EINVAL); +- } +- +- server = kzalloc(sizeof(struct nfs_server), GFP_KERNEL); +- if (!server) +- return ERR_PTR(-ENOMEM); +- /* Zero out the NFS state stuff */ +- init_nfsv4_state(server); +- server->client = server->client_sys = server->client_acl = ERR_PTR(-EINVAL); +- +- p = nfs_copy_user_string(NULL, &data->hostname, 256); +- if (IS_ERR(p)) +- goto out_err; +- server->hostname = p; +- +- p = nfs_copy_user_string(NULL, &data->mnt_path, 1024); +- if (IS_ERR(p)) +- goto out_err; +- server->mnt_path = p; +- +- p = nfs_copy_user_string(server->ip_addr, &data->client_addr, +- sizeof(server->ip_addr) - 1); +- if (IS_ERR(p)) +- goto out_err; +- +- /* We now require that the mount process passes the remote address */ +- if (data->host_addrlen != sizeof(server->addr)) { +- s = ERR_PTR(-EINVAL); +- goto out_free; +- } +- if (copy_from_user(&server->addr, data->host_addr, sizeof(server->addr))) { +- s = ERR_PTR(-EFAULT); +- goto out_free; +- } +- if (server->addr.sin_family != AF_INET || +- server->addr.sin_addr.s_addr == INADDR_ANY) { +- dprintk("%s: mount program didn't pass remote IP address!\n", +- __FUNCTION__); +- s = ERR_PTR(-EINVAL); +- goto out_free; +- } +- +- /* Fire up rpciod if not yet running */ +- s = ERR_PTR(rpciod_up()); +- if (IS_ERR(s)) { +- dprintk("%s: couldn't start rpciod! Error = %ld\n", +- __FUNCTION__, PTR_ERR(s)); +- goto out_free; +- } +- +- s = sget(fs_type, nfs4_compare_super, nfs_set_super, server); +- +- if (IS_ERR(s) || s->s_root) +- goto out_free; +- +- s->s_flags = flags; +- +- error = nfs4_fill_super(s, data, flags & MS_SILENT ? 1 : 0); +- if (error) { +- up_write(&s->s_umount); +- deactivate_super(s); +- return ERR_PTR(error); +- } +- s->s_flags |= MS_ACTIVE; +- return s; +-out_err: +- s = (struct super_block *)p; +-out_free: +- kfree(server->mnt_path); +- kfree(server->hostname); +- kfree(server); +- return s; +-} +- +-static void nfs4_kill_super(struct super_block *sb) +-{ +- struct nfs_server *server = NFS_SB(sb); +- +- nfs_return_all_delegations(sb); +- kill_anon_super(sb); +- +- nfs4_renewd_prepare_shutdown(server); +- +- if (server->client != NULL && !IS_ERR(server->client)) +- rpc_shutdown_client(server->client); +- +- destroy_nfsv4_state(server); +- +- rpciod_down(); +- +- nfs_free_iostats(server->io_stats); +- kfree(server->hostname); +- kfree(server); +- nfs_release_automount_timer(); +-} +- +-/* +- * Constructs the SERVER-side path +- */ +-static inline char *nfs4_dup_path(const struct dentry *dentry) +-{ +- char *page = (char *) __get_free_page(GFP_USER); +- char *path; +- +- path = nfs4_path(dentry, page, PAGE_SIZE); +- if (!IS_ERR(path)) { +- int len = PAGE_SIZE + page - path; +- char *tmp = path; +- +- path = kmalloc(len, GFP_KERNEL); +- if (path) +- memcpy(path, tmp, len); +- else +- path = ERR_PTR(-ENOMEM); +- } +- free_page((unsigned long)page); +- return path; +-} +- +-static struct super_block *nfs4_clone_sb(struct nfs_server *server, struct nfs_clone_mount *data) +-{ +- const struct dentry *dentry = data->dentry; +- struct nfs4_client *clp = server->nfs4_state; +- struct super_block *sb; +- +- server->fsid = data->fattr->fsid; +- nfs_copy_fh(&server->fh, data->fh); +- server->mnt_path = nfs4_dup_path(dentry); +- if (IS_ERR(server->mnt_path)) { +- sb = (struct super_block *)server->mnt_path; +- goto err; +- } +- sb = sget(&nfs4_fs_type, nfs4_compare_super, nfs_set_super, server); +- if (IS_ERR(sb) || sb->s_root) +- goto free_path; +- nfs4_server_capabilities(server, &server->fh); +- +- down_write(&clp->cl_sem); +- atomic_inc(&clp->cl_count); +- list_add_tail(&server->nfs4_siblings, &clp->cl_superblocks); +- up_write(&clp->cl_sem); +- return sb; +-free_path: +- kfree(server->mnt_path); +-err: +- server->mnt_path = NULL; +- return sb; +-} +- +-static struct super_block *nfs_clone_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- struct nfs_clone_mount *data = raw_data; +- return nfs_clone_generic_sb(data, nfs4_clone_sb, nfs_clone_server); +-} +- +-static struct super_block *nfs4_referral_sb(struct nfs_server *server, struct nfs_clone_mount *data) +-{ +- struct super_block *sb = ERR_PTR(-ENOMEM); +- int len; +- +- len = strlen(data->mnt_path) + 1; +- server->mnt_path = kmalloc(len, GFP_KERNEL); +- if (server->mnt_path == NULL) +- goto err; +- memcpy(server->mnt_path, data->mnt_path, len); +- memcpy(&server->addr, data->addr, sizeof(struct sockaddr_in)); +- +- sb = sget(&nfs4_fs_type, nfs4_compare_super, nfs_set_super, server); +- if (IS_ERR(sb) || sb->s_root) +- goto free_path; +- return sb; +-free_path: +- kfree(server->mnt_path); +-err: +- server->mnt_path = NULL; +- return sb; +-} +- +-static struct nfs_server *nfs4_referral_server(struct super_block *sb, struct nfs_clone_mount *data) +-{ +- struct nfs_server *server = NFS_SB(sb); +- struct rpc_timeout timeparms; +- int proto, timeo, retrans; +- void *err; +- +- proto = IPPROTO_TCP; +- /* Since we are following a referral and there may be alternatives, +- set the timeouts and retries to low values */ +- timeo = 2; +- retrans = 1; +- nfs_init_timeout_values(&timeparms, proto, timeo, retrans); +- +- server->client = nfs4_create_client(server, &timeparms, proto, data->authflavor); +- if (IS_ERR((err = server->client))) +- goto out_err; +- +- sb->s_time_gran = 1; +- sb->s_op = &nfs4_sops; +- err = ERR_PTR(nfs_sb_init(sb, data->authflavor)); +- if (!IS_ERR(err)) +- return server; +-out_err: +- return (struct nfs_server *)err; +-} +- +-static struct super_block *nfs_referral_nfs4_sb(struct file_system_type *fs_type, +- int flags, const char *dev_name, void *raw_data) +-{ +- struct nfs_clone_mount *data = raw_data; +- return nfs_clone_generic_sb(data, nfs4_referral_sb, nfs4_referral_server); +-} +- +-#endif +diff --git a/fs/nfs/symlink.c b/fs/nfs/symlink.c +index 636c479..18dc95b 100644 +--- a/fs/nfs/symlink.c ++++ b/fs/nfs/symlink.c +@@ -52,7 +52,7 @@ static void *nfs_follow_link(struct dent + { + struct inode *inode = dentry->d_inode; + struct page *page; +- void *err = ERR_PTR(nfs_revalidate_mapping(inode, inode->i_mapping)); ++ void *err = ERR_PTR(nfs_revalidate_inode(NFS_SERVER(inode), inode)); + if (err) + goto read_failed; + page = read_cache_page(&inode->i_data, 0, +diff --git a/fs/nfs/sysctl.c b/fs/nfs/sysctl.c +index db61e51..4c486eb 100644 +--- a/fs/nfs/sysctl.c ++++ b/fs/nfs/sysctl.c +@@ -12,7 +12,6 @@ + #include + #include + #include +-#include + + #include "callback.h" + +@@ -47,15 +46,6 @@ static ctl_table nfs_cb_sysctls[] = { + .strategy = &sysctl_jiffies, + }, + #endif +- { +- .ctl_name = CTL_UNNUMBERED, +- .procname = "nfs_mountpoint_timeout", +- .data = &nfs_mountpoint_expiry_timeout, +- .maxlen = sizeof(nfs_mountpoint_expiry_timeout), +- .mode = 0644, +- .proc_handler = &proc_dointvec_jiffies, +- .strategy = &sysctl_jiffies, +- }, + { .ctl_name = 0 } + }; + +diff --git a/fs/nfs/write.c b/fs/nfs/write.c +index fe3eb36..4cfada2 100644 +--- a/fs/nfs/write.c ++++ b/fs/nfs/write.c +@@ -98,10 +98,11 @@ struct nfs_write_data *nfs_commit_alloc( + if (p) { + memset(p, 0, sizeof(*p)); + INIT_LIST_HEAD(&p->pages); +- if (pagecount <= ARRAY_SIZE(p->page_array)) +- p->pagevec = p->page_array; ++ if (pagecount < NFS_PAGEVEC_SIZE) ++ p->pagevec = &p->page_array[0]; + else { +- p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); ++ size_t size = ++pagecount * sizeof(struct page *); ++ p->pagevec = kzalloc(size, GFP_NOFS); + if (!p->pagevec) { + mempool_free(p, nfs_commit_mempool); + p = NULL; +@@ -125,11 +126,14 @@ struct nfs_write_data *nfs_writedata_all + if (p) { + memset(p, 0, sizeof(*p)); + INIT_LIST_HEAD(&p->pages); +- if (pagecount <= ARRAY_SIZE(p->page_array)) +- p->pagevec = p->page_array; ++ if (pagecount < NFS_PAGEVEC_SIZE) ++ p->pagevec = &p->page_array[0]; + else { +- p->pagevec = kcalloc(pagecount, sizeof(struct page *), GFP_NOFS); +- if (!p->pagevec) { ++ size_t size = ++pagecount * sizeof(struct page *); ++ p->pagevec = kmalloc(size, GFP_NOFS); ++ if (p->pagevec) { ++ memset(p->pagevec, 0, size); ++ } else { + mempool_free(p, nfs_wdata_mempool); + p = NULL; + } +@@ -579,33 +583,6 @@ static int nfs_wait_on_requests(struct i + return ret; + } + +-static void nfs_cancel_dirty_list(struct list_head *head) +-{ +- struct nfs_page *req; +- while(!list_empty(head)) { +- req = nfs_list_entry(head->next); +- nfs_list_remove_request(req); +- /* Hack, cough, splutter! +- * Wretched borken mm requires us to do this... +- */ +- set_page_writeback(req->wb_page); +- end_page_writeback(req->wb_page); +- nfs_inode_remove_request(req); +- nfs_clear_page_writeback(req); +- } +-} +- +-static void nfs_cancel_commit_list(struct list_head *head) +-{ +- struct nfs_page *req; +- while(!list_empty(head)) { +- req = nfs_list_entry(head->next); +- nfs_list_remove_request(req); +- nfs_inode_remove_request(req); +- nfs_clear_page_writeback(req); +- } +-} +- + /* + * nfs_scan_dirty - Scan an inode for dirty requests + * @inode: NFS inode to scan +@@ -650,9 +627,8 @@ nfs_scan_commit(struct inode *inode, str + int res = 0; + + if (nfsi->ncommit != 0) { +- res = nfs_scan_list(nfsi, &nfsi->commit, dst, idx_start, npages); ++ res = nfs_scan_list(&nfsi->commit, dst, idx_start, npages); + nfsi->ncommit -= res; +- sub_page_state(nr_unstable,res); + if ((nfsi->ncommit == 0) != list_empty(&nfsi->commit)) + printk(KERN_ERR "NFS: desynchronized value of nfs_i.ncommit.\n"); + } +@@ -1451,6 +1427,7 @@ static void nfs_commit_done(struct rpc_t + nfs_clear_page_writeback(req); + res++; + } ++ sub_page_state(nr_unstable,res); + } + + static const struct rpc_call_ops nfs_commit_ops = { +@@ -1518,25 +1495,15 @@ int nfs_sync_inode_wait(struct inode *in + pages = nfs_scan_dirty(inode, &head, idx_start, npages); + if (pages != 0) { + spin_unlock(&nfsi->req_lock); +- if (how & FLUSH_INVALIDATE) +- nfs_cancel_dirty_list(&head); +- else +- ret = nfs_flush_list(inode, &head, pages, how); ++ ret = nfs_flush_list(inode, &head, pages, how); + spin_lock(&nfsi->req_lock); + continue; + } + if (nocommit) + break; +- pages = nfs_scan_commit(inode, &head, idx_start, npages); ++ pages = nfs_scan_commit(inode, &head, 0, 0); + if (pages == 0) + break; +- if (how & FLUSH_INVALIDATE) { +- spin_unlock(&nfsi->req_lock); +- nfs_cancel_commit_list(&head); +- spin_lock(&nfsi->req_lock); +- continue; +- } +- pages += nfs_scan_commit(inode, &head, 0, 0); + spin_unlock(&nfsi->req_lock); + ret = nfs_commit_list(inode, &head, how); + spin_lock(&nfsi->req_lock); +@@ -1545,7 +1512,7 @@ int nfs_sync_inode_wait(struct inode *in + return ret; + } + +-int __init nfs_init_writepagecache(void) ++int nfs_init_writepagecache(void) + { + nfs_wdata_cachep = kmem_cache_create("nfs_write_data", + sizeof(struct nfs_write_data), +@@ -1567,7 +1534,7 @@ int __init nfs_init_writepagecache(void) + return 0; + } + +-void __exit nfs_destroy_writepagecache(void) ++void nfs_destroy_writepagecache(void) + { + mempool_destroy(nfs_commit_mempool); + mempool_destroy(nfs_wdata_mempool); +diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c +index 4424037..3eec300 100644 +--- a/fs/nfsd/export.c ++++ b/fs/nfsd/export.c +@@ -319,25 +319,12 @@ svc_expkey_update(struct svc_expkey *new + + static struct cache_head *export_table[EXPORT_HASHMAX]; + +-static void nfsd4_fslocs_free(struct nfsd4_fs_locations *fsloc) +-{ +- int i; +- +- for (i = 0; i < fsloc->locations_count; i++) { +- kfree(fsloc->locations[i].path); +- kfree(fsloc->locations[i].hosts); +- } +- kfree(fsloc->locations); +-} +- + static void svc_export_put(struct kref *ref) + { + struct svc_export *exp = container_of(ref, struct svc_export, h.ref); + dput(exp->ex_dentry); + mntput(exp->ex_mnt); + auth_domain_put(exp->ex_client); +- kfree(exp->ex_path); +- nfsd4_fslocs_free(&exp->ex_fslocs); + kfree(exp); + } + +@@ -399,67 +386,6 @@ static int check_export(struct inode *in + + } + +-#ifdef CONFIG_NFSD_V4 +- +-static int +-fsloc_parse(char **mesg, char *buf, struct nfsd4_fs_locations *fsloc) +-{ +- int len; +- int migrated, i, err; +- +- len = qword_get(mesg, buf, PAGE_SIZE); +- if (len != 5 || memcmp(buf, "fsloc", 5)) +- return 0; +- +- /* listsize */ +- err = get_int(mesg, &fsloc->locations_count); +- if (err) +- return err; +- if (fsloc->locations_count < 0) +- return -EINVAL; +- if (fsloc->locations_count == 0) +- return 0; +- +- err = -ENOMEM; +- fsloc->locations = kzalloc(fsloc->locations_count +- * sizeof(struct nfsd4_fs_location), GFP_KERNEL); +- if (!fsloc->locations) +- goto out_free_all; +- for (i=0; i < fsloc->locations_count; i++) { +- /* colon separated host list */ +- err = -EINVAL; +- len = qword_get(mesg, buf, PAGE_SIZE); +- if (len <= 0) +- goto out_free_all; +- err = -ENOMEM; +- fsloc->locations[i].hosts = kstrdup(buf, GFP_KERNEL); +- if (!fsloc->locations[i].hosts) +- goto out_free_all; +- err = -EINVAL; +- /* slash separated path component list */ +- len = qword_get(mesg, buf, PAGE_SIZE); +- if (len <= 0) +- goto out_free_all; +- err = -ENOMEM; +- fsloc->locations[i].path = kstrdup(buf, GFP_KERNEL); +- if (!fsloc->locations[i].path) +- goto out_free_all; +- } +- /* migrated */ +- err = get_int(mesg, &migrated); +- if (err) +- goto out_free_all; +- fsloc->migrated = migrated; +- return 0; +-out_free_all: +- nfsd4_fslocs_free(fsloc); +- return err; +-} +- +-#else /* CONFIG_NFSD_V4 */ +-static int fsloc_parse(char **, char *, struct svc_export *) { return 0; } +-#endif +- + static int svc_export_parse(struct cache_detail *cd, char *mesg, int mlen) + { + /* client path expiry [flags anonuid anongid fsid] */ +@@ -502,9 +428,6 @@ static int svc_export_parse(struct cache + exp.ex_client = dom; + exp.ex_mnt = nd.mnt; + exp.ex_dentry = nd.dentry; +- exp.ex_path = kstrdup(buf, GFP_KERNEL); +- if (!exp.ex_path) +- goto out; + + /* expiry */ + err = -EINVAL; +@@ -512,11 +435,6 @@ static int svc_export_parse(struct cache + if (exp.h.expiry_time == 0) + goto out; + +- /* fs locations */ +- exp.ex_fslocs.locations = NULL; +- exp.ex_fslocs.locations_count = 0; +- exp.ex_fslocs.migrated = 0; +- + /* flags */ + err = get_int(&mesg, &an_int); + if (err == -ENOENT) +@@ -542,10 +460,6 @@ static int svc_export_parse(struct cache + + err = check_export(nd.dentry->d_inode, exp.ex_flags); + if (err) goto out; +- +- err = fsloc_parse(&mesg, buf, &exp.ex_fslocs); +- if (err) +- goto out; + } + + expp = svc_export_lookup(&exp); +@@ -559,7 +473,6 @@ static int svc_export_parse(struct cache + else + exp_put(expp); + out: +- kfree(exp.ex_path); + if (nd.dentry) + path_release(&nd); + out_no_path: +@@ -569,8 +482,7 @@ static int svc_export_parse(struct cache + return err; + } + +-static void exp_flags(struct seq_file *m, int flag, int fsid, +- uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fslocs); ++static void exp_flags(struct seq_file *m, int flag, int fsid, uid_t anonu, uid_t anong); + + static int svc_export_show(struct seq_file *m, + struct cache_detail *cd, +@@ -589,8 +501,8 @@ static int svc_export_show(struct seq_fi + seq_putc(m, '('); + if (test_bit(CACHE_VALID, &h->flags) && + !test_bit(CACHE_NEGATIVE, &h->flags)) +- exp_flags(m, exp->ex_flags, exp->ex_fsid, +- exp->ex_anon_uid, exp->ex_anon_gid, &exp->ex_fslocs); ++ exp_flags(m, exp->ex_flags, exp->ex_fsid, ++ exp->ex_anon_uid, exp->ex_anon_gid); + seq_puts(m, ")\n"); + return 0; + } +@@ -612,10 +524,6 @@ static void svc_export_init(struct cache + new->ex_client = item->ex_client; + new->ex_dentry = dget(item->ex_dentry); + new->ex_mnt = mntget(item->ex_mnt); +- new->ex_path = NULL; +- new->ex_fslocs.locations = NULL; +- new->ex_fslocs.locations_count = 0; +- new->ex_fslocs.migrated = 0; + } + + static void export_update(struct cache_head *cnew, struct cache_head *citem) +@@ -627,14 +535,6 @@ static void export_update(struct cache_h + new->ex_anon_uid = item->ex_anon_uid; + new->ex_anon_gid = item->ex_anon_gid; + new->ex_fsid = item->ex_fsid; +- new->ex_path = item->ex_path; +- item->ex_path = NULL; +- new->ex_fslocs.locations = item->ex_fslocs.locations; +- item->ex_fslocs.locations = NULL; +- new->ex_fslocs.locations_count = item->ex_fslocs.locations_count; +- item->ex_fslocs.locations_count = 0; +- new->ex_fslocs.migrated = item->ex_fslocs.migrated; +- item->ex_fslocs.migrated = 0; + } + + static struct cache_head *svc_export_alloc(void) +@@ -1256,8 +1156,7 @@ static struct flags { + { 0, {"", ""}} + }; + +-static void exp_flags(struct seq_file *m, int flag, int fsid, +- uid_t anonu, uid_t anong, struct nfsd4_fs_locations *fsloc) ++static void exp_flags(struct seq_file *m, int flag, int fsid, uid_t anonu, uid_t anong) + { + int first = 0; + struct flags *flg; +@@ -1273,16 +1172,6 @@ static void exp_flags(struct seq_file *m + seq_printf(m, "%sanonuid=%d", first++?",":"", anonu); + if (anong != (gid_t)-2 && anong != (0x10000-2)) + seq_printf(m, "%sanongid=%d", first++?",":"", anong); +- if (fsloc && fsloc->locations_count > 0) { +- char *loctype = (fsloc->migrated) ? "refer" : "replicas"; +- int i; +- +- seq_printf(m, "%s%s=", first++?",":"", loctype); +- seq_printf(m, "%s@%s", fsloc->locations[0].path, fsloc->locations[0].hosts); +- for (i = 1; i < fsloc->locations_count; i++) { +- seq_printf(m, ",%s@%s", fsloc->locations[i].path, fsloc->locations[i].hosts); +- } +- } + } + + static int e_show(struct seq_file *m, void *p) +diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c +index 0b6411a..b0e095e 100644 +--- a/fs/nfsd/nfs4proc.c ++++ b/fs/nfsd/nfs4proc.c +@@ -54,7 +54,6 @@ + #include + #include + #include +-#include + + #define NFSDDBG_FACILITY NFSDDBG_PROC + +@@ -722,13 +721,6 @@ nfsd4_proc_null(struct svc_rqst *rqstp, + return nfs_ok; + } + +-static inline void nfsd4_increment_op_stats(u32 opnum) +-{ +- u32 i = opnum - OP_ACCESS; +- +- if (i < NFS4_NUMOPS) +- nfsdstats.nfs4_opcount[i]++; +-} + + /* + * COMPOUND call. +@@ -804,29 +796,13 @@ nfsd4_proc_compound(struct svc_rqst *rqs + * SETCLIENTID_CONFIRM, PUTFH and PUTROOTFH + * require a valid current filehandle + */ +- if (!current_fh->fh_dentry) { +- if (!((op->opnum == OP_PUTFH) || +- (op->opnum == OP_PUTROOTFH) || +- (op->opnum == OP_SETCLIENTID) || +- (op->opnum == OP_SETCLIENTID_CONFIRM) || +- (op->opnum == OP_RENEW) || +- (op->opnum == OP_RESTOREFH) || +- (op->opnum == OP_RELEASE_LOCKOWNER))) { +- op->status = nfserr_nofilehandle; +- goto encode_op; +- } +- } +- /* Check must be done at start of each operation, except +- * for GETATTR and ops not listed as returning NFS4ERR_MOVED +- */ +- else if (current_fh->fh_export->ex_fslocs.migrated && +- !((op->opnum == OP_GETATTR) || +- (op->opnum == OP_PUTROOTFH) || +- (op->opnum == OP_PUTPUBFH) || +- (op->opnum == OP_RENEW) || +- (op->opnum == OP_SETCLIENTID) || +- (op->opnum == OP_RELEASE_LOCKOWNER))) { +- op->status = nfserr_moved; ++ if ((!current_fh->fh_dentry) && ++ !((op->opnum == OP_PUTFH) || (op->opnum == OP_PUTROOTFH) || ++ (op->opnum == OP_SETCLIENTID) || ++ (op->opnum == OP_SETCLIENTID_CONFIRM) || ++ (op->opnum == OP_RENEW) || (op->opnum == OP_RESTOREFH) || ++ (op->opnum == OP_RELEASE_LOCKOWNER))) { ++ op->status = nfserr_nofilehandle; + goto encode_op; + } + switch (op->opnum) { +@@ -954,8 +930,6 @@ encode_op: + /* XXX Ugh, we need to get rid of this kind of special case: */ + if (op->opnum == OP_READ && op->u.read.rd_filp) + fput(op->u.read.rd_filp); +- +- nfsd4_increment_op_stats(op->opnum); + } + + out: +diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c +index 6330f02..96c7578 100644 +--- a/fs/nfsd/nfs4state.c ++++ b/fs/nfsd/nfs4state.c +@@ -1238,15 +1238,8 @@ find_file(struct inode *ino) + return NULL; + } + +-static int access_valid(u32 x) +-{ +- return (x > 0 && x < 4); +-} +- +-static int deny_valid(u32 x) +-{ +- return (x >= 0 && x < 5); +-} ++#define TEST_ACCESS(x) ((x > 0 || x < 4)?1:0) ++#define TEST_DENY(x) ((x >= 0 || x < 5)?1:0) + + static void + set_access(unsigned int *access, unsigned long bmap) { +@@ -1753,8 +1746,7 @@ nfsd4_process_open2(struct svc_rqst *rqs + int status; + + status = nfserr_inval; +- if (!access_valid(open->op_share_access) +- || !deny_valid(open->op_share_deny)) ++ if (!TEST_ACCESS(open->op_share_access) || !TEST_DENY(open->op_share_deny)) + goto out; + /* + * Lookup file; if found, lookup stateid and check open request, +@@ -1791,10 +1783,10 @@ nfsd4_process_open2(struct svc_rqst *rqs + } else { + /* Stateid was not found, this is a new OPEN */ + int flags = 0; +- if (open->op_share_access & NFS4_SHARE_ACCESS_READ) +- flags |= MAY_READ; + if (open->op_share_access & NFS4_SHARE_ACCESS_WRITE) +- flags |= MAY_WRITE; ++ flags = MAY_WRITE; ++ else ++ flags = MAY_READ; + status = nfs4_new_open(rqstp, &stp, dp, current_fh, flags); + if (status) + goto out; +@@ -2079,12 +2071,16 @@ nfs4_preprocess_stateid_op(struct svc_fh + if (!stateid->si_fileid) { /* delegation stateid */ + if(!(dp = find_delegation_stateid(ino, stateid))) { + dprintk("NFSD: delegation stateid not found\n"); ++ if (nfs4_in_grace()) ++ status = nfserr_grace; + goto out; + } + stidp = &dp->dl_stateid; + } else { /* open or lock stateid */ + if (!(stp = find_stateid(stateid, flags))) { + dprintk("NFSD: open or lock stateid not found\n"); ++ if (nfs4_in_grace()) ++ status = nfserr_grace; + goto out; + } + if ((flags & CHECK_FH) && nfs4_check_fh(current_fh, stp)) +@@ -2257,9 +2253,8 @@ nfsd4_open_confirm(struct svc_rqst *rqst + (int)current_fh->fh_dentry->d_name.len, + current_fh->fh_dentry->d_name.name); + +- status = fh_verify(rqstp, current_fh, S_IFREG, 0); +- if (status) +- return status; ++ if ((status = fh_verify(rqstp, current_fh, S_IFREG, 0))) ++ goto out; + + nfs4_lock_state(); + +@@ -2326,8 +2321,7 @@ nfsd4_open_downgrade(struct svc_rqst *rq + (int)current_fh->fh_dentry->d_name.len, + current_fh->fh_dentry->d_name.name); + +- if (!access_valid(od->od_share_access) +- || !deny_valid(od->od_share_deny)) ++ if (!TEST_ACCESS(od->od_share_access) || !TEST_DENY(od->od_share_deny)) + return nfserr_inval; + + nfs4_lock_state(); +diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c +index b0c5fd9..de3998f 100644 +--- a/fs/nfsd/nfs4xdr.c ++++ b/fs/nfsd/nfs4xdr.c +@@ -60,14 +60,6 @@ + + #define NFSDDBG_FACILITY NFSDDBG_XDR + +-/* +- * As per referral draft, the fsid for a referral MUST be different from the fsid of the containing +- * directory in order to indicate to the client that a filesystem boundary is present +- * We use a fixed fsid for a referral +- */ +-#define NFS4_REFERRAL_FSID_MAJOR 0x8000000ULL +-#define NFS4_REFERRAL_FSID_MINOR 0x8000000ULL +- + static int + check_filename(char *str, int len, int err) + { +@@ -1232,119 +1224,6 @@ nfsd4_decode_compound(struct nfsd4_compo + stateowner->so_replay.rp_buflen); \ + } } while (0); + +-/* Encode as an array of strings the string given with components +- * seperated @sep. +- */ +-static int nfsd4_encode_components(char sep, char *components, +- u32 **pp, int *buflen) +-{ +- u32 *p = *pp; +- u32 *countp = p; +- int strlen, count=0; +- char *str, *end; +- +- dprintk("nfsd4_encode_components(%s)\n", components); +- if ((*buflen -= 4) < 0) +- return nfserr_resource; +- WRITE32(0); /* We will fill this in with @count later */ +- end = str = components; +- while (*end) { +- for (; *end && (*end != sep); end++) +- ; /* Point to end of component */ +- strlen = end - str; +- if (strlen) { +- if ((*buflen -= ((XDR_QUADLEN(strlen) << 2) + 4)) < 0) +- return nfserr_resource; +- WRITE32(strlen); +- WRITEMEM(str, strlen); +- count++; +- } +- else +- end++; +- str = end; +- } +- *pp = p; +- p = countp; +- WRITE32(count); +- return 0; +-} +- +-/* +- * encode a location element of a fs_locations structure +- */ +-static int nfsd4_encode_fs_location4(struct nfsd4_fs_location *location, +- u32 **pp, int *buflen) +-{ +- int status; +- u32 *p = *pp; +- +- status = nfsd4_encode_components(':', location->hosts, &p, buflen); +- if (status) +- return status; +- status = nfsd4_encode_components('/', location->path, &p, buflen); +- if (status) +- return status; +- *pp = p; +- return 0; +-} +- +-/* +- * Return the path to an export point in the pseudo filesystem namespace +- * Returned string is safe to use as long as the caller holds a reference +- * to @exp. +- */ +-static char *nfsd4_path(struct svc_rqst *rqstp, struct svc_export *exp) +-{ +- struct svc_fh tmp_fh; +- char *path, *rootpath; +- int stat; +- +- fh_init(&tmp_fh, NFS4_FHSIZE); +- stat = exp_pseudoroot(rqstp->rq_client, &tmp_fh, &rqstp->rq_chandle); +- if (stat) +- return ERR_PTR(stat); +- rootpath = tmp_fh.fh_export->ex_path; +- +- path = exp->ex_path; +- +- if (strncmp(path, rootpath, strlen(rootpath))) { +- printk("nfsd: fs_locations failed;" +- "%s is not contained in %s\n", path, rootpath); +- return ERR_PTR(-EOPNOTSUPP); +- } +- +- return path + strlen(rootpath); +-} +- +-/* +- * encode a fs_locations structure +- */ +-static int nfsd4_encode_fs_locations(struct svc_rqst *rqstp, +- struct svc_export *exp, +- u32 **pp, int *buflen) +-{ +- int status, i; +- u32 *p = *pp; +- struct nfsd4_fs_locations *fslocs = &exp->ex_fslocs; +- char *root = nfsd4_path(rqstp, exp); +- +- if (IS_ERR(root)) +- return PTR_ERR(root); +- status = nfsd4_encode_components('/', root, &p, buflen); +- if (status) +- return status; +- if ((*buflen -= 4) < 0) +- return nfserr_resource; +- WRITE32(fslocs->locations_count); +- for (i=0; ilocations_count; i++) { +- status = nfsd4_encode_fs_location4(&fslocs->locations[i], +- &p, buflen); +- if (status) +- return status; +- } +- *pp = p; +- return 0; +-} + + static u32 nfs4_ftypes[16] = { + NF4BAD, NF4FIFO, NF4CHR, NF4BAD, +@@ -1394,25 +1273,6 @@ nfsd4_encode_aclname(struct svc_rqst *rq + return nfsd4_encode_name(rqstp, whotype, id, group, p, buflen); + } + +-#define WORD0_ABSENT_FS_ATTRS (FATTR4_WORD0_FS_LOCATIONS | FATTR4_WORD0_FSID | \ +- FATTR4_WORD0_RDATTR_ERROR) +-#define WORD1_ABSENT_FS_ATTRS FATTR4_WORD1_MOUNTED_ON_FILEID +- +-static int fattr_handle_absent_fs(u32 *bmval0, u32 *bmval1, u32 *rdattr_err) +-{ +- /* As per referral draft: */ +- if (*bmval0 & ~WORD0_ABSENT_FS_ATTRS || +- *bmval1 & ~WORD1_ABSENT_FS_ATTRS) { +- if (*bmval0 & FATTR4_WORD0_RDATTR_ERROR || +- *bmval0 & FATTR4_WORD0_FS_LOCATIONS) +- *rdattr_err = NFSERR_MOVED; +- else +- return nfserr_moved; +- } +- *bmval0 &= WORD0_ABSENT_FS_ATTRS; +- *bmval1 &= WORD1_ABSENT_FS_ATTRS; +- return 0; +-} + + /* + * Note: @fhp can be NULL; in this case, we might have to compose the filehandle +@@ -1435,7 +1295,6 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + u32 *attrlenp; + u32 dummy; + u64 dummy64; +- u32 rdattr_err = 0; + u32 *p = buffer; + int status; + int aclsupport = 0; +@@ -1445,12 +1304,6 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + BUG_ON(bmval0 & ~NFSD_SUPPORTED_ATTRS_WORD0); + BUG_ON(bmval1 & ~NFSD_SUPPORTED_ATTRS_WORD1); + +- if (exp->ex_fslocs.migrated) { +- status = fattr_handle_absent_fs(&bmval0, &bmval1, &rdattr_err); +- if (status) +- goto out; +- } +- + status = vfs_getattr(exp->ex_mnt, dentry, &stat); + if (status) + goto out_nfserr; +@@ -1482,11 +1335,6 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + goto out_nfserr; + } + } +- if (bmval0 & FATTR4_WORD0_FS_LOCATIONS) { +- if (exp->ex_fslocs.locations == NULL) { +- bmval0 &= ~FATTR4_WORD0_FS_LOCATIONS; +- } +- } + if ((buflen -= 16) < 0) + goto out_resource; + +@@ -1496,15 +1344,12 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + attrlenp = p++; /* to be backfilled later */ + + if (bmval0 & FATTR4_WORD0_SUPPORTED_ATTRS) { +- u32 word0 = NFSD_SUPPORTED_ATTRS_WORD0; + if ((buflen -= 12) < 0) + goto out_resource; +- if (!aclsupport) +- word0 &= ~FATTR4_WORD0_ACL; +- if (!exp->ex_fslocs.locations) +- word0 &= ~FATTR4_WORD0_FS_LOCATIONS; + WRITE32(2); +- WRITE32(word0); ++ WRITE32(aclsupport ? ++ NFSD_SUPPORTED_ATTRS_WORD0 : ++ NFSD_SUPPORTED_ATTRS_WORD0 & ~FATTR4_WORD0_ACL); + WRITE32(NFSD_SUPPORTED_ATTRS_WORD1); + } + if (bmval0 & FATTR4_WORD0_TYPE) { +@@ -1558,10 +1403,7 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + if (bmval0 & FATTR4_WORD0_FSID) { + if ((buflen -= 16) < 0) + goto out_resource; +- if (exp->ex_fslocs.migrated) { +- WRITE64(NFS4_REFERRAL_FSID_MAJOR); +- WRITE64(NFS4_REFERRAL_FSID_MINOR); +- } else if (is_fsid(fhp, rqstp->rq_reffh)) { ++ if (is_fsid(fhp, rqstp->rq_reffh)) { + WRITE64((u64)exp->ex_fsid); + WRITE64((u64)0); + } else { +@@ -1584,7 +1426,7 @@ nfsd4_encode_fattr(struct svc_fh *fhp, s + if (bmval0 & FATTR4_WORD0_RDATTR_ERROR) { + if ((buflen -= 4) < 0) + goto out_resource; +- WRITE32(rdattr_err); ++ WRITE32(0); + } + if (bmval0 & FATTR4_WORD0_ACL) { + struct nfs4_ace *ace; +@@ -1672,13 +1514,6 @@ out_acl: + goto out_resource; + WRITE64((u64) statfs.f_files); + } +- if (bmval0 & FATTR4_WORD0_FS_LOCATIONS) { +- status = nfsd4_encode_fs_locations(rqstp, exp, &p, &buflen); +- if (status == nfserr_resource) +- goto out_resource; +- if (status) +- goto out; +- } + if (bmval0 & FATTR4_WORD0_HOMOGENEOUS) { + if ((buflen -= 4) < 0) + goto out_resource; +@@ -2011,6 +1846,7 @@ nfsd4_encode_getattr(struct nfsd4_compou + nfserr = nfsd4_encode_fattr(fhp, fhp->fh_export, fhp->fh_dentry, + resp->p, &buflen, getattr->ga_bmval, + resp->rqstp); ++ + if (!nfserr) + resp->p += buflen; + return nfserr; +diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c +index 220479a..3f2ec2e 100644 +--- a/fs/nfsd/nfsfh.c ++++ b/fs/nfsd/nfsfh.c +@@ -187,6 +187,13 @@ fh_verify(struct svc_rqst *rqstp, struct + goto out; + } + ++ /* Set user creds for this exportpoint */ ++ error = nfsd_setuser(rqstp, exp); ++ if (error) { ++ error = nfserrno(error); ++ goto out; ++ } ++ + /* + * Look up the dentry using the NFS file handle. + */ +@@ -244,13 +251,6 @@ fh_verify(struct svc_rqst *rqstp, struct + } + cache_get(&exp->h); + +- /* Set user creds for this exportpoint; necessary even in the "just +- * checking" case because this may be a filehandle that was created by +- * fh_compose, and that is about to be used in another nfsv4 compound +- * operation */ +- error = nfsd_setuser(rqstp, exp); if (error) { error = nfserrno(error); +- goto out; } +- + error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type); + if (error) + goto out; +@@ -312,8 +312,8 @@ int + fh_compose(struct svc_fh *fhp, struct svc_export *exp, struct dentry *dentry, struct svc_fh *ref_fh) + { + /* ref_fh is a reference file handle. +- * if it is non-null and for the same filesystem, then we should compose +- * a filehandle which is of the same version, where possible. ++ * if it is non-null, then we should compose a filehandle which is ++ * of the same version, where possible. + * Currently, that means that if ref_fh->fh_handle.fh_version == 0xca + * Then create a 32byte filehandle using nfs_fhbase_old + * +@@ -332,7 +332,7 @@ fh_compose(struct svc_fh *fhp, struct sv + parent->d_name.name, dentry->d_name.name, + (inode ? inode->i_ino : 0)); + +- if (ref_fh && ref_fh->fh_export == exp) { ++ if (ref_fh) { + ref_fh_version = ref_fh->fh_handle.fh_version; + if (ref_fh_version == 0xca) + ref_fh_fsid_type = 0; +diff --git a/fs/nfsd/stats.c b/fs/nfsd/stats.c +index eaa4df8..57265d5 100644 +--- a/fs/nfsd/stats.c ++++ b/fs/nfsd/stats.c +@@ -40,34 +40,6 @@ struct svc_stat nfsd_svcstats = { + .program = &nfsd_program, + }; + +-#ifdef CONFIG_NFSD_V4 +- +-static inline void nfsd4_show_opstats(struct seq_file *seq) +-{ +- int i; +- +- /* show count for individual nfsv4 operations */ +- seq_printf(seq,"proc4ops %u", NFS4_NUMOPS); +- for (i=0; ip_set) + file->f_ra = ra->p_ra; + +- if (file->f_op->sendfile && rqstp->rq_sendfile_ok) { ++ if (file->f_op->sendfile) { + svc_pushback_unused_pages(rqstp); + err = file->f_op->sendfile(file, &offset, *count, + nfsd_read_actor, rqstp); +@@ -1456,19 +1453,17 @@ nfsd_symlink(struct svc_rqst *rqstp, str + err = nfsd_sync_dir(dentry); + if (err) + err = nfserrno(err); ++ fh_unlock(fhp); + + cerr = fh_compose(resfhp, fhp->fh_export, dnew, fhp); + dput(dnew); + if (err==0) err = cerr; +- +-out_unlock: +- fh_unlock(fhp); + out: + return err; + + out_nfserr: + err = nfserrno(err); +- goto out_unlock; ++ goto out; + } + + /* +@@ -1522,15 +1517,14 @@ nfsd_link(struct svc_rqst *rqstp, struct + err = nfserrno(err); + } + +- dput(dnew); +-out_unlock: + fh_unlock(ffhp); ++ dput(dnew); + out: + return err; + + out_nfserr: + err = nfserrno(err); +- goto out_unlock; ++ goto out; + } + + /* +diff --git a/include/linux/lockd/lockd.h b/include/linux/lockd/lockd.h +index aa4fe90..a8876bc 100644 +--- a/include/linux/lockd/lockd.h ++++ b/include/linux/lockd/lockd.h +@@ -49,12 +49,11 @@ struct nlm_host { + h_killed : 1, + h_monitored : 1; + wait_queue_head_t h_gracewait; /* wait while reclaiming */ +- struct rw_semaphore h_rwsem; /* Reboot recovery lock */ + u32 h_state; /* pseudo-state counter */ + u32 h_nsmstate; /* true remote NSM state */ + u32 h_pidcount; /* Pseudopids */ + atomic_t h_count; /* reference count */ +- struct mutex h_mutex; /* mutex for pmap binding */ ++ struct semaphore h_sema; /* mutex for pmap binding */ + unsigned long h_nextrebind; /* next portmap call */ + unsigned long h_expires; /* eligible for GC */ + struct list_head h_lockowners; /* Lockowners for the client */ +@@ -220,7 +219,6 @@ static __inline__ int + nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2) + { + return fl1->fl_pid == fl2->fl_pid +- && fl1->fl_owner == fl2->fl_owner + && fl1->fl_start == fl2->fl_start + && fl1->fl_end == fl2->fl_end + &&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK); +diff --git a/include/linux/nfs4.h b/include/linux/nfs4.h +index 5f681d5..1059e6d 100644 +--- a/include/linux/nfs4.h ++++ b/include/linux/nfs4.h +@@ -384,7 +384,6 @@ enum { + NFSPROC4_CLNT_DELEGRETURN, + NFSPROC4_CLNT_GETACL, + NFSPROC4_CLNT_SETACL, +- NFSPROC4_CLNT_FS_LOCATIONS, + }; + + #endif +diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h +index c35b18a..7e079f8 100644 +--- a/include/linux/nfs_fs.h ++++ b/include/linux/nfs_fs.h +@@ -41,7 +41,6 @@ + #define FLUSH_LOWPRI 8 /* low priority background flush */ + #define FLUSH_HIGHPRI 16 /* high priority memory reclaim flush */ + #define FLUSH_NOCOMMIT 32 /* Don't send the NFSv3/v4 COMMIT */ +-#define FLUSH_INVALIDATE 64 /* Invalidate the page cache */ + + #ifdef __KERNEL__ + #include +@@ -50,6 +49,8 @@ + #include + #include + ++#include ++ + #include + #include + #include +@@ -59,9 +60,6 @@ + #include + #include + #include +- +-#include +- + #include + #include + +@@ -235,12 +233,8 @@ static inline int nfs_caches_unstable(st + + static inline void nfs_mark_for_revalidate(struct inode *inode) + { +- struct nfs_inode *nfsi = NFS_I(inode); +- + spin_lock(&inode->i_lock); +- nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS; +- if (S_ISDIR(inode->i_mode)) +- nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA; ++ NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; + spin_unlock(&inode->i_lock); + } + +@@ -302,7 +296,7 @@ extern int nfs_release(struct inode *, s + extern int nfs_attribute_timeout(struct inode *inode); + extern int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode); + extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *); +-extern int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); ++extern void nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); + extern int nfs_setattr(struct dentry *, struct iattr *); + extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr); + extern void nfs_begin_attr_update(struct inode *); +@@ -312,12 +306,6 @@ extern void nfs_end_data_update(struct i + extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); + extern void put_nfs_open_context(struct nfs_open_context *ctx); + extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); +-extern struct vfsmount *nfs_do_submount(const struct vfsmount *mnt_parent, +- const struct dentry *dentry, +- struct nfs_fh *fh, +- struct nfs_fattr *fattr); +-extern struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, +- struct dentry *dentry); + + /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ + extern u32 root_nfs_parse_addr(char *name); /*__init*/ +@@ -404,15 +392,6 @@ extern void nfs_unregister_sysctl(void); + #endif + + /* +- * linux/fs/nfs/namespace.c +- */ +-extern struct list_head nfs_automount_list; +-extern struct inode_operations nfs_mountpoint_inode_operations; +-extern struct inode_operations nfs_referral_inode_operations; +-extern int nfs_mountpoint_expiry_timeout; +-extern void nfs_release_automount_timer(void); +- +-/* + * linux/fs/nfs/unlink.c + */ + extern int nfs_async_unlink(struct dentry *); +diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h +index 6b4a13c..65dec21 100644 +--- a/include/linux/nfs_fs_sb.h ++++ b/include/linux/nfs_fs_sb.h +@@ -35,7 +35,6 @@ struct nfs_server { + char * hostname; /* remote hostname */ + struct nfs_fh fh; + struct sockaddr_in addr; +- struct nfs_fsid fsid; + unsigned long mount_time; /* when this fs was mounted */ + #ifdef CONFIG_NFS_V4 + /* Our own IP address, as a null-terminated string. +diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h +index 1f7bd28..66e2ed6 100644 +--- a/include/linux/nfs_page.h ++++ b/include/linux/nfs_page.h +@@ -13,6 +13,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -62,8 +63,8 @@ extern void nfs_release_request(struct n + + extern int nfs_scan_lock_dirty(struct nfs_inode *nfsi, struct list_head *dst, + unsigned long idx_start, unsigned int npages); +-extern int nfs_scan_list(struct nfs_inode *nfsi, struct list_head *head, struct list_head *dst, +- unsigned long idx_start, unsigned int npages); ++extern int nfs_scan_list(struct list_head *, struct list_head *, ++ unsigned long, unsigned int); + extern int nfs_coalesce_requests(struct list_head *, struct list_head *, + unsigned int); + extern int nfs_wait_on_request(struct nfs_page *); +diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h +index a65d2c7..7fafc4c 100644 +--- a/include/linux/nfs_xdr.h ++++ b/include/linux/nfs_xdr.h +@@ -14,19 +14,11 @@ + #define NFS_DEF_FILE_IO_SIZE (4096U) + #define NFS_MIN_FILE_IO_SIZE (1024U) + +-struct nfs_fsid { +- uint64_t major; +- uint64_t minor; ++struct nfs4_fsid { ++ __u64 major; ++ __u64 minor; + }; + +-/* +- * Helper for checking equality between 2 fsids. +- */ +-static inline int nfs_fsid_equal(const struct nfs_fsid *a, const struct nfs_fsid *b) +-{ +- return a->major == b->major && a->minor == b->minor; +-} +- + struct nfs_fattr { + unsigned short valid; /* which fields are valid */ + __u64 pre_size; /* pre_op_attr.size */ +@@ -48,7 +40,10 @@ struct nfs_fattr { + } nfs3; + } du; + dev_t rdev; +- struct nfs_fsid fsid; ++ union { ++ __u64 nfs3; /* also nfs2 */ ++ struct nfs4_fsid nfs4; ++ } fsid_u; + __u64 fileid; + struct timespec atime; + struct timespec mtime; +@@ -62,8 +57,8 @@ struct nfs_fattr { + #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ + #define NFS_ATTR_FATTR 0x0002 /* post-op attributes */ + #define NFS_ATTR_FATTR_V3 0x0004 /* NFSv3 attributes */ +-#define NFS_ATTR_FATTR_V4 0x0008 /* NFSv4 change attribute */ +-#define NFS_ATTR_FATTR_V4_REFERRAL 0x0010 /* NFSv4 referral */ ++#define NFS_ATTR_FATTR_V4 0x0008 ++#define NFS_ATTR_PRE_CHANGE 0x0010 + + /* + * Info on the file system +@@ -659,7 +654,7 @@ struct nfs4_rename_res { + struct nfs4_setclientid { + const nfs4_verifier * sc_verifier; /* request */ + unsigned int sc_name_len; +- char sc_name[48]; /* request */ ++ char sc_name[32]; /* request */ + u32 sc_prog; /* request */ + unsigned int sc_netid_len; + char sc_netid[4]; /* request */ +@@ -680,40 +675,6 @@ struct nfs4_server_caps_res { + u32 has_symlinks; + }; + +-struct nfs4_string { +- unsigned int len; +- char *data; +-}; +- +-#define NFS4_PATHNAME_MAXCOMPONENTS 512 +-struct nfs4_pathname { +- unsigned int ncomponents; +- struct nfs4_string components[NFS4_PATHNAME_MAXCOMPONENTS]; +-}; +- +-#define NFS4_FS_LOCATION_MAXSERVERS 10 +-struct nfs4_fs_location { +- unsigned int nservers; +- struct nfs4_string servers[NFS4_FS_LOCATION_MAXSERVERS]; +- struct nfs4_pathname rootpath; +-}; +- +-#define NFS4_FS_LOCATIONS_MAXENTRIES 10 +-struct nfs4_fs_locations { +- struct nfs_fattr fattr; +- const struct nfs_server *server; +- struct nfs4_pathname fs_path; +- int nlocations; +- struct nfs4_fs_location locations[NFS4_FS_LOCATIONS_MAXENTRIES]; +-}; +- +-struct nfs4_fs_locations_arg { +- const struct nfs_fh *dir_fh; +- const struct qstr *name; +- struct page *page; +- const u32 *bitmask; +-}; +- + #endif /* CONFIG_NFS_V4 */ + + struct nfs_page; +@@ -734,7 +695,7 @@ struct nfs_read_data { + #ifdef CONFIG_NFS_V4 + unsigned long timestamp; /* For lease renewal */ + #endif +- struct page *page_array[NFS_PAGEVEC_SIZE]; ++ struct page *page_array[NFS_PAGEVEC_SIZE + 1]; + }; + + struct nfs_write_data { +@@ -752,7 +713,7 @@ struct nfs_write_data { + #ifdef CONFIG_NFS_V4 + unsigned long timestamp; /* For lease renewal */ + #endif +- struct page *page_array[NFS_PAGEVEC_SIZE]; ++ struct page *page_array[NFS_PAGEVEC_SIZE + 1]; + }; + + struct nfs_access_entry; +diff --git a/include/linux/nfsd/const.h b/include/linux/nfsd/const.h +index 830f0c2..b75bb1b 100644 +--- a/include/linux/nfsd/const.h ++++ b/include/linux/nfsd/const.h +@@ -20,9 +20,9 @@ + #define NFSSVC_MAXVERS 3 + + /* +- * Maximum blocksize supported by daemon currently at 64K ++ * Maximum blocksize supported by daemon currently at 32K + */ +-#define NFSSVC_MAXBLKSIZE (64*1024) ++#define NFSSVC_MAXBLKSIZE (32*1024) + + #ifdef __KERNEL__ + +diff --git a/include/linux/nfsd/export.h b/include/linux/nfsd/export.h +index 101fb4c..d2a8abb 100644 +--- a/include/linux/nfsd/export.h ++++ b/include/linux/nfsd/export.h +@@ -45,33 +45,15 @@ + + #ifdef __KERNEL__ + +-/* +- * FS Locations +- */ +-struct nfsd4_fs_location { +- char *hosts; /* colon separated list of hosts */ +- char *path; /* slash separated list of path components */ +-}; +- +-struct nfsd4_fs_locations { +- uint32_t locations_count; +- struct nfsd4_fs_location *locations; +-/* If we're not actually serving this data ourselves (only providing a +- * list of replicas that do serve it) then we set "migrated": */ +- int migrated; +-}; +- + struct svc_export { + struct cache_head h; + struct auth_domain * ex_client; + int ex_flags; + struct vfsmount * ex_mnt; + struct dentry * ex_dentry; +- char * ex_path; + uid_t ex_anon_uid; + gid_t ex_anon_gid; + int ex_fsid; +- struct nfsd4_fs_locations ex_fslocs; + }; + + /* an "export key" (expkey) maps a filehandlefragement to an +diff --git a/include/linux/nfsd/nfsd.h b/include/linux/nfsd/nfsd.h +index 307852d..2dcad29 100644 +--- a/include/linux/nfsd/nfsd.h ++++ b/include/linux/nfsd/nfsd.h +@@ -210,7 +210,6 @@ void nfsd_lockd_shutdown(void); + #define nfserr_clid_inuse __constant_htonl(NFSERR_CLID_INUSE) + #define nfserr_stale_clientid __constant_htonl(NFSERR_STALE_CLIENTID) + #define nfserr_resource __constant_htonl(NFSERR_RESOURCE) +-#define nfserr_moved __constant_htonl(NFSERR_MOVED) + #define nfserr_nofilehandle __constant_htonl(NFSERR_NOFILEHANDLE) + #define nfserr_minor_vers_mismatch __constant_htonl(NFSERR_MINOR_VERS_MISMATCH) + #define nfserr_share_denied __constant_htonl(NFSERR_SHARE_DENIED) +@@ -287,6 +286,7 @@ static inline int is_fsid(struct svc_fh + /* + * The following attributes are currently not supported by the NFSv4 server: + * ARCHIVE (deprecated anyway) ++ * FS_LOCATIONS (will be supported eventually) + * HIDDEN (unlikely to be supported any time soon) + * MIMETYPE (unlikely to be supported any time soon) + * QUOTA_* (will be supported in a forthcoming patch) +@@ -302,7 +302,7 @@ static inline int is_fsid(struct svc_fh + | FATTR4_WORD0_ACLSUPPORT | FATTR4_WORD0_CANSETTIME | FATTR4_WORD0_CASE_INSENSITIVE \ + | FATTR4_WORD0_CASE_PRESERVING | FATTR4_WORD0_CHOWN_RESTRICTED \ + | FATTR4_WORD0_FILEHANDLE | FATTR4_WORD0_FILEID | FATTR4_WORD0_FILES_AVAIL \ +- | FATTR4_WORD0_FILES_FREE | FATTR4_WORD0_FILES_TOTAL | FATTR4_WORD0_FS_LOCATIONS | FATTR4_WORD0_HOMOGENEOUS \ ++ | FATTR4_WORD0_FILES_FREE | FATTR4_WORD0_FILES_TOTAL | FATTR4_WORD0_HOMOGENEOUS \ + | FATTR4_WORD0_MAXFILESIZE | FATTR4_WORD0_MAXLINK | FATTR4_WORD0_MAXNAME \ + | FATTR4_WORD0_MAXREAD | FATTR4_WORD0_MAXWRITE | FATTR4_WORD0_ACL) + +diff --git a/include/linux/nfsd/stats.h b/include/linux/nfsd/stats.h +index a719a07..b6f1e0c 100644 +--- a/include/linux/nfsd/stats.h ++++ b/include/linux/nfsd/stats.h +@@ -9,8 +9,6 @@ + #ifndef LINUX_NFSD_STATS_H + #define LINUX_NFSD_STATS_H + +-#define NFS4_NUMOPS 37 +- + struct nfsd_stats { + unsigned int rchits; /* repcache hits */ + unsigned int rcmisses; /* repcache hits */ +@@ -29,9 +27,6 @@ struct nfsd_stats { + unsigned int ra_size; /* size of ra cache */ + unsigned int ra_depth[11]; /* number of times ra entry was found that deep + * in the cache (10percentiles). [10] = not found */ +-#ifdef CONFIG_NFSD_V4 +- unsigned int nfs4_opcount[NFS4_NUMOPS]; /* count of individual nfsv4 operations */ +-#endif + }; + + /* thread usage wraps very million seconds (approx one fortnight) */ +diff --git a/include/linux/sunrpc/gss_spkm3.h b/include/linux/sunrpc/gss_spkm3.h +index 998fbea..336e218 100644 +--- a/include/linux/sunrpc/gss_spkm3.h ++++ b/include/linux/sunrpc/gss_spkm3.h +@@ -12,27 +12,27 @@ + #include + + struct spkm3_ctx { +- struct xdr_netobj ctx_id; /* per message context id */ +- int endtime; /* endtime of the context */ ++ struct xdr_netobj ctx_id; /* per message context id */ ++ int qop; /* negotiated qop */ + struct xdr_netobj mech_used; + unsigned int ret_flags ; +- struct xdr_netobj conf_alg; +- struct xdr_netobj derived_conf_key; +- struct xdr_netobj intg_alg; +- struct xdr_netobj derived_integ_key; ++ unsigned int req_flags ; ++ struct xdr_netobj share_key; ++ int conf_alg; ++ struct crypto_tfm* derived_conf_key; ++ int intg_alg; ++ struct crypto_tfm* derived_integ_key; ++ int keyestb_alg; /* alg used to get share_key */ ++ int owf_alg; /* one way function */ + }; + +-/* OIDs declarations for K-ALG, I-ALG, C-ALG, and OWF-ALG */ +-static const struct xdr_netobj dh_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x03\x01"}; +-static const struct xdr_netobj hmac_md5_oid = { 8, "\x2B\x06\x01\x05\x05\x08\x01\x01"}; +-static const struct xdr_netobj null_mac_oid = { 6, "\x2B\x06\x01\x05\x03\x03"}; +-static const struct xdr_netobj md5_rsa_encryption_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x04"}; +-static const struct xdr_netobj sha1_rsa_encryption_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05"}; +- +-static const struct xdr_netobj cast5_cbc_oid = {9, "\x2A\x86\x48\x86\xF6\x7D\x07\x42\x0A"}; +-static const struct xdr_netobj des_cbc_oid = {5, "\x2B\x0E\x03\x02\x07"}; +- +-static const struct xdr_netobj sha1_oid = {5, "\x2B\x0E\x03\x02\x1A"}; ++/* from openssl/objects.h */ ++/* XXX need SEAL_ALG_NONE */ ++#define NID_md5 4 ++#define NID_dhKeyAgreement 28 ++#define NID_des_cbc 31 ++#define NID_sha1 64 ++#define NID_cast5_cbc 108 + + /* SPKM InnerContext Token types */ + +@@ -46,12 +46,11 @@ u32 spkm3_make_token(struct spkm3_ctx *c + u32 spkm3_read_token(struct spkm3_ctx *ctx, struct xdr_netobj *read_token, struct xdr_buf *message_buffer, int toktype); + + #define CKSUMTYPE_RSA_MD5 0x0007 +-#define CKSUMTYPE_HMAC_MD5 0x0008 + +-s32 make_spkm3_checksum(s32 cksumtype, struct xdr_netobj *key, char *header, int hdrlen, struct xdr_buf *body, ++s32 make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, + int body_offset, struct xdr_netobj *cksum); + void asn1_bitstring_len(struct xdr_netobj *in, int *enclen, int *zerobits); +-int decode_asn1_bitstring(struct xdr_netobj *out, char *in, int enclen, ++int decode_asn1_bitstring(struct xdr_netobj *out, char *in, int enclen, + int explen); + void spkm3_mic_header(unsigned char **hdrbuf, unsigned int *hdrlen, + unsigned char *ctxhdr, int elen, int zbit); +diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h +index 7b27c09..5035643 100644 +--- a/include/linux/sunrpc/svc.h ++++ b/include/linux/sunrpc/svc.h +@@ -159,9 +159,7 @@ struct svc_rqst { + * determine what device number + * to report (real or virtual) + */ +- int rq_sendfile_ok; /* turned off in gss privacy +- * to prevent encrypting page +- * cache pages */ ++ + wait_queue_head_t rq_wait; /* synchronization */ + }; + +diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h +index e6d3d34..84c35d4 100644 +--- a/include/linux/sunrpc/xdr.h ++++ b/include/linux/sunrpc/xdr.h +@@ -194,7 +194,6 @@ extern void xdr_write_pages(struct xdr_s + extern void xdr_init_decode(struct xdr_stream *xdr, struct xdr_buf *buf, uint32_t *p); + extern uint32_t *xdr_inline_decode(struct xdr_stream *xdr, size_t nbytes); + extern void xdr_read_pages(struct xdr_stream *xdr, unsigned int len); +-extern void xdr_enter_page(struct xdr_stream *xdr, unsigned int len); + + #endif /* __KERNEL__ */ + +diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c +index 552b3ef..519ebc1 100644 +--- a/net/sunrpc/auth_gss/auth_gss.c ++++ b/net/sunrpc/auth_gss/auth_gss.c +@@ -68,7 +68,7 @@ static struct rpc_credops gss_credops; + #define GSS_CRED_SLACK 1024 /* XXX: unused */ + /* length of a krb5 verifier (48), plus data added before arguments when + * using integrity (two 4-byte integers): */ +-#define GSS_VERF_SLACK 100 ++#define GSS_VERF_SLACK 56 + + /* XXX this define must match the gssd define + * as it is passed to gssd to signal the use of +diff --git a/net/sunrpc/auth_gss/gss_mech_switch.c b/net/sunrpc/auth_gss/gss_mech_switch.c +index d88468d..f8bac6c 100644 +--- a/net/sunrpc/auth_gss/gss_mech_switch.c ++++ b/net/sunrpc/auth_gss/gss_mech_switch.c +@@ -224,8 +224,7 @@ EXPORT_SYMBOL(gss_service_to_auth_domain + void + gss_mech_put(struct gss_api_mech * gm) + { +- if (gm) +- module_put(gm->gm_owner); ++ module_put(gm->gm_owner); + } + + EXPORT_SYMBOL(gss_mech_put); +@@ -308,7 +307,8 @@ gss_delete_sec_context(struct gss_ctx ** + (*context_handle)->mech_type->gm_ops + ->gss_delete_sec_context((*context_handle) + ->internal_ctx_id); +- gss_mech_put((*context_handle)->mech_type); ++ if ((*context_handle)->mech_type) ++ gss_mech_put((*context_handle)->mech_type); + kfree(*context_handle); + *context_handle=NULL; + return GSS_S_COMPLETE; +diff --git a/net/sunrpc/auth_gss/gss_spkm3_mech.c b/net/sunrpc/auth_gss/gss_spkm3_mech.c +index e148a0e..5bf11cc 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_mech.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_mech.c +@@ -82,74 +82,134 @@ simple_get_netobj(const void *p, const v + return q; + } + ++static inline const void * ++get_key(const void *p, const void *end, struct crypto_tfm **res, int *resalg) ++{ ++ struct xdr_netobj key = { 0 }; ++ int alg_mode,setkey = 0; ++ char *alg_name; ++ ++ p = simple_get_bytes(p, end, resalg, sizeof(*resalg)); ++ if (IS_ERR(p)) ++ goto out_err; ++ p = simple_get_netobj(p, end, &key); ++ if (IS_ERR(p)) ++ goto out_err; ++ ++ switch (*resalg) { ++ case NID_des_cbc: ++ alg_name = "des"; ++ alg_mode = CRYPTO_TFM_MODE_CBC; ++ setkey = 1; ++ break; ++ case NID_cast5_cbc: ++ /* XXXX here in name only, not used */ ++ alg_name = "cast5"; ++ alg_mode = CRYPTO_TFM_MODE_CBC; ++ setkey = 0; /* XXX will need to set to 1 */ ++ break; ++ case NID_md5: ++ if (key.len == 0) { ++ dprintk("RPC: SPKM3 get_key: NID_md5 zero Key length\n"); ++ } ++ alg_name = "md5"; ++ alg_mode = 0; ++ setkey = 0; ++ break; ++ default: ++ dprintk("gss_spkm3_mech: unsupported algorithm %d\n", *resalg); ++ goto out_err_free_key; ++ } ++ if (!(*res = crypto_alloc_tfm(alg_name, alg_mode))) { ++ printk("gss_spkm3_mech: unable to initialize crypto algorthm %s\n", alg_name); ++ goto out_err_free_key; ++ } ++ if (setkey) { ++ if (crypto_cipher_setkey(*res, key.data, key.len)) { ++ printk("gss_spkm3_mech: error setting key for crypto algorthm %s\n", alg_name); ++ goto out_err_free_tfm; ++ } ++ } ++ ++ if(key.len > 0) ++ kfree(key.data); ++ return p; ++ ++out_err_free_tfm: ++ crypto_free_tfm(*res); ++out_err_free_key: ++ if(key.len > 0) ++ kfree(key.data); ++ p = ERR_PTR(-EINVAL); ++out_err: ++ return p; ++} ++ + static int + gss_import_sec_context_spkm3(const void *p, size_t len, + struct gss_ctx *ctx_id) + { + const void *end = (const void *)((const char *)p + len); + struct spkm3_ctx *ctx; +- int version; + + if (!(ctx = kmalloc(sizeof(*ctx), GFP_KERNEL))) + goto out_err; + memset(ctx, 0, sizeof(*ctx)); + +- p = simple_get_bytes(p, end, &version, sizeof(version)); +- if (IS_ERR(p)) +- goto out_err_free_ctx; +- if(version >= 16 || version <= 0) { +- dprintk("RPC: old nfs-utils software. upgrade to the latest version\n"); +- goto out_err_free_ctx; +- } +- + p = simple_get_netobj(p, end, &ctx->ctx_id); + if (IS_ERR(p)) + goto out_err_free_ctx; + +- p = simple_get_bytes(p, end, &ctx->endtime, sizeof(ctx->endtime)); ++ p = simple_get_bytes(p, end, &ctx->qop, sizeof(ctx->qop)); + if (IS_ERR(p)) + goto out_err_free_ctx_id; + + p = simple_get_netobj(p, end, &ctx->mech_used); + if (IS_ERR(p)) +- goto out_err_free_ctx_id; ++ goto out_err_free_mech; + + p = simple_get_bytes(p, end, &ctx->ret_flags, sizeof(ctx->ret_flags)); + if (IS_ERR(p)) + goto out_err_free_mech; + +- p = simple_get_netobj(p, end, &ctx->conf_alg); ++ p = simple_get_bytes(p, end, &ctx->req_flags, sizeof(ctx->req_flags)); + if (IS_ERR(p)) + goto out_err_free_mech; + +- p = simple_get_netobj(p, end, &ctx->derived_conf_key); ++ p = simple_get_netobj(p, end, &ctx->share_key); ++ if (IS_ERR(p)) ++ goto out_err_free_s_key; ++ ++ p = get_key(p, end, &ctx->derived_conf_key, &ctx->conf_alg); + if (IS_ERR(p)) +- goto out_err_free_conf_alg; ++ goto out_err_free_s_key; + +- p = simple_get_netobj(p, end, &ctx->intg_alg); ++ p = get_key(p, end, &ctx->derived_integ_key, &ctx->intg_alg); + if (IS_ERR(p)) +- goto out_err_free_conf_key; ++ goto out_err_free_key1; + +- p = simple_get_netobj(p, end, &ctx->derived_integ_key); ++ p = simple_get_bytes(p, end, &ctx->keyestb_alg, sizeof(ctx->keyestb_alg)); + if (IS_ERR(p)) +- goto out_err_free_intg_alg; ++ goto out_err_free_key2; ++ ++ p = simple_get_bytes(p, end, &ctx->owf_alg, sizeof(ctx->owf_alg)); ++ if (IS_ERR(p)) ++ goto out_err_free_key2; + + if (p != end) +- goto out_err_free_intg_key; ++ goto out_err_free_key2; + + ctx_id->internal_ctx_id = ctx; + + dprintk("Succesfully imported new spkm context.\n"); + return 0; + +-out_err_free_intg_key: +- kfree(ctx->derived_integ_key.data); +-out_err_free_intg_alg: +- kfree(ctx->intg_alg.data); +-out_err_free_conf_key: +- kfree(ctx->derived_conf_key.data); +-out_err_free_conf_alg: +- kfree(ctx->conf_alg.data); ++out_err_free_key2: ++ crypto_free_tfm(ctx->derived_integ_key); ++out_err_free_key1: ++ crypto_free_tfm(ctx->derived_conf_key); ++out_err_free_s_key: ++ kfree(ctx->share_key.data); + out_err_free_mech: + kfree(ctx->mech_used.data); + out_err_free_ctx_id: +@@ -164,13 +224,11 @@ static void + gss_delete_sec_context_spkm3(void *internal_ctx) { + struct spkm3_ctx *sctx = internal_ctx; + +- kfree(sctx->derived_integ_key.data); +- kfree(sctx->intg_alg.data); +- kfree(sctx->derived_conf_key.data); +- kfree(sctx->conf_alg.data); +- kfree(sctx->mech_used.data); +- kfree(sctx->ctx_id.data); +- kfree(sctx); ++ crypto_free_tfm(sctx->derived_integ_key); ++ crypto_free_tfm(sctx->derived_conf_key); ++ kfree(sctx->share_key.data); ++ kfree(sctx->mech_used.data); ++ kfree(sctx); + } + + static u32 +@@ -181,6 +239,7 @@ gss_verify_mic_spkm3(struct gss_ctx *ct + u32 maj_stat = 0; + struct spkm3_ctx *sctx = ctx->internal_ctx_id; + ++ dprintk("RPC: gss_verify_mic_spkm3 calling spkm3_read_token\n"); + maj_stat = spkm3_read_token(sctx, checksum, signbuf, SPKM_MIC_TOK); + + dprintk("RPC: gss_verify_mic_spkm3 returning %d\n", maj_stat); +@@ -195,9 +254,10 @@ gss_get_mic_spkm3(struct gss_ctx *ctx, + u32 err = 0; + struct spkm3_ctx *sctx = ctx->internal_ctx_id; + ++ dprintk("RPC: gss_get_mic_spkm3\n"); ++ + err = spkm3_make_token(sctx, message_buffer, +- message_token, SPKM_MIC_TOK); +- dprintk("RPC: gss_get_mic_spkm3 returning %d\n", err); ++ message_token, SPKM_MIC_TOK); + return err; + } + +diff --git a/net/sunrpc/auth_gss/gss_spkm3_seal.c b/net/sunrpc/auth_gss/gss_spkm3_seal.c +index 17fd2ba..18c7862 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_seal.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_seal.c +@@ -39,8 +39,6 @@ + #include + #include + #include +-#include +-#include + + #ifdef RPC_DEBUG + # define RPCDBG_FACILITY RPCDBG_AUTH +@@ -68,6 +66,8 @@ spkm3_make_token(struct spkm3_ctx *ctx, + int ctxelen = 0, ctxzbit = 0; + int md5elen = 0, md5zbit = 0; + ++ dprintk("RPC: spkm3_make_token\n"); ++ + now = jiffies; + + if (ctx->ctx_id.len != 16) { +@@ -75,20 +75,21 @@ spkm3_make_token(struct spkm3_ctx *ctx, + ctx->ctx_id.len); + goto out_err; + } +- +- if(!g_OID_equal(&ctx->intg_alg, &hmac_md5_oid)) { +- dprintk("RPC: gss_spkm3_seal: unsupported I-ALG algorithm." +- "only support hmac-md5 I-ALG.\n"); +- print_hexl((u32 *)ctx->intg_alg.data, ctx->intg_alg.len, 0); +- goto out_err; +- } else { +- checksum_type = CKSUMTYPE_HMAC_MD5; ++ ++ switch (ctx->intg_alg) { ++ case NID_md5: ++ checksum_type = CKSUMTYPE_RSA_MD5; ++ break; ++ default: ++ dprintk("RPC: gss_spkm3_seal: ctx->signalg %d not" ++ " supported\n", ctx->intg_alg); ++ goto out_err; + } +- +- +- if (!g_OID_equal(&ctx->conf_alg, &cast5_cbc_oid)) { +- dprintk("RPC: gss_spkm3_seal: unsupported C-ALG algorithm\n"); +- goto out_err; ++ /* XXX since we don't support WRAP, perhaps we don't care... */ ++ if (ctx->conf_alg != NID_cast5_cbc) { ++ dprintk("RPC: gss_spkm3_seal: ctx->sealalg %d not supported\n", ++ ctx->conf_alg); ++ goto out_err; + } + + if (toktype == SPKM_MIC_TOK) { +@@ -96,10 +97,10 @@ spkm3_make_token(struct spkm3_ctx *ctx, + asn1_bitstring_len(&ctx->ctx_id, &ctxelen, &ctxzbit); + spkm3_mic_header(&mic_hdr.data, &mic_hdr.len, ctx->ctx_id.data, + ctxelen, ctxzbit); +- if (make_spkm3_checksum(checksum_type, &ctx->derived_integ_key, +- (char *)mic_hdr.data, mic_hdr.len, +- text, 0, &md5cksum)) +- goto out_err; ++ ++ if (make_checksum(checksum_type, mic_hdr.data, mic_hdr.len, ++ text, 0, &md5cksum)) ++ goto out_err; + + asn1_bitstring_len(&md5cksum, &md5elen, &md5zbit); + tokenlen = 10 + ctxelen + 1 + md5elen + 1; +@@ -120,126 +121,7 @@ spkm3_make_token(struct spkm3_ctx *ctx, + + return GSS_S_COMPLETE; + out_err: +- if(md5cksum.data) +- kfree(md5cksum.data); +- + token->data = NULL; + token->len = 0; + return GSS_S_FAILURE; + } +- +-static int +-spkm3_process_xdr_buf(struct xdr_buf *buf, int offset, int len, +- int (*actor)(struct scatterlist *, void *), void *data) +-{ +- int i, page_len, thislen, page_offset, ret = 0; +- struct scatterlist sg[1]; +- +- if (offset >= buf->head[0].iov_len) { +- offset -= buf->head[0].iov_len; +- } else { +- thislen = buf->head[0].iov_len - offset; +- if (thislen > len) +- thislen = len; +- sg_set_buf(sg, buf->head[0].iov_base + offset, thislen); +- ret = actor(sg, data); +- if (ret) +- goto out; +- offset = 0; +- len -= thislen; +- } +- if (len == 0) +- goto out; +- +- if (offset >= buf->page_len) { +- offset -= buf->page_len; +- } else { +- page_len = buf->page_len - offset; +- if (page_len > len) +- page_len = len; +- len -= page_len; +- page_offset = (offset + buf->page_base) & (PAGE_CACHE_SIZE - 1); i = (offset + buf->page_base) >> PAGE_CACHE_SHIFT; +- thislen = PAGE_CACHE_SIZE - page_offset; +- do { +- if (thislen > page_len) +- thislen = page_len; +- sg->page = buf->pages[i]; +- sg->offset = page_offset; +- sg->length = thislen; +- ret = actor(sg, data); +- if (ret) +- goto out; +- page_len -= thislen; +- i++; +- page_offset = 0; +- thislen = PAGE_CACHE_SIZE; +- } while (page_len != 0); +- offset = 0; +- } +- if (len == 0) +- goto out; +- +- if (offset < buf->tail[0].iov_len) { +- thislen = buf->tail[0].iov_len - offset; +- if (thislen > len) +- thislen = len; +- sg_set_buf(sg, buf->tail[0].iov_base + offset, thislen); +- ret = actor(sg, data); +- len -= thislen; +- } +- if (len != 0) +- ret = -EINVAL; +-out: +- return ret; +-} +- +- +-static int +-spkm3_checksummer(struct scatterlist *sg, void *data) +-{ +- struct crypto_tfm *tfm = (struct crypto_tfm *)data; +- +- crypto_hmac_update(tfm, sg, 1); +- +- return 0; +-} +- +-/* checksum the plaintext data and hdrlen bytes of the token header */ +-s32 +-make_spkm3_checksum(s32 cksumtype, struct xdr_netobj *key, char *header, +- int hdrlen, struct xdr_buf *body, +- int body_offset, struct xdr_netobj *cksum) +-{ +- char *cksumname; +- struct crypto_tfm *tfm = NULL; /* XXX add to ctx? */ +- struct scatterlist sg[1]; +- +- switch (cksumtype) { +- case CKSUMTYPE_HMAC_MD5: +- cksumname = "md5"; +- break; +- default: +- dprintk("RPC: spkm3_make_checksum:" +- " unsupported checksum %d", cksumtype); +- return GSS_S_FAILURE; +- } +- +- if(key->data == NULL || key->len <= 0) return GSS_S_FAILURE; +- +- if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP))) +- return GSS_S_FAILURE; +- cksum->len = crypto_tfm_alg_digestsize(tfm); +- +- crypto_hmac_init(tfm, key->data, &key->len); +- sg_set_buf(sg, header, hdrlen); +- crypto_hmac_update(tfm, sg, 1); +- +- spkm3_process_xdr_buf(body, body_offset, body->len - body_offset, +- spkm3_checksummer, tfm); +- crypto_hmac_final(tfm, key->data, &key->len, cksum->data); +- crypto_free_tfm(tfm); +- +- return 0; +-} +- +-EXPORT_SYMBOL(make_spkm3_checksum); +diff --git a/net/sunrpc/auth_gss/gss_spkm3_token.c b/net/sunrpc/auth_gss/gss_spkm3_token.c +index f507435..af0d7ce 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_token.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_token.c +@@ -173,10 +173,10 @@ spkm3_mic_header(unsigned char **hdrbuf, + *(u8 *)hptr++ = zbit; + memcpy(hptr, ctxdata, elen); + hptr += elen; +- *hdrlen = hptr - top; ++ *hdrlen = hptr - top; + } +- +-/* ++ ++/* + * spkm3_mic_innercontext_token() + * + * *tokp points to the beginning of the SPKM_MIC token described +diff --git a/net/sunrpc/auth_gss/gss_spkm3_unseal.c b/net/sunrpc/auth_gss/gss_spkm3_unseal.c +index 3748f06..8537f58 100644 +--- a/net/sunrpc/auth_gss/gss_spkm3_unseal.c ++++ b/net/sunrpc/auth_gss/gss_spkm3_unseal.c +@@ -54,7 +54,6 @@ spkm3_read_token(struct spkm3_ctx *ctx, + struct xdr_buf *message_buffer, /* signbuf */ + int toktype) + { +- s32 checksum_type; + s32 code; + struct xdr_netobj wire_cksum = {.len =0, .data = NULL}; + char cksumdata[16]; +@@ -65,6 +64,8 @@ spkm3_read_token(struct spkm3_ctx *ctx, + int mic_hdrlen; + u32 ret = GSS_S_DEFECTIVE_TOKEN; + ++ dprintk("RPC: spkm3_read_token read_token->len %d\n", read_token->len); ++ + if (g_verify_token_header((struct xdr_netobj *) &ctx->mech_used, + &bodysize, &ptr, read_token->len)) + goto out; +@@ -93,28 +94,26 @@ spkm3_read_token(struct spkm3_ctx *ctx, + * mic_hdrlen + 2 = length of header piece of checksum + */ + ret = GSS_S_DEFECTIVE_TOKEN; +- if(!g_OID_equal(&ctx->intg_alg, &hmac_md5_oid)) { +- dprintk("RPC: gss_spkm3_seal: unsupported I-ALG algorithm. only support hmac-md5 I-ALG.\n"); +- goto out; +- } else { +- checksum_type = CKSUMTYPE_HMAC_MD5; +- } +- +- code = make_spkm3_checksum(checksum_type, +- &ctx->derived_integ_key, ptr + 2, mic_hdrlen + 2, +- message_buffer, 0, &md5cksum); ++ code = make_checksum(CKSUMTYPE_RSA_MD5, ptr + 2, ++ mic_hdrlen + 2, ++ message_buffer, 0, &md5cksum); + + if (code) + goto out; + ++ dprintk("RPC: spkm3_read_token: digest wire_cksum.len %d:\n", ++ wire_cksum.len); ++ dprintk(" md5cksum.data\n"); ++ print_hexl((u32 *) md5cksum.data, 16, 0); ++ dprintk(" cksum.data:\n"); ++ print_hexl((u32 *) wire_cksum.data, wire_cksum.len, 0); ++ + ret = GSS_S_BAD_SIG; + code = memcmp(md5cksum.data, wire_cksum.data, wire_cksum.len); +- if (code) { +- dprintk("RPC: bad MIC checksum\n"); ++ if (code) + goto out; +- } + +- } else { ++ } else { + dprintk("RPC: BAD or UNSUPPORTED SPKM3 token type: %d\n",toktype); + goto out; + } +diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c +index 94217ec..d51e316 100644 +--- a/net/sunrpc/auth_gss/svcauth_gss.c ++++ b/net/sunrpc/auth_gss/svcauth_gss.c +@@ -425,7 +425,6 @@ static int rsc_parse(struct cache_detail + struct rsc rsci, *rscp = NULL; + time_t expiry; + int status = -EINVAL; +- struct gss_api_mech *gm = NULL; + + memset(&rsci, 0, sizeof(rsci)); + /* context handle */ +@@ -454,6 +453,7 @@ static int rsc_parse(struct cache_detail + set_bit(CACHE_NEGATIVE, &rsci.h.flags); + else { + int N, i; ++ struct gss_api_mech *gm; + + /* gid */ + if (get_int(&mesg, &rsci.cred.cr_gid)) +@@ -488,17 +488,21 @@ static int rsc_parse(struct cache_detail + status = -EINVAL; + /* mech-specific data: */ + len = qword_get(&mesg, buf, mlen); +- if (len < 0) ++ if (len < 0) { ++ gss_mech_put(gm); + goto out; ++ } + status = gss_import_sec_context(buf, len, gm, &rsci.mechctx); +- if (status) ++ if (status) { ++ gss_mech_put(gm); + goto out; ++ } ++ gss_mech_put(gm); + } + rsci.h.expiry_time = expiry; + rscp = rsc_update(&rsci, rscp); + status = 0; + out: +- gss_mech_put(gm); + rsc_free(&rsci); + if (rscp) + cache_put(&rscp->h, &rsc_cache); +@@ -832,74 +836,6 @@ out: + return stat; + } + +-static inline int +-total_buf_len(struct xdr_buf *buf) +-{ +- return buf->head[0].iov_len + buf->page_len + buf->tail[0].iov_len; +-} +- +-static void +-fix_priv_head(struct xdr_buf *buf, int pad) +-{ +- if (buf->page_len == 0) { +- /* We need to adjust head and buf->len in tandem in this +- * case to make svc_defer() work--it finds the original +- * buffer start using buf->len - buf->head[0].iov_len. */ +- buf->head[0].iov_len -= pad; +- } +-} +- +-static int +-unwrap_priv_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct gss_ctx *ctx) +-{ +- u32 priv_len, maj_stat; +- int pad, saved_len, remaining_len, offset; +- +- rqstp->rq_sendfile_ok = 0; +- +- priv_len = ntohl(svc_getu32(&buf->head[0])); +- if (rqstp->rq_deferred) { +- /* Already decrypted last time through! The sequence number +- * check at out_seq is unnecessary but harmless: */ +- goto out_seq; +- } +- /* buf->len is the number of bytes from the original start of the +- * request to the end, where head[0].iov_len is just the bytes +- * not yet read from the head, so these two values are different: */ +- remaining_len = total_buf_len(buf); +- if (priv_len > remaining_len) +- return -EINVAL; +- pad = remaining_len - priv_len; +- buf->len -= pad; +- fix_priv_head(buf, pad); +- +- /* Maybe it would be better to give gss_unwrap a length parameter: */ +- saved_len = buf->len; +- buf->len = priv_len; +- maj_stat = gss_unwrap(ctx, 0, buf); +- pad = priv_len - buf->len; +- buf->len = saved_len; +- buf->len -= pad; +- /* The upper layers assume the buffer is aligned on 4-byte boundaries. +- * In the krb5p case, at least, the data ends up offset, so we need to +- * move it around. */ +- /* XXX: This is very inefficient. It would be better to either do +- * this while we encrypt, or maybe in the receive code, if we can peak +- * ahead and work out the service and mechanism there. */ +- offset = buf->head[0].iov_len % 4; +- if (offset) { +- buf->buflen = RPCSVC_MAXPAYLOAD; +- xdr_shift_buf(buf, offset); +- fix_priv_head(buf, pad); +- } +- if (maj_stat != GSS_S_COMPLETE) +- return -EINVAL; +-out_seq: +- if (ntohl(svc_getu32(&buf->head[0])) != seq) +- return -EINVAL; +- return 0; +-} +- + struct gss_svc_data { + /* decoded gss client cred: */ + struct rpc_gss_wire_cred clcred; +@@ -1115,14 +1051,7 @@ svcauth_gss_accept(struct svc_rqst *rqst + svc_putu32(resv, 0); + break; + case RPC_GSS_SVC_PRIVACY: +- if (unwrap_priv_data(rqstp, &rqstp->rq_arg, +- gc->gc_seq, rsci->mechctx)) +- goto auth_err; +- /* placeholders for length and seq. number: */ +- svcdata->body_start = resv->iov_base + resv->iov_len; +- svc_putu32(resv, 0); +- svc_putu32(resv, 0); +- break; ++ /* currently unsupported */ + default: + goto auth_err; + } +@@ -1147,8 +1076,8 @@ out: + return ret; + } + +-static inline int +-svcauth_gss_wrap_resp_integ(struct svc_rqst *rqstp) ++static int ++svcauth_gss_release(struct svc_rqst *rqstp) + { + struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; + struct rpc_gss_wire_cred *gc = &gsd->clcred; +@@ -1160,147 +1089,69 @@ svcauth_gss_wrap_resp_integ(struct svc_r + int integ_offset, integ_len; + int stat = -EINVAL; + +- p = gsd->body_start; +- gsd->body_start = NULL; +- /* move accept_stat to right place: */ +- memcpy(p, p + 2, 4); +- /* Don't wrap in failure case: */ +- /* Counting on not getting here if call was not even accepted! */ +- if (*p != rpc_success) { +- resbuf->head[0].iov_len -= 2 * 4; +- goto out; +- } +- p++; +- integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base; +- integ_len = resbuf->len - integ_offset; +- BUG_ON(integ_len % 4); +- *p++ = htonl(integ_len); +- *p++ = htonl(gc->gc_seq); +- if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset, +- integ_len)) +- BUG(); +- if (resbuf->page_len == 0 +- && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE +- < PAGE_SIZE) { +- BUG_ON(resbuf->tail[0].iov_len); +- /* Use head for everything */ +- resv = &resbuf->head[0]; +- } else if (resbuf->tail[0].iov_base == NULL) { +- if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE > PAGE_SIZE) +- goto out_err; +- resbuf->tail[0].iov_base = resbuf->head[0].iov_base +- + resbuf->head[0].iov_len; +- resbuf->tail[0].iov_len = 0; +- rqstp->rq_restailpage = 0; +- resv = &resbuf->tail[0]; +- } else { +- resv = &resbuf->tail[0]; +- } +- mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; +- if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) +- goto out_err; +- svc_putu32(resv, htonl(mic.len)); +- memset(mic.data + mic.len, 0, +- round_up_to_quad(mic.len) - mic.len); +- resv->iov_len += XDR_QUADLEN(mic.len) << 2; +- /* not strictly required: */ +- resbuf->len += XDR_QUADLEN(mic.len) << 2; +- BUG_ON(resv->iov_len > PAGE_SIZE); +-out: +- stat = 0; +-out_err: +- return stat; +-} +- +-static inline int +-svcauth_gss_wrap_resp_priv(struct svc_rqst *rqstp) +-{ +- struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; +- struct rpc_gss_wire_cred *gc = &gsd->clcred; +- struct xdr_buf *resbuf = &rqstp->rq_res; +- struct page **inpages = NULL; +- u32 *p; +- int offset, *len; +- int pad; +- +- p = gsd->body_start; +- gsd->body_start = NULL; +- /* move accept_stat to right place: */ +- memcpy(p, p + 2, 4); +- /* Don't wrap in failure case: */ +- /* Counting on not getting here if call was not even accepted! */ +- if (*p != rpc_success) { +- resbuf->head[0].iov_len -= 2 * 4; +- return 0; +- } +- p++; +- len = p++; +- offset = (u8 *)p - (u8 *)resbuf->head[0].iov_base; +- *p++ = htonl(gc->gc_seq); +- inpages = resbuf->pages; +- /* XXX: Would be better to write some xdr helper functions for +- * nfs{2,3,4}xdr.c that place the data right, instead of copying: */ +- if (resbuf->tail[0].iov_base && rqstp->rq_restailpage == 0) { +- BUG_ON(resbuf->tail[0].iov_base >= resbuf->head[0].iov_base +- + PAGE_SIZE); +- BUG_ON(resbuf->tail[0].iov_base < resbuf->head[0].iov_base); +- if (resbuf->tail[0].iov_len + resbuf->head[0].iov_len +- + 2 * RPC_MAX_AUTH_SIZE > PAGE_SIZE) +- return -ENOMEM; +- memmove(resbuf->tail[0].iov_base + RPC_MAX_AUTH_SIZE, +- resbuf->tail[0].iov_base, +- resbuf->tail[0].iov_len); +- resbuf->tail[0].iov_base += RPC_MAX_AUTH_SIZE; +- } +- if (resbuf->tail[0].iov_base == NULL) { +- if (resbuf->head[0].iov_len + 2*RPC_MAX_AUTH_SIZE > PAGE_SIZE) +- return -ENOMEM; +- resbuf->tail[0].iov_base = resbuf->head[0].iov_base +- + resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE; +- resbuf->tail[0].iov_len = 0; +- rqstp->rq_restailpage = 0; +- } +- if (gss_wrap(gsd->rsci->mechctx, offset, resbuf, inpages)) +- return -ENOMEM; +- *len = htonl(resbuf->len - offset); +- pad = 3 - ((resbuf->len - offset - 1)&3); +- p = (u32 *)(resbuf->tail[0].iov_base + resbuf->tail[0].iov_len); +- memset(p, 0, pad); +- resbuf->tail[0].iov_len += pad; +- resbuf->len += pad; +- return 0; +-} +- +-static int +-svcauth_gss_release(struct svc_rqst *rqstp) +-{ +- struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; +- struct rpc_gss_wire_cred *gc = &gsd->clcred; +- struct xdr_buf *resbuf = &rqstp->rq_res; +- int stat = -EINVAL; +- + if (gc->gc_proc != RPC_GSS_PROC_DATA) + goto out; + /* Release can be called twice, but we only wrap once. */ + if (gsd->body_start == NULL) + goto out; + /* normally not set till svc_send, but we need it here: */ +- /* XXX: what for? Do we mess it up the moment we call svc_putu32 +- * or whatever? */ +- resbuf->len = total_buf_len(resbuf); ++ resbuf->len = resbuf->head[0].iov_len ++ + resbuf->page_len + resbuf->tail[0].iov_len; + switch (gc->gc_svc) { + case RPC_GSS_SVC_NONE: + break; + case RPC_GSS_SVC_INTEGRITY: +- stat = svcauth_gss_wrap_resp_integ(rqstp); +- if (stat) ++ p = gsd->body_start; ++ gsd->body_start = NULL; ++ /* move accept_stat to right place: */ ++ memcpy(p, p + 2, 4); ++ /* don't wrap in failure case: */ ++ /* Note: counting on not getting here if call was not even ++ * accepted! */ ++ if (*p != rpc_success) { ++ resbuf->head[0].iov_len -= 2 * 4; ++ goto out; ++ } ++ p++; ++ integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base; ++ integ_len = resbuf->len - integ_offset; ++ BUG_ON(integ_len % 4); ++ *p++ = htonl(integ_len); ++ *p++ = htonl(gc->gc_seq); ++ if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset, ++ integ_len)) ++ BUG(); ++ if (resbuf->page_len == 0 ++ && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE ++ < PAGE_SIZE) { ++ BUG_ON(resbuf->tail[0].iov_len); ++ /* Use head for everything */ ++ resv = &resbuf->head[0]; ++ } else if (resbuf->tail[0].iov_base == NULL) { ++ if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE ++ > PAGE_SIZE) ++ goto out_err; ++ resbuf->tail[0].iov_base = ++ resbuf->head[0].iov_base ++ + resbuf->head[0].iov_len; ++ resbuf->tail[0].iov_len = 0; ++ rqstp->rq_restailpage = 0; ++ resv = &resbuf->tail[0]; ++ } else { ++ resv = &resbuf->tail[0]; ++ } ++ mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; ++ if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) + goto out_err; ++ svc_putu32(resv, htonl(mic.len)); ++ memset(mic.data + mic.len, 0, ++ round_up_to_quad(mic.len) - mic.len); ++ resv->iov_len += XDR_QUADLEN(mic.len) << 2; ++ /* not strictly required: */ ++ resbuf->len += XDR_QUADLEN(mic.len) << 2; ++ BUG_ON(resv->iov_len > PAGE_SIZE); + break; + case RPC_GSS_SVC_PRIVACY: +- stat = svcauth_gss_wrap_resp_priv(rqstp); +- if (stat) +- goto out_err; +- break; + default: + goto out_err; + } +diff --git a/net/sunrpc/auth_null.c b/net/sunrpc/auth_null.c +index 2eccffa..f56767a 100644 +--- a/net/sunrpc/auth_null.c ++++ b/net/sunrpc/auth_null.c +@@ -118,8 +118,6 @@ struct rpc_auth null_auth = { + .au_cslack = 4, + .au_rslack = 2, + .au_ops = &authnull_ops, +- .au_flavor = RPC_AUTH_NULL, +- .au_count = ATOMIC_INIT(0), + }; + + static +diff --git a/net/sunrpc/auth_unix.c b/net/sunrpc/auth_unix.c +index 74c7406..df14b6b 100644 +--- a/net/sunrpc/auth_unix.c ++++ b/net/sunrpc/auth_unix.c +@@ -225,7 +225,6 @@ struct rpc_auth unix_auth = { + .au_cslack = UNX_WRITESLACK, + .au_rslack = 2, /* assume AUTH_NULL verf */ + .au_ops = &authunix_ops, +- .au_flavor = RPC_AUTH_UNIX, + .au_count = ATOMIC_INIT(0), + .au_credcache = &unix_cred_cache, + }; +diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c +index a5226df..cc673dd 100644 +--- a/net/sunrpc/rpc_pipe.c ++++ b/net/sunrpc/rpc_pipe.c +@@ -439,7 +439,7 @@ struct vfsmount *rpc_get_mount(void) + { + int err; + +- err = simple_pin_fs(&rpc_pipe_fs_type, &rpc_mount, &rpc_mount_count); ++ err = simple_pin_fs("rpc_pipefs", &rpc_mount, &rpc_mount_count); + if (err != 0) + return ERR_PTR(err); + return rpc_mount; +diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c +index 01ba60a..b08419e 100644 +--- a/net/sunrpc/svc.c ++++ b/net/sunrpc/svc.c +@@ -280,10 +280,7 @@ svc_process(struct svc_serv *serv, struc + rqstp->rq_res.page_base = 0; + rqstp->rq_res.page_len = 0; + rqstp->rq_res.buflen = PAGE_SIZE; +- rqstp->rq_res.tail[0].iov_base = NULL; + rqstp->rq_res.tail[0].iov_len = 0; +- /* Will be turned off only in gss privacy case: */ +- rqstp->rq_sendfile_ok = 1; + /* tcp needs a space for the record length... */ + if (rqstp->rq_prot == IPPROTO_TCP) + svc_putu32(resv, 0); +diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c +index 49174f0..ca4bfa5 100644 +--- a/net/sunrpc/xdr.c ++++ b/net/sunrpc/xdr.c +@@ -568,7 +568,8 @@ EXPORT_SYMBOL(xdr_inline_decode); + * + * Moves data beyond the current pointer position from the XDR head[] buffer + * into the page list. Any data that lies beyond current position + "len" +- * bytes is moved into the XDR tail[]. ++ * bytes is moved into the XDR tail[]. The current pointer is then ++ * repositioned at the beginning of the XDR tail. + */ + void xdr_read_pages(struct xdr_stream *xdr, unsigned int len) + { +@@ -605,31 +606,6 @@ void xdr_read_pages(struct xdr_stream *x + } + EXPORT_SYMBOL(xdr_read_pages); + +-/** +- * xdr_enter_page - decode data from the XDR page +- * @xdr: pointer to xdr_stream struct +- * @len: number of bytes of page data +- * +- * Moves data beyond the current pointer position from the XDR head[] buffer +- * into the page list. Any data that lies beyond current position + "len" +- * bytes is moved into the XDR tail[]. The current pointer is then +- * repositioned at the beginning of the first XDR page. +- */ +-void xdr_enter_page(struct xdr_stream *xdr, unsigned int len) +-{ +- char * kaddr = page_address(xdr->buf->pages[0]); +- xdr_read_pages(xdr, len); +- /* +- * Position current pointer at beginning of tail, and +- * set remaining message length. +- */ +- if (len > PAGE_CACHE_SIZE - xdr->buf->page_base) +- len = PAGE_CACHE_SIZE - xdr->buf->page_base; +- xdr->p = (uint32_t *)(kaddr + xdr->buf->page_base); +- xdr->end = (uint32_t *)((char *)xdr->p + len); +-} +-EXPORT_SYMBOL(xdr_enter_page); +- + static struct kvec empty_iov = {.iov_base = NULL, .iov_len = 0}; + + void +diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c +index 02060d0..4dd5b3c 100644 +--- a/net/sunrpc/xprt.c ++++ b/net/sunrpc/xprt.c +@@ -41,7 +41,7 @@ + #include + #include + #include +-#include ++#include + + #include + #include +@@ -830,7 +830,7 @@ static inline u32 xprt_alloc_xid(struct + + static inline void xprt_init_xid(struct rpc_xprt *xprt) + { +- xprt->xid = net_random(); ++ get_random_bytes(&xprt->xid, sizeof(xprt->xid)); + } + + static void xprt_request_init(struct rpc_task *task, struct rpc_xprt *xprt) +diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c +index 21006b1..4b4e7df 100644 +--- a/net/sunrpc/xprtsock.c ++++ b/net/sunrpc/xprtsock.c +@@ -930,13 +930,6 @@ static void xs_udp_timer(struct rpc_task + xprt_adjust_cwnd(task, -ETIMEDOUT); + } + +-static unsigned short xs_get_random_port(void) +-{ +- unsigned short range = xprt_max_resvport - xprt_min_resvport; +- unsigned short rand = (unsigned short) net_random() % range; +- return rand + xprt_min_resvport; +-} +- + /** + * xs_set_port - reset the port number in the remote endpoint address + * @xprt: generic transport +@@ -1282,7 +1275,7 @@ int xs_setup_udp(struct rpc_xprt *xprt, + memset(xprt->slot, 0, slot_table_size); + + xprt->prot = IPPROTO_UDP; +- xprt->port = xs_get_random_port(); ++ xprt->port = xprt_max_resvport; + xprt->tsh_size = 0; + xprt->resvport = capable(CAP_NET_BIND_SERVICE) ? 1 : 0; + /* XXX: header size can vary due to auth type, IPv6, etc. */ +@@ -1324,7 +1317,7 @@ int xs_setup_tcp(struct rpc_xprt *xprt, + memset(xprt->slot, 0, slot_table_size); + + xprt->prot = IPPROTO_TCP; +- xprt->port = xs_get_random_port(); ++ xprt->port = xprt_max_resvport; + xprt->tsh_size = sizeof(rpc_fraghdr) / sizeof(u32); + xprt->resvport = capable(CAP_NET_BIND_SERVICE) ? 1 : 0; + xprt->max_payload = RPC_MAX_FRAGMENT_SIZE; +diff --git a/security/inode.c b/security/inode.c +index 8bf4062..0f77b02 100644 +--- a/security/inode.c ++++ b/security/inode.c +@@ -224,7 +224,7 @@ struct dentry *securityfs_create_file(co + + pr_debug("securityfs: creating file '%s'\n",name); + +- error = simple_pin_fs(&fs_type, &mount, &mount_count); ++ error = simple_pin_fs("securityfs", &mount, &mount_count); + if (error) { + dentry = ERR_PTR(error); + goto exit; +-- +1.1.3 + --- linux-source-2.6.17-2.6.17.1.orig/.dotest/msg +++ linux-source-2.6.17-2.6.17.1/.dotest/msg @@ -0,0 +1,5 @@ +This commit reverts the nfs/rpc/lockd/nfsd touching portions +of 0d720a96247caa521d0664d0759b8af527151ff8. + +Signed-off-by: Kyle McMartin + --- linux-source-2.6.17-2.6.17.1.orig/.gitignore +++ linux-source-2.6.17-2.6.17.1/.gitignore @@ -0,0 +1,35 @@ +# +# NOTE! Don't add files that are generated in specific +# subdirectories here. Add them in the ".gitignore" file +# in that subdirectory instead. +# +# Normal rules +# +.* +*.o +*.a +*.s +*.ko +*.so +*.mod.c + +# +# Top-level generic files +# +tags +vmlinux* +System.map +Module.symvers + +# +# Generated include files +# +include/asm +include/asm-*/asm-offsets.h +include/config +include/linux/autoconf.h +include/linux/compile.h +include/linux/version.h + +# stgit generated dirs +patches-* --- linux-source-2.6.17-2.6.17.1.orig/kernel/.gitignore +++ linux-source-2.6.17-2.6.17.1/kernel/.gitignore @@ -0,0 +1,5 @@ +# +# Generated files +# +config_data.h +config_data.gz --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_gss/gss_spkm3_mech.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_gss/gss_spkm3_mech.c @@ -82,74 +82,134 @@ return q; } +static inline const void * +get_key(const void *p, const void *end, struct crypto_tfm **res, int *resalg) +{ + struct xdr_netobj key = { 0 }; + int alg_mode,setkey = 0; + char *alg_name; + + p = simple_get_bytes(p, end, resalg, sizeof(*resalg)); + if (IS_ERR(p)) + goto out_err; + p = simple_get_netobj(p, end, &key); + if (IS_ERR(p)) + goto out_err; + + switch (*resalg) { + case NID_des_cbc: + alg_name = "des"; + alg_mode = CRYPTO_TFM_MODE_CBC; + setkey = 1; + break; + case NID_cast5_cbc: + /* XXXX here in name only, not used */ + alg_name = "cast5"; + alg_mode = CRYPTO_TFM_MODE_CBC; + setkey = 0; /* XXX will need to set to 1 */ + break; + case NID_md5: + if (key.len == 0) { + dprintk("RPC: SPKM3 get_key: NID_md5 zero Key length\n"); + } + alg_name = "md5"; + alg_mode = 0; + setkey = 0; + break; + default: + dprintk("gss_spkm3_mech: unsupported algorithm %d\n", *resalg); + goto out_err_free_key; + } + if (!(*res = crypto_alloc_tfm(alg_name, alg_mode))) { + printk("gss_spkm3_mech: unable to initialize crypto algorthm %s\n", alg_name); + goto out_err_free_key; + } + if (setkey) { + if (crypto_cipher_setkey(*res, key.data, key.len)) { + printk("gss_spkm3_mech: error setting key for crypto algorthm %s\n", alg_name); + goto out_err_free_tfm; + } + } + + if(key.len > 0) + kfree(key.data); + return p; + +out_err_free_tfm: + crypto_free_tfm(*res); +out_err_free_key: + if(key.len > 0) + kfree(key.data); + p = ERR_PTR(-EINVAL); +out_err: + return p; +} + static int gss_import_sec_context_spkm3(const void *p, size_t len, struct gss_ctx *ctx_id) { const void *end = (const void *)((const char *)p + len); struct spkm3_ctx *ctx; - int version; if (!(ctx = kmalloc(sizeof(*ctx), GFP_KERNEL))) goto out_err; memset(ctx, 0, sizeof(*ctx)); - p = simple_get_bytes(p, end, &version, sizeof(version)); - if (IS_ERR(p)) - goto out_err_free_ctx; - if(version >= 16 || version <= 0) { - dprintk("RPC: old nfs-utils software. upgrade to the latest version\n"); - goto out_err_free_ctx; - } - p = simple_get_netobj(p, end, &ctx->ctx_id); if (IS_ERR(p)) goto out_err_free_ctx; - p = simple_get_bytes(p, end, &ctx->endtime, sizeof(ctx->endtime)); + p = simple_get_bytes(p, end, &ctx->qop, sizeof(ctx->qop)); if (IS_ERR(p)) goto out_err_free_ctx_id; p = simple_get_netobj(p, end, &ctx->mech_used); if (IS_ERR(p)) - goto out_err_free_ctx_id; + goto out_err_free_mech; p = simple_get_bytes(p, end, &ctx->ret_flags, sizeof(ctx->ret_flags)); if (IS_ERR(p)) goto out_err_free_mech; - p = simple_get_netobj(p, end, &ctx->conf_alg); + p = simple_get_bytes(p, end, &ctx->req_flags, sizeof(ctx->req_flags)); if (IS_ERR(p)) goto out_err_free_mech; - p = simple_get_netobj(p, end, &ctx->derived_conf_key); + p = simple_get_netobj(p, end, &ctx->share_key); + if (IS_ERR(p)) + goto out_err_free_s_key; + + p = get_key(p, end, &ctx->derived_conf_key, &ctx->conf_alg); if (IS_ERR(p)) - goto out_err_free_conf_alg; + goto out_err_free_s_key; - p = simple_get_netobj(p, end, &ctx->intg_alg); + p = get_key(p, end, &ctx->derived_integ_key, &ctx->intg_alg); if (IS_ERR(p)) - goto out_err_free_conf_key; + goto out_err_free_key1; - p = simple_get_netobj(p, end, &ctx->derived_integ_key); + p = simple_get_bytes(p, end, &ctx->keyestb_alg, sizeof(ctx->keyestb_alg)); if (IS_ERR(p)) - goto out_err_free_intg_alg; + goto out_err_free_key2; + + p = simple_get_bytes(p, end, &ctx->owf_alg, sizeof(ctx->owf_alg)); + if (IS_ERR(p)) + goto out_err_free_key2; if (p != end) - goto out_err_free_intg_key; + goto out_err_free_key2; ctx_id->internal_ctx_id = ctx; dprintk("Succesfully imported new spkm context.\n"); return 0; -out_err_free_intg_key: - kfree(ctx->derived_integ_key.data); -out_err_free_intg_alg: - kfree(ctx->intg_alg.data); -out_err_free_conf_key: - kfree(ctx->derived_conf_key.data); -out_err_free_conf_alg: - kfree(ctx->conf_alg.data); +out_err_free_key2: + crypto_free_tfm(ctx->derived_integ_key); +out_err_free_key1: + crypto_free_tfm(ctx->derived_conf_key); +out_err_free_s_key: + kfree(ctx->share_key.data); out_err_free_mech: kfree(ctx->mech_used.data); out_err_free_ctx_id: @@ -164,13 +224,11 @@ gss_delete_sec_context_spkm3(void *internal_ctx) { struct spkm3_ctx *sctx = internal_ctx; - kfree(sctx->derived_integ_key.data); - kfree(sctx->intg_alg.data); - kfree(sctx->derived_conf_key.data); - kfree(sctx->conf_alg.data); - kfree(sctx->mech_used.data); - kfree(sctx->ctx_id.data); - kfree(sctx); + crypto_free_tfm(sctx->derived_integ_key); + crypto_free_tfm(sctx->derived_conf_key); + kfree(sctx->share_key.data); + kfree(sctx->mech_used.data); + kfree(sctx); } static u32 @@ -181,6 +239,7 @@ u32 maj_stat = 0; struct spkm3_ctx *sctx = ctx->internal_ctx_id; + dprintk("RPC: gss_verify_mic_spkm3 calling spkm3_read_token\n"); maj_stat = spkm3_read_token(sctx, checksum, signbuf, SPKM_MIC_TOK); dprintk("RPC: gss_verify_mic_spkm3 returning %d\n", maj_stat); @@ -195,9 +254,10 @@ u32 err = 0; struct spkm3_ctx *sctx = ctx->internal_ctx_id; + dprintk("RPC: gss_get_mic_spkm3\n"); + err = spkm3_make_token(sctx, message_buffer, - message_token, SPKM_MIC_TOK); - dprintk("RPC: gss_get_mic_spkm3 returning %d\n", err); + message_token, SPKM_MIC_TOK); return err; } --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_gss/gss_mech_switch.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_gss/gss_mech_switch.c @@ -224,8 +224,7 @@ void gss_mech_put(struct gss_api_mech * gm) { - if (gm) - module_put(gm->gm_owner); + module_put(gm->gm_owner); } EXPORT_SYMBOL(gss_mech_put); @@ -308,7 +307,8 @@ (*context_handle)->mech_type->gm_ops ->gss_delete_sec_context((*context_handle) ->internal_ctx_id); - gss_mech_put((*context_handle)->mech_type); + if ((*context_handle)->mech_type) + gss_mech_put((*context_handle)->mech_type); kfree(*context_handle); *context_handle=NULL; return GSS_S_COMPLETE; --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_gss/gss_spkm3_token.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_gss/gss_spkm3_token.c @@ -173,10 +173,10 @@ *(u8 *)hptr++ = zbit; memcpy(hptr, ctxdata, elen); hptr += elen; - *hdrlen = hptr - top; + *hdrlen = hptr - top; } - -/* + +/* * spkm3_mic_innercontext_token() * * *tokp points to the beginning of the SPKM_MIC token described --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_gss/svcauth_gss.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_gss/svcauth_gss.c @@ -425,7 +425,6 @@ struct rsc rsci, *rscp = NULL; time_t expiry; int status = -EINVAL; - struct gss_api_mech *gm = NULL; memset(&rsci, 0, sizeof(rsci)); /* context handle */ @@ -454,6 +453,7 @@ set_bit(CACHE_NEGATIVE, &rsci.h.flags); else { int N, i; + struct gss_api_mech *gm; /* gid */ if (get_int(&mesg, &rsci.cred.cr_gid)) @@ -488,17 +488,21 @@ status = -EINVAL; /* mech-specific data: */ len = qword_get(&mesg, buf, mlen); - if (len < 0) + if (len < 0) { + gss_mech_put(gm); goto out; + } status = gss_import_sec_context(buf, len, gm, &rsci.mechctx); - if (status) + if (status) { + gss_mech_put(gm); goto out; + } + gss_mech_put(gm); } rsci.h.expiry_time = expiry; rscp = rsc_update(&rsci, rscp); status = 0; out: - gss_mech_put(gm); rsc_free(&rsci); if (rscp) cache_put(&rscp->h, &rsc_cache); @@ -832,74 +836,6 @@ return stat; } -static inline int -total_buf_len(struct xdr_buf *buf) -{ - return buf->head[0].iov_len + buf->page_len + buf->tail[0].iov_len; -} - -static void -fix_priv_head(struct xdr_buf *buf, int pad) -{ - if (buf->page_len == 0) { - /* We need to adjust head and buf->len in tandem in this - * case to make svc_defer() work--it finds the original - * buffer start using buf->len - buf->head[0].iov_len. */ - buf->head[0].iov_len -= pad; - } -} - -static int -unwrap_priv_data(struct svc_rqst *rqstp, struct xdr_buf *buf, u32 seq, struct gss_ctx *ctx) -{ - u32 priv_len, maj_stat; - int pad, saved_len, remaining_len, offset; - - rqstp->rq_sendfile_ok = 0; - - priv_len = ntohl(svc_getu32(&buf->head[0])); - if (rqstp->rq_deferred) { - /* Already decrypted last time through! The sequence number - * check at out_seq is unnecessary but harmless: */ - goto out_seq; - } - /* buf->len is the number of bytes from the original start of the - * request to the end, where head[0].iov_len is just the bytes - * not yet read from the head, so these two values are different: */ - remaining_len = total_buf_len(buf); - if (priv_len > remaining_len) - return -EINVAL; - pad = remaining_len - priv_len; - buf->len -= pad; - fix_priv_head(buf, pad); - - /* Maybe it would be better to give gss_unwrap a length parameter: */ - saved_len = buf->len; - buf->len = priv_len; - maj_stat = gss_unwrap(ctx, 0, buf); - pad = priv_len - buf->len; - buf->len = saved_len; - buf->len -= pad; - /* The upper layers assume the buffer is aligned on 4-byte boundaries. - * In the krb5p case, at least, the data ends up offset, so we need to - * move it around. */ - /* XXX: This is very inefficient. It would be better to either do - * this while we encrypt, or maybe in the receive code, if we can peak - * ahead and work out the service and mechanism there. */ - offset = buf->head[0].iov_len % 4; - if (offset) { - buf->buflen = RPCSVC_MAXPAYLOAD; - xdr_shift_buf(buf, offset); - fix_priv_head(buf, pad); - } - if (maj_stat != GSS_S_COMPLETE) - return -EINVAL; -out_seq: - if (ntohl(svc_getu32(&buf->head[0])) != seq) - return -EINVAL; - return 0; -} - struct gss_svc_data { /* decoded gss client cred: */ struct rpc_gss_wire_cred clcred; @@ -1115,14 +1051,7 @@ svc_putu32(resv, 0); break; case RPC_GSS_SVC_PRIVACY: - if (unwrap_priv_data(rqstp, &rqstp->rq_arg, - gc->gc_seq, rsci->mechctx)) - goto auth_err; - /* placeholders for length and seq. number: */ - svcdata->body_start = resv->iov_base + resv->iov_len; - svc_putu32(resv, 0); - svc_putu32(resv, 0); - break; + /* currently unsupported */ default: goto auth_err; } @@ -1147,8 +1076,8 @@ return ret; } -static inline int -svcauth_gss_wrap_resp_integ(struct svc_rqst *rqstp) +static int +svcauth_gss_release(struct svc_rqst *rqstp) { struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; struct rpc_gss_wire_cred *gc = &gsd->clcred; @@ -1160,147 +1089,69 @@ int integ_offset, integ_len; int stat = -EINVAL; - p = gsd->body_start; - gsd->body_start = NULL; - /* move accept_stat to right place: */ - memcpy(p, p + 2, 4); - /* Don't wrap in failure case: */ - /* Counting on not getting here if call was not even accepted! */ - if (*p != rpc_success) { - resbuf->head[0].iov_len -= 2 * 4; - goto out; - } - p++; - integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base; - integ_len = resbuf->len - integ_offset; - BUG_ON(integ_len % 4); - *p++ = htonl(integ_len); - *p++ = htonl(gc->gc_seq); - if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset, - integ_len)) - BUG(); - if (resbuf->page_len == 0 - && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE - < PAGE_SIZE) { - BUG_ON(resbuf->tail[0].iov_len); - /* Use head for everything */ - resv = &resbuf->head[0]; - } else if (resbuf->tail[0].iov_base == NULL) { - if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE > PAGE_SIZE) - goto out_err; - resbuf->tail[0].iov_base = resbuf->head[0].iov_base - + resbuf->head[0].iov_len; - resbuf->tail[0].iov_len = 0; - rqstp->rq_restailpage = 0; - resv = &resbuf->tail[0]; - } else { - resv = &resbuf->tail[0]; - } - mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; - if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) - goto out_err; - svc_putu32(resv, htonl(mic.len)); - memset(mic.data + mic.len, 0, - round_up_to_quad(mic.len) - mic.len); - resv->iov_len += XDR_QUADLEN(mic.len) << 2; - /* not strictly required: */ - resbuf->len += XDR_QUADLEN(mic.len) << 2; - BUG_ON(resv->iov_len > PAGE_SIZE); -out: - stat = 0; -out_err: - return stat; -} - -static inline int -svcauth_gss_wrap_resp_priv(struct svc_rqst *rqstp) -{ - struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; - struct rpc_gss_wire_cred *gc = &gsd->clcred; - struct xdr_buf *resbuf = &rqstp->rq_res; - struct page **inpages = NULL; - u32 *p; - int offset, *len; - int pad; - - p = gsd->body_start; - gsd->body_start = NULL; - /* move accept_stat to right place: */ - memcpy(p, p + 2, 4); - /* Don't wrap in failure case: */ - /* Counting on not getting here if call was not even accepted! */ - if (*p != rpc_success) { - resbuf->head[0].iov_len -= 2 * 4; - return 0; - } - p++; - len = p++; - offset = (u8 *)p - (u8 *)resbuf->head[0].iov_base; - *p++ = htonl(gc->gc_seq); - inpages = resbuf->pages; - /* XXX: Would be better to write some xdr helper functions for - * nfs{2,3,4}xdr.c that place the data right, instead of copying: */ - if (resbuf->tail[0].iov_base && rqstp->rq_restailpage == 0) { - BUG_ON(resbuf->tail[0].iov_base >= resbuf->head[0].iov_base - + PAGE_SIZE); - BUG_ON(resbuf->tail[0].iov_base < resbuf->head[0].iov_base); - if (resbuf->tail[0].iov_len + resbuf->head[0].iov_len - + 2 * RPC_MAX_AUTH_SIZE > PAGE_SIZE) - return -ENOMEM; - memmove(resbuf->tail[0].iov_base + RPC_MAX_AUTH_SIZE, - resbuf->tail[0].iov_base, - resbuf->tail[0].iov_len); - resbuf->tail[0].iov_base += RPC_MAX_AUTH_SIZE; - } - if (resbuf->tail[0].iov_base == NULL) { - if (resbuf->head[0].iov_len + 2*RPC_MAX_AUTH_SIZE > PAGE_SIZE) - return -ENOMEM; - resbuf->tail[0].iov_base = resbuf->head[0].iov_base - + resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE; - resbuf->tail[0].iov_len = 0; - rqstp->rq_restailpage = 0; - } - if (gss_wrap(gsd->rsci->mechctx, offset, resbuf, inpages)) - return -ENOMEM; - *len = htonl(resbuf->len - offset); - pad = 3 - ((resbuf->len - offset - 1)&3); - p = (u32 *)(resbuf->tail[0].iov_base + resbuf->tail[0].iov_len); - memset(p, 0, pad); - resbuf->tail[0].iov_len += pad; - resbuf->len += pad; - return 0; -} - -static int -svcauth_gss_release(struct svc_rqst *rqstp) -{ - struct gss_svc_data *gsd = (struct gss_svc_data *)rqstp->rq_auth_data; - struct rpc_gss_wire_cred *gc = &gsd->clcred; - struct xdr_buf *resbuf = &rqstp->rq_res; - int stat = -EINVAL; - if (gc->gc_proc != RPC_GSS_PROC_DATA) goto out; /* Release can be called twice, but we only wrap once. */ if (gsd->body_start == NULL) goto out; /* normally not set till svc_send, but we need it here: */ - /* XXX: what for? Do we mess it up the moment we call svc_putu32 - * or whatever? */ - resbuf->len = total_buf_len(resbuf); + resbuf->len = resbuf->head[0].iov_len + + resbuf->page_len + resbuf->tail[0].iov_len; switch (gc->gc_svc) { case RPC_GSS_SVC_NONE: break; case RPC_GSS_SVC_INTEGRITY: - stat = svcauth_gss_wrap_resp_integ(rqstp); - if (stat) + p = gsd->body_start; + gsd->body_start = NULL; + /* move accept_stat to right place: */ + memcpy(p, p + 2, 4); + /* don't wrap in failure case: */ + /* Note: counting on not getting here if call was not even + * accepted! */ + if (*p != rpc_success) { + resbuf->head[0].iov_len -= 2 * 4; + goto out; + } + p++; + integ_offset = (u8 *)(p + 1) - (u8 *)resbuf->head[0].iov_base; + integ_len = resbuf->len - integ_offset; + BUG_ON(integ_len % 4); + *p++ = htonl(integ_len); + *p++ = htonl(gc->gc_seq); + if (xdr_buf_subsegment(resbuf, &integ_buf, integ_offset, + integ_len)) + BUG(); + if (resbuf->page_len == 0 + && resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE + < PAGE_SIZE) { + BUG_ON(resbuf->tail[0].iov_len); + /* Use head for everything */ + resv = &resbuf->head[0]; + } else if (resbuf->tail[0].iov_base == NULL) { + if (resbuf->head[0].iov_len + RPC_MAX_AUTH_SIZE + > PAGE_SIZE) + goto out_err; + resbuf->tail[0].iov_base = + resbuf->head[0].iov_base + + resbuf->head[0].iov_len; + resbuf->tail[0].iov_len = 0; + rqstp->rq_restailpage = 0; + resv = &resbuf->tail[0]; + } else { + resv = &resbuf->tail[0]; + } + mic.data = (u8 *)resv->iov_base + resv->iov_len + 4; + if (gss_get_mic(gsd->rsci->mechctx, &integ_buf, &mic)) goto out_err; + svc_putu32(resv, htonl(mic.len)); + memset(mic.data + mic.len, 0, + round_up_to_quad(mic.len) - mic.len); + resv->iov_len += XDR_QUADLEN(mic.len) << 2; + /* not strictly required: */ + resbuf->len += XDR_QUADLEN(mic.len) << 2; + BUG_ON(resv->iov_len > PAGE_SIZE); break; case RPC_GSS_SVC_PRIVACY: - stat = svcauth_gss_wrap_resp_priv(rqstp); - if (stat) - goto out_err; - break; default: goto out_err; } --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_gss/auth_gss.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_gss/auth_gss.c @@ -68,7 +68,7 @@ #define GSS_CRED_SLACK 1024 /* XXX: unused */ /* length of a krb5 verifier (48), plus data added before arguments when * using integrity (two 4-byte integers): */ -#define GSS_VERF_SLACK 100 +#define GSS_VERF_SLACK 56 /* XXX this define must match the gssd define * as it is passed to gssd to signal the use of --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_gss/gss_spkm3_seal.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_gss/gss_spkm3_seal.c @@ -39,8 +39,6 @@ #include #include #include -#include -#include #ifdef RPC_DEBUG # define RPCDBG_FACILITY RPCDBG_AUTH @@ -68,6 +66,8 @@ int ctxelen = 0, ctxzbit = 0; int md5elen = 0, md5zbit = 0; + dprintk("RPC: spkm3_make_token\n"); + now = jiffies; if (ctx->ctx_id.len != 16) { @@ -75,20 +75,21 @@ ctx->ctx_id.len); goto out_err; } - - if(!g_OID_equal(&ctx->intg_alg, &hmac_md5_oid)) { - dprintk("RPC: gss_spkm3_seal: unsupported I-ALG algorithm." - "only support hmac-md5 I-ALG.\n"); - print_hexl((u32 *)ctx->intg_alg.data, ctx->intg_alg.len, 0); - goto out_err; - } else { - checksum_type = CKSUMTYPE_HMAC_MD5; + + switch (ctx->intg_alg) { + case NID_md5: + checksum_type = CKSUMTYPE_RSA_MD5; + break; + default: + dprintk("RPC: gss_spkm3_seal: ctx->signalg %d not" + " supported\n", ctx->intg_alg); + goto out_err; } - - - if (!g_OID_equal(&ctx->conf_alg, &cast5_cbc_oid)) { - dprintk("RPC: gss_spkm3_seal: unsupported C-ALG algorithm\n"); - goto out_err; + /* XXX since we don't support WRAP, perhaps we don't care... */ + if (ctx->conf_alg != NID_cast5_cbc) { + dprintk("RPC: gss_spkm3_seal: ctx->sealalg %d not supported\n", + ctx->conf_alg); + goto out_err; } if (toktype == SPKM_MIC_TOK) { @@ -96,10 +97,10 @@ asn1_bitstring_len(&ctx->ctx_id, &ctxelen, &ctxzbit); spkm3_mic_header(&mic_hdr.data, &mic_hdr.len, ctx->ctx_id.data, ctxelen, ctxzbit); - if (make_spkm3_checksum(checksum_type, &ctx->derived_integ_key, - (char *)mic_hdr.data, mic_hdr.len, - text, 0, &md5cksum)) - goto out_err; + + if (make_checksum(checksum_type, mic_hdr.data, mic_hdr.len, + text, 0, &md5cksum)) + goto out_err; asn1_bitstring_len(&md5cksum, &md5elen, &md5zbit); tokenlen = 10 + ctxelen + 1 + md5elen + 1; @@ -120,126 +121,7 @@ return GSS_S_COMPLETE; out_err: - if(md5cksum.data) - kfree(md5cksum.data); - token->data = NULL; token->len = 0; return GSS_S_FAILURE; } - -static int -spkm3_process_xdr_buf(struct xdr_buf *buf, int offset, int len, - int (*actor)(struct scatterlist *, void *), void *data) -{ - int i, page_len, thislen, page_offset, ret = 0; - struct scatterlist sg[1]; - - if (offset >= buf->head[0].iov_len) { - offset -= buf->head[0].iov_len; - } else { - thislen = buf->head[0].iov_len - offset; - if (thislen > len) - thislen = len; - sg_set_buf(sg, buf->head[0].iov_base + offset, thislen); - ret = actor(sg, data); - if (ret) - goto out; - offset = 0; - len -= thislen; - } - if (len == 0) - goto out; - - if (offset >= buf->page_len) { - offset -= buf->page_len; - } else { - page_len = buf->page_len - offset; - if (page_len > len) - page_len = len; - len -= page_len; - page_offset = (offset + buf->page_base) & (PAGE_CACHE_SIZE - 1); i = (offset + buf->page_base) >> PAGE_CACHE_SHIFT; - thislen = PAGE_CACHE_SIZE - page_offset; - do { - if (thislen > page_len) - thislen = page_len; - sg->page = buf->pages[i]; - sg->offset = page_offset; - sg->length = thislen; - ret = actor(sg, data); - if (ret) - goto out; - page_len -= thislen; - i++; - page_offset = 0; - thislen = PAGE_CACHE_SIZE; - } while (page_len != 0); - offset = 0; - } - if (len == 0) - goto out; - - if (offset < buf->tail[0].iov_len) { - thislen = buf->tail[0].iov_len - offset; - if (thislen > len) - thislen = len; - sg_set_buf(sg, buf->tail[0].iov_base + offset, thislen); - ret = actor(sg, data); - len -= thislen; - } - if (len != 0) - ret = -EINVAL; -out: - return ret; -} - - -static int -spkm3_checksummer(struct scatterlist *sg, void *data) -{ - struct crypto_tfm *tfm = (struct crypto_tfm *)data; - - crypto_hmac_update(tfm, sg, 1); - - return 0; -} - -/* checksum the plaintext data and hdrlen bytes of the token header */ -s32 -make_spkm3_checksum(s32 cksumtype, struct xdr_netobj *key, char *header, - int hdrlen, struct xdr_buf *body, - int body_offset, struct xdr_netobj *cksum) -{ - char *cksumname; - struct crypto_tfm *tfm = NULL; /* XXX add to ctx? */ - struct scatterlist sg[1]; - - switch (cksumtype) { - case CKSUMTYPE_HMAC_MD5: - cksumname = "md5"; - break; - default: - dprintk("RPC: spkm3_make_checksum:" - " unsupported checksum %d", cksumtype); - return GSS_S_FAILURE; - } - - if(key->data == NULL || key->len <= 0) return GSS_S_FAILURE; - - if (!(tfm = crypto_alloc_tfm(cksumname, CRYPTO_TFM_REQ_MAY_SLEEP))) - return GSS_S_FAILURE; - cksum->len = crypto_tfm_alg_digestsize(tfm); - - crypto_hmac_init(tfm, key->data, &key->len); - sg_set_buf(sg, header, hdrlen); - crypto_hmac_update(tfm, sg, 1); - - spkm3_process_xdr_buf(body, body_offset, body->len - body_offset, - spkm3_checksummer, tfm); - crypto_hmac_final(tfm, key->data, &key->len, cksum->data); - crypto_free_tfm(tfm); - - return 0; -} - -EXPORT_SYMBOL(make_spkm3_checksum); --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_gss/gss_spkm3_unseal.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_gss/gss_spkm3_unseal.c @@ -54,7 +54,6 @@ struct xdr_buf *message_buffer, /* signbuf */ int toktype) { - s32 checksum_type; s32 code; struct xdr_netobj wire_cksum = {.len =0, .data = NULL}; char cksumdata[16]; @@ -65,6 +64,8 @@ int mic_hdrlen; u32 ret = GSS_S_DEFECTIVE_TOKEN; + dprintk("RPC: spkm3_read_token read_token->len %d\n", read_token->len); + if (g_verify_token_header((struct xdr_netobj *) &ctx->mech_used, &bodysize, &ptr, read_token->len)) goto out; @@ -93,28 +94,26 @@ * mic_hdrlen + 2 = length of header piece of checksum */ ret = GSS_S_DEFECTIVE_TOKEN; - if(!g_OID_equal(&ctx->intg_alg, &hmac_md5_oid)) { - dprintk("RPC: gss_spkm3_seal: unsupported I-ALG algorithm. only support hmac-md5 I-ALG.\n"); - goto out; - } else { - checksum_type = CKSUMTYPE_HMAC_MD5; - } - - code = make_spkm3_checksum(checksum_type, - &ctx->derived_integ_key, ptr + 2, mic_hdrlen + 2, - message_buffer, 0, &md5cksum); + code = make_checksum(CKSUMTYPE_RSA_MD5, ptr + 2, + mic_hdrlen + 2, + message_buffer, 0, &md5cksum); if (code) goto out; + dprintk("RPC: spkm3_read_token: digest wire_cksum.len %d:\n", + wire_cksum.len); + dprintk(" md5cksum.data\n"); + print_hexl((u32 *) md5cksum.data, 16, 0); + dprintk(" cksum.data:\n"); + print_hexl((u32 *) wire_cksum.data, wire_cksum.len, 0); + ret = GSS_S_BAD_SIG; code = memcmp(md5cksum.data, wire_cksum.data, wire_cksum.len); - if (code) { - dprintk("RPC: bad MIC checksum\n"); + if (code) goto out; - } - } else { + } else { dprintk("RPC: BAD or UNSUPPORTED SPKM3 token type: %d\n",toktype); goto out; } --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/xprt.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/xprt.c @@ -41,7 +41,7 @@ #include #include #include -#include +#include #include #include @@ -830,7 +830,7 @@ static inline void xprt_init_xid(struct rpc_xprt *xprt) { - xprt->xid = net_random(); + get_random_bytes(&xprt->xid, sizeof(xprt->xid)); } static void xprt_request_init(struct rpc_task *task, struct rpc_xprt *xprt) --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/rpc_pipe.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/rpc_pipe.c @@ -439,7 +439,7 @@ { int err; - err = simple_pin_fs(&rpc_pipe_fs_type, &rpc_mount, &rpc_mount_count); + err = simple_pin_fs("rpc_pipefs", &rpc_mount, &rpc_mount_count); if (err != 0) return ERR_PTR(err); return rpc_mount; --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/xprtsock.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/xprtsock.c @@ -930,13 +930,6 @@ xprt_adjust_cwnd(task, -ETIMEDOUT); } -static unsigned short xs_get_random_port(void) -{ - unsigned short range = xprt_max_resvport - xprt_min_resvport; - unsigned short rand = (unsigned short) net_random() % range; - return rand + xprt_min_resvport; -} - /** * xs_set_port - reset the port number in the remote endpoint address * @xprt: generic transport @@ -1282,7 +1275,7 @@ memset(xprt->slot, 0, slot_table_size); xprt->prot = IPPROTO_UDP; - xprt->port = xs_get_random_port(); + xprt->port = xprt_max_resvport; xprt->tsh_size = 0; xprt->resvport = capable(CAP_NET_BIND_SERVICE) ? 1 : 0; /* XXX: header size can vary due to auth type, IPv6, etc. */ @@ -1324,7 +1317,7 @@ memset(xprt->slot, 0, slot_table_size); xprt->prot = IPPROTO_TCP; - xprt->port = xs_get_random_port(); + xprt->port = xprt_max_resvport; xprt->tsh_size = sizeof(rpc_fraghdr) / sizeof(u32); xprt->resvport = capable(CAP_NET_BIND_SERVICE) ? 1 : 0; xprt->max_payload = RPC_MAX_FRAGMENT_SIZE; --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_unix.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_unix.c @@ -225,7 +225,6 @@ .au_cslack = UNX_WRITESLACK, .au_rslack = 2, /* assume AUTH_NULL verf */ .au_ops = &authunix_ops, - .au_flavor = RPC_AUTH_UNIX, .au_count = ATOMIC_INIT(0), .au_credcache = &unix_cred_cache, }; --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/auth_null.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/auth_null.c @@ -118,8 +118,6 @@ .au_cslack = 4, .au_rslack = 2, .au_ops = &authnull_ops, - .au_flavor = RPC_AUTH_NULL, - .au_count = ATOMIC_INIT(0), }; static --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/xdr.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/xdr.c @@ -568,7 +568,8 @@ * * Moves data beyond the current pointer position from the XDR head[] buffer * into the page list. Any data that lies beyond current position + "len" - * bytes is moved into the XDR tail[]. + * bytes is moved into the XDR tail[]. The current pointer is then + * repositioned at the beginning of the XDR tail. */ void xdr_read_pages(struct xdr_stream *xdr, unsigned int len) { @@ -605,31 +606,6 @@ } EXPORT_SYMBOL(xdr_read_pages); -/** - * xdr_enter_page - decode data from the XDR page - * @xdr: pointer to xdr_stream struct - * @len: number of bytes of page data - * - * Moves data beyond the current pointer position from the XDR head[] buffer - * into the page list. Any data that lies beyond current position + "len" - * bytes is moved into the XDR tail[]. The current pointer is then - * repositioned at the beginning of the first XDR page. - */ -void xdr_enter_page(struct xdr_stream *xdr, unsigned int len) -{ - char * kaddr = page_address(xdr->buf->pages[0]); - xdr_read_pages(xdr, len); - /* - * Position current pointer at beginning of tail, and - * set remaining message length. - */ - if (len > PAGE_CACHE_SIZE - xdr->buf->page_base) - len = PAGE_CACHE_SIZE - xdr->buf->page_base; - xdr->p = (uint32_t *)(kaddr + xdr->buf->page_base); - xdr->end = (uint32_t *)((char *)xdr->p + len); -} -EXPORT_SYMBOL(xdr_enter_page); - static struct kvec empty_iov = {.iov_base = NULL, .iov_len = 0}; void --- linux-source-2.6.17-2.6.17.1.orig/net/sunrpc/svc.c +++ linux-source-2.6.17-2.6.17.1/net/sunrpc/svc.c @@ -280,10 +280,7 @@ rqstp->rq_res.page_base = 0; rqstp->rq_res.page_len = 0; rqstp->rq_res.buflen = PAGE_SIZE; - rqstp->rq_res.tail[0].iov_base = NULL; rqstp->rq_res.tail[0].iov_len = 0; - /* Will be turned off only in gss privacy case: */ - rqstp->rq_sendfile_ok = 1; /* tcp needs a space for the record length... */ if (rqstp->rq_prot == IPPROTO_TCP) svc_putu32(resv, 0); --- linux-source-2.6.17-2.6.17.1.orig/lib/.gitignore +++ linux-source-2.6.17-2.6.17.1/lib/.gitignore @@ -0,0 +1,6 @@ +# +# Generated files +# +gen_crc32table +crc32table.h + --- linux-source-2.6.17-2.6.17.1.orig/sound/usb/usbaudio.c +++ linux-source-2.6.17-2.6.17.1/sound/usb/usbaudio.c @@ -68,7 +68,7 @@ static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; /* Enable this card */ static int vid[SNDRV_CARDS] = { [0 ... (SNDRV_CARDS-1)] = -1 }; /* Vendor ID for this card */ static int pid[SNDRV_CARDS] = { [0 ... (SNDRV_CARDS-1)] = -1 }; /* Product ID for this card */ -static int nrpacks = 4; /* max. number of packets per urb */ +static int nrpacks = 8; /* max. number of packets per urb */ static int async_unlink = 1; static int device_setup[SNDRV_CARDS]; /* device parameter for this card*/ @@ -100,7 +100,7 @@ * */ -#define MAX_PACKS 10 +#define MAX_PACKS 20 #define MAX_PACKS_HS (MAX_PACKS * 8) /* in high speed mode */ #define MAX_URBS 8 #define SYNC_URBS 4 /* always four urbs for sync */ @@ -2587,6 +2587,7 @@ */ if (chip->usb_id == USB_ID(0x041e, 0x3000) || chip->usb_id == USB_ID(0x041e, 0x3020) || + chip->usb_id == USB_ID(0x041e, 0x3040) || chip->usb_id == USB_ID(0x041e, 0x3061)) { if (fmt[3] == USB_FORMAT_TYPE_I && fp->rates != SNDRV_PCM_RATE_48000 && @@ -2708,6 +2709,7 @@ fp->attributes &= ~EP_CS_ATTR_SAMPLE_RATE; break; case USB_ID(0x041e, 0x3020): /* Creative SB Audigy 2 NX */ + case USB_ID(0x041e, 0x3040): /* Creative SB Live! 24-bit Ext*/ case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */ /* doesn't set the sample rate attribute, but supports it */ fp->attributes |= EP_CS_ATTR_SAMPLE_RATE; @@ -3432,8 +3434,8 @@ if (snd_usb_extigy_boot_quirk(dev, intf) < 0) goto __err_val; } - /* SB Audigy 2 NX needs its own boot-up magic, too */ - if (id == USB_ID(0x041e, 0x3020)) { + /* SB Audigy 2 NX & Live! 24-bit Ext need boot-up magic, too */ + if (id == USB_ID(0x041e, 0x3020) || id == USB_ID(0x041e, 0x3040)) { if (snd_usb_audigy2nx_boot_quirk(dev) < 0) goto __err_val; } --- linux-source-2.6.17-2.6.17.1.orig/sound/usb/usbmixer_maps.c +++ linux-source-2.6.17-2.6.17.1/sound/usb/usbmixer_maps.c @@ -234,6 +234,26 @@ { 0 } /* terminator */ }; +/* TerraTec Aureon 5.1 MkII USB */ +static struct usbmix_name_map aureon_51_2_map[] = { + /* 1: IT USB */ + /* 2: IT Mic */ + /* 3: IT Line */ + /* 4: IT SPDIF */ + /* 5: OT SPDIF */ + /* 6: OT Speaker */ + /* 7: OT USB */ + { 8, "Capture Source" }, /* SU */ + { 9, "Master Playback" }, /* FU */ + { 10, "Mic Capture" }, /* FU */ + { 11, "Line Capture" }, /* FU */ + { 12, "IEC958 In Capture" }, /* FU */ + { 13, "Mic Playback" }, /* FU */ + { 14, "Line Playback" }, /* FU */ + /* 15: MU */ + {} /* terminator */ +}; + /* * Control map entries */ @@ -253,6 +273,11 @@ .map = audigy2nx_map, .selector_map = audigy2nx_selectors, }, + { /* Creative SB Live! 24-bit Ext */ + .id = USB_ID(0x041e, 0x3040), + .map = audigy2nx_map, + .selector_map = audigy2nx_selectors, + }, { /* Hercules DJ Console (Windows Edition) */ .id = USB_ID(0x06f8, 0xb000), @@ -276,6 +301,10 @@ .id = USB_ID(0x0c45, 0x1158), .map = justlink_map, }, + { + .id = USB_ID(0x0ccd, 0x0028), + .map = aureon_51_2_map, + }, { 0 } /* terminator */ }; --- linux-source-2.6.17-2.6.17.1.orig/sound/usb/usbmixer.c +++ linux-source-2.6.17-2.6.17.1/sound/usb/usbmixer.c @@ -2004,8 +2004,9 @@ if ((err = snd_usb_soundblaster_remote_init(mixer)) < 0) goto _error; - if (mixer->chip->usb_id == USB_ID(0x041e, 0x3020)) { - struct snd_info_entry *entry; + if (mixer->chip->usb_id == USB_ID(0x041e, 0x3020) || + mixer->chip->usb_id == USB_ID(0x041e, 0x3040)) { + snd_info_entry_t *entry; if ((err = snd_audigy2nx_controls_create(mixer)) < 0) goto _error; --- linux-source-2.6.17-2.6.17.1.orig/sound/core/timer.c +++ linux-source-2.6.17-2.6.17.1/sound/core/timer.c @@ -718,7 +718,7 @@ } } if (timer->flags & SNDRV_TIMER_FLG_RESCHED) - snd_timer_reschedule(timer, ticks_left); + snd_timer_reschedule(timer, timer->sticks); if (timer->running) { if (timer->hw.flags & SNDRV_TIMER_HW_STOP) { timer->hw.stop(timer); @@ -978,7 +978,7 @@ struct snd_timer_system_private *priv = timer->private_data; unsigned long jiff = jiffies; if (time_after(jiff, priv->last_expires)) - priv->correction = (long)jiff - (long)priv->last_expires; + priv->correction += (long)jiff - (long)priv->last_expires; snd_timer_interrupt(timer, (long)jiff - (long)priv->last_jiffies); } @@ -994,7 +994,7 @@ njiff++; } else { njiff += timer->sticks - priv->correction; - priv->correction -= timer->sticks; + priv->correction = 0; } priv->last_expires = priv->tlist.expires = njiff; add_timer(&priv->tlist); @@ -1013,6 +1013,7 @@ timer->sticks = priv->last_expires - jiff; else timer->sticks = 1; + priv->correction = 0; return 0; } --- linux-source-2.6.17-2.6.17.1.orig/sound/core/hwdep.c +++ linux-source-2.6.17-2.6.17.1/sound/core/hwdep.c @@ -158,6 +158,7 @@ { int err = -ENXIO; struct snd_hwdep *hw = file->private_data; + struct module *mod = hw->card->module; mutex_lock(&hw->open_mutex); if (hw->ops.release) { err = hw->ops.release(hw, file); @@ -167,7 +168,7 @@ hw->used--; snd_card_file_remove(hw->card, file); mutex_unlock(&hw->open_mutex); - module_put(hw->card->module); + module_put(mod); return err; } --- linux-source-2.6.17-2.6.17.1.orig/sound/core/pcm_lib.c +++ linux-source-2.6.17-2.6.17.1/sound/core/pcm_lib.c @@ -79,19 +79,17 @@ runtime->silence_filled -= frames; if ((snd_pcm_sframes_t)runtime->silence_filled < 0) { runtime->silence_filled = 0; - runtime->silence_start = (ofs + frames) - runtime->buffer_size; + runtime->silence_start = new_hw_ptr; } else { - runtime->silence_start = ofs - runtime->silence_filled; + runtime->silence_start = ofs; } - if ((snd_pcm_sframes_t)runtime->silence_start < 0) - runtime->silence_start += runtime->boundary; } frames = runtime->buffer_size - runtime->silence_filled; } snd_assert(frames <= runtime->buffer_size, return); if (frames == 0) return; - ofs = (runtime->silence_start + runtime->silence_filled) % runtime->buffer_size; + ofs = runtime->silence_start % runtime->buffer_size; while (frames > 0) { transfer = ofs + frames > runtime->buffer_size ? runtime->buffer_size - ofs : frames; if (runtime->access == SNDRV_PCM_ACCESS_RW_INTERLEAVED || --- linux-source-2.6.17-2.6.17.1.orig/sound/oss/.gitignore +++ linux-source-2.6.17-2.6.17.1/sound/oss/.gitignore @@ -0,0 +1,4 @@ +#Ignore generated files +maui_boot.h +pss_boot.h +trix_boot.h --- linux-source-2.6.17-2.6.17.1.orig/sound/isa/opti9xx/opti92x-ad1848.c +++ linux-source-2.6.17-2.6.17.1/sound/isa/opti9xx/opti92x-ad1848.c @@ -1683,6 +1683,8 @@ struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL); int err; + if (!cfg) + return -ENOMEM; chip->dev = pnp_request_card_device(card, pid->devs[0].id, NULL); if (chip->dev == NULL) { kfree(cfg); --- linux-source-2.6.17-2.6.17.1.orig/sound/isa/gus/interwave.c +++ linux-source-2.6.17-2.6.17.1/sound/isa/gus/interwave.c @@ -564,6 +564,8 @@ struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL); int err; + if (!cfg) + return -ENOMEM; iwcard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); if (iwcard->dev == NULL) { kfree(cfg); --- linux-source-2.6.17-2.6.17.1.orig/sound/isa/cmi8330.c +++ linux-source-2.6.17-2.6.17.1/sound/isa/cmi8330.c @@ -289,6 +289,8 @@ struct pnp_resource_table * cfg = kmalloc(sizeof(struct pnp_resource_table), GFP_KERNEL); int err; + if (!cfg) + return -ENOMEM; acard->cap = pnp_request_card_device(card, id->devs[0].id, NULL); if (acard->cap == NULL) { kfree(cfg); --- linux-source-2.6.17-2.6.17.1.orig/sound/isa/ad1816a/ad1816a.c +++ linux-source-2.6.17-2.6.17.1/sound/isa/ad1816a/ad1816a.c @@ -120,6 +120,8 @@ struct pnp_resource_table *cfg = kmalloc(sizeof(*cfg), GFP_KERNEL); int err; + if (!cfg) + return -ENOMEM; acard->dev = pnp_request_card_device(card, id->devs[0].id, NULL); if (acard->dev == NULL) { kfree(cfg); --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/emu10k1/emu10k1_main.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/emu10k1/emu10k1_main.c @@ -1456,8 +1456,8 @@ /* resore for spdif */ if (emu->audigy) - outl(emu->port + A_IOCFG, emu->saved_a_iocfg); - outl(emu->port + HCFG, emu->saved_hcfg); + outl(emu->saved_a_iocfg, emu->port + A_IOCFG); + outl(emu->saved_hcfg, emu->port + HCFG); val = emu->saved_ptr; for (reg = saved_regs; *reg != 0xff; reg++) --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/ymfpci/ymfpci_main.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/ymfpci/ymfpci_main.c @@ -909,7 +909,7 @@ ypcm = runtime->private_data; ypcm->output_front = 1; ypcm->output_rear = chip->mode_dup4ch ? 1 : 0; - ypcm->swap_rear = chip->rear_swap; + ypcm->swap_rear = 0; spin_lock_irq(&chip->reg_lock); if (ypcm->output_rear) { ymfpci_open_extension(chip); @@ -935,6 +935,7 @@ ypcm = runtime->private_data; ypcm->output_front = 0; ypcm->output_rear = 1; + ypcm->swap_rear = 1; spin_lock_irq(&chip->reg_lock); snd_ymfpci_writew(chip, YDSXGR_SPDIFOUTCTRL, snd_ymfpci_readw(chip, YDSXGR_SPDIFOUTCTRL) | 2); @@ -962,6 +963,7 @@ ypcm = runtime->private_data; ypcm->output_front = 0; ypcm->output_rear = 1; + ypcm->swap_rear = 0; spin_lock_irq(&chip->reg_lock); ymfpci_open_extension(chip); chip->rear_opened++; @@ -1750,7 +1752,7 @@ chip->ac97 = NULL; } -int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rear_swap) +int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch) { struct snd_ac97_template ac97; struct snd_kcontrol *kctl; @@ -1762,7 +1764,6 @@ .read = snd_ymfpci_codec_read, }; - chip->rear_swap = rear_swap; if ((err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus)) < 0) return err; chip->ac97_bus->private_free = snd_ymfpci_mixer_free_ac97_bus; @@ -2310,7 +2311,6 @@ return -EIO; } - chip->rear_swap = 1; if ((err = snd_ymfpci_ac3_init(chip)) < 0) { snd_ymfpci_free(chip); return err; --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/ymfpci/ymfpci.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/ymfpci/ymfpci.c @@ -49,7 +49,6 @@ static long joystick_port[SNDRV_CARDS]; #endif static int rear_switch[SNDRV_CARDS]; -static int rear_swap[SNDRV_CARDS] = { [0 ... (SNDRV_CARDS-1)] = 1 }; module_param_array(index, int, NULL, 0444); MODULE_PARM_DESC(index, "Index value for the Yamaha DS-1 PCI soundcard."); @@ -67,8 +66,6 @@ #endif module_param_array(rear_switch, bool, NULL, 0444); MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch"); -module_param_array(rear_swap, bool, NULL, 0444); -MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output"); static struct pci_device_id snd_ymfpci_ids[] __devinitdata = { { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */ @@ -298,7 +295,7 @@ snd_card_free(card); return err; } - if ((err = snd_ymfpci_mixer(chip, rear_switch[dev], rear_swap[dev])) < 0) { + if ((err = snd_ymfpci_mixer(chip, rear_switch[dev])) < 0) { snd_card_free(card); return err; } --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/via82xx.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/via82xx.c @@ -2367,7 +2367,7 @@ { .subvendor = 0x1106, .subdevice = 0xc001, .action = VIA_DXS_SRC }, /* Insight P4-ITX */ { .subvendor = 0x1297, .subdevice = 0xa232, .action = VIA_DXS_ENABLE }, /* Shuttle ?? */ { .subvendor = 0x1297, .subdevice = 0xc160, .action = VIA_DXS_ENABLE }, /* Shuttle SK41G */ - { .subvendor = 0x1458, .subdevice = 0xa002, .action = VIA_DXS_ENABLE }, /* Gigabyte GA-7VAXP */ + { .subvendor = 0x1458, .subdevice = 0xa002, .action = VIA_DXS_DISABLE }, /* Gigabyte GA-7VAXP */ { .subvendor = 0x1462, .subdevice = 0x0080, .action = VIA_DXS_SRC }, /* MSI K8T Neo-FIS2R */ { .subvendor = 0x1462, .subdevice = 0x0430, .action = VIA_DXS_SRC }, /* MSI 7142 (K8MM-V) */ { .subvendor = 0x1462, .subdevice = 0x0470, .action = VIA_DXS_SRC }, /* MSI KT880 Delta-FSR */ --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/intel8x0.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/intel8x0.c @@ -1819,6 +1819,24 @@ }, { .subvendor = 0x1028, + .subdevice = 0x0164, + .name = "Dell Unknown", /* Malone #36570 */ + .type = AC97_TUNE_HP_ONLY + }, + { + .subvendor = 0x1028, + .subdevice = 0x0186, + .name = "Dell Latitude D810", /* cf. Malone #41015 */ + .type = AC97_TUNE_HP_MUTE_LED + }, + { + .subvendor = 0x1028, + .subdevice = 0x0188, + .name = "Dell Inspiron 6000", + .type = AC97_TUNE_HP_MUTE_LED /* cf. Malone #41015 */ + }, + { + .subvendor = 0x1028, .subdevice = 0x0191, .name = "Dell Inspiron 8600", .type = AC97_TUNE_HP_ONLY --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/patch_realtek.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/patch_realtek.c @@ -32,6 +32,10 @@ #include "hda_codec.h" #include "hda_local.h" +#define ALC880_FRONT_EVENT 0x01 +#define ALC880_DCVOL_EVENT 0x02 +#define ALC880_HP_EVENT 0x04 +#define ALC880_MIC_EVENT 0x08 /* ALC880 board config type */ enum { @@ -49,6 +53,8 @@ ALC880_ASUS_W1V, ALC880_ASUS_DIG2, ALC880_UNIWILL_DIG, + ALC880_UNIWILL, + ALC880_UNIWILL_P53, ALC880_CLEVO, ALC880_TCL_S700, ALC880_LG, @@ -77,6 +83,8 @@ /* ALC262 models */ enum { ALC262_BASIC, + ALC262_HIPPO, + ALC262_HIPPO_1, ALC262_FUJITSU, ALC262_HP_BPC, ALC262_BENQ_ED8, @@ -91,6 +99,8 @@ ALC861_3ST_DIG, ALC861_6ST_DIG, ALC861_UNIWILL_M31, + ALC861_TOSHIBA, + ALC861_ASUS, ALC861_AUTO, ALC861_MODEL_LAST, }; @@ -110,8 +120,11 @@ ALC883_3ST_6ch_DIG, ALC883_3ST_6ch, ALC883_6ST_DIG, + ALC883_TARGA_DIG, + ALC883_TARGA_2ch_DIG, ALC888_DEMO_BOARD, ALC883_ACER, + ALC883_MEDION, ALC883_AUTO, ALC883_MODEL_LAST, }; @@ -271,7 +284,7 @@ int err = snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode, spec->num_channel_mode, &spec->multiout.max_channels); - if (! err && spec->need_dac_fix) + if (err >= 0 && spec->need_dac_fix) spec->multiout.num_dacs = spec->multiout.max_channels / 2; return err; } @@ -1015,6 +1028,46 @@ { } /* end */ }; +/* Uniwill */ +static snd_kcontrol_new_t alc880_uniwill_mixer[] = { + HDA_CODEC_VOLUME("HPhone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_BIND_MUTE("HPhone Playback Switch", 0x0c, 2, HDA_INPUT), + HDA_CODEC_VOLUME("iSpeaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), + HDA_BIND_MUTE("iSpeaker Playback Switch", 0x0d, 2, HDA_INPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0e, 2, 0x0, HDA_OUTPUT), + HDA_BIND_MUTE_MONO("Center Playback Switch", 0x0e, 1, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("LFE Playback Switch", 0x0e, 2, 2, HDA_INPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x1, HDA_INPUT), + HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x0b, 0x05, HDA_INPUT), + HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x0b, 0x05, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Channel Mode", + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, + }, + { } /* end */ +}; + +static snd_kcontrol_new_t alc880_uniwill_p53_mixer[] = { + HDA_CODEC_VOLUME("HPhone Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_BIND_MUTE("HPhone Playback Switch", 0x0c, 2, HDA_INPUT), + HDA_CODEC_VOLUME("iSpeaker Playback Volume", 0x0d, 0x0, HDA_OUTPUT), + HDA_BIND_MUTE("iSpeaker Playback Switch", 0x0d, 2, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + { } /* end */ +}; + /* * build control elements */ @@ -1248,6 +1301,154 @@ { } }; +/* + * Uniwill pin configuration: + * HP = 0x14, InternalSpeaker = 0x15, mic = 0x18, internal mic = 0x19, + * line = 0x1a + */ +static struct hda_verb alc880_uniwill_init_verbs[] = { + {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ + + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x17, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + + {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + /* {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, */ + /* {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, */ + {0x1c, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + + {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, + {0x18, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_MIC_EVENT}, + + { } +}; + +/* +* Uniwill P53 +* HP = 0x14, InternalSpeaker = 0x15, mic = 0x19, + */ +static struct hda_verb alc880_uniwill_p53_init_verbs[] = { + {0x13, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ + + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x14, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x16, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0d, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x00 << 8))}, + {0x0e, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8))}, + + {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x19, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + {0x1a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, + + {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, + {0x21, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_DCVOL_EVENT}, + + { } +}; + +/* toggle speaker-output according to the hp-jack state */ +static void alc880_uniwill_automute(struct hda_codec *codec) +{ + unsigned int present; + + present = snd_hda_codec_read(codec, 0x14, 0, + AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; + snd_hda_codec_amp_update(codec, 0x15, 0, HDA_OUTPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_amp_update(codec, 0x15, 1, HDA_OUTPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_amp_update(codec, 0x16, 0, HDA_OUTPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_amp_update(codec, 0x16, 1, HDA_OUTPUT, 0, + 0x80, present ? 0x80 : 0); + + present = snd_hda_codec_read(codec, 0x18, 0, + AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; + snd_hda_codec_write(codec, 0x0b, 0, AC_VERB_SET_AMP_GAIN_MUTE, + 0x7000 | (0x01 << 8) | (present ? 0x80 : 0)); +} + +static void alc880_uniwill_unsol_event(struct hda_codec *codec, + unsigned int res) +{ + /* Looks like the unsol event is incompatible with the standard + * definition. 4bit tag is placed at 28 bit! + */ + if ((res >> 28) == ALC880_HP_EVENT || + (res >> 28) == ALC880_MIC_EVENT) + alc880_uniwill_automute(codec); +} + +static void alc880_uniwill_p53_hp_automute(struct hda_codec *codec) +{ + unsigned int present; + + present = snd_hda_codec_read(codec, 0x14, 0, + AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; + + snd_hda_codec_amp_update(codec, 0x15, 0, HDA_INPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_amp_update(codec, 0x15, 1, HDA_INPUT, 0, + 0x80, present ? 0x80 : 0); +} + +static void alc880_uniwill_p53_dcvol_automute(struct hda_codec *codec) +{ + unsigned int present; + + present = snd_hda_codec_read(codec, 0x21, 0, + AC_VERB_GET_VOLUME_KNOB_CONTROL, 0) & 0x7f; + + snd_hda_codec_amp_update(codec, 0x0c, 0, HDA_OUTPUT, 0, + 0x7f, present); + snd_hda_codec_amp_update(codec, 0x0c, 1, HDA_OUTPUT, 0, + 0x7f, present); + + snd_hda_codec_amp_update(codec, 0x0d, 0, HDA_OUTPUT, 0, + 0x7f, present); + snd_hda_codec_amp_update(codec, 0x0d, 1, HDA_OUTPUT, 0, + 0x7f, present); + +} +static void alc880_uniwill_p53_unsol_event(struct hda_codec *codec, + unsigned int res) +{ + /* Looks like the unsol event is incompatible with the standard + * definition. 4bit tag is placed at 28 bit! + */ + if ((res >> 28) == ALC880_HP_EVENT) + alc880_uniwill_p53_hp_automute(codec); + if ((res >> 28) == ALC880_DCVOL_EVENT) + alc880_uniwill_p53_dcvol_automute(codec); +} + /* FIXME! */ /* * F1734 pin configuration: @@ -1799,7 +2000,7 @@ /* SPDIF for stream index #1 */ if (spec->multiout.dig_out_nid || spec->dig_in_nid) { codec->num_pcms = 2; - info++; + info = spec->pcm_rec + 1; info->name = spec->stream_name_digital; if (spec->multiout.dig_out_nid && spec->stream_digital_playback) { @@ -1820,7 +2021,7 @@ if (spec->num_adc_nids > 1 && spec->stream_analog_capture && spec->adc_nids) { codec->num_pcms = 3; - info++; + info = spec->pcm_rec + 2; info->name = spec->stream_name_analog; /* No playback stream for second PCM */ info->stream[SNDRV_PCM_STREAM_PLAYBACK] = alc_pcm_null_playback; @@ -2261,7 +2462,10 @@ { .pci_subvendor = 0x1558, .pci_subdevice = 0x5401, .config = ALC880_ASUS_DIG2 }, { .modelname = "uniwill", .config = ALC880_UNIWILL_DIG }, - { .pci_subvendor = 0x1584, .pci_subdevice = 0x9050, .config = ALC880_UNIWILL_DIG }, + { .pci_subvendor = 0x1584, .pci_subdevice = 0x9050, .config = ALC880_UNIWILL_DIG }, + { .pci_subvendor = 0x1584, .pci_subdevice = 0x9070, .config = ALC880_UNIWILL }, + { .pci_subvendor = 0x1734, .pci_subdevice = 0x10ac, .config = ALC880_UNIWILL }, + { .pci_subvendor = 0x1584, .pci_subdevice = 0x9077, .config = ALC880_UNIWILL_P53 }, { .modelname = "F1734", .config = ALC880_F1734 }, { .pci_subvendor = 0x1734, .pci_subdevice = 0x107c, .config = ALC880_F1734 }, @@ -2439,7 +2643,8 @@ }, [ALC880_UNIWILL_DIG] = { .mixers = { alc880_asus_mixer, alc880_pcbeep_mixer }, - .init_verbs = { alc880_volume_init_verbs, alc880_pin_asus_init_verbs }, + .init_verbs = { alc880_volume_init_verbs, + alc880_pin_asus_init_verbs }, .num_dacs = ARRAY_SIZE(alc880_asus_dac_nids), .dac_nids = alc880_asus_dac_nids, .dig_out_nid = ALC880_DIGOUT_NID, @@ -2448,6 +2653,32 @@ .need_dac_fix = 1, .input_mux = &alc880_capture_source, }, + [ALC880_UNIWILL] = { + .mixers = { alc880_uniwill_mixer }, + .init_verbs = { alc880_volume_init_verbs, + alc880_uniwill_init_verbs }, + .num_dacs = ARRAY_SIZE(alc880_asus_dac_nids), + .dac_nids = alc880_asus_dac_nids, + .dig_out_nid = ALC880_DIGOUT_NID, + .num_channel_mode = ARRAY_SIZE(alc880_threestack_modes), + .channel_mode = alc880_threestack_modes, + .need_dac_fix = 1, + .input_mux = &alc880_capture_source, + .unsol_event = alc880_uniwill_unsol_event, + .init_hook = alc880_uniwill_automute, + }, + [ALC880_UNIWILL_P53] = { + .mixers = { alc880_uniwill_p53_mixer }, + .init_verbs = { alc880_volume_init_verbs, + alc880_uniwill_p53_init_verbs }, + .num_dacs = ARRAY_SIZE(alc880_asus_dac_nids), + .dac_nids = alc880_asus_dac_nids, + .num_channel_mode = ARRAY_SIZE(alc880_w810_modes), + .channel_mode = alc880_w810_modes, + .input_mux = &alc880_capture_source, + .unsol_event = alc880_uniwill_p53_unsol_event, + .init_hook = alc880_uniwill_p53_hp_automute, + }, [ALC880_CLEVO] = { .mixers = { alc880_three_stack_mixer }, .init_verbs = { alc880_volume_init_verbs, @@ -2754,7 +2985,7 @@ pin = spec->autocfg.speaker_pins[0]; if (pin) /* connect to front */ alc880_auto_set_output_and_unmute(codec, pin, PIN_OUT, 0); - pin = spec->autocfg.hp_pin; + pin = spec->autocfg.hp_pins[0]; if (pin) /* connect to front */ alc880_auto_set_output_and_unmute(codec, pin, PIN_HP, 0); } @@ -2795,7 +3026,7 @@ (err = alc880_auto_create_extra_out(spec, spec->autocfg.speaker_pins[0], "Speaker")) < 0 || - (err = alc880_auto_create_extra_out(spec, spec->autocfg.hp_pin, + (err = alc880_auto_create_extra_out(spec, spec->autocfg.hp_pins[0], "Headphone")) < 0 || (err = alc880_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) return err; @@ -3737,7 +3968,7 @@ return err; } - nid = cfg->hp_pin; + nid = cfg->hp_pins[0]; if (nid) { err = alc260_add_playback_controls(spec, nid, "Headphone"); if (err < 0) @@ -3807,7 +4038,7 @@ if (nid) alc260_auto_set_output_and_unmute(codec, nid, PIN_OUT, 0); - nid = spec->autocfg.hp_pin; + nid = spec->autocfg.hp_pins[0]; if (nid) alc260_auto_set_output_and_unmute(codec, nid, PIN_OUT, 0); } @@ -4310,7 +4541,7 @@ static struct hda_verb alc882_eapd_verbs[] = { /* change to EAPD mode */ {0x20, AC_VERB_SET_COEF_INDEX, 0x07}, - {0x20, AC_VERB_SET_PROC_COEF, 0x3060}, + {0x20, AC_VERB_SET_PROC_COEF, 0x3070}, { } }; @@ -4527,7 +4758,7 @@ struct alc_spec *spec = codec->spec; hda_nid_t pin; - pin = spec->autocfg.hp_pin; + pin = spec->autocfg.hp_pins[0]; if (pin) /* connect to front */ alc882_auto_set_output_and_unmute(codec, pin, PIN_HP, 0); /* use dac 0 */ } @@ -4876,6 +5107,97 @@ { } /* end */ }; +static struct snd_kcontrol_new alc883_fivestack_mixer[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Surround Playback Switch", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0e, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("Center Playback Switch", 0x16, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("LFE Playback Switch", 0x16, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x1, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x1, HDA_INPUT), + HDA_CODEC_VOLUME("PC Speaker Playback Volume", 0x0b, 0x05, HDA_INPUT), + HDA_CODEC_MUTE("PC Speaker Playback Switch", 0x0b, 0x05, HDA_INPUT), + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 1, + .info = alc883_mux_enum_info, + .get = alc883_mux_enum_get, + .put = alc883_mux_enum_put, + }, + { } /* end */ +}; + +static struct snd_kcontrol_new alc883_tagra_mixer[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x1b, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Surround Playback Volume", 0x0d, 0x0, HDA_OUTPUT), + HDA_BIND_MUTE("Surround Playback Switch", 0x0d, 2, HDA_INPUT), + HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0e, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0e, 2, 0x0, HDA_OUTPUT), + HDA_BIND_MUTE_MONO("Center Playback Switch", 0x0e, 1, 2, HDA_INPUT), + HDA_BIND_MUTE_MONO("LFE Playback Switch", 0x0e, 2, 2, HDA_INPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x09, 0x0, HDA_INPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x09, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 2, + .info = alc883_mux_enum_info, + .get = alc883_mux_enum_get, + .put = alc883_mux_enum_put, + }, + { } /* end */ +}; + +static struct snd_kcontrol_new alc883_tagra_2ch_mixer[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x14, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x1b, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME_IDX("Capture Volume", 1, 0x09, 0x0, HDA_INPUT), + HDA_CODEC_MUTE_IDX("Capture Switch", 1, 0x09, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + /* .name = "Capture Source", */ + .name = "Input Source", + .count = 2, + .info = alc883_mux_enum_info, + .get = alc883_mux_enum_get, + .put = alc883_mux_enum_put, + }, + { } /* end */ +}; + static struct snd_kcontrol_new alc883_chmode_mixer[] = { { .iface = SNDRV_CTL_ELEM_IFACE_MIXER, @@ -4964,6 +5286,45 @@ { } }; +static struct hda_verb alc883_tagra_verbs[] = { + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT}, + + {0x18, AC_VERB_SET_CONNECT_SEL, 0x02}, /* mic/clfe */ + {0x1a, AC_VERB_SET_CONNECT_SEL, 0x01}, /* line/surround */ + {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00}, /* HP */ + + {0x14, AC_VERB_SET_UNSOLICITED_ENABLE, ALC880_HP_EVENT | AC_USRSP_EN}, + {0x01, AC_VERB_SET_GPIO_MASK, 0x03}, + {0x01, AC_VERB_SET_GPIO_DIRECTION, 0x03}, + {0x01, AC_VERB_SET_GPIO_DATA, 0x03}, + + { } /* end */ +}; + +/* toggle speaker-output according to the hp-jack state */ +static void alc883_tagra_automute(struct hda_codec *codec) +{ + unsigned int present; + + present = snd_hda_codec_read(codec, 0x14, 0, + AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; + snd_hda_codec_amp_update(codec, 0x1b, 0, HDA_OUTPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_amp_update(codec, 0x1b, 1, HDA_OUTPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_write(codec, 1, 0, AC_VERB_SET_GPIO_DATA, present ? 1 : 3); +} + +static void alc883_tagra_unsol_event(struct hda_codec *codec, unsigned int res) +{ + if ((res >> 26) == ALC880_HP_EVENT) + alc883_tagra_automute(codec); +} + /* * generic initialization of ADC, input mixers and output mixers */ @@ -5065,18 +5426,50 @@ .config = ALC883_3ST_6ch_DIG }, /* ECS to Intel*/ { .modelname = "3stack-6ch", .config = ALC883_3ST_6ch }, { .pci_subvendor = 0x108e, .pci_subdevice = 0x534d, - .config = ALC883_3ST_6ch }, - { .pci_subvendor = 0x8086, .pci_subdevice = 0xd601, - .config = ALC883_3ST_6ch }, /* D102GGC */ + .config = ALC883_3ST_6ch }, + { .pci_subvendor = 0x8086, .pci_subdevice = 0xd601, + .config = ALC883_3ST_6ch }, /* D102GGC */ { .modelname = "6stack-dig", .config = ALC883_6ST_DIG }, { .pci_subvendor = 0x1462, .pci_subdevice = 0x6668, .config = ALC883_6ST_DIG }, /* MSI */ { .pci_subvendor = 0x105b, .pci_subdevice = 0x6668, .config = ALC883_6ST_DIG }, /* Foxconn */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x7187, + .config = ALC883_6ST_DIG }, /* MSI */ + { .modelname = "targa-dig", .config = ALC883_TARGA_DIG }, + { .pci_subvendor = 0x1462, .pci_subdevice = 0x4314, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x3fcc, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x3fc1, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x3fc3, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x4314, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x4319, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x3ef9, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x4324, + .config = ALC883_TARGA_DIG }, /* MSI */ + { .modelname = "targa-2ch-dig", .config = ALC883_TARGA_2ch_DIG }, + { .pci_subvendor = 0x1462, .pci_subdevice = 0x0579, + .config = ALC883_TARGA_2ch_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0xa422, + .config = ALC883_TARGA_2ch_DIG }, /* MSI */ + { .pci_subvendor = 0x1462, .pci_subdevice = 0x3b7f, + .config = ALC883_TARGA_2ch_DIG }, /* MSI */ { .modelname = "6stack-dig-demo", .config = ALC888_DEMO_BOARD }, { .modelname = "acer", .config = ALC883_ACER }, { .pci_subvendor = 0x1025, .pci_subdevice = 0/*0x0102*/, .config = ALC883_ACER }, + { .pci_subvendor = 0x1025, .pci_subdevice = 0x0102, + .config = ALC883_ACER }, + { .pci_subvendor = 0x1025, .pci_subdevice = 0x009f, + .config = ALC883_ACER }, + { .pci_subvendor = 0x161f, .pci_subdevice = 0x2054, + .modelname = "medion", .config = ALC883_MEDION }, { .modelname = "auto", .config = ALC883_AUTO }, {} }; @@ -5134,24 +5527,53 @@ .channel_mode = alc883_sixstack_modes, .input_mux = &alc883_capture_source, }, - [ALC888_DEMO_BOARD] = { - .mixers = { alc883_base_mixer, alc883_chmode_mixer }, - .init_verbs = { alc883_init_verbs }, + [ALC883_TARGA_DIG] = { + .mixers = { alc883_tagra_mixer, alc883_chmode_mixer }, + .init_verbs = { alc883_init_verbs, alc883_tagra_verbs}, .num_dacs = ARRAY_SIZE(alc883_dac_nids), .dac_nids = alc883_dac_nids, .dig_out_nid = ALC883_DIGOUT_NID, .num_adc_nids = ARRAY_SIZE(alc883_adc_nids), .adc_nids = alc883_adc_nids, - .dig_in_nid = ALC883_DIGIN_NID, - .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes), - .channel_mode = alc883_sixstack_modes, + .num_channel_mode = ARRAY_SIZE(alc883_3ST_6ch_modes), + .channel_mode = alc883_3ST_6ch_modes, + .need_dac_fix = 1, .input_mux = &alc883_capture_source, + .unsol_event = alc883_tagra_unsol_event, + .init_hook = alc883_tagra_automute, }, - [ALC883_ACER] = { - .mixers = { alc883_base_mixer, - alc883_chmode_mixer }, - /* On TravelMate laptops, GPIO 0 enables the internal speaker - * and the headphone jack. Turn this on and rely on the + [ALC883_TARGA_2ch_DIG] = { + .mixers = { alc883_tagra_2ch_mixer}, + .init_verbs = { alc883_init_verbs, alc883_tagra_verbs}, + .num_dacs = ARRAY_SIZE(alc883_dac_nids), + .dac_nids = alc883_dac_nids, + .dig_out_nid = ALC883_DIGOUT_NID, + .num_adc_nids = ARRAY_SIZE(alc883_adc_nids), + .adc_nids = alc883_adc_nids, + .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), + .channel_mode = alc883_3ST_2ch_modes, + .input_mux = &alc883_capture_source, + .unsol_event = alc883_tagra_unsol_event, + .init_hook = alc883_tagra_automute, + }, + [ALC888_DEMO_BOARD] = { + .mixers = { alc883_base_mixer, alc883_chmode_mixer }, + .init_verbs = { alc883_init_verbs }, + .num_dacs = ARRAY_SIZE(alc883_dac_nids), + .dac_nids = alc883_dac_nids, + .dig_out_nid = ALC883_DIGOUT_NID, + .num_adc_nids = ARRAY_SIZE(alc883_adc_nids), + .adc_nids = alc883_adc_nids, + .dig_in_nid = ALC883_DIGIN_NID, + .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes), + .channel_mode = alc883_sixstack_modes, + .input_mux = &alc883_capture_source, + }, + [ALC883_ACER] = { + .mixers = { alc883_base_mixer, + alc883_chmode_mixer }, + /* On TravelMate laptops, GPIO 0 enables the internal speaker + * and the headphone jack. Turn this on and rely on the * standard mute methods whenever the user wants to turn * these outputs off. */ @@ -5164,6 +5586,20 @@ .channel_mode = alc883_3ST_2ch_modes, .input_mux = &alc883_capture_source, }, + [ALC883_MEDION] = { + .mixers = { alc883_fivestack_mixer, + alc883_chmode_mixer }, + .init_verbs = { alc883_init_verbs, + alc882_eapd_verbs }, + .num_dacs = ARRAY_SIZE(alc883_dac_nids), + .dac_nids = alc883_dac_nids, + .num_adc_nids = ARRAY_SIZE(alc883_adc_nids), + .adc_nids = alc883_adc_nids, + .num_channel_mode = ARRAY_SIZE(alc883_sixstack_modes), + .channel_mode = alc883_sixstack_modes, + .input_mux = &alc883_capture_source, + } + }; @@ -5208,7 +5644,7 @@ struct alc_spec *spec = codec->spec; hda_nid_t pin; - pin = spec->autocfg.hp_pin; + pin = spec->autocfg.hp_pins[0]; if (pin) /* connect to front */ /* use dac 0 */ alc883_auto_set_output_and_unmute(codec, pin, PIN_HP, 0); @@ -5350,6 +5786,24 @@ { } /* end */ }; +static struct snd_kcontrol_new alc262_hippo1_mixer[] = { + HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Front Playback Switch", 0x14, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x0b, 0x04, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x0b, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x0b, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Front Mic Playback Volume", 0x0b, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x0b, 0x01, HDA_INPUT), + /* HDA_CODEC_VOLUME("PC Beep Playback Volume", 0x0b, 0x05, HDA_INPUT), + HDA_CODEC_MUTE("PC Beelp Playback Switch", 0x0b, 0x05, HDA_INPUT), */ + /*HDA_CODEC_VOLUME("Headphone Playback Volume", 0x0D, 0x0, HDA_OUTPUT),*/ + HDA_CODEC_MUTE("Headphone Playback Switch", 0x1b, 0x0, HDA_OUTPUT), + { } /* end */ +}; + static struct snd_kcontrol_new alc262_HP_BPC_mixer[] = { HDA_CODEC_VOLUME("Front Playback Volume", 0x0c, 0x0, HDA_OUTPUT), HDA_CODEC_MUTE("Front Playback Switch", 0x15, 0x0, HDA_OUTPUT), @@ -5454,6 +5908,103 @@ { } }; +static struct hda_verb alc262_hippo_unsol_verbs[] = { + {0x15, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, + {0x15, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {} +}; + +static struct hda_verb alc262_hippo1_unsol_verbs[] = { + {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0}, + {0x1b, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x1b, AC_VERB_SET_AMP_GAIN_MUTE, 0x0000}, + + {0x1b, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, + {0x1b, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP}, + {} +}; + +/* mute/unmute internal speaker according to the hp jack and mute state */ +static void alc262_hippo_automute(struct hda_codec *codec, int force) +{ + struct alc_spec *spec = codec->spec; + unsigned int mute; + + if (force || ! spec->sense_updated) { + unsigned int present; + /* need to execute and sync at first */ + snd_hda_codec_read(codec, 0x15, 0, AC_VERB_SET_PIN_SENSE, 0); + present = snd_hda_codec_read(codec, 0x15, 0, + AC_VERB_GET_PIN_SENSE, 0); + spec->jack_present = (present & 0x80000000) != 0; + spec->sense_updated = 1; + } + if (spec->jack_present) { + /* mute internal speaker */ + snd_hda_codec_amp_update(codec, 0x14, 0, HDA_OUTPUT, 0, + 0x80, 0x80); + snd_hda_codec_amp_update(codec, 0x14, 1, HDA_OUTPUT, 0, + 0x80, 0x80); + } else { + /* unmute internal speaker if necessary */ + mute = snd_hda_codec_amp_read(codec, 0x15, 0, HDA_OUTPUT, 0); + snd_hda_codec_amp_update(codec, 0x14, 0, HDA_OUTPUT, 0, + 0x80, mute & 0x80); + mute = snd_hda_codec_amp_read(codec, 0x15, 1, HDA_OUTPUT, 0); + snd_hda_codec_amp_update(codec, 0x14, 1, HDA_OUTPUT, 0, + 0x80, mute & 0x80); + } +} + +/* unsolicited event for HP jack sensing */ +static void alc262_hippo_unsol_event(struct hda_codec *codec, + unsigned int res) +{ + if ((res >> 26) != ALC880_HP_EVENT) + return; + alc262_hippo_automute(codec, 1); +} + +static void alc262_hippo1_automute(struct hda_codec *codec, int force) +{ + struct alc_spec *spec = codec->spec; + unsigned int mute; + + if (force || ! spec->sense_updated) { + unsigned int present; + /* need to execute and sync at first */ + snd_hda_codec_read(codec, 0x1b, 0, AC_VERB_SET_PIN_SENSE, 0); + present = snd_hda_codec_read(codec, 0x1b, 0, + AC_VERB_GET_PIN_SENSE, 0); + spec->jack_present = (present & 0x80000000) != 0; + spec->sense_updated = 1; + } + if (spec->jack_present) { + /* mute internal speaker */ + snd_hda_codec_amp_update(codec, 0x14, 0, HDA_OUTPUT, 0, + 0x80, 0x80); + snd_hda_codec_amp_update(codec, 0x14, 1, HDA_OUTPUT, 0, + 0x80, 0x80); + } else { + /* unmute internal speaker if necessary */ + mute = snd_hda_codec_amp_read(codec, 0x1b, 0, HDA_OUTPUT, 0); + snd_hda_codec_amp_update(codec, 0x14, 0, HDA_OUTPUT, 0, + 0x80, mute & 0x80); + mute = snd_hda_codec_amp_read(codec, 0x1b, 1, HDA_OUTPUT, 0); + snd_hda_codec_amp_update(codec, 0x14, 1, HDA_OUTPUT, 0, + 0x80, mute & 0x80); + } +} + +/* unsolicited event for HP jack sensing */ +static void alc262_hippo1_unsol_event(struct hda_codec *codec, + unsigned int res) +{ + if ((res >> 26) != ALC880_HP_EVENT) + return; + alc262_hippo1_automute(codec, 1); +} + /* * fujitsu model * 0x14 = headphone/spdif-out, 0x15 = internal speaker @@ -5630,7 +6181,7 @@ return err; } } - nid = cfg->hp_pin; + nid = cfg->hp_pins[0]; if (nid) { /* spec->multiout.hp_nid = 2; */ if (nid == 0x16) { @@ -5862,12 +6413,20 @@ */ static struct hda_board_config alc262_cfg_tbl[] = { { .modelname = "basic", .config = ALC262_BASIC }, + { .modelname = "hippo", + .pci_subvendor =0x1002, .pci_subdevice = 0x437b, + .config = ALC262_HIPPO}, + { .modelname = "hippo_1", + .pci_subvendor =0x17ff, .pci_subdevice = 0x058f, + .config = ALC262_HIPPO_1}, { .modelname = "fujitsu", .config = ALC262_FUJITSU }, { .pci_subvendor = 0x10cf, .pci_subdevice = 0x1397, .config = ALC262_FUJITSU }, { .modelname = "hp-bpc", .config = ALC262_HP_BPC }, - { .pci_subvendor = 0x103c, .pci_subdevice = 0x208c, + { .pci_subvendor = 0x103c, .pci_subdevice = 0x280c, .config = ALC262_HP_BPC }, /* xw4400 */ + { .pci_subvendor = 0x103c, .pci_subdevice = 0x2801, + .config = ALC262_HP_BPC }, /* q965 */ { .pci_subvendor = 0x103c, .pci_subdevice = 0x3014, .config = ALC262_HP_BPC }, /* xw6400 */ { .pci_subvendor = 0x103c, .pci_subdevice = 0x3015, @@ -5892,6 +6451,30 @@ .channel_mode = alc262_modes, .input_mux = &alc262_capture_source, }, + [ALC262_HIPPO] = { + .mixers = { alc262_base_mixer }, + .init_verbs = { alc262_init_verbs, alc262_hippo_unsol_verbs}, + .num_dacs = ARRAY_SIZE(alc262_dac_nids), + .dac_nids = alc262_dac_nids, + .hp_nid = 0x03, + .dig_out_nid = ALC262_DIGOUT_NID, + .num_channel_mode = ARRAY_SIZE(alc262_modes), + .channel_mode = alc262_modes, + .input_mux = &alc262_capture_source, + .unsol_event = alc262_hippo_unsol_event, + }, + [ALC262_HIPPO_1] = { + .mixers = { alc262_hippo1_mixer }, + .init_verbs = { alc262_init_verbs, alc262_hippo1_unsol_verbs}, + .num_dacs = ARRAY_SIZE(alc262_dac_nids), + .dac_nids = alc262_dac_nids, + .hp_nid = 0x02, + .dig_out_nid = ALC262_DIGOUT_NID, + .num_channel_mode = ARRAY_SIZE(alc262_modes), + .channel_mode = alc262_modes, + .input_mux = &alc262_capture_source, + .unsol_event = alc262_hippo1_unsol_event, + }, [ALC262_FUJITSU] = { .mixers = { alc262_fujitsu_mixer }, .init_verbs = { alc262_init_verbs, alc262_fujitsu_unsol_verbs }, @@ -6070,6 +6653,44 @@ { 4, alc861_uniwill_m31_ch4_init }, }; +/* Set mic1 and line-in as input and unmute the mixer */ +static struct hda_verb alc861_asus_ch2_init[] = { + /* set pin widget 1Ah (line in) for input */ + { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* set pin widget 18h (mic1/2) for input, for mic also enable the vref */ + { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb00c }, +#if 0 + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x01 << 8)) }, /*mic*/ + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7000 | (0x02 << 8)) }, /*line-in*/ +#endif + { } /* end */ +}; +/* Set mic1 nad line-in as output and mute mixer */ +static struct hda_verb alc861_asus_ch6_init[] = { + /* set pin widget 1Ah (line in) for output (Back Surround)*/ + { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + /* { 0x0c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, */ + /* set pin widget 18h (mic1) for output (CLFE)*/ + { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + /* { 0x0d, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE }, */ + { 0x0c, AC_VERB_SET_CONNECT_SEL, 0x00 }, + { 0x0d, AC_VERB_SET_CONNECT_SEL, 0x00 }, + + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb080 }, +#if 0 + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x01 << 8)) }, /*mic*/ + { 0x15, AC_VERB_SET_AMP_GAIN_MUTE, (0x7080 | (0x02 << 8)) }, /*line in*/ +#endif + { } /* end */ +}; + +static struct hda_channel_mode alc861_asus_modes[2] = { + { 2, alc861_asus_ch2_init }, + { 6, alc861_asus_ch6_init }, +}; + /* patch-ALC861 */ static struct snd_kcontrol_new alc861_base_mixer[] = { @@ -6147,6 +6768,28 @@ }, { } /* end */ }; + +static struct snd_kcontrol_new alc861_toshiba_mixer[] = { + /* output mixer control */ + HDA_CODEC_MUTE("Master Playback Switch", 0x03, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x15, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x15, 0x01, HDA_INPUT), + + /*Capture mixer control */ + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .count = 1, + .info = alc_mux_enum_info, + .get = alc_mux_enum_get, + .put = alc_mux_enum_put, + }, + + { } /* end */ +}; + static struct snd_kcontrol_new alc861_uniwill_m31_mixer[] = { /* output mixer control */ HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), @@ -6188,6 +6831,49 @@ }, { } /* end */ }; + +static snd_kcontrol_new_t alc861_asus_mixer[] = { + /* output mixer control */ + HDA_CODEC_MUTE("Front Playback Switch", 0x03, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Surround Playback Switch", 0x06, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("Center Playback Switch", 0x05, 1, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE_MONO("LFE Playback Switch", 0x05, 2, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Side Playback Switch", 0x04, 0x0, HDA_OUTPUT), + + /* Input mixer control */ + HDA_CODEC_VOLUME("Input Playback Volume", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_MUTE("Input Playback Switch", 0x15, 0x0, HDA_OUTPUT), + HDA_CODEC_VOLUME("CD Playback Volume", 0x15, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("CD Playback Switch", 0x15, 0x0, HDA_INPUT), + HDA_CODEC_VOLUME("Line Playback Volume", 0x15, 0x02, HDA_INPUT), + HDA_CODEC_MUTE("Line Playback Switch", 0x15, 0x02, HDA_INPUT), + HDA_CODEC_VOLUME("Mic Playback Volume", 0x15, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Mic Playback Switch", 0x15, 0x01, HDA_INPUT), + HDA_CODEC_MUTE("Front Mic Playback Switch", 0x10, 0x01, HDA_OUTPUT), + HDA_CODEC_MUTE("Headphone Playback Switch", 0x1a, 0x03, HDA_OUTPUT), /* was HDA_INPUT (why?) */ + + /* Capture mixer control */ + HDA_CODEC_VOLUME("Capture Volume", 0x08, 0x0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x08, 0x0, HDA_INPUT), + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .count = 1, + .info = alc_mux_enum_info, + .get = alc_mux_enum_get, + .put = alc_mux_enum_put, + }, + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Channel Mode", + .info = alc_ch_mode_info, + .get = alc_ch_mode_get, + .put = alc_ch_mode_put, + .private_value = ARRAY_SIZE(alc861_asus_modes), + }, + { } +}; + /* * generic initialization of ADC, input mixers and output mixers @@ -6377,6 +7063,68 @@ { } }; +static struct hda_verb alc861_asus_init_verbs[] = { + /* + * Unmute ADC0 and set the default input to mic-in + */ + /* port-A for surround (rear panel) | according to codec#0 this is the HP jack*/ + { 0x0e, AC_VERB_SET_PIN_WIDGET_CONTROL, 0xc0 }, /* was 0x00 */ + /* route front PCM to HP */ + { 0x0e, AC_VERB_SET_CONNECT_SEL, 0x01 }, + /* port-B for mic-in (rear panel) with vref */ + { 0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + /* port-C for line-in (rear panel) */ + { 0x0c, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* port-D for Front */ + { 0x0b, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + { 0x0b, AC_VERB_SET_CONNECT_SEL, 0x00 }, + /* port-E for HP out (front panel) */ + { 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, /* this has to be set to VREF80 */ + /* route front PCM to HP */ + { 0x0f, AC_VERB_SET_CONNECT_SEL, 0x01 }, + /* port-F for mic-in (front panel) with vref */ + { 0x10, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x24 }, + /* port-G for CLFE (rear panel) */ + { 0x1f, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + /* port-H for side (rear panel) */ + { 0x20, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x40 }, + /* CD-in */ + { 0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, 0x20 }, + /* route front mic to ADC1*/ + {0x08, AC_VERB_SET_CONNECT_SEL, 0x00}, + {0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + /* Unmute DAC0~3 & spdif out*/ + {0x03, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x04, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x06, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, + /* Unmute Mixer 14 (mic) 1c (Line in)*/ + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x014, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x01c, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + + /* Unmute Stereo Mixer 15 */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, 0xb00c }, /* Output 0~12 step */ + + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x16, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x17, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x18, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, + {0x19, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)}, + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(3)}, /* hp used DAC 3 (Front) */ + {0x1a, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(2)}, + { } +}; + + /* * generic initialization of ADC, input mixers and output mixers */ @@ -6429,6 +7177,39 @@ { } }; +static struct hda_verb alc861_toshiba_init_verbs[] = { + {0x0f, AC_VERB_SET_UNSOLICITED_ENABLE, AC_USRSP_EN | ALC880_HP_EVENT}, + + { } +}; + +/* toggle speaker-output according to the hp-jack state */ +static void alc861_toshiba_automute(struct hda_codec *codec) +{ + unsigned int present; + + present = snd_hda_codec_read(codec, 0x0f, 0, + AC_VERB_GET_PIN_SENSE, 0) & 0x80000000; + snd_hda_codec_amp_update(codec, 0x16, 0, HDA_INPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_amp_update(codec, 0x16, 1, HDA_INPUT, 0, + 0x80, present ? 0x80 : 0); + snd_hda_codec_amp_update(codec, 0x1a, 0, HDA_INPUT, 3, + 0x80, present ? 0 : 0x80); + snd_hda_codec_amp_update(codec, 0x1a, 1, HDA_INPUT, 3, + 0x80, present ? 0 : 0x80); +} + +static void alc861_toshiba_unsol_event(struct hda_codec *codec, + unsigned int res) +{ + /* Looks like the unsol event is incompatible with the standard + * definition. 6bit tag is placed at 26 bit! + */ + if ((res >> 26) == ALC880_HP_EVENT) + alc861_toshiba_automute(codec); +} + /* pcm configuration: identiacal with ALC880 */ #define alc861_pcm_analog_playback alc880_pcm_analog_playback #define alc861_pcm_analog_capture alc880_pcm_analog_capture @@ -6630,7 +7411,7 @@ struct alc_spec *spec = codec->spec; hda_nid_t pin; - pin = spec->autocfg.hp_pin; + pin = spec->autocfg.hp_pins[0]; if (pin) /* connect to front */ alc861_auto_set_output_and_unmute(codec, pin, PIN_HP, spec->multiout.dac_nids[0]); } @@ -6665,7 +7446,7 @@ if ((err = alc861_auto_fill_dac_nids(spec, &spec->autocfg)) < 0 || (err = alc861_auto_create_multi_out_ctls(spec, &spec->autocfg)) < 0 || - (err = alc861_auto_create_hp_ctls(spec, spec->autocfg.hp_pin)) < 0 || + (err = alc861_auto_create_hp_ctls(spec, spec->autocfg.hp_pins[0])) < 0 || (err = alc861_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) return err; @@ -6714,6 +7495,14 @@ { .modelname = "uniwill-m31", .config = ALC861_UNIWILL_M31}, { .pci_subvendor = 0x1584, .pci_subdevice = 0x9072, .config = ALC861_UNIWILL_M31 }, + { .modelname = "toshiba", .config = ALC861_TOSHIBA }, + { .pci_subvendor = 0x1179, .pci_subdevice = 0xff10, + .config = ALC861_TOSHIBA }, + { .modelname = "asus", .config = ALC861_ASUS}, + { .pci_subvendor = 0x1043, .pci_subdevice = 0x1393, + .config = ALC861_ASUS }, + { .pci_subvendor = 0x1043, .pci_subdevice = 0x1338, + .config = ALC861_ASUS }, { .modelname = "auto", .config = ALC861_AUTO }, {} }; @@ -6781,7 +7570,33 @@ .adc_nids = alc861_adc_nids, .input_mux = &alc861_capture_source, }, - + [ALC861_TOSHIBA] = { + .mixers = { alc861_toshiba_mixer }, + .init_verbs = { alc861_base_init_verbs, alc861_toshiba_init_verbs }, + .num_dacs = ARRAY_SIZE(alc861_dac_nids), + .dac_nids = alc861_dac_nids, + .num_channel_mode = ARRAY_SIZE(alc883_3ST_2ch_modes), + .channel_mode = alc883_3ST_2ch_modes, + .num_adc_nids = ARRAY_SIZE(alc861_adc_nids), + .adc_nids = alc861_adc_nids, + .input_mux = &alc861_capture_source, + .unsol_event = alc861_toshiba_unsol_event, + .init_hook = alc861_toshiba_automute, + }, + [ALC861_ASUS] = { + .mixers = { alc861_asus_mixer }, + .init_verbs = { alc861_asus_init_verbs }, + .num_dacs = ARRAY_SIZE(alc861_dac_nids), + .dac_nids = alc861_dac_nids, + .dig_out_nid = ALC861_DIGOUT_NID, + .num_channel_mode = ARRAY_SIZE(alc861_asus_modes), + .channel_mode = alc861_asus_modes, + .need_dac_fix = 1, + .hp_nid = 0x06, + .num_adc_nids = ARRAY_SIZE(alc861_adc_nids), + .adc_nids = alc861_adc_nids, + .input_mux = &alc861_capture_source, + }, }; @@ -6850,7 +7665,8 @@ { .id = 0x10ec0888, .name = "ALC888", .patch = patch_alc883 }, { .id = 0x10ec0861, .rev = 0x100300, .name = "ALC861", .patch = patch_alc861 }, - { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", + { .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660", .patch = patch_alc861 }, + { .id = 0x10ec0660, .name = "ALC660", .patch = patch_alc861 }, {} /* terminator */ }; --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/patch_atihdmi.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/patch_atihdmi.c @@ -161,5 +161,6 @@ */ struct hda_codec_preset snd_hda_preset_atihdmi[] = { { .id = 0x1002793c, .name = "ATI RS600 HDMI", .patch = patch_atihdmi }, + { .id = 0x1002791a, .name = "ATI RS690 HDMI", .patch = patch_atihdmi }, {} /* terminator */ }; --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/hda_generic.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/hda_generic.c @@ -46,11 +46,18 @@ }; /* patch-specific record */ + +#define MAX_PCM_VOLS 2 +struct pcm_vol { + struct hda_gnode *node; /* Node for PCM volume */ + unsigned int index; /* connection of PCM volume */ +}; + struct hda_gspec { struct hda_gnode *dac_node[2]; /* DAC node */ struct hda_gnode *out_pin_node[2]; /* Output pin (Line-Out) node */ - struct hda_gnode *pcm_vol_node[2]; /* Node for PCM volume */ - unsigned int pcm_vol_index[2]; /* connection of PCM volume */ + struct pcm_vol pcm_vol[MAX_PCM_VOLS]; /* PCM volumes */ + unsigned int pcm_vol_nodes; /* number of PCM volumes */ struct hda_gnode *adc_node; /* ADC node */ struct hda_gnode *cap_vol_node; /* Node for capture volume */ @@ -285,9 +292,11 @@ return node == spec->dac_node[dac_idx]; } spec->dac_node[dac_idx] = node; - if (node->wid_caps & AC_WCAP_OUT_AMP) { - spec->pcm_vol_node[dac_idx] = node; - spec->pcm_vol_index[dac_idx] = 0; + if ((node->wid_caps & AC_WCAP_OUT_AMP) && + spec->pcm_vol_nodes < MAX_PCM_VOLS) { + spec->pcm_vol[spec->pcm_vol_nodes].node = node; + spec->pcm_vol[spec->pcm_vol_nodes].index = 0; + spec->pcm_vol_nodes++; } return 1; /* found */ } @@ -307,13 +316,16 @@ select_input_connection(codec, node, i); unmute_input(codec, node, i); unmute_output(codec, node); - if (! spec->pcm_vol_node[dac_idx]) { - if (node->wid_caps & AC_WCAP_IN_AMP) { - spec->pcm_vol_node[dac_idx] = node; - spec->pcm_vol_index[dac_idx] = i; - } else if (node->wid_caps & AC_WCAP_OUT_AMP) { - spec->pcm_vol_node[dac_idx] = node; - spec->pcm_vol_index[dac_idx] = 0; + if (spec->dac_node[dac_idx] && + spec->pcm_vol_nodes < MAX_PCM_VOLS && + !(spec->dac_node[dac_idx]->wid_caps & + AC_WCAP_OUT_AMP)) { + if ((node->wid_caps & AC_WCAP_IN_AMP) || + (node->wid_caps & AC_WCAP_OUT_AMP)) { + int n = spec->pcm_vol_nodes; + spec->pcm_vol[n].node = node; + spec->pcm_vol[n].index = i; + spec->pcm_vol_nodes++; } } return 1; @@ -370,7 +382,9 @@ /* set PIN-Out enable */ snd_hda_codec_write(codec, node->nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, - AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN); + AC_PINCTL_OUT_EN | + ((node->pin_caps & AC_PINCAP_HP_DRV) ? + AC_PINCTL_HP_EN : 0)); return node; } } @@ -461,14 +475,19 @@ return "Front Line"; return "Line"; case AC_JACK_CD: +#if 0 if (pinctl) *pinctl |= AC_PINCTL_VREF_GRD; +#endif return "CD"; case AC_JACK_AUX: if ((location & 0x0f) == AC_JACK_LOC_FRONT) return "Front Aux"; return "Aux"; case AC_JACK_MIC_IN: + if (node->pin_caps & + (AC_PINCAP_VREF_80 << AC_PINCAP_VREF_SHIFT)) + *pinctl |= AC_PINCTL_VREF_80; if ((location & 0x0f) == AC_JACK_LOC_FRONT) return "Front Mic"; return "Mic"; @@ -556,6 +575,29 @@ return 1; /* found */ } +/* add a capture source element */ +static void add_cap_src(struct hda_gspec *spec, int idx) +{ + struct hda_input_mux_item *csrc; + char *buf; + int num, ocap; + + num = spec->input_mux.num_items; + csrc = &spec->input_mux.items[num]; + buf = spec->cap_labels[num]; + for (ocap = 0; ocap < num; ocap++) { + if (! strcmp(buf, spec->cap_labels[ocap])) { + /* same label already exists, + * put the index number to be unique + */ + sprintf(buf, "%s %d", spec->cap_labels[ocap], num); + break; + } + } + csrc->index = idx; + spec->input_mux.num_items++; +} + /* * parse input */ @@ -576,28 +618,26 @@ * if it reaches to a proper input PIN, add the path as the * input path. */ + /* first, check the direct connections to PIN widgets */ for (i = 0; i < adc_node->nconns; i++) { node = hda_get_node(spec, adc_node->conn_list[i]); - if (! node) - continue; - err = parse_adc_sub_nodes(codec, spec, node); - if (err < 0) - return err; - else if (err > 0) { - struct hda_input_mux_item *csrc = &spec->input_mux.items[spec->input_mux.num_items]; - char *buf = spec->cap_labels[spec->input_mux.num_items]; - int ocap; - for (ocap = 0; ocap < spec->input_mux.num_items; ocap++) { - if (! strcmp(buf, spec->cap_labels[ocap])) { - /* same label already exists, - * put the index number to be unique - */ - sprintf(buf, "%s %d", spec->cap_labels[ocap], - spec->input_mux.num_items); - } - } - csrc->index = i; - spec->input_mux.num_items++; + if (node && node->type == AC_WID_PIN) { + err = parse_adc_sub_nodes(codec, spec, node); + if (err < 0) + return err; + else if (err > 0) + add_cap_src(spec, i); + } + } + /* ... then check the rests, more complicated connections */ + for (i = 0; i < adc_node->nconns; i++) { + node = hda_get_node(spec, adc_node->conn_list[i]); + if (node && node->type != AC_WID_PIN) { + err = parse_adc_sub_nodes(codec, spec, node); + if (err < 0) + return err; + else if (err > 0) + add_cap_src(spec, i); } } @@ -647,9 +687,6 @@ /* * create mixer controls if possible */ -#define DIR_OUT 0x1 -#define DIR_IN 0x2 - static int create_mixer(struct hda_codec *codec, struct hda_gnode *node, unsigned int index, const char *type, const char *dir_sfx) { @@ -722,49 +759,97 @@ /* * build output mixer controls */ -static int build_output_controls(struct hda_codec *codec) +static int create_output_mixers(struct hda_codec *codec, const char **names) { struct hda_gspec *spec = codec->spec; - static const char *types[2] = { "Master", "Headphone" }; int i, err; - for (i = 0; i < 2 && spec->pcm_vol_node[i]; i++) { - err = create_mixer(codec, spec->pcm_vol_node[i], - spec->pcm_vol_index[i], - types[i], "Playback"); + for (i = 0; i < spec->pcm_vol_nodes; i++) { + err = create_mixer(codec, spec->pcm_vol[i].node, + spec->pcm_vol[i].index, + names[i], "Playback"); if (err < 0) return err; } return 0; } +static int build_output_controls(struct hda_codec *codec) +{ + struct hda_gspec *spec = codec->spec; + static const char *types_speaker[] = { "Speaker", "Headphone" }; + static const char *types_line[] = { "Front", "Headphone" }; + + switch (spec->pcm_vol_nodes) { + case 1: + return create_mixer(codec, spec->pcm_vol[0].node, + spec->pcm_vol[0].index, + "Master", "Playback"); + case 2: + if (defcfg_type(spec->out_pin_node[0]) == AC_JACK_SPEAKER) + return create_output_mixers(codec, types_speaker); + else + return create_output_mixers(codec, types_line); + } + return 0; +} + /* create capture volume/switch */ static int build_input_controls(struct hda_codec *codec) { struct hda_gspec *spec = codec->spec; struct hda_gnode *adc_node = spec->adc_node; - int err; + int i, err; + static struct snd_kcontrol_new cap_sel = { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .info = capture_source_info, + .get = capture_source_get, + .put = capture_source_put, + }; - if (! adc_node) + if (! adc_node || ! spec->input_mux.num_items) return 0; /* not found */ + spec->cur_cap_src = 0; + select_input_connection(codec, adc_node, + spec->input_mux.items[0].index); + /* create capture volume and switch controls if the ADC has an amp */ - err = create_mixer(codec, adc_node, 0, NULL, "Capture"); + /* do we have only a single item? */ + if (spec->input_mux.num_items == 1) { + err = create_mixer(codec, adc_node, + spec->input_mux.items[0].index, + NULL, "Capture"); + if (err < 0) + return err; + return 0; + } /* create input MUX if multiple sources are available */ - if (spec->input_mux.num_items > 1) { - static struct snd_kcontrol_new cap_sel = { - .iface = SNDRV_CTL_ELEM_IFACE_MIXER, - .name = "Capture Source", - .info = capture_source_info, - .get = capture_source_get, - .put = capture_source_put, - }; - if ((err = snd_ctl_add(codec->bus->card, snd_ctl_new1(&cap_sel, codec))) < 0) + if ((err = snd_ctl_add(codec->bus->card, + snd_ctl_new1(&cap_sel, codec))) < 0) + return err; + + /* no volume control? */ + if (! (adc_node->wid_caps & AC_WCAP_IN_AMP) || + ! (adc_node->amp_in_caps & AC_AMPCAP_NUM_STEPS)) + return 0; + + for (i = 0; i < spec->input_mux.num_items; i++) { + struct snd_kcontrol_new knew; + char name[32]; + sprintf(name, "%s Capture Volume", + spec->input_mux.items[i].label); + knew = (struct snd_kcontrol_new) + HDA_CODEC_VOLUME(name, adc_node->nid, + spec->input_mux.items[i].index, + HDA_INPUT); + if ((err = snd_ctl_add(codec->bus->card, + snd_ctl_new1(&knew, codec))) < 0) return err; - spec->cur_cap_src = 0; - select_input_connection(codec, adc_node, spec->input_mux.items[0].index); } + return 0; } --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/hda_codec.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/hda_codec.c @@ -50,8 +50,10 @@ /* codec vendor labels */ static struct hda_vendor_id hda_vendor_ids[] = { { 0x10ec, "Realtek" }, + { 0x1057, "Motorola" }, { 0x11d4, "Analog Devices" }, { 0x13f6, "C-Media" }, + { 0x14f1, "Conexant" }, { 0x434d, "C-Media" }, { 0x8384, "SigmaTel" }, {} /* terminator */ @@ -1477,10 +1479,10 @@ formats |= SNDRV_PCM_FMTBIT_S32_LE; if (val & AC_SUPPCM_BITS_32) bps = 32; - else if (val & AC_SUPPCM_BITS_20) - bps = 20; else if (val & AC_SUPPCM_BITS_24) bps = 24; + else if (val & AC_SUPPCM_BITS_20) + bps = 20; } } else if (streams == AC_SUPFMT_FLOAT32) { /* should be exclusive */ @@ -1984,7 +1986,7 @@ * in the order of front, rear, CLFE, side, ... * * If more extra outputs (speaker and headphone) are found, the pins are - * assisnged to hp_pin and speaker_pins[], respectively. If no line-out jack + * assigned to hp_pins[] and speaker_pins[], respectively. If no line-out jack * is detected, one of speaker of HP pins is assigned as the primary * output, i.e. to line_out_pins[0]. So, line_outs is always positive * if any analog output exists. @@ -2046,14 +2048,26 @@ cfg->speaker_outs++; break; case AC_JACK_HP_OUT: - cfg->hp_pin = nid; + if (cfg->hp_outs >= ARRAY_SIZE(cfg->hp_pins)) + continue; + cfg->hp_pins[cfg->hp_outs] = nid; + cfg->hp_outs++; break; - case AC_JACK_MIC_IN: - if (loc == AC_JACK_LOC_FRONT) - cfg->input_pins[AUTO_PIN_FRONT_MIC] = nid; - else - cfg->input_pins[AUTO_PIN_MIC] = nid; + case AC_JACK_MIC_IN: { + int preferred, alt; + if (loc == AC_JACK_LOC_FRONT) { + preferred = AUTO_PIN_FRONT_MIC; + alt = AUTO_PIN_MIC; + } else { + preferred = AUTO_PIN_MIC; + alt = AUTO_PIN_FRONT_MIC; + } + if (!cfg->input_pins[preferred]) + cfg->input_pins[preferred] = nid; + else if (!cfg->input_pins[alt]) + cfg->input_pins[alt] = nid; break; + } case AC_JACK_LINE_IN: if (loc == AC_JACK_LOC_FRONT) cfg->input_pins[AUTO_PIN_FRONT_LINE] = nid; @@ -2119,8 +2133,10 @@ cfg->speaker_outs, cfg->speaker_pins[0], cfg->speaker_pins[1], cfg->speaker_pins[2], cfg->speaker_pins[3], cfg->speaker_pins[4]); - snd_printd(" hp=0x%x, dig_out=0x%x, din_in=0x%x\n", - cfg->hp_pin, cfg->dig_out_pin, cfg->dig_in_pin); + snd_printd(" hp_outs=%d (0x%x/0x%x/0x%x/0x%x/0x%x)\n", + cfg->hp_outs, cfg->hp_pins[0], + cfg->hp_pins[1], cfg->hp_pins[2], + cfg->hp_pins[3], cfg->hp_pins[4]); snd_printd(" inputs: mic=0x%x, fmic=0x%x, line=0x%x, fline=0x%x," " cd=0x%x, aux=0x%x\n", cfg->input_pins[AUTO_PIN_MIC], @@ -2141,10 +2157,12 @@ sizeof(cfg->speaker_pins)); cfg->speaker_outs = 0; memset(cfg->speaker_pins, 0, sizeof(cfg->speaker_pins)); - } else if (cfg->hp_pin) { - cfg->line_outs = 1; - cfg->line_out_pins[0] = cfg->hp_pin; - cfg->hp_pin = 0; + } else if (cfg->hp_outs) { + cfg->line_outs = cfg->hp_outs; + memcpy(cfg->line_out_pins, cfg->hp_pins, + sizeof(cfg->hp_pins)); + cfg->hp_outs = 0; + memset(cfg->hp_pins, 0, sizeof(cfg->hp_pins)); } } --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/patch_sigmatel.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/patch_sigmatel.c @@ -42,9 +42,10 @@ #define STAC_D945GTP3 1 #define STAC_D945GTP5 2 #define STAC_MACMINI 3 -#define STAC_D965_2112 4 -#define STAC_D965_284B 5 -#define STAC_922X_MODELS 6 /* number of 922x models */ +#define STAC_922X_MODELS 4 /* number of 922x models */ +#define STAC_D965_3ST 4 +#define STAC_D965_5ST 5 +#define STAC_927X_MODELS 6 /* number of 927x models */ struct sigmatel_spec { struct snd_kcontrol_new *mixers[4]; @@ -73,6 +74,7 @@ hda_nid_t *pin_nids; unsigned int num_pins; unsigned int *pin_configs; + unsigned int *bios_pin_configs; /* codec specific stuff */ struct hda_verb *init; @@ -110,24 +112,10 @@ 0x06, 0x07, }; -static hda_nid_t stac9227_adc_nids[2] = { - 0x07, 0x08, -}; - -#if 0 -static hda_nid_t d965_2112_dac_nids[3] = { - 0x02, 0x03, 0x05, -}; -#endif - static hda_nid_t stac922x_mux_nids[2] = { 0x12, 0x13, }; -static hda_nid_t stac9227_mux_nids[2] = { - 0x15, 0x16, -}; - static hda_nid_t stac927x_adc_nids[3] = { 0x07, 0x08, 0x09 }; @@ -145,7 +133,8 @@ }; static hda_nid_t stac9200_pin_nids[8] = { - 0x08, 0x09, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, + 0x08, 0x09, 0x0d, 0x0e, + 0x0f, 0x10, 0x11, 0x12, }; static hda_nid_t stac922x_pin_nids[10] = { @@ -204,17 +193,9 @@ {} }; -static struct hda_verb stac9227_core_init[] = { +static struct hda_verb d965_core_init[] = { /* set master volume and direct control */ - { 0x16, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, - /* unmute node 0x1b */ - { 0x1b, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000}, - {} -}; - -static struct hda_verb d965_2112_core_init[] = { - /* set master volume and direct control */ - { 0x16, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, + { 0x24, AC_VERB_SET_VOLUME_KNOB_CONTROL, 0xff}, /* unmute node 0x1b */ { 0x1b, AC_VERB_SET_AMP_GAIN_MUTE, 0xb000}, /* select node 0x03 as DAC */ @@ -355,6 +336,13 @@ .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x2668, /* DFI LanParty */ .config = STAC_REF }, + /* Dell laptops have BIOS problem */ + { .pci_subvendor = PCI_VENDOR_ID_DELL, .pci_subdevice = 0x01b5, + .config = STAC_REF }, /* Dell Inspiron 630m */ + { .pci_subvendor = PCI_VENDOR_ID_DELL, .pci_subdevice = 0x01c2, + .config = STAC_REF }, /* Dell Latitude D620 */ + { .pci_subvendor = PCI_VENDOR_ID_DELL, .pci_subdevice = 0x01cb, + .config = STAC_REF }, /* Dell Latitude 120L */ {} /* terminator */ }; @@ -376,38 +364,67 @@ 0x02a19320, 0x40000100, }; -static unsigned int d965_2112_pin_configs[10] = { - 0x0221401f, 0x40000100, 0x40000100, 0x01014011, - 0x01a19021, 0x01813024, 0x01452130, 0x40000100, - 0x02a19320, 0x40000100, -}; - static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { [STAC_REF] = ref922x_pin_configs, [STAC_D945GTP3] = d945gtp3_pin_configs, [STAC_D945GTP5] = d945gtp5_pin_configs, [STAC_MACMINI] = d945gtp5_pin_configs, - [STAC_D965_2112] = d965_2112_pin_configs, }; static struct hda_board_config stac922x_cfg_tbl[] = { + { .modelname = "5stack", .config = STAC_D945GTP5 }, + { .modelname = "3stack", .config = STAC_D945GTP3 }, { .modelname = "ref", .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x2668, /* DFI LanParty */ .config = STAC_REF }, /* SigmaTel reference board */ + /* Intel 945G based systems */ { .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x0101, .config = STAC_D945GTP3 }, /* Intel D945GTP - 3 Stack */ { .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x0202, - .config = STAC_D945GTP3 }, /* Intel D945GNT - 3 Stack, 9221 A1 */ + .config = STAC_D945GTP3 }, /* Intel D945GNT - 3 Stack */ { .pci_subvendor = PCI_VENDOR_ID_INTEL, - .pci_subdevice = 0x0b0b, - .config = STAC_D945GTP3 }, /* Intel D945PSN - 3 Stack, 9221 A1 */ + .pci_subdevice = 0x0606, + .config = STAC_D945GTP3 }, /* Intel D945GTP - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0601, + .config = STAC_D945GTP3 }, /* Intel D945GTP - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0111, + .config = STAC_D945GTP3 }, /* Intel D945GZP - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x1115, + .config = STAC_D945GTP3 }, /* Intel D945GPM - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x1116, + .config = STAC_D945GTP3 }, /* Intel D945GBO - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x1117, + .config = STAC_D945GTP3 }, /* Intel D945GPM - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x1118, + .config = STAC_D945GTP3 }, /* Intel D945GPM - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x1119, + .config = STAC_D945GTP3 }, /* Intel D945GPM - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x8826, + .config = STAC_D945GTP3 }, /* Intel D945GPM - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x5049, + .config = STAC_D945GTP3 }, /* Intel D945GCZ - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x5055, + .config = STAC_D945GTP3 }, /* Intel D945GCZ - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x5048, + .config = STAC_D945GTP3 }, /* Intel D945GPB - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0110, + .config = STAC_D945GTP3 }, /* Intel D945GLR - 3 Stack */ { .pci_subvendor = PCI_VENDOR_ID_INTEL, - .pci_subdevice = 0x0707, - .config = STAC_D945GTP5 }, /* Intel D945PSV - 5 Stack */ - { .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x0404, .config = STAC_D945GTP5 }, /* Intel D945GTP - 5 Stack */ { .pci_subvendor = PCI_VENDOR_ID_INTEL, @@ -419,34 +436,150 @@ { .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x0417, .config = STAC_D945GTP5 }, /* Intel D975XBK - 5 Stack */ + /* Intel 945P based systems */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0b0b, + .config = STAC_D945GTP3 }, /* Intel D945PSN - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0112, + .config = STAC_D945GTP3 }, /* Intel D945PLN - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0d0d, + .config = STAC_D945GTP3 }, /* Intel D945PLM - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0909, + .config = STAC_D945GTP3 }, /* Intel D945PAW - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0505, + .config = STAC_D945GTP3 }, /* Intel D945PLM - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x0707, + .config = STAC_D945GTP5 }, /* Intel D945PSV - 5 Stack */ + /* other systems */ { .pci_subvendor = 0x8384, .pci_subdevice = 0x7680, .config = STAC_MACMINI }, /* Apple Mac Mini (early 2006) */ - { .pci_subvendor = PCI_VENDOR_ID_INTEL, - .pci_subdevice = 0x2112, - .config = STAC_D965_2112 }, - { .pci_subvendor = PCI_VENDOR_ID_INTEL, - .pci_subdevice = 0x284b, - .config = STAC_D965_284B }, {} /* terminator */ }; static unsigned int ref927x_pin_configs[14] = { - 0x01813122, 0x01a19021, 0x01014010, 0x01016011, - 0x01012012, 0x01011014, 0x40000100, 0x40000100, - 0x40000100, 0x40000100, 0x40000100, 0x01441030, - 0x01c41030, 0x40000100, + 0x02214020, 0x02a19080, 0x0181304e, 0x01014010, + 0x01a19040, 0x01011012, 0x01016011, 0x0101201f, + 0x183301f0, 0x18a001f0, 0x18a001f0, 0x01442070, + 0x01c42190, 0x40000100, +}; + +static unsigned int d965_3st_pin_configs[14] = { + 0x0221401f, 0x02a19120, 0x40000100, 0x01014011, + 0x01a19021, 0x01813024, 0x40000100, 0x40000100, + 0x40000100, 0x40000100, 0x40000100, 0x40000100, + 0x40000100, 0x40000100 +}; + +static unsigned int d965_5st_pin_configs[14] = { + 0x02214020, 0x02a19080, 0x0181304e, 0x01014010, + 0x01a19040, 0x01011012, 0x01016011, 0x40000100, + 0x40000100, 0x40000100, 0x40000100, 0x01442070, + 0x40000100, 0x40000100 }; -static unsigned int *stac927x_brd_tbl[] = { - ref927x_pin_configs, +static unsigned int *stac927x_brd_tbl[STAC_927X_MODELS] = { + [STAC_REF] = ref927x_pin_configs, + [STAC_D965_3ST] = d965_3st_pin_configs, + [STAC_D965_5ST] = d965_5st_pin_configs, }; static struct hda_board_config stac927x_cfg_tbl[] = { + { .modelname = "5stack", .config = STAC_D965_5ST }, + { .modelname = "3stack", .config = STAC_D965_3ST }, { .modelname = "ref", .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x2668, /* DFI LanParty */ .config = STAC_REF }, /* SigmaTel reference board */ + /* Intel 946 based systems */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x3d01, + .config = STAC_D965_3ST }, /* D946 configuration */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0xa301, + .config = STAC_D965_3ST }, /* Intel D946GZT - 3 stack */ + /* 965 based 3 stack systems */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2116, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2115, + .config = STAC_D965_3ST }, /* Intel DQ965WC - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2114, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2113, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2112, + .config = STAC_D965_3ST }, /* Intel DG965MS - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2111, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2110, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2009, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2008, + .config = STAC_D965_3ST }, /* Intel DQ965GF - 3 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2007, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2006, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2005, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2004, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2003, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2002, + .config = STAC_D965_3ST }, /* Intel D965 3Stack config */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2001, + .config = STAC_D965_3ST }, /* Intel DQ965GF - 3 Stack */ + /* 965 based 5 stack systems */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2301, + .config = STAC_D965_5ST }, /* Intel DG965 - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2302, + .config = STAC_D965_5ST }, /* Intel DG965 - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2303, + .config = STAC_D965_5ST }, /* Intel DG965 - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2304, + .config = STAC_D965_5ST }, /* Intel DG965 - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2305, + .config = STAC_D965_5ST }, /* Intel DG965 - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2501, + .config = STAC_D965_5ST }, /* Intel DG965MQ - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2502, + .config = STAC_D965_5ST }, /* Intel DG965 - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2503, + .config = STAC_D965_5ST }, /* Intel DG965 - 5 Stack */ + { .pci_subvendor = PCI_VENDOR_ID_INTEL, + .pci_subdevice = 0x2504, + .config = STAC_D965_5ST }, /* Intel DQ965GF - 5 Stack */ {} /* terminator */ }; @@ -465,22 +598,44 @@ .pci_subvendor = PCI_VENDOR_ID_INTEL, .pci_subdevice = 0x2668, /* DFI LanParty */ .config = STAC_REF }, /* SigmaTel reference board */ - /* Dell laptops have BIOS problem */ - { .pci_subvendor = PCI_VENDOR_ID_DELL, .pci_subdevice = 0x01b5, - .config = STAC_REF }, /* Dell Inspiron 630m */ - { .pci_subvendor = PCI_VENDOR_ID_DELL, .pci_subdevice = 0x01c2, - .config = STAC_REF }, /* Dell Latitude D620 */ - { .pci_subvendor = PCI_VENDOR_ID_DELL, .pci_subdevice = 0x01cb, - .config = STAC_REF }, /* Dell Latitude 120L */ {} /* terminator */ }; +static int stac92xx_save_bios_config_regs(struct hda_codec *codec) +{ + int i; + struct sigmatel_spec *spec = codec->spec; + + if (! spec->bios_pin_configs) { + spec->bios_pin_configs = kcalloc(spec->num_pins, + sizeof(*spec->bios_pin_configs), GFP_KERNEL); + if (! spec->bios_pin_configs) + return -ENOMEM; + } + + for (i = 0; i < spec->num_pins; i++) { + hda_nid_t nid = spec->pin_nids[i]; + unsigned int pin_cfg; + + pin_cfg = snd_hda_codec_read(codec, nid, 0, + AC_VERB_GET_CONFIG_DEFAULT, 0x00); + snd_printdd(KERN_INFO "hda_codec: pin nid %2.2x bios pin config %8.8x\n", + nid, pin_cfg); + spec->bios_pin_configs[i] = pin_cfg; + } + + return 0; +} + static void stac92xx_set_config_regs(struct hda_codec *codec) { int i; struct sigmatel_spec *spec = codec->spec; unsigned int pin_cfg; + if (! spec->pin_nids || ! spec->pin_configs) + return; + for (i=0; i < spec->num_pins; i++) { snd_hda_codec_write(codec, spec->pin_nids[i], 0, AC_VERB_SET_CONFIG_DEFAULT_BYTES_0, @@ -855,11 +1010,29 @@ return 0; } +/* create volume control/switch for the given prefx type */ +static int create_controls(struct sigmatel_spec *spec, const char *pfx, hda_nid_t nid, int chs) +{ + char name[32]; + int err; + + sprintf(name, "%s Playback Volume", pfx); + err = stac92xx_add_control(spec, STAC_CTL_WIDGET_VOL, name, + HDA_COMPOSE_AMP_VAL(nid, chs, 0, HDA_OUTPUT)); + if (err < 0) + return err; + sprintf(name, "%s Playback Switch", pfx); + err = stac92xx_add_control(spec, STAC_CTL_WIDGET_MUTE, name, + HDA_COMPOSE_AMP_VAL(nid, chs, 0, HDA_OUTPUT)); + if (err < 0) + return err; + return 0; +} + /* add playback controls from the parsed DAC table */ static int stac92xx_auto_create_multi_out_ctls(struct sigmatel_spec *spec, const struct auto_pin_cfg *cfg) { - char name[32]; static const char *chname[4] = { "Front", "Surround", NULL /*CLFE*/, "Side" }; @@ -874,26 +1047,15 @@ if (i == 2) { /* Center/LFE */ - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_VOL, "Center Playback Volume", - HDA_COMPOSE_AMP_VAL(nid, 1, 0, HDA_OUTPUT))) < 0) - return err; - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_VOL, "LFE Playback Volume", - HDA_COMPOSE_AMP_VAL(nid, 2, 0, HDA_OUTPUT))) < 0) - return err; - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_MUTE, "Center Playback Switch", - HDA_COMPOSE_AMP_VAL(nid, 1, 0, HDA_OUTPUT))) < 0) + err = create_controls(spec, "Center", nid, 1); + if (err < 0) return err; - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_MUTE, "LFE Playback Switch", - HDA_COMPOSE_AMP_VAL(nid, 2, 0, HDA_OUTPUT))) < 0) + err = create_controls(spec, "LFE", nid, 2); + if (err < 0) return err; } else { - sprintf(name, "%s Playback Volume", chname[i]); - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_VOL, name, - HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) - return err; - sprintf(name, "%s Playback Switch", chname[i]); - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_MUTE, name, - HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) + err = create_controls(spec, chname[i], nid, 3); + if (err < 0) return err; } } @@ -909,39 +1071,84 @@ return 0; } -/* add playback controls for HP output */ +static int check_in_dac_nids(struct sigmatel_spec *spec, hda_nid_t nid) +{ + int i; + + for (i = 0; i < spec->multiout.num_dacs; i++) { + if (spec->multiout.dac_nids[i] == nid) + return 1; + } + if (spec->multiout.hp_nid == nid) + return 1; + return 0; +} + +static int add_spec_dacs(struct sigmatel_spec *spec, hda_nid_t nid) +{ + if (!spec->multiout.hp_nid) + spec->multiout.hp_nid = nid; + else if (spec->multiout.num_dacs > 4) { + printk(KERN_WARNING "stac92xx: No space for DAC 0x%x\n", nid); + return 1; + } else { + spec->multiout.dac_nids[spec->multiout.num_dacs] = nid; + spec->multiout.num_dacs++; + } + return 0; +} + +/* add playback controls for Speaker and HP outputs */ static int stac92xx_auto_create_hp_ctls(struct hda_codec *codec, struct auto_pin_cfg *cfg) { struct sigmatel_spec *spec = codec->spec; - hda_nid_t pin = cfg->hp_pin; hda_nid_t nid; - int i, err; - unsigned int wid_caps; - - if (! pin) - return 0; - - wid_caps = get_wcaps(codec, pin); - if (wid_caps & AC_WCAP_UNSOL_CAP) - spec->hp_detect = 1; + int i, old_num_dacs, err; - nid = snd_hda_codec_read(codec, pin, 0, AC_VERB_GET_CONNECT_LIST, 0) & 0xff; - for (i = 0; i < cfg->line_outs; i++) { - if (! spec->multiout.dac_nids[i]) + old_num_dacs = spec->multiout.num_dacs; + for (i = 0; i < cfg->hp_outs; i++) { + unsigned int wid_caps = get_wcaps(codec, cfg->hp_pins[i]); + if (wid_caps & AC_WCAP_UNSOL_CAP) + spec->hp_detect = 1; + nid = snd_hda_codec_read(codec, cfg->hp_pins[i], 0, + AC_VERB_GET_CONNECT_LIST, 0) & 0xff; + if (check_in_dac_nids(spec, nid)) + nid = 0; + if (! nid) continue; - if (spec->multiout.dac_nids[i] == nid) - return 0; + add_spec_dacs(spec, nid); + } + for (i = 0; i < cfg->speaker_outs; i++) { + nid = snd_hda_codec_read(codec, cfg->speaker_pins[0], 0, + AC_VERB_GET_CONNECT_LIST, 0) & 0xff; + if (check_in_dac_nids(spec, nid)) + nid = 0; + if (check_in_dac_nids(spec, nid)) + nid = 0; + if (! nid) + continue; + add_spec_dacs(spec, nid); } - spec->multiout.hp_nid = nid; - - /* control HP volume/switch on the output mixer amp */ - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_VOL, "Headphone Playback Volume", - HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) - return err; - if ((err = stac92xx_add_control(spec, STAC_CTL_WIDGET_MUTE, "Headphone Playback Switch", - HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT))) < 0) - return err; + for (i = old_num_dacs; i < spec->multiout.num_dacs; i++) { + static const char *pfxs[] = { + "Speaker", "External Speaker", "Speaker2", + }; + err = create_controls(spec, pfxs[i - old_num_dacs], + spec->multiout.dac_nids[i], 3); + if (err < 0) + return err; + } + if (spec->multiout.hp_nid) { + const char *pfx; + if (old_num_dacs == spec->multiout.num_dacs) + pfx = "Master"; + else + pfx = "Headphone"; + err = create_controls(spec, pfx, spec->multiout.hp_nid, 3); + if (err < 0) + return err; + } return 0; } @@ -955,23 +1162,27 @@ int i, j, k; for (i = 0; i < AUTO_PIN_LAST; i++) { - int index = -1; - if (cfg->input_pins[i]) { - imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; - - for (j=0; jnum_muxes; j++) { - int num_cons = snd_hda_get_connections(codec, spec->mux_nids[j], con_lst, HDA_MAX_NUM_INPUTS); - for (k=0; kinput_pins[i]) { - index = k; - break; - } - if (index >= 0) - break; - } - imux->items[imux->num_items].index = index; - imux->num_items++; + int index; + if (!cfg->input_pins[i]) + continue; + index = -1; + for (j = 0; j < spec->num_muxes; j++) { + int num_cons; + num_cons = snd_hda_get_connections(codec, + spec->mux_nids[j], + con_lst, + HDA_MAX_NUM_INPUTS); + for (k = 0; k < num_cons; k++) + if (con_lst[k] == cfg->input_pins[i]) { + index = k; + goto found; + } } + continue; + found: + imux->items[imux->num_items].label = auto_pin_cfg_labels[i]; + imux->items[imux->num_items].index = index; + imux->num_items++; } if (imux->num_items == 1) { @@ -1004,11 +1215,20 @@ static void stac92xx_auto_init_hp_out(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; - hda_nid_t pin; + int i; - pin = spec->autocfg.hp_pin; - if (pin) /* connect to front */ - stac92xx_auto_set_pinctl(codec, pin, AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN); + for (i = 0; i < spec->autocfg.hp_outs; i++) { + hda_nid_t pin; + pin = spec->autocfg.hp_pins[i]; + if (pin) /* connect to front */ + stac92xx_auto_set_pinctl(codec, pin, AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN); + } + for (i = 0; i < spec->autocfg.speaker_outs; i++) { + hda_nid_t pin; + pin = spec->autocfg.speaker_pins[i]; + if (pin) /* connect to front */ + stac92xx_auto_set_pinctl(codec, pin, AC_PINCTL_OUT_EN); + } } static int stac92xx_parse_auto_config(struct hda_codec *codec, hda_nid_t dig_out, hda_nid_t dig_in) @@ -1054,7 +1274,7 @@ struct auto_pin_cfg *cfg) { struct sigmatel_spec *spec = codec->spec; - hda_nid_t pin = cfg->hp_pin; + hda_nid_t pin = cfg->hp_pins[0]; unsigned int wid_caps; if (! pin) @@ -1067,6 +1287,56 @@ return 0; } +/* add playback controls for LFE output */ +static int stac9200_auto_create_lfe_ctls(struct hda_codec *codec, struct auto_pin_cfg *cfg) +{ + struct sigmatel_spec *spec = codec->spec; + int err; + hda_nid_t lfe_pin = 0x0; + int i; + + /* + * search speaker outs and line outs for a mono speaker pin + * with an amp. If one is found, add LFE controls + * for it. + */ + for (i = 0; i < spec->autocfg.speaker_outs && lfe_pin == 0x0; i++) { + hda_nid_t pin = spec->autocfg.speaker_pins[i]; + unsigned long wcaps = get_wcaps(codec, pin); + wcaps &= (AC_WCAP_STEREO | AC_WCAP_OUT_AMP); + if (wcaps == AC_WCAP_OUT_AMP) + /* found a mono speaker with an amp, must be lfe */ + lfe_pin = pin; + } + + /* if speaker_outs is 0, then speakers may be in line_outs */ + if (lfe_pin == 0 && spec->autocfg.speaker_outs == 0) { + for (i = 0; i < spec->autocfg.line_outs && lfe_pin == 0x0; i++) { + hda_nid_t pin = spec->autocfg.line_out_pins[i]; + unsigned long cfg; + cfg = snd_hda_codec_read(codec, pin, 0, + AC_VERB_GET_CONFIG_DEFAULT, + 0x00); + if (get_defcfg_device(cfg) == AC_JACK_SPEAKER) { + unsigned long wcaps = get_wcaps(codec, pin); + wcaps &= (AC_WCAP_STEREO | AC_WCAP_OUT_AMP); + if (wcaps == AC_WCAP_OUT_AMP) + /* found a mono speaker with an amp, + must be lfe */ + lfe_pin = pin; + } + } + } + + if (lfe_pin) { + err = create_controls(spec, "LFE", lfe_pin, 1); + if (err < 0) + return err; + } + + return 0; +} + static int stac9200_parse_auto_config(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -1081,6 +1351,9 @@ if ((err = stac9200_auto_create_hp_ctls(codec, &spec->autocfg)) < 0) return err; + if ((err = stac9200_auto_create_lfe_ctls(codec, &spec->autocfg)) < 0) + return err; + if (spec->autocfg.dig_out_pin) spec->multiout.dig_out_nid = 0x05; if (spec->autocfg.dig_in_pin) @@ -1133,6 +1406,14 @@ AC_VERB_SET_GPIO_DATA, gpiostate); } +static void enable_pin_detect(struct hda_codec *codec, hda_nid_t nid, unsigned int event) +{ + if (get_wcaps(codec, nid) & AC_WCAP_UNSOL_CAP) + snd_hda_codec_write(codec, nid, 0, + AC_VERB_SET_UNSOLICITED_ENABLE, + (AC_USRSP_EN | event)); +} + static int stac92xx_init(struct hda_codec *codec) { struct sigmatel_spec *spec = codec->spec; @@ -1144,13 +1425,12 @@ /* set up pins */ if (spec->hp_detect) { /* Enable unsolicited responses on the HP widget */ - snd_hda_codec_write(codec, cfg->hp_pin, 0, - AC_VERB_SET_UNSOLICITED_ENABLE, - STAC_UNSOL_ENABLE); + for (i = 0; i < cfg->hp_outs; i++) + enable_pin_detect(codec, cfg->hp_pins[i], + STAC_HP_EVENT); + stac92xx_auto_init_hp_out(codec); /* fake event to set up pins */ codec->patch_ops.unsol_event(codec, STAC_HP_EVENT << 26); - /* enable the headphones by default. If/when unsol_event detection works, this will be ignored */ - stac92xx_auto_init_hp_out(codec); } else { stac92xx_auto_init_multi_out(codec); stac92xx_auto_init_hp_out(codec); @@ -1193,6 +1473,9 @@ kfree(spec->kctl_alloc); } + if (spec->bios_pin_configs) + kfree(spec->bios_pin_configs); + kfree(spec); } @@ -1201,6 +1484,8 @@ { unsigned int pin_ctl = snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_PIN_WIDGET_CONTROL, 0x00); + if (flag == AC_PINCTL_OUT_EN && (pin_ctl & AC_PINCTL_IN_EN)) + return; snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, pin_ctl | flag); @@ -1216,33 +1501,57 @@ pin_ctl & ~flag); } -static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) +static int get_pin_presence(struct hda_codec *codec, hda_nid_t nid) +{ + if (!nid) + return 0; + if (snd_hda_codec_read(codec, nid, 0, AC_VERB_GET_PIN_SENSE, 0x00) + & (1 << 31)) + return 1; + return 0; +} + +static void stac92xx_hp_detect(struct hda_codec *codec, unsigned int res) { struct sigmatel_spec *spec = codec->spec; struct auto_pin_cfg *cfg = &spec->autocfg; int i, presence; - if ((res >> 26) != STAC_HP_EVENT) - return; - - presence = snd_hda_codec_read(codec, cfg->hp_pin, 0, - AC_VERB_GET_PIN_SENSE, 0x00) >> 31; + presence = 0; + for (i = 0; i < cfg->hp_outs; i++) { + presence = get_pin_presence(codec, cfg->hp_pins[i]); + if (presence) + break; + } if (presence) { /* disable lineouts, enable hp */ for (i = 0; i < cfg->line_outs; i++) stac92xx_reset_pinctl(codec, cfg->line_out_pins[i], AC_PINCTL_OUT_EN); - stac92xx_set_pinctl(codec, cfg->hp_pin, AC_PINCTL_OUT_EN); + for (i = 0; i < cfg->speaker_outs; i++) + stac92xx_reset_pinctl(codec, cfg->speaker_pins[i], + AC_PINCTL_OUT_EN); } else { /* enable lineouts, disable hp */ for (i = 0; i < cfg->line_outs; i++) stac92xx_set_pinctl(codec, cfg->line_out_pins[i], AC_PINCTL_OUT_EN); - stac92xx_reset_pinctl(codec, cfg->hp_pin, AC_PINCTL_OUT_EN); + for (i = 0; i < cfg->speaker_outs; i++) + stac92xx_set_pinctl(codec, cfg->speaker_pins[i], + AC_PINCTL_OUT_EN); } } +static void stac92xx_unsol_event(struct hda_codec *codec, unsigned int res) +{ + switch (res >> 26) { + case STAC_HP_EVENT: + stac92xx_hp_detect(codec, res); + break; + } +} + #ifdef CONFIG_PM static int stac92xx_resume(struct hda_codec *codec) { @@ -1250,6 +1559,7 @@ int i; stac92xx_init(codec); + stac92xx_set_config_regs(codec); for (i = 0; i < spec->num_mixers; i++) snd_hda_resume_ctls(codec, spec->mixers[i]); if (spec->multiout.dig_out_nid) @@ -1282,12 +1592,18 @@ return -ENOMEM; codec->spec = spec; + spec->num_pins = 8; + spec->pin_nids = stac9200_pin_nids; spec->board_config = snd_hda_check_board_config(codec, stac9200_cfg_tbl); - if (spec->board_config < 0) - snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC9200, using BIOS defaults\n"); - else { - spec->num_pins = 8; - spec->pin_nids = stac9200_pin_nids; + if (spec->board_config < 0) { + snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC9200, using BIOS defaults\n"); + err = stac92xx_save_bios_config_regs(codec); + if (err < 0) { + stac92xx_free(codec); + return err; + } + spec->pin_configs = spec->bios_pin_configs; + } else { spec->pin_configs = stac9200_brd_tbl[spec->board_config]; stac92xx_set_config_regs(codec); } @@ -1323,13 +1639,18 @@ return -ENOMEM; codec->spec = spec; + spec->num_pins = 10; + spec->pin_nids = stac922x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, stac922x_cfg_tbl); - if (spec->board_config < 0) - snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, " - "using BIOS defaults\n"); - else if (stac922x_brd_tbl[spec->board_config] != NULL) { - spec->num_pins = 10; - spec->pin_nids = stac922x_pin_nids; + if (spec->board_config < 0) { + snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, using BIOS defaults\n"); + err = stac92xx_save_bios_config_regs(codec); + if (err < 0) { + stac92xx_free(codec); + return err; + } + spec->pin_configs = spec->bios_pin_configs; + } else if (stac922x_brd_tbl[spec->board_config] != NULL) { spec->pin_configs = stac922x_brd_tbl[spec->board_config]; stac92xx_set_config_regs(codec); } @@ -1343,30 +1664,11 @@ spec->multiout.dac_nids = spec->dac_nids; - switch (spec->board_config) { - case STAC_D965_2112: - spec->adc_nids = stac9227_adc_nids; - spec->mux_nids = stac9227_mux_nids; -#if 0 - spec->multiout.dac_nids = d965_2112_dac_nids; - spec->multiout.num_dacs = ARRAY_SIZE(d965_2112_dac_nids); -#endif - spec->init = d965_2112_core_init; - spec->mixer = stac9227_mixer; - break; - case STAC_D965_284B: - spec->adc_nids = stac9227_adc_nids; - spec->mux_nids = stac9227_mux_nids; - spec->init = stac9227_core_init; - spec->mixer = stac9227_mixer; - break; - } - err = stac92xx_parse_auto_config(codec, 0x08, 0x09); if (err < 0) { stac92xx_free(codec); return err; - } + } if (spec->board_config == STAC_MACMINI) spec->gpio_mute = 1; @@ -1386,22 +1688,44 @@ return -ENOMEM; codec->spec = spec; + spec->num_pins = 14; + spec->pin_nids = stac927x_pin_nids; spec->board_config = snd_hda_check_board_config(codec, stac927x_cfg_tbl); - if (spec->board_config < 0) - snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC927x, using BIOS defaults\n"); - else { - spec->num_pins = 14; - spec->pin_nids = stac927x_pin_nids; + if (spec->board_config < 0) { + snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC927x, using BIOS defaults\n"); + err = stac92xx_save_bios_config_regs(codec); + if (err < 0) { + stac92xx_free(codec); + return err; + } + spec->pin_configs = spec->bios_pin_configs; + } else if (stac927x_brd_tbl[spec->board_config] != NULL) { spec->pin_configs = stac927x_brd_tbl[spec->board_config]; stac92xx_set_config_regs(codec); } - spec->adc_nids = stac927x_adc_nids; - spec->mux_nids = stac927x_mux_nids; - spec->num_muxes = 3; - - spec->init = stac927x_core_init; - spec->mixer = stac927x_mixer; + switch (spec->board_config) { + case STAC_D965_3ST: + spec->adc_nids = stac927x_adc_nids; + spec->mux_nids = stac927x_mux_nids; + spec->num_muxes = 3; + spec->init = d965_core_init; + spec->mixer = stac9227_mixer; + break; + case STAC_D965_5ST: + spec->adc_nids = stac927x_adc_nids; + spec->mux_nids = stac927x_mux_nids; + spec->num_muxes = 3; + spec->init = d965_core_init; + spec->mixer = stac9227_mixer; + break; + default: + spec->adc_nids = stac927x_adc_nids; + spec->mux_nids = stac927x_mux_nids; + spec->num_muxes = 3; + spec->init = stac927x_core_init; + spec->mixer = stac927x_mixer; + } spec->multiout.dac_nids = spec->dac_nids; @@ -1426,12 +1750,18 @@ return -ENOMEM; codec->spec = spec; + spec->num_pins = 14; + spec->pin_nids = stac9205_pin_nids; spec->board_config = snd_hda_check_board_config(codec, stac9205_cfg_tbl); - if (spec->board_config < 0) + if (spec->board_config < 0) { snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC9205, using BIOS defaults\n"); - else { - spec->num_pins = 14; - spec->pin_nids = stac9205_pin_nids; + err = stac92xx_save_bios_config_regs(codec); + if (err < 0) { + stac92xx_free(codec); + return err; + } + spec->pin_configs = spec->bios_pin_configs; + } else { spec->pin_configs = stac9205_brd_tbl[spec->board_config]; stac92xx_set_config_regs(codec); } @@ -1457,13 +1787,13 @@ } /* - * STAC 7661(?) hack + * STAC9872 hack */ -/* static config for Sony VAIO FE550G */ +/* static config for Sony VAIO FE550G and Sony VAIO AR */ static hda_nid_t vaio_dacs[] = { 0x2 }; #define VAIO_HP_DAC 0x5 -static hda_nid_t vaio_adcs[] = { 0x8 /*,0x6*/ }; +static hda_nid_t vaio_adcs[] = { 0x8 /*, 0x6*/ }; static hda_nid_t vaio_mux_nids[] = { 0x15 }; static struct hda_input_mux vaio_mux = { @@ -1491,6 +1821,23 @@ {} }; +static struct hda_verb vaio_ar_init[] = { + {0x0a, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP }, /* HP <- 0x2 */ + {0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT }, /* Speaker <- 0x5 */ + {0x0d, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, /* Mic? (<- 0x2) */ + {0x0e, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_IN }, /* CD */ + /* {0x11, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_OUT },*/ /* Optical Out */ + {0x14, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF80 }, /* Mic? */ + {0x15, AC_VERB_SET_CONNECT_SEL, 0x2}, /* mic-sel: 0a,0d,14,02 */ + {0x02, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* HP */ + {0x05, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE}, /* Speaker */ + /* {0x10, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE},*/ /* Optical Out */ + {0x09, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_MUTE(0)}, /* capture sw/vol -> 0x8 */ + {0x07, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(0)}, /* CD-in -> 0x6 */ + {0x15, AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE}, /* Mic-in -> 0x9 */ + {} +}; + /* bind volumes of both NID 0x02 and 0x05 */ static int vaio_master_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol) @@ -1560,7 +1907,40 @@ {} }; -static struct hda_codec_ops stac766x_patch_ops = { +static snd_kcontrol_new_t vaio_ar_mixer[] = { + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Master Playback Volume", + .info = snd_hda_mixer_amp_volume_info, + .get = snd_hda_mixer_amp_volume_get, + .put = vaio_master_vol_put, + .private_value = HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), + }, + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Master Playback Switch", + .info = snd_hda_mixer_amp_switch_info, + .get = snd_hda_mixer_amp_switch_get, + .put = vaio_master_sw_put, + .private_value = HDA_COMPOSE_AMP_VAL(0x02, 3, 0, HDA_OUTPUT), + }, + /* HDA_CODEC_VOLUME("CD Capture Volume", 0x07, 0, HDA_INPUT), */ + HDA_CODEC_VOLUME("Capture Volume", 0x09, 0, HDA_INPUT), + HDA_CODEC_MUTE("Capture Switch", 0x09, 0, HDA_INPUT), + /*HDA_CODEC_MUTE("Optical Out Switch", 0x10, 0, HDA_OUTPUT), + HDA_CODEC_VOLUME("Optical Out Volume", 0x10, 0, HDA_OUTPUT),*/ + { + .iface = SNDRV_CTL_ELEM_IFACE_MIXER, + .name = "Capture Source", + .count = 1, + .info = stac92xx_mux_enum_info, + .get = stac92xx_mux_enum_get, + .put = stac92xx_mux_enum_put, + }, + {} +}; + +static struct hda_codec_ops stac9872_patch_ops = { .build_controls = stac92xx_build_controls, .build_pcms = stac92xx_build_pcms, .init = stac92xx_init, @@ -1570,29 +1950,34 @@ #endif }; -enum { STAC766x_VAIO }; +enum { /* FE and SZ series. id=0x83847661 and subsys=0x104D0700 or 104D1000. */ + CXD9872RD_VAIO, + /* Unknown. id=0x83847662 and subsys=0x104D1200 or 104D1000. */ + STAC9872AK_VAIO, + /* Unknown. id=0x83847661 and subsys=0x104D1200. */ + STAC9872K_VAIO, + /* AR Series. id=0x83847664 and subsys=104D1300 */ + CXD9872AKD_VAIO +}; -static struct hda_board_config stac766x_cfg_tbl[] = { - { .modelname = "vaio", .config = STAC766x_VAIO }, - { .pci_subvendor = 0x104d, .pci_subdevice = 0x0700, - .config = STAC766x_VAIO }, - { .pci_subvendor = 0x104d, .pci_subdevice = 0x1300, - .config = STAC766x_VAIO }, +static struct hda_board_config stac9872_cfg_tbl[] = { + { .modelname = "vaio", .config = CXD9872RD_VAIO }, + { .modelname = "vaio-ar", .config = CXD9872AKD_VAIO }, { .pci_subvendor = 0x104d, .pci_subdevice = 0x81e6, - .config = STAC766x_VAIO }, + .config = CXD9872RD_VAIO }, { .pci_subvendor = 0x104d, .pci_subdevice = 0x81ef, - .config = STAC766x_VAIO }, + .config = CXD9872RD_VAIO }, { .pci_subvendor = 0x104d, .pci_subdevice = 0x81fd, - .config = STAC766x_VAIO }, + .config = CXD9872AKD_VAIO }, {} }; -static int patch_stac766x(struct hda_codec *codec) +static int patch_stac9872(struct hda_codec *codec) { struct sigmatel_spec *spec; int board_config; - board_config = snd_hda_check_board_config(codec, stac766x_cfg_tbl); + board_config = snd_hda_check_board_config(codec, stac9872_cfg_tbl); if (board_config < 0) /* unknown config, let generic-parser do its job... */ return snd_hda_parse_generic_codec(codec); @@ -1603,7 +1988,9 @@ codec->spec = spec; switch (board_config) { - case STAC766x_VAIO: + case CXD9872RD_VAIO: + case STAC9872AK_VAIO: + case STAC9872K_VAIO: spec->mixer = vaio_mixer; spec->init = vaio_init; spec->multiout.max_channels = 2; @@ -1615,9 +2002,22 @@ spec->input_mux = &vaio_mux; spec->mux_nids = vaio_mux_nids; break; + + case CXD9872AKD_VAIO: + spec->mixer = vaio_ar_mixer; + spec->init = vaio_ar_init; + spec->multiout.max_channels = 2; + spec->multiout.num_dacs = ARRAY_SIZE(vaio_dacs); + spec->multiout.dac_nids = vaio_dacs; + spec->multiout.hp_nid = VAIO_HP_DAC; + spec->num_adcs = ARRAY_SIZE(vaio_adcs); + spec->adc_nids = vaio_adcs; + spec->input_mux = &vaio_mux; + spec->mux_nids = vaio_mux_nids; + break; } - codec->patch_ops = stac766x_patch_ops; + codec->patch_ops = stac9872_patch_ops; return 0; } @@ -1649,8 +2049,13 @@ { .id = 0x83847627, .name = "STAC9271D", .patch = patch_stac927x }, { .id = 0x83847628, .name = "STAC9274X5NH", .patch = patch_stac927x }, { .id = 0x83847629, .name = "STAC9274D5NH", .patch = patch_stac927x }, - { .id = 0x83847661, .name = "STAC7661", .patch = patch_stac766x }, - { .id = 0x83847664, .name = "STAC7664", .patch = patch_stac766x }, + /* The following does not take into account .id=0x83847661 when subsys = + * 104D0C00 which is STAC9225s. Because of this, some SZ Notebooks are + * currently not fully supported. + */ + { .id = 0x83847661, .name = "CXD9872RD/K", .patch = patch_stac9872 }, + { .id = 0x83847662, .name = "STAC9872AK", .patch = patch_stac9872 }, + { .id = 0x83847664, .name = "CXD9872AKD", .patch = patch_stac9872 }, { .id = 0x838476a0, .name = "STAC9205", .patch = patch_stac9205 }, { .id = 0x838476a1, .name = "STAC9205D", .patch = patch_stac9205 }, { .id = 0x838476a2, .name = "STAC9204", .patch = patch_stac9205 }, --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/patch_analog.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/patch_analog.c @@ -793,7 +793,13 @@ .config = AD1986A_3STACK }, /* ASUS P5RD2-VM / P5GPL-X SE */ { .pci_subvendor = 0x1043, .pci_subdevice = 0x81cb, .config = AD1986A_3STACK }, /* ASUS M2NPV-VM */ + { .pci_subvendor = 0x1043, .pci_subdevice = 0x8234, + .config = AD1986A_3STACK }, /* ASUS M2N-MX */ + { .pci_subvendor = 0x17aa, .pci_subdevice = 0x1017, + .config = AD1986A_3STACK }, /* Lenovo A60 desktop */ { .modelname = "laptop", .config = AD1986A_LAPTOP }, + { .pci_subvendor = 0x144d, .pci_subdevice = 0xb03c, + .config = AD1986A_LAPTOP_EAPD }, /* Samsung R55 XEH 2300*/ { .pci_subvendor = 0x144d, .pci_subdevice = 0xc01e, .config = AD1986A_LAPTOP }, /* FSC V2060 */ { .pci_subvendor = 0x17c0, .pci_subdevice = 0x2017, @@ -815,6 +821,8 @@ .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5A */ { .pci_subvendor = 0x1043, .pci_subdevice = 0x1297, .config = AD1986A_LAPTOP_EAPD }, /* ASUS Z62F */ + { .pci_subvendor = 0x1043, .pci_subdevice = 0x1263, + .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5F */ { .pci_subvendor = 0x103c, .pci_subdevice = 0x30af, .config = AD1986A_LAPTOP_EAPD }, /* HP Compaq Presario B2800 */ { .pci_subvendor = 0x17aa, .pci_subdevice = 0x2066, @@ -1633,7 +1641,7 @@ int err = snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode, spec->num_channel_mode, &spec->multiout.max_channels); - if (! err && spec->need_dac_fix) + if (err >= 0 && spec->need_dac_fix) spec->multiout.num_dacs = spec->multiout.max_channels / 2; return err; } @@ -2466,7 +2474,7 @@ pin = spec->autocfg.speaker_pins[0]; if (pin) /* connect to front */ ad1988_auto_set_output_and_unmute(codec, pin, PIN_OUT, 0); - pin = spec->autocfg.hp_pin; + pin = spec->autocfg.hp_pins[0]; if (pin) /* connect to front */ ad1988_auto_set_output_and_unmute(codec, pin, PIN_HP, 0); } @@ -2518,7 +2526,7 @@ (err = ad1988_auto_create_extra_out(codec, spec->autocfg.speaker_pins[0], "Speaker")) < 0 || - (err = ad1988_auto_create_extra_out(codec, spec->autocfg.hp_pin, + (err = ad1988_auto_create_extra_out(codec, spec->autocfg.hp_pins[0], "Headphone")) < 0 || (err = ad1988_auto_create_analog_input_ctls(spec, &spec->autocfg)) < 0) return err; --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/patch_si3054.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/patch_si3054.c @@ -243,7 +243,8 @@ if((val&SI3054_MEI_READY) != SI3054_MEI_READY) { snd_printk(KERN_ERR "si3054: cannot initialize. EXT MID = %04x\n", val); - return -EACCES; + /* let's pray that this is no fatal error */ + /* return -EACCES; */ } SET_REG(codec, SI3054_GPIO_POLARITY, 0xffff); @@ -297,7 +298,13 @@ struct hda_codec_preset snd_hda_preset_si3054[] = { { .id = 0x163c3055, .name = "Si3054", .patch = patch_si3054 }, { .id = 0x163c3155, .name = "Si3054", .patch = patch_si3054 }, - { .id = 0x11c13026, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x11c11040, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x11c13026, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x11c13055, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x11c13155, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x10573055, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x10573057, .name = "Si3054", .patch = patch_si3054 }, + { .id = 0x10573155, .name = "Si3054", .patch = patch_si3054 }, {} }; --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/hda_local.h +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/hda_local.h @@ -224,7 +224,8 @@ hda_nid_t line_out_pins[5]; /* sorted in the order of Front/Surr/CLFE/Side */ int speaker_outs; hda_nid_t speaker_pins[5]; - hda_nid_t hp_pin; + int hp_outs; + hda_nid_t hp_pins[5]; hda_nid_t input_pins[AUTO_PIN_LAST]; hda_nid_t dig_out_pin; hda_nid_t dig_in_pin; --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/hda/hda_intel.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/hda/hda_intel.c @@ -55,6 +55,7 @@ static int position_fix; static int probe_mask = -1; static int single_cmd; +static int disable_msi; module_param(index, int, 0444); MODULE_PARM_DESC(index, "Index value for Intel HD audio interface."); @@ -68,6 +69,8 @@ MODULE_PARM_DESC(probe_mask, "Bitmask to probe codecs (default = -1)."); module_param(single_cmd, bool, 0444); MODULE_PARM_DESC(single_cmd, "Use single command to communicate with codecs (for debugging only)."); +module_param(disable_msi, int, 0); +MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)"); /* just for backward compatibility */ @@ -83,6 +86,7 @@ "{ATI, SB450}," "{ATI, SB600}," "{ATI, RS600}," + "{ATI. RS690}," "{VIA, VT8251}," "{VIA, VT8237A}," "{SiS, SIS966}," @@ -332,6 +336,8 @@ int position_fix; unsigned int initialized: 1; unsigned int single_cmd: 1; + unsigned int polling_mode: 1; + unsigned int msi :1; }; /* driver types */ @@ -392,6 +398,7 @@ */ #define upper_32bit(addr) (sizeof(addr) > 4 ? (u32)((addr) >> 32) : (u32)0) +static int azx_acquire_irq(struct azx *chip, int do_disconnect); /* * Interface for HD codec @@ -518,8 +525,34 @@ struct azx *chip = codec->bus->private_data; int timeout = 50; - while (chip->rirb.cmds) { + for (;;) { + if (chip->polling_mode) { + spin_lock_irq(&chip->reg_lock); + azx_update_rirb(chip); + spin_unlock_irq(&chip->reg_lock); + } + if (! chip->rirb.cmds) + break; if (! --timeout) { + if (chip->msi) { + snd_printk(KERN_WARNING "hda_intel: No response from codec, " + "disabling MSI...\n"); + free_irq(chip->irq, chip); + chip->irq = -1; + pci_disable_msi(chip->pci); + chip->msi = 0; + if (azx_acquire_irq(chip, 1) < 0) + return -1; + continue; + } + if (! chip->polling_mode) { + snd_printk(KERN_WARNING "hda_intel: " + "azx_get_response timeout, " + "switching to polling mode...\n"); + chip->polling_mode = 1; + timeout = 50; + continue; + } snd_printk(KERN_ERR "hda_intel: azx_get_response timeout, " "switching to single_cmd mode...\n"); @@ -1251,7 +1284,7 @@ snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &azx_pcm_ops); snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, snd_dma_pci_data(chip->pci), - 1024 * 64, 1024 * 128); + 1024 * 64, 1024 * 1024); chip->pcm[pcm_dev] = pcm; if (chip->pcm_devs < pcm_dev + 1) chip->pcm_devs = pcm_dev + 1; @@ -1345,6 +1378,18 @@ return 0; } +static int azx_acquire_irq(struct azx *chip, int do_disconnect) +{ + if (request_irq(chip->pci->irq, azx_interrupt, SA_INTERRUPT|SA_SHIRQ, + "HDA Intel", chip)) { + printk(KERN_ERR "hda-intel: unable to grab IRQ %d, " + "disabling device\n", chip->pci->irq); + return -1; + } + chip->irq = chip->pci->irq; + return 0; +} + #ifdef CONFIG_PM /* @@ -1361,6 +1406,10 @@ snd_pcm_suspend_all(chip->pcm[i]); snd_hda_suspend(chip->bus, state); azx_free_cmd_io(chip); + if (chip->irq >= 0) + free_irq(chip->irq, chip); + if (chip->msi) + pci_disable_msi(chip->pci); pci_disable_device(pci); pci_save_state(pci); return 0; @@ -1374,6 +1423,11 @@ pci_restore_state(pci); pci_enable_device(pci); pci_set_master(pci); + if (chip->msi) + if (pci_enable_msi(pci) < 0) + chip->msi = 0; + if (azx_acquire_irq(chip, 1) < 0) + return -EIO; azx_init_chip(chip); snd_hda_resume(chip->bus); snd_power_change_state(card, SNDRV_CTL_POWER_D0); @@ -1407,8 +1461,11 @@ synchronize_irq(chip->irq); } - if (chip->irq >= 0) + if (chip->irq >= 0) { free_irq(chip->irq, (void*)chip); + if (chip->msi) + pci_disable_msi(chip->pci); + } if (chip->remap_addr) iounmap(chip->remap_addr); @@ -1463,6 +1520,7 @@ chip->pci = pci; chip->irq = -1; chip->driver_type = driver_type; + chip->msi = !disable_msi; chip->position_fix = position_fix; chip->single_cmd = single_cmd; @@ -1491,13 +1549,14 @@ goto errout; } - if (request_irq(pci->irq, azx_interrupt, SA_INTERRUPT|SA_SHIRQ, - "HDA Intel", (void*)chip)) { - snd_printk(KERN_ERR SFX "unable to grab IRQ %d\n", pci->irq); + if (chip->msi) + if (pci_enable_msi(pci) < 0) + chip->msi = 0; + + if (azx_acquire_irq(chip, 0) < 0) { err = -EBUSY; goto errout; } - chip->irq = pci->irq; pci_set_master(pci); synchronize_irq(chip->irq); @@ -1642,11 +1701,18 @@ { 0x1002, 0x437b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATI }, /* ATI SB450 */ { 0x1002, 0x4383, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATI }, /* ATI SB600 */ { 0x1002, 0x793b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATIHDMI }, /* ATI RS600 HDMI */ + { 0x1002, 0x7919, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ATIHDMI }, /* ATI RS690 HDMI */ { 0x1106, 0x3288, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_VIA }, /* VIA VT8251/VT8237A */ { 0x1039, 0x7502, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_SIS }, /* SIS966 */ { 0x10b9, 0x5461, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ULI }, /* ULI M5461 */ - { 0x10de, 0x026c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA 026c */ - { 0x10de, 0x0371, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA 0371 */ + { 0x10de, 0x026c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP51 */ + { 0x10de, 0x0371, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP55 */ + { 0x10de, 0x03e4, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP61 */ + { 0x10de, 0x03f0, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP61 */ + { 0x10de, 0x044a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP65 */ + { 0x10de, 0x044b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP65 */ + { 0x10de, 0x055c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP67 */ + { 0x10de, 0x055d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_NVIDIA }, /* NVIDIA MCP67 */ { 0, } }; MODULE_DEVICE_TABLE(pci, azx_ids); --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/rme9652/hdsp.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/rme9652/hdsp.c @@ -80,6 +80,7 @@ /* Write registers. These are defined as byte-offsets from the iobase value. */ #define HDSP_resetPointer 0 +#define HDSP_freqReg 0 #define HDSP_outputBufferAddress 32 #define HDSP_inputBufferAddress 36 #define HDSP_controlRegister 64 @@ -469,6 +470,7 @@ struct pci_dev *pci; struct snd_kcontrol *spdif_ctl; unsigned short mixer_matrix[HDSP_MATRIX_MIXER_SIZE]; + unsigned int dds_value; /* last value written to freq register */ }; /* These tables map the ALSA channels 1..N to the channels that we @@ -598,6 +600,7 @@ return (64 * out) + (32 + (in)); case 0x96: case 0x97: + case 0x98: return (32 * out) + (16 + (in)); default: return (52 * out) + (26 + (in)); @@ -611,6 +614,7 @@ return (64 * out) + in; case 0x96: case 0x97: + case 0x98: return (32 * out) + in; default: return (52 * out) + in; @@ -935,6 +939,11 @@ static void hdsp_reset_hw_pointer(struct hdsp *hdsp) { hdsp_write (hdsp, HDSP_resetPointer, 0); + if (hdsp->io_type == H9632 && hdsp->firmware_rev >= 152) + /* HDSP_resetPointer = HDSP_freqReg, which is strange and + * requires (?) to write again DDS value after a reset pointer + * (at least, it works like this) */ + hdsp_write (hdsp, HDSP_freqReg, hdsp->dds_value); } static void hdsp_start_audio(struct hdsp *s) @@ -979,6 +988,30 @@ return 0; } +static void hdsp_set_dds_value(struct hdsp *hdsp, int rate) +{ + u64 n; + u32 r; + + if (rate >= 112000) + rate /= 4; + else if (rate >= 56000) + rate /= 2; + + /* RME says n = 104857600000000, but in the windows MADI driver, I see: +// return 104857600000000 / rate; // 100 MHz + return 110100480000000 / rate; // 105 MHz + */ + n = 104857600000000ULL; /* = 2^20 * 10^8 */ + div64_32(&n, rate, &r); + /* n should be less than 2^32 for being written to FREQ register */ + snd_assert((n >> 32) == 0); + /* HDSP_freqReg and HDSP_resetPointer are the same, so keep the DDS + value to write it after a reset */ + hdsp->dds_value = n; + hdsp_write(hdsp, HDSP_freqReg, hdsp->dds_value); +} + static int hdsp_set_rate(struct hdsp *hdsp, int rate, int called_internally) { int reject_if_open = 0; @@ -1087,6 +1120,10 @@ hdsp->control_register |= rate_bits; hdsp_write(hdsp, HDSP_controlRegister, hdsp->control_register); + /* For HDSP9632 rev 152, need to set DDS value in FREQ register */ + if (hdsp->io_type == H9632 && hdsp->firmware_rev >= 152) + hdsp_set_dds_value(hdsp, rate); + if (rate >= 128000) { hdsp->channel_map = channel_map_H9632_qs; } else if (rate > 48000) { @@ -4937,8 +4974,9 @@ } hdsp->irq = pci->irq; - hdsp->precise_ptr = 1; + hdsp->precise_ptr = 0; hdsp->use_midi_tasklet = 1; + hdsp->dds_value = 0; if ((err = snd_hdsp_initialize_memory(hdsp)) < 0) return err; --- linux-source-2.6.17-2.6.17.1.orig/sound/pci/ac97/ac97_patch.c +++ linux-source-2.6.17-2.6.17.1/sound/pci/ac97/ac97_patch.c @@ -1634,6 +1634,12 @@ AC97_SINGLE("Line Jack Sense", AC97_AD_JACK_SPDIF, 12, 1, 0), }; +static unsigned int ad1980_jacks_blacklist[] = { + 0x104380a1, /* irc:jeroenvr@k-uptown.xs4all.nl */ + 0x104380b0, /* irc:jeroenvr@k-uptown.xs4all.nl */ + 0 /* end */ +}; + /* black list to avoid HP/Line jack-sense controls * (SS vendor << 16 | device) */ @@ -1894,6 +1900,8 @@ if ((err = patch_ad1888_specific(ac97)) < 0) return err; + if (check_list(ac97, ad1980_jacks_blacklist)) + return 0; return patch_build_controls(ac97, &snd_ac97_ad198x_2cmic, 1); } @@ -2221,7 +2229,9 @@ else { /* ALC655 */ if (ac97->subsystem_vendor == 0x1462 && (ac97->subsystem_device == 0x0131 || /* MSI S270 laptop */ - ac97->subsystem_device == 0x0161)) /* LG K1 Express */ + ac97->subsystem_device == 0x0161 || /* LG K1 Express */ + ac97->subsystem_device == 0x0351 || /* MSI L725 laptop */ + ac97->subsystem_device == 0x0061)) /* MSI S250 laptop */ val &= ~(1 << 1); /* Pin 47 is EAPD (for internal speaker) */ else val |= (1 << 1); /* Pin 47 is spdif input pin */ --- linux-source-2.6.17-2.6.17.1.orig/scripts/.gitignore +++ linux-source-2.6.17-2.6.17.1/scripts/.gitignore @@ -0,0 +1,7 @@ +# +# Generated files +# +conmakehash +kallsyms +pnmtologo +bin2c --- linux-source-2.6.17-2.6.17.1.orig/scripts/basic/.gitignore +++ linux-source-2.6.17-2.6.17.1/scripts/basic/.gitignore @@ -0,0 +1,3 @@ +fixdep +split-include +docproc --- linux-source-2.6.17-2.6.17.1.orig/scripts/kconfig/.gitignore +++ linux-source-2.6.17-2.6.17.1/scripts/kconfig/.gitignore @@ -0,0 +1,17 @@ +# +# Generated files +# +config* +lex.*.c +*.tab.c +*.tab.h +zconf.hash.c + +# +# configuration programs +# +conf +mconf +qconf +gconf +kxgettext --- linux-source-2.6.17-2.6.17.1.orig/scripts/kconfig/lxdialog/.gitignore +++ linux-source-2.6.17-2.6.17.1/scripts/kconfig/lxdialog/.gitignore @@ -0,0 +1,4 @@ +# +# Generated files +# +lxdialog --- linux-source-2.6.17-2.6.17.1.orig/scripts/mod/.gitignore +++ linux-source-2.6.17-2.6.17.1/scripts/mod/.gitignore @@ -0,0 +1,4 @@ +elfconfig.h +mk_elfconfig +modpost + --- linux-source-2.6.17-2.6.17.1.orig/scripts/genksyms/.gitignore +++ linux-source-2.6.17-2.6.17.1/scripts/genksyms/.gitignore @@ -0,0 +1,4 @@ +keywords.c +lex.c +parse.[ch] +genksyms --- linux-source-2.6.17-2.6.17.1.orig/debian/rules +++ linux-source-2.6.17-2.6.17.1/debian/rules @@ -0,0 +1,467 @@ +#!/usr/bin/make -f +# +# debian/rules for kernel-source. +# +# GNU copyright 1997 to 1999 by Joey Hess. +# Copyright (c) 1999-2002 Herbert Xu +# Copyright (c) 2004 Jens Schmalzing +# + +# This is the debhelper compatability version to use. +export DH_COMPAT=4 + +SHELL := sh -e + +stem := linux + +# extract the upstream release and the full package version from the changelog +release := $(shell sed -n '1s/^.*(\(.*\)-.*).*$$/\1/p' debian/changelog) + +# extract the version from the package name that can be different from release +pkgversion := $(shell sed -n '1s/^$(stem)-source-\([^ ]*\) .*/\1/p' debian/changelog) + +# extract all the Debian revisions for this release from the changelog +revisions := $(shell sed -n 's/^$(stem)-source-$(pkgversion)\ .*($(release)-\(.*\)).*$$/\1/p' debian/changelog | tac) + +# set the current Debian revision to the latest by default; +# note that for some targets, the two may actually be different. +revision ?= $(word $(words $(revisions)),$(revisions)) + +# Get the previously built revision; we compare ABIs with that. If no +# previous revision, default to 0. +prev_revisions := $(filter-out $(revision),0 $(revisions)) +prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) + +abidir := $(CURDIR)/debian/abi + +version.Debian: + echo $(pkgversion) > $@ + +release.Debian: + echo $(version)-$(revision) > $@ + + +# This is an internally used mechanism for the daily kernel builds. It +# creates packages who's ABI is suffixed with a minimal representation of +# the current git HEAD sha. If .git/HEAD is not present, then it uses the +# uuidgen program, +# +# AUTOBUILD can also be used by anyone wanting to build a custom kernel +# image, or rebuild the entire set of Ubuntu packages using custom patches +# or configs. +export AUTOBUILD +ifeq ($(AUTOBUILD),) + +autobuild = n +skipabi = true + +else + +autobuild = y +skipabi = true + +gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi) +gitverpre=$(shell echo $(gitver) | cut -b -3) +gitverpost=$(shell echo $(gitver) | cut -b 38-40) + +endif + +ifeq ($(autobuild),y) +abinum := $(shell echo $(revision) | sed -e 's/\..*//')-$(gitverpre)$(gitverpost) +else +abinum := $(shell echo $(revision) | sed -e 's/\..*//') +endif + +version := $(pkgversion) +debnum := -$(abinum) + +export abinum debnum version + +appvan := --append_to_version $(debnum) + +arch := $(shell dpkg-architecture -qDEB_HOST_ARCH) + +basedir := debian/config/$(arch) + +configs := $(notdir $(wildcard $(basedir)/config.*)) +config_common = debian/config/config $(basedir)/config +flavours := $(filter-out %.disabled,$(patsubst config.%,%,$(configs))) +crashdump := $(shell if [ -f $(basedir)/crashdump ]; then cat $(basedir)/crashdump; else echo -n; fi) + +builddir := $(CURDIR)/debian/build +srcdir := $(builddir)/$(stem)-source-$(version) + +export DEBIAN_SRCTOP := $(srcdir) +export DEBIAN_UPSTREAM_VERSION := $(version) +export DEBIAN_STEM := $(stem) + +export UBUNTUBUILD=1 + +ifeq ($(strip $(arch)),sparc) +subarch := --subarch sparc64 +endif + +MAKE_KPKG := make-kpkg --stem $(stem) $(subarch) + +unpack: stamp-unpack +stamp-unpack: + dh_testdir + find . \( -path ./debian -o -path ./.git -o -name .gitignore \) -prune -o -print | \ + cpio -dumpl $(srcdir) + cd $(srcdir); rm -f stamp-* version.Debian release.Debian + mkdir -p $(srcdir)/debian + cp debian/changelog $(srcdir)/debian + cp debian/control $(srcdir)/debian + cp debian/copyright $(srcdir)/debian + > $(srcdir)/debian/official + install -D -m755 debian/abi-install $(srcdir)/debian/image.d/abi-install + install -D -m755 debian/post-install $(srcdir)/debian/post-install + chmod u+x debian/header-install + @for i in $(flavours); do \ + echo "Setting up $$i..."; \ + cp -al $(srcdir) $(builddir)/build-$$i; \ + if [ "$$i" = "$(crashdump)" ]; then \ + cp -al $(srcdir) $(builddir)/build-kdump; \ + rm -f $(builddir)/build-kdump/.config \ + $(builddir)/build-kdump/debian/image.d/abi-install \ + $(builddir)/build-kdump/debian/post-install; \ + fi; \ + rm -f $(builddir)/build-$$i/.config.old; \ + for t in $(config_common); do \ + if [ -f $${t} ]; then \ + cat $${t} >> $(builddir)/build-$$i/.config.old; \ + fi; \ + done; \ + cat $(basedir)/config.$$i >> $(builddir)/build-$$i/.config.old; \ + sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(version)-$(revision)-'$$i'"/' \ + $(builddir)/build-$$i/.config.old > \ + $(builddir)/build-$$i/.config; \ + if [ "$$i" = "$(crashdump)" ]; then \ + cat $(builddir)/build-$$i/.config.old > $(builddir)/build-kdump/.config.old; \ + echo 'CONFIG_PROC_VMCORE=y' >> $(builddir)/build-kdump/.config.old; \ + sed -e 's/.*CONFIG_CRASH_DUMP.*/CONFIG_CRASH_DUMP=y/' \ + -e 's/.*CONFIG_PHYSICAL_START.*/CONFIG_PHYSICAL_START=0x1000000/' \ + -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(version)-$(revision)-kdump"/' \ + $(builddir)/build-kdump/.config.old > \ + $(builddir)/build-kdump/.config; \ + fi; \ + ln -s $(abidir)/$(version)-$(revision)/${arch}/$$i $(builddir)/build-$$i/debian/abi-${version}${debnum}-$$i; \ + done + ln -s ../../../firmware $(srcdir)/debian + + touch stamp-unpack + +build_prereq := \ + release.Debian version.Debian \ + debian/control \ + unpack + +build: $(build_prereq) + dh_testdir + + PATH=$$PWD/debian/bin:$$PATH; \ + export HARCH=$(shell grep "^headers-$(arch)[[:space:]]" debian/config/archmap | grep -v ^\# | awk '{print $$2}'); \ + cd $(srcdir); \ + make ARCH=$$HARCH defconfig; \ + mv .config .config.old; \ + sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \ + -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \ + .config.old > .config; \ + make ARCH=$$HARCH prepare + + mkdir -p $(abidir)/$(version)-$(revision)/${arch} + echo $(abinum) > $(abidir)/$(version)-$(revision)/abiname + + @for i in $(flavours); do \ + echo "Building $$i..."; \ + export KPKG_SUBARCH=$(arch); \ + cd $(builddir)/build-$$i; \ + if [ -e /CurrentlyBuilding ] && [ -z "$(CONCURRENCY_LEVEL)" ]; then \ + CONCURRENCY_LEVEL=$$(getconf _NPROCESSORS_ONLN) && \ + CONCURRENCY_LEVEL=$$(expr $$CONCURRENCY_LEVEL \* 2) && \ + export CONCURRENCY_LEVEL; \ + fi; \ + $(MAKE_KPKG) --append_to_version $(debnum)-$$i build; \ + if [ "$$i" = "$(crashdump)" ]; then \ + cd $(builddir)/build-kdump; \ + $(MAKE_KPKG) --append_to_version -kdump build; \ + cd $(builddir)/build-$$i; \ + fi; \ + export LC_ALL=C; \ + sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' Module.symvers | sort > $(abidir)/$(version)-$(revision)/${arch}/$$i; \ + if [ "$(prev_revision)" != "0" ] && [ "$(abinum)" = "$(shell cat $(abidir)/$(version)-$(prev_revision)/abiname)" ]; then \ + echo "Checking ABI for $$i..."; \ + if [ ! -e "$(abidir)/${arch}.ignore" -a "$(skipabi)" != "true" ]; then \ + if [ "`diff -u $(abidir)/$(version)-$(prev_revision)/${arch}/$$i $(abidir)/$(version)-$(revision)/${arch}/$$i | grep ^-[^-] | wc -l`" != "0" ]; then \ + echo "ABI has changed! Refusing to continue; please update the ABINAME accordingly. Differences:"; \ + diff -u $(abidir)/$(version)-$(prev_revision)/${arch}/$$i $(abidir)/$(version)-$(revision)/${arch}/$$i; \ + exit 1; \ + fi; \ + if [ "`diff -u $(abidir)/$(version)-$(prev_revision)/${arch}/$$i $(abidir)/$(version)-$(revision)/${arch}/$$i | grep ^+[^+] | wc -l`" != "0" ]; then \ + echo "WARNING: new symbols have been added. This is not critical, but probably is not a good idea when attempting to maintain ABI stability. Differences:"; \ + diff -u $(abidir)/$(version)-$(prev_revision)/${arch}/$$i $(abidir)/$(version)-$(revision)/${arch}/$$i || true; \ + fi; \ + else \ + if [ -e $(abidir)/$(version)-$(prev_revision)/${arch}/$$i ]; then \ + if ! diff -u $(abidir)/$(version)-$(prev_revision)/${arch}/$$i $(abidir)/$(version)-$(revision)/${arch}/$$i >/dev/null 2>&1; then \ + echo "WARNING! ABI check override for ${arch} has been detected, and there were changes!"; \ + diff -u $(abidir)/$(version)-$(prev_revision)/${arch}/$$i $(abidir)/$(version)-$(revision)/${arch}/$$i || true; \ + fi; \ + else \ + echo "WARNING! ABI check override for ${arch} has been detected!"; \ + echo "ABI compatibility can NOT be verified! but still proceeding as requested"; \ + fi; \ + fi; \ + fi; \ + cd - > /dev/null; \ + done + +clean: debian/control + dh_testdir + dh_testroot + + $(MAKE_KPKG) clean + rm -f stamp-* .config* release.Debian version.Debian + rm -rf $(abidir)/$(version)-$(revision) + rm -rf $(builddir) + + dh_clean + + # udebs/kernel-wedge + rm -rf TODO firmware modules kernel-versions* package-list debian/d-i-${arch} + cp -f debian/control.stub debian/control + +ifeq ($(skipabi),false) +ifneq ($(prev_revision),0) + # Check for the previous kernel's abi file; now a requirement for + # builds! + + @if [ ! -f "$(abidir)/$(version)-$(prev_revision)/abiname" ]; then \ + echo "Missing $(abidir)/$(version)-$(prev_revision)/abiname file." 1>&2; \ + exit 1; \ + fi + @if [ "$(prev_revision)" != "0" ] && [ "$(abinum)" = "$(shell cat $(abidir)/$(version)-$(prev_revision)/abiname)" ]; then \ + if [ ! -e "$(abidir)/${arch}.ignore" -a "$(skipabi)" != "true" ]; then \ + for i in $(flavours); do \ + echo "Checking ABI for $$i..."; \ + if [ ! -f "$(abidir)/$(version)-$(prev_revision)/${arch}/$$i" ]; then \ + echo "Missing $(abidir)/$(version)-$(prev_revision)/${arch}/$$i file." 2>&1; \ + exit 1; \ + fi; \ + done \ + else \ + echo "WARNING! ABI check override for ${arch} has been detected!"; \ + echo "ABI compatibility can NOT be verified! but still proceeding as requested"; \ + fi; \ + fi +endif +endif + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + > debian/files + +# Build architecture-independent files here. +binary-indep: build install + dh_testdir + dh_testroot + + cd $(srcdir); \ + $(MAKE_KPKG) kernel-source; \ + $(MAKE_KPKG) kernel-doc + + mv $(builddir)/*.deb .. + cat $(srcdir)/debian/files >> debian/files + rm $(srcdir)/debian/files + + dh_installchangelogs -plinux-kernel-devel + dh_installdocs -plinux-kernel-devel debian/ChangeLog-$(version) + dh_compress -plinux-kernel-devel + dh_fixperms -plinux-kernel-devel + dh_installdeb -plinux-kernel-devel + dh_gencontrol -plinux-kernel-devel + dh_md5sums -plinux-kernel-devel + dh_builddeb -plinux-kernel-devel + +headers_tmp := $(CURDIR)/debian/tmp-headers +headers_dir := $(CURDIR)/debian/linux-libc-dev + +headers_arch := $(shell grep "^headers-$(arch)[[:space:]]" debian/config/archmap | grep -v ^\# | awk '{print $$3}') +header_make_args := -C $(srcdir) O=$(headers_tmp) \ + EXTRAVERSION=$(debnum) INSTALL_HDR_PATH=$(headers_tmp)/install + +header-deb: + dh_testdir + dh_testroot + + rm -rf $(headers_dir) $(headers_tmp) + install -d $(headers_dir)/usr/include $(headers_tmp) + + make $(header_make_args) ARCH=$(headers_arch) defconfig + mv $(headers_tmp)/.config $(headers_tmp)/.config.old + sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \ + -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \ + $(headers_tmp)/.config.old > $(headers_tmp)/.config + make $(header_make_args) ARCH=$(headers_arch) oldconfig + make $(header_make_args) ARCH=$(headers_arch) headers_install + + mv $(headers_tmp)/install/include/asm* \ + $(headers_dir)/usr/include/ + mv $(headers_tmp)/install/include/linux \ + $(headers_dir)/usr/include/ + + dh_installchangelogs -plinux-libc-dev + dh_installdocs -plinux-libc-dev debian/ChangeLog-$(version) + dh_compress -plinux-libc-dev + dh_fixperms -plinux-libc-dev + dh_installdeb -plinux-libc-dev + dh_gencontrol -plinux-libc-dev + dh_md5sums -plinux-libc-dev + dh_builddeb -plinux-libc-dev + + rm -rf $(headers_dir) $(headers_tmp) + +# Build architecture-dependent files here. +binary-debs: install + dh_testdir + dh_testroot + + export KPKG_SUBARCH=$(shell grep "^headers-$(arch)[[:space:]]" debian/config/archmap | grep -v ^\# | awk '{print $$2}'); \ + cd $(srcdir); \ + HEADER_CLEAN_HOOK=$(CURDIR)/debian/header-install \ + $(MAKE_KPKG) $(appvan) kernel-headers + + for i in $(flavours); do \ + export KPKG_ARCH=$(arch); \ + olddir=`pwd`; \ + cd $(builddir)/build-$$i; \ + $(MAKE_KPKG) --append_to_version $(debnum)-$$i \ + --initrd kernel-image; \ + if [ "$$i" = "$(crashdump)" ]; then \ + cd $(builddir)/build-kdump; \ + $(MAKE_KPKG) --append_to_version -kdump \ + --initrd kernel-image; \ + fi; \ + cd $$olddir > /dev/null; \ + cat $(builddir)/build-$$i/debian/files >> debian/files; \ + if [ "$$i" = "$(crashdump)" ]; then \ + cat $(builddir)/build-kdump/debian/files >> debian/files; \ + fi; \ + done + +binary-arch: binary-debs header-deb binary-udebs + dh_testdir + dh_testroot + + mv $(builddir)/*.deb .. + cat $(srcdir)/debian/files >> debian/files + rm $(srcdir)/debian/files + +binary: binary-indep binary-arch + +.PHONY: build clean binary-indep binary-arch binary-debs binary install unpack debnum abinum + +##################### +# The following targets set the stage for building the debian-installer udebs + +.PHONY: debian/control binary-udebs debian/control.stub + +debian/control.stub: FORCE + list="$(shell LC_ALL=C ls -d debian/d-i/*/kernel-versions.in) debian/control.stub.in"; \ + for i in $$list; do \ + new=`echo $$i | sed 's/\.in$$//'`; \ + cat $$i | sed -e 's/PKGVER/$(pkgversion)/g' -e 's/ABINUM/$(abinum)/g' > \ + $$new; \ + done + flavours="$(shell LC_ALL=C ls -d debian/config/vars.* debian/config/*/vars.*)"; \ + for i in $$flavours; do \ + sh debian/bin/control-create $$i | \ + sed -e 's/PKGVER/$(pkgversion)/g' -e 's/ABINUM/$(abinum)/g' >> \ + debian/control.stub; \ + done + cp debian/control.stub debian/control + +debian/control: debian/control.stub + # if you need to change something, do it in the right place ;) + rm -rf TODO firmware modules kernel-versions package-list + cp -rp debian/d-i/$(arch)/* . + mkdir -p modules/$(arch)/shared/ + cp -rp debian/d-i/shared/modules/* modules/$(arch)/shared/ + mkdir -p firmware/$(arch)/shared/ + cp -rp debian/d-i/shared/firmware/* firmware/$(arch)/shared/ + + # ugly workaround from some fsck Makefile that removes all + # files called kernel-image, that is required by kernel-wedge to + # generate the kernel_*.udeb! + touch modules/$(arch)/kernel-image + if [ -d modules/sparc64 ]; then \ + touch modules/sparc64/kernel-image && \ + cp -rp modules/sparc/shared modules/sparc64; \ + fi + + kernel-wedge gen-control > debian/control + +binary-udebs: binary-debs + dh_testdir + dh_testroot + + # unpack the kernels into a temporary directory + mkdir -p debian/d-i-${arch} + + # XXX: this stuff finds the kernels that need upacking according to + # kernel-versions and unpack them into the temp dir. + + imagelist=$$(cat kernel-versions | grep ^${arch} | awk '{print $$4}') && \ + for i in $$imagelist; do \ + dpkg -x $$(ls debian/build/$(stem)-image-$$i\_*${arch}.deb) debian/d-i-${arch}; \ + done + + kernel-wedge make-links + + export SOURCEDIR=debian/d-i-${arch} && \ + kernel-wedge install-files && \ + kernel-wedge check + + dh_fixperms -s + dh_gencontrol -s + + # XXX: this stuff builds only the .udeb. We cannot call dh_builddeb for everything + # since the .deb will be generated by make-kpkg. + dilist=$$(dh_listpackages -s | grep "\-di$$") && \ + for i in $$dilist; do \ + dh_builddeb -p$$i; \ + done + +##################### +# The following targets are for the maintainer only! do no run if you don't +# know what they do. + +.PHONY: printenv updateconfigs + +updateconfigs: + dh_testdir + @for arch in i386 amd64 ia64 hppa powerpc sparc; do \ + debian/bin/oldconfig $$arch; \ + done + rm -rf build + +printenv: + dh_testdir + @echo release = $(release) + @echo pkgversion = $(pkgversion) + @echo revisions = $(revisions) + @echo revision = $(revision) + @echo prev_revisions = $(prev_revisions) + @echo prev_revision = $(prev_revision) + @echo version = $(version) + @echo debnum = $(debnum) + @echo abinum = $(abinum) + @echo gitver = $(gitver) + @echo flavours = $(flavours) + @echo crashdump = $(crashdump) + +FORCE: --- linux-source-2.6.17-2.6.17.1.orig/debian/post-install +++ linux-source-2.6.17-2.6.17.1/debian/post-install @@ -0,0 +1,118 @@ +#!/bin/bash + +set -e + +debhelper_pre() { + dh_clean -k --package="$1" + dh_installdirs --package="$1" +} + +debhelper_post() { + dh_installdocs --package="$1" + dh_installchangelogs --package="$1" + dh_compress --package="$1" + dh_fixperms --package="$1" + dh_shlibdeps --package="$1" + dh_installdeb --package="$1" + dh_gencontrol --package="$1" + dh_md5sums --package="$1" + dh_builddeb --package="$1" +} + + +stem=${STEM:-kernel} +suffix=${version#*$debnum-} +prefix=$DEBIAN_UPSTREAM_VERSION$debnum +pkg=$stem-headers-$version +pkg_d=$stem-image-debug-$version +top=$PWD/debian/$pkg +top_d=$PWD/debian/$pkg_d +dir=$top/usr/src/$stem-headers-$version + + +# Headers +debhelper_pre $pkg + +install -d $dir/include/linux + +cp -a .config $dir +echo $debnum-$suffix > $dir/.extraversion +cp -a Module.symvers $dir + +find . -mindepth 1 -maxdepth 1 \ + ! -name scripts \ + ! -name debian -a ! -name Documentation -a ! -name include -a \ + ! -name '.*' -a \( \ + -name Makefile -o -type d \) \ + -printf "../$stem-headers-$prefix/%f\n" | + xargs ln -s --target-directory=$dir + +cp -rp scripts $dir/ + +rm -f $dir/Makefile +cat Makefile | sed "s/^EXTRAVERSION *=[^$].*/EXTRAVERSION=$debnum-$suffix/" > $dir/Makefile +echo "$version" > $dir/.kernelrelease + +cd include +find . -mindepth 1 -maxdepth 1 \ + ! -name config -a ! -name linux \ + -printf "../../$stem-headers-$prefix/include/%f\n" | + xargs ln -s --target-directory=$dir/include + +# fix asm link to the proper arch +KARCH=$(grep "^headers-$KPKG_ARCH[[:space:]]" ../../../config/archmap | grep -v ^# | awk '{print $2}') + +cd $dir/include +rm -f asm +ln -sf asm-$KARCH asm +cd - > /dev/null 2>&1 + +cp -a config $dir/include +find linux -mindepth 1 -maxdepth 1 \ + ! -name autoconf.h -a \ + ! -name compile.h -a ! -name version.h \ + -printf "../../../$stem-headers-$prefix/include/linux/%f\n" | + xargs ln -s --target-directory=$dir/include/linux +cp -a linux/autoconf.h linux/compile.h \ + linux/version.h $dir/include/linux +cd .. + +install -d $top/lib/modules/$version +ln -s /usr/src/$stem-headers-$version $top/lib/modules/$version/build + +debhelper_post $pkg +install -d $dir/include/linux + +# Debug package +debhelper_pre $pkg_d + +install -D -m 644 vmlinux $top_d/boot/vmlinux-dbg-$version + +debhelper_post $pkg_d + + +cd "$IMAGE_TOP/lib/modules/$version" +if [ -h source ]; then + rm source +fi +install -d initrd +if [ -f kernel/drivers/video/vesafb.ko ]; then + ln -f kernel/drivers/video/vesafb.ko initrd/ +fi +if [ -f kernel/security/capability.ko ]; then + ln -f kernel/security/capability.ko initrd/ +fi + +cd ../../.. +install -d lib/firmware/$version +# zd1211 needs to stay in the subdirectory +cp -a "$DEBIAN_SRCTOP"/debian/firmware/zd1211 lib/firmware/$version/ +for i in "$DEBIAN_SRCTOP"/debian/firmware/*/[[:lower:]]*; do + case ${i##*/} in + zd12*) + ;; + *) + cp $i "lib/firmware/$version/${i##*/}" + ;; + esac +done --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/firewire-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/firewire-core-modules @@ -0,0 +1 @@ +#include "shared/firewire-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/fb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/fb-modules @@ -0,0 +1,3 @@ +fbcon +vesafb +vga16fb --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/crc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/crc-modules @@ -0,0 +1 @@ +#include "shared/crc-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/sata-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/sata-modules @@ -0,0 +1 @@ +#include "shared/sata-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/scsi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/scsi-modules @@ -0,0 +1 @@ +#include "shared/scsi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/socket-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/socket-modules @@ -0,0 +1 @@ +#include "shared/socket-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/serial-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/serial-modules @@ -0,0 +1 @@ +#include "shared/serial-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/xfs-modules @@ -0,0 +1 @@ +#include "shared/xfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/ufs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/ufs-modules @@ -0,0 +1 @@ +#include "shared/ufs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/fat-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/fat-modules @@ -0,0 +1 @@ +#include "shared/fat-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/input-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/input-modules @@ -0,0 +1 @@ +#include "shared/input-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/nfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/nfs-modules @@ -0,0 +1 @@ +#include "shared/nfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/loop-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/loop-modules @@ -0,0 +1 @@ +#include "shared/loop-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/acpi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/acpi-modules @@ -0,0 +1 @@ +#include "shared/acpi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/md-modules @@ -0,0 +1 @@ +#include "shared/md-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/plip-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/plip-modules @@ -0,0 +1 @@ +#include "shared/plip-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/floppy-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/floppy-modules @@ -0,0 +1 @@ +#include "shared/floppy-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/pcmcia-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/pcmcia-storage-modules @@ -0,0 +1 @@ +#include "shared/pcmcia-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/ext2-modules @@ -0,0 +1 @@ +#include "shared/ext2-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/jfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/jfs-modules @@ -0,0 +1 @@ +#include "shared/jfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/pcmcia-modules @@ -0,0 +1 @@ +#include "shared/pcmcia-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/nic-modules @@ -0,0 +1 @@ +#include "shared/nic-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/parport-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/parport-modules @@ -0,0 +1 @@ +#include "shared/parport-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/cdrom-core-modules @@ -0,0 +1 @@ +#include "shared/cdrom-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/scsi-core-modules @@ -0,0 +1 @@ +#include "shared/scsi-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/ppp-modules @@ -0,0 +1 @@ +#include "shared/ppp-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/usb-modules @@ -0,0 +1 @@ +#include "shared/usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/ext3-modules @@ -0,0 +1 @@ +#include "shared/ext3-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/usb-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/usb-storage-modules @@ -0,0 +1 @@ +#include "shared/usb-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/nic-pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/nic-pcmcia-modules @@ -0,0 +1 @@ +#include "shared/nic-pcmcia-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/ide-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/ide-modules @@ -0,0 +1 @@ +#include "shared/ide-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/nic-usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/nic-usb-modules @@ -0,0 +1 @@ +#include "shared/nic-usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/speakup-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/speakup-modules @@ -0,0 +1 @@ +#include "shared/speakup-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/nic-shared-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/nic-shared-modules @@ -0,0 +1 @@ +#include "shared/nic-shared-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/ipv6-modules @@ -0,0 +1 @@ +#include "shared/ipv6-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/ntfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/ntfs-modules @@ -0,0 +1 @@ +#include "shared/ntfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/irda-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/irda-modules @@ -0,0 +1 @@ +#include "shared/irda-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/reiserfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/reiserfs-modules @@ -0,0 +1 @@ +#include "shared/reiserfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/modules/i386/cdrom-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/modules/i386/cdrom-modules @@ -0,0 +1,10 @@ +aztcd ? +cdu31a ? +cm206 ? +gscd ? +isp16 ? +mcdx ? +optcd ? +sbpcd ? +sjcd ? +sonycd535 ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/package-list +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/package-list @@ -0,0 +1,34 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image + +Package: fat-modules +Priority: standard + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, firmware-modules, firewire-core-modules, crc-modules, usb-modules + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, nic-modules, firmware-modules, pcmcia-modules + +Package: scsi-modules +Depends: kernel-image, isa-pnp-modules, scsi-core-modules, parport-modules, cdrom-core-modules, firmware-modules + +Package: irda-modules +Depends: kernel-image, ppp-modules, usb-modules, nic-shared-modules + +Package: nic-firmware +Priority: standard +Depends: kernel-image +Description: External firmware for NIC drivers + This package contains external binary-only firmware for some NIC drivers. + +Package: speakup-modules +Depends: kernel-image, serial-modules +Description: Drivers for speakup speach synth + +Package: pcmcia-storage-modules +Depends: Depends: kernel-image, ide-core-modules, cdrom-core-modules, pcmcia-modules, sata-modules --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/kernel-versions.in +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/kernel-versions.in @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +i386 PKGVER-ABINUM 386 PKGVER-ABINUM-386 - +i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/firmware/i386/nic-firmware +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/firmware/i386/nic-firmware @@ -0,0 +1 @@ +#include "shared/nic-firmware" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/i386/kernel-versions +++ linux-source-2.6.17-2.6.17.1/debian/d-i/i386/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +i386 2.6.17-50 386 2.6.17-50-386 - +i386 2.6.17-50 generic 2.6.17-50-generic - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/crc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/crc-modules @@ -0,0 +1 @@ +#include "shared/crc-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/scsi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/scsi-modules @@ -0,0 +1 @@ +#include "shared/scsi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/xfs-modules @@ -0,0 +1 @@ +#include "shared/xfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/fat-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/fat-modules @@ -0,0 +1 @@ +#include "shared/fat-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/input-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/input-modules @@ -0,0 +1 @@ +#include "shared/input-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/nfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/nfs-modules @@ -0,0 +1 @@ +#include "shared/nfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/loop-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/loop-modules @@ -0,0 +1 @@ +cloop --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/md-modules @@ -0,0 +1 @@ +#include "shared/md-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/plip-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/plip-modules @@ -0,0 +1 @@ +#include "shared/plip-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/ext2-modules @@ -0,0 +1 @@ +#include "shared/ext2-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/nic-modules @@ -0,0 +1 @@ +#include "shared/nic-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/parport-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/parport-modules @@ -0,0 +1 @@ +#include "shared/parport-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/cdrom-core-modules @@ -0,0 +1 @@ +#include "shared/cdrom-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/scsi-core-modules @@ -0,0 +1 @@ +#include "shared/scsi-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/ppp-modules @@ -0,0 +1 @@ +#include "shared/ppp-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/usb-modules @@ -0,0 +1 @@ +#include "shared/usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/ext3-modules @@ -0,0 +1 @@ +#include "shared/ext3-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/usb-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/usb-storage-modules @@ -0,0 +1 @@ +#include "shared/usb-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/ide-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/ide-modules @@ -0,0 +1,18 @@ +alim15x3 +cmd64x +cs5520 +cs5530 +cy82c693 +generic +ide-disk +ide-floppy +ide-generic +ide-tape +isofs +ns87415 +pdc202xx_new +pdc202xx_old +serverworks +siimage +trm290 +via82cxxx --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/nic-shared-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/nic-shared-modules @@ -0,0 +1 @@ +#include "shared/nic-shared-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/ipv6-modules @@ -0,0 +1 @@ +#include "shared/ipv6-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc64/reiserfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc64/reiserfs-modules @@ -0,0 +1 @@ +#include "shared/reiserfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/xfs-modules @@ -0,0 +1 @@ +#include "shared/xfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/fat-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/fat-modules @@ -0,0 +1 @@ +#include "shared/fat-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/nfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/nfs-modules @@ -0,0 +1 @@ +#include "shared/nfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/md-modules @@ -0,0 +1 @@ +#include "shared/md-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/plip-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/plip-modules @@ -0,0 +1 @@ +#include "shared/plip-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/ext2-modules @@ -0,0 +1 @@ +#include "shared/ext2-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/nic-modules @@ -0,0 +1 @@ +#include "shared/nic-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/cdrom-core-modules @@ -0,0 +1 @@ +#include "shared/cdrom-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/scsi-core-modules @@ -0,0 +1 @@ +#include "shared/scsi-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/ppp-modules @@ -0,0 +1 @@ +#include "shared/ppp-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/ext3-modules @@ -0,0 +1 @@ +#include "shared/ext3-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/ipv6-modules @@ -0,0 +1 @@ +#include "shared/ipv6-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/modules/sparc/reiserfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/modules/sparc/reiserfs-modules @@ -0,0 +1 @@ +#include "shared/reiserfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/package-list +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/package-list @@ -0,0 +1,16 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, firmware-modules, firewire-core-modules, crc-modules, usb-modules + +Package: nic-firmware +Priority: standard +Depends: kernel-image +Description: External firmware for NIC drivers + This package contains external binary-only firmware for some NIC drivers. --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/kernel-versions.in +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/kernel-versions.in @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +sparc PKGVER-ABINUM sparc64 PKGVER-ABINUM-sparc64 - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/firmware/sparc/nic-firmware +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/firmware/sparc/nic-firmware @@ -0,0 +1 @@ +#include "shared/nic-firmware" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/sparc/kernel-versions +++ linux-source-2.6.17-2.6.17.1/debian/d-i/sparc/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +sparc 2.6.17-50 sparc64 2.6.17-50-sparc64 - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/firewire-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/firewire-core-modules @@ -0,0 +1 @@ +#include "shared/firewire-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/fb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/fb-modules @@ -0,0 +1 @@ +rivafb --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/crc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/crc-modules @@ -0,0 +1 @@ +#include "shared/crc-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/sata-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/sata-modules @@ -0,0 +1 @@ +#include "shared/sata-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/scsi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/scsi-modules @@ -0,0 +1 @@ +#include "shared/scsi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/socket-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/socket-modules @@ -0,0 +1 @@ +#include "shared/socket-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/serial-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/serial-modules @@ -0,0 +1 @@ +#include "shared/serial-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/xfs-modules @@ -0,0 +1 @@ +#include "shared/xfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/ufs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/ufs-modules @@ -0,0 +1 @@ +#include "shared/ufs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/fat-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/fat-modules @@ -0,0 +1 @@ +#include "shared/fat-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/input-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/input-modules @@ -0,0 +1 @@ +#include "shared/input-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/nfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/nfs-modules @@ -0,0 +1 @@ +#include "shared/nfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/loop-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/loop-modules @@ -0,0 +1 @@ +#include "shared/loop-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/affs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/affs-modules @@ -0,0 +1 @@ +affs --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/md-modules @@ -0,0 +1 @@ +#include "shared/md-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/floppy-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/floppy-modules @@ -0,0 +1 @@ +#include "shared/floppy-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/pcmcia-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/pcmcia-storage-modules @@ -0,0 +1 @@ +#include "shared/pcmcia-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/ext2-modules @@ -0,0 +1 @@ +#include "shared/ext2-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/jfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/jfs-modules @@ -0,0 +1 @@ +#include "shared/jfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/pcmcia-modules @@ -0,0 +1 @@ +#include "shared/pcmcia-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/nic-modules @@ -0,0 +1 @@ +#include "shared/nic-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/cdrom-core-modules @@ -0,0 +1 @@ +#include "shared/cdrom-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/hfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/hfs-modules @@ -0,0 +1,2 @@ +hfs +hfsplus --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/scsi-core-modules @@ -0,0 +1 @@ +#include "shared/scsi-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/ppp-modules @@ -0,0 +1 @@ +#include "shared/ppp-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/usb-modules @@ -0,0 +1 @@ +#include "shared/usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/ext3-modules @@ -0,0 +1 @@ +#include "shared/ext3-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/usb-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/usb-storage-modules @@ -0,0 +1 @@ +#include "shared/usb-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/nic-pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/nic-pcmcia-modules @@ -0,0 +1 @@ +#include "shared/nic-pcmcia-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/ide-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/ide-modules @@ -0,0 +1,17 @@ +aec62xx +cmd64x +generic +hpt34x +hpt366 +ide-disk +ide-floppy +ide-tape +isofs +ns87415 +pdc202xx_new +pdc202xx_old +sc1200 +siimage +sl82c105 +trm290 +via82cxxx --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/nic-usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/nic-usb-modules @@ -0,0 +1 @@ +#include "shared/nic-usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/speakup-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/speakup-modules @@ -0,0 +1 @@ +#include "shared/speakup-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/nic-shared-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/nic-shared-modules @@ -0,0 +1 @@ +#include "shared/nic-shared-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/ipv6-modules @@ -0,0 +1 @@ +#include "shared/ipv6-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/fs-common-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/fs-common-modules @@ -0,0 +1 @@ +nls_utf8 --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/irda-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/irda-modules @@ -0,0 +1,12 @@ +ali-ircc +ircomm +ircomm-tty +irda +irlan +irnet +irtty-sir +nsc-ircc +sir-dev +smsc-ircc2 +via-ircc +w83977af_ir --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/modules/powerpc/reiserfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/modules/powerpc/reiserfs-modules @@ -0,0 +1 @@ +#include "shared/reiserfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/package-list +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/package-list @@ -0,0 +1,54 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules + +Package: fs-common-modules +Depends: kernel-image +Priority: standard +Description: Common filesystem support + This package contains drivers common to several filesystem modules. + +Package: fat-modules +Depends: kernel-image, fs-common-modules + +Package: hfs-modules +Depends: kernel-image, fs-common-modules + +Package: ext2-modules +Depends: kernel-image, fs-common-modules + +Package: ext3-modules +Depends: kernel-image, fs-common-modules + +# due to isofs +Package: ide-modules +Depends: kernel-image, fs-common-modules + +Package: jfs-modules +Depends: kernel-image, fs-common-modules + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, firmware-modules, firewire-core-modules, crc-modules, usb-modules + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, pcmcia-modules, nic-modules + +Package: scsi-modules +Depends: kernel-image, isa-pnp-modules, scsi-core-modules, parport-modules, cdrom-core-modules, firmware-modules + +Package: nic-firmware +Priority: standard +Depends: kernel-image +Description: External firmware for NIC drivers + This package contains external binary-only firmware for some NIC drivers. + +Package: speakup-modules +Depends: kernel-image, serial-modules +Description: Drivers for speakup speach synth + +Package: pcmcia-storage-modules +Depends: Depends: kernel-image, ide-core-modules, cdrom-core-modules, pcmcia-modules, sata-modules --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/kernel-versions.in +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/kernel-versions.in @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +powerpc PKGVER-ABINUM powerpc PKGVER-ABINUM-powerpc - +powerpc PKGVER-ABINUM powerpc64-smp PKGVER-ABINUM-powerpc64-smp - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/firmware/powerpc/nic-firmware +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/firmware/powerpc/nic-firmware @@ -0,0 +1 @@ +#include "shared/nic-firmware" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/powerpc/kernel-versions +++ linux-source-2.6.17-2.6.17.1/debian/d-i/powerpc/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +powerpc 2.6.17-50 powerpc 2.6.17-50-powerpc - +powerpc 2.6.17-50 powerpc64-smp 2.6.17-50-powerpc64-smp - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/crc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/crc-modules @@ -0,0 +1 @@ +#include "shared/crc-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/scsi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/scsi-modules @@ -0,0 +1 @@ +#include "shared/scsi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/xfs-modules @@ -0,0 +1 @@ +#include "shared/xfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/input-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/input-modules @@ -0,0 +1 @@ +#include "shared/input-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/loop-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/loop-modules @@ -0,0 +1 @@ +#include "shared/loop-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/md-modules @@ -0,0 +1 @@ +#include "shared/md-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/ext2-modules @@ -0,0 +1 @@ +#include "shared/ext2-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/jfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/jfs-modules @@ -0,0 +1 @@ +#include "shared/jfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/nic-modules @@ -0,0 +1 @@ +#include "shared/nic-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/cdrom-core-modules @@ -0,0 +1 @@ +#include "shared/cdrom-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/scsi-core-modules @@ -0,0 +1 @@ +#include "shared/scsi-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/ppp-modules @@ -0,0 +1 @@ +#include "shared/ppp-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/usb-modules @@ -0,0 +1 @@ +#include "shared/usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/ext3-modules @@ -0,0 +1 @@ +#include "shared/ext3-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/usb-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/usb-storage-modules @@ -0,0 +1 @@ +#include "shared/usb-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/ide-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/ide-modules @@ -0,0 +1,4 @@ +ide-disk +ide-generic +isofs +ns87415 --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/nic-shared-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/nic-shared-modules @@ -0,0 +1 @@ +#include "shared/nic-shared-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/modules/hppa/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/modules/hppa/ipv6-modules @@ -0,0 +1 @@ +#include "shared/ipv6-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/package-list +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/package-list @@ -0,0 +1,16 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules, nfs-modules + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, firmware-modules, firewire-core-modules, crc-modules, usb-modules + +Package: nic-firmware +Priority: standard +Depends: kernel-image +Description: External firmware for NIC drivers + This package contains external binary-only firmware for some NIC drivers. --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/kernel-versions.in +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/kernel-versions.in @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +hppa PKGVER-ABINUM hppa32 PKGVER-ABINUM-hppa32 y +hppa PKGVER-ABINUM hppa64 PKGVER-ABINUM-hppa64 y --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/firmware/hppa/nic-firmware +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/firmware/hppa/nic-firmware @@ -0,0 +1 @@ +#include "shared/nic-firmware" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/hppa/kernel-versions +++ linux-source-2.6.17-2.6.17.1/debian/d-i/hppa/kernel-versions @@ -0,0 +1,3 @@ +# arch version flavour installedname suffix build-depends +hppa 2.6.17-50 hppa32 2.6.17-50-hppa32 y +hppa 2.6.17-50 hppa64 2.6.17-50-hppa64 y --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/firewire-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/firewire-core-modules @@ -0,0 +1 @@ +#include "shared/firewire-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/fb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/fb-modules @@ -0,0 +1,3 @@ +fbcon +vesafb +vga16fb --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/crc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/crc-modules @@ -0,0 +1 @@ +#include "shared/crc-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/sata-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/sata-modules @@ -0,0 +1 @@ +#include "shared/sata-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/scsi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/scsi-modules @@ -0,0 +1 @@ +#include "shared/scsi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/socket-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/socket-modules @@ -0,0 +1 @@ +#include "shared/socket-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/serial-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/serial-modules @@ -0,0 +1 @@ +#include "shared/serial-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/xfs-modules @@ -0,0 +1 @@ +#include "shared/xfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/ufs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/ufs-modules @@ -0,0 +1 @@ +#include "shared/ufs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/fat-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/fat-modules @@ -0,0 +1 @@ +#include "shared/fat-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/input-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/input-modules @@ -0,0 +1 @@ +#include "shared/input-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/nfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/nfs-modules @@ -0,0 +1 @@ +#include "shared/nfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/loop-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/loop-modules @@ -0,0 +1 @@ +#include "shared/loop-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/acpi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/acpi-modules @@ -0,0 +1 @@ +#include "shared/acpi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/md-modules @@ -0,0 +1 @@ +#include "shared/md-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/plip-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/plip-modules @@ -0,0 +1 @@ +#include "shared/plip-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/floppy-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/floppy-modules @@ -0,0 +1 @@ +#include "shared/floppy-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/pcmcia-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/pcmcia-storage-modules @@ -0,0 +1 @@ +#include "shared/pcmcia-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/ext2-modules @@ -0,0 +1 @@ +#include "shared/ext2-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/jfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/jfs-modules @@ -0,0 +1 @@ +#include "shared/jfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/pcmcia-modules @@ -0,0 +1 @@ +#include "shared/pcmcia-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/nic-modules @@ -0,0 +1 @@ +#include "shared/nic-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/parport-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/parport-modules @@ -0,0 +1 @@ +#include "shared/parport-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/cdrom-core-modules @@ -0,0 +1 @@ +#include "shared/cdrom-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/scsi-core-modules @@ -0,0 +1 @@ +#include "shared/scsi-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/ppp-modules @@ -0,0 +1 @@ +#include "shared/ppp-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/usb-modules @@ -0,0 +1 @@ +#include "shared/usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/ext3-modules @@ -0,0 +1 @@ +#include "shared/ext3-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/usb-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/usb-storage-modules @@ -0,0 +1 @@ +#include "shared/usb-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/nic-pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/nic-pcmcia-modules @@ -0,0 +1 @@ +#include "shared/nic-pcmcia-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/ide-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/ide-modules @@ -0,0 +1 @@ +#include "shared/ide-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/nic-usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/nic-usb-modules @@ -0,0 +1 @@ +#include "shared/nic-usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/speakup-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/speakup-modules @@ -0,0 +1 @@ +#include "shared/speakup-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/nic-shared-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/nic-shared-modules @@ -0,0 +1 @@ +#include "shared/nic-shared-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/ipv6-modules @@ -0,0 +1 @@ +#include "shared/ipv6-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/ntfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/ntfs-modules @@ -0,0 +1 @@ +#include "shared/ntfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/irda-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/irda-modules @@ -0,0 +1 @@ +#include "shared/irda-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/modules/amd64/reiserfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/modules/amd64/reiserfs-modules @@ -0,0 +1 @@ +#include "shared/reiserfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/package-list +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/package-list @@ -0,0 +1,34 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image + +Package: fat-modules +Priority: standard + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, firmware-modules, firewire-core-modules, crc-modules, usb-modules + +Package: nic-pcmcia-modules +Depends: kernel-image, nic-shared-modules, pcmcia-modules, firmware-modules, nic-modules + +Package: scsi-modules +Depends: kernel-image, scsi-core-modules, parport-modules, cdrom-core-modules, firmware-modules + +Package: irda-modules +Depends: kernel-image, ppp-modules, usb-modules, nic-shared-modules + +Package: nic-firmware +Priority: standard +Depends: kernel-image +Description: External firmware for NIC drivers + This package contains external binary-only firmware for some NIC drivers. + +Package: speakup-modules +Depends: kernel-image, serial-modules +Description: Drivers for speakup speach synth + +Package: pcmcia-storage-modules +Depends: Depends: kernel-image, ide-core-modules, cdrom-core-modules, pcmcia-modules, sata-modules --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/kernel-versions.in +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/kernel-versions.in @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/firmware/amd64/nic-firmware +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/firmware/amd64/nic-firmware @@ -0,0 +1 @@ +#include "shared/nic-firmware" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/amd64/kernel-versions +++ linux-source-2.6.17-2.6.17.1/debian/d-i/amd64/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +amd64 2.6.17-50 generic 2.6.17-50-generic - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/firewire-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/firewire-core-modules @@ -0,0 +1 @@ +#include "shared/firewire-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/fb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/fb-modules @@ -0,0 +1 @@ +fbcon --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/crc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/crc-modules @@ -0,0 +1 @@ +#include "shared/crc-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/sata-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/sata-modules @@ -0,0 +1 @@ +#include "shared/sata-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/scsi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/scsi-modules @@ -0,0 +1 @@ +#include "shared/scsi-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/firmware-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/firmware-modules @@ -0,0 +1 @@ +#include "shared/firmware-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/serial-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/serial-modules @@ -0,0 +1 @@ +#include "shared/serial-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/xfs-modules @@ -0,0 +1 @@ +#include "shared/xfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/ufs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/ufs-modules @@ -0,0 +1 @@ +#include "shared/ufs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/fat-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/fat-modules @@ -0,0 +1 @@ +#include "shared/fat-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/input-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/input-modules @@ -0,0 +1 @@ +#include "shared/input-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/nfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/nfs-modules @@ -0,0 +1 @@ +#include "shared/nfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/loop-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/loop-modules @@ -0,0 +1 @@ +#include "shared/loop-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/md-modules @@ -0,0 +1 @@ +#include "shared/md-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/plip-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/plip-modules @@ -0,0 +1 @@ +#include "shared/plip-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/ext2-modules @@ -0,0 +1 @@ +#include "shared/ext2-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/jfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/jfs-modules @@ -0,0 +1 @@ +#include "shared/jfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/pcmcia-modules @@ -0,0 +1 @@ +#include "shared/pcmcia-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/nic-modules @@ -0,0 +1 @@ +#include "shared/nic-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/parport-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/parport-modules @@ -0,0 +1 @@ +#include "shared/parport-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/cdrom-core-modules @@ -0,0 +1 @@ +#include "shared/cdrom-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/scsi-core-modules @@ -0,0 +1 @@ +#include "shared/scsi-core-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/ppp-modules @@ -0,0 +1 @@ +#include "shared/ppp-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/usb-modules @@ -0,0 +1 @@ +#include "shared/usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/ext3-modules @@ -0,0 +1 @@ +#include "shared/ext3-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/usb-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/usb-storage-modules @@ -0,0 +1 @@ +#include "shared/usb-storage-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/ide-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/ide-modules @@ -0,0 +1 @@ +#include "shared/ide-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/nic-usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/nic-usb-modules @@ -0,0 +1 @@ +#include "shared/nic-usb-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/nic-shared-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/nic-shared-modules @@ -0,0 +1 @@ +#include "shared/nic-shared-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/ipv6-modules @@ -0,0 +1 @@ +#include "shared/ipv6-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/ntfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/ntfs-modules @@ -0,0 +1 @@ +#include "shared/ntfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/irda-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/irda-modules @@ -0,0 +1,9 @@ +ircomm +ircomm-tty +irda +irda-usb +irlan +irnet +irtty-sir +sir-dev +stir4200 --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/modules/ia64/reiserfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/modules/ia64/reiserfs-modules @@ -0,0 +1 @@ +#include "shared/reiserfs-modules" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/package-list +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/package-list @@ -0,0 +1,40 @@ +# This file is used to build up the control file. The kernel version and +# "-di" are appended to the package names. Section can be left out. So can +# architecture, which is derived from the files in the modules directory. +# It overwrites specifications from /usr/share/kernel-wedge/package-list. +# +Package: kernel-image +Provides: rtc-modules + +Package: fs-common-modules +Depends: kernel-image +Priority: standard +Description: Common filesystem support + This package contains drivers common to several filesystem modules. + +Package: ext2-modules +Depends: kernel-image, fs-common-modules +Priority: standard +Description: EXT2 filesystem support + This package contains the EXT2 filesystem module for the Linux kernel. + +Package: ext3-modules +Depends: kernel-image, fs-common-modules +Priority: standard +Description: EXT3 filesystem support + This package contains the EXT3 filesystem module for the Linux kernel. + +Package: fat-modules +Priority: standard + +Package: nic-modules +Depends: kernel-image, nic-shared-modules, firmware-modules, firewire-core-modules, crc-modules, usb-modules + +Package: scsi-modules +Depends: kernel-image, isa-pnp-modules, scsi-core-modules, parport-modules, cdrom-core-modules, firmware-modules + +Package: nic-firmware +Priority: standard +Depends: kernel-image +Description: External firmware for NIC drivers + This package contains external binary-only firmware for some NIC drivers. --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/kernel-versions.in +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/kernel-versions.in @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +ia64 PKGVER-ABINUM itanium PKGVER-ABINUM-itanium - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/firmware/ia64/nic-firmware +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/firmware/ia64/nic-firmware @@ -0,0 +1 @@ +#include "shared/nic-firmware" --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/ia64/kernel-versions +++ linux-source-2.6.17-2.6.17.1/debian/d-i/ia64/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +ia64 2.6.17-50 itanium 2.6.17-50-itanium - --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/firewire-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/firewire-core-modules @@ -0,0 +1,3 @@ +ieee1394 +ohci1394 +sbp2 --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/crc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/crc-modules @@ -0,0 +1 @@ +crc-ccitt ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/sata-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/sata-modules @@ -0,0 +1,15 @@ +ahci ? +ata_piix ? +libata +sata_mv ? +sata_nv ? +sata_promise +sata_qstor +sata_sil +sata_sis +sata_svw ? +sata_sx4 +sata_uli +sata_via +sata_vsc +sx8 --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/scsi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/scsi-modules @@ -0,0 +1,83 @@ +3w-9xxx ? +3w-xxxx ? +53c700 ? +a100u2w ? +aacraid ? +advansys ? +aha1542 ? +aha1740 ? +aic79xx ? +aic7xxx ? +aic7xxx_old ? +aic94xx ? +arcmsr ? +atp870u ? +BusLogic ? +cciss ? +ch ? +cpqarray ? +DAC960 ? +dc395x ? +dmx3191d ? +dpt_i2o ? +eata ? +eata_pio ? +esp ? +fd_mcs ? +fdomain ? +gdth ? +g_NCR5380 ? +i2o_block ? +i2o_config ? +i2o_core ? +i2o_proc ? +i2o_scsi ? +imm ? +in2000 ? +ipr ? +ips ? +lasi700 ? +mac53c94 ? +mca_53c9x ? +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mesh ? +mptspi ? +mptscsih ? +mptfc ? +mptsas ? +mptctl ? +mptlan ? +NCR53c406a ? +NCR53C9x ? +osst +pas16 ? +ppa ? +psi240i ? +qla1280 ? +qla2200 ? +qla2300 ? +qla2322 ? +qla2xxx ? +qla6312 ? +qlogicfas ? +qlogicfas408 ? +qlogicfc ? +qlogicisp ? +qlogicpti ? +sas_class ? +scsi_transport_fc +scsi_transport_spi ? +scsi_transport_iscsi ? +sg +sim710 ? +st +sym53c8xx +t128 ? +tmscsim ? +u14-34f ? +ultrastor ? +wd7000 ? +zalon7xx ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/firmware-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/firmware-modules @@ -0,0 +1 @@ +efivars ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/socket-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/socket-modules @@ -0,0 +1 @@ +af_packet --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/serial-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/serial-modules @@ -0,0 +1,3 @@ +generic_serial ? +serial_cs ? +synclink_cs ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/xfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/xfs-modules @@ -0,0 +1 @@ +xfs --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/ufs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/ufs-modules @@ -0,0 +1 @@ +ufs --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/fat-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/fat-modules @@ -0,0 +1,4 @@ +fat +nls_cp437 +nls_iso8859-1 +vfat --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/input-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/input-modules @@ -0,0 +1,12 @@ +atkbd ? +evdev +hil_kbd ? +hilkbd ? +hil_mlc ? +hp_sdc ? +hp_sdc_mlc ? +i8042 ? +mousedev ? +psmouse ? +usbhid ? +usbkbd ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/nfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/nfs-modules @@ -0,0 +1,3 @@ +lockd +nfs +sunrpc --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/loop-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/loop-modules @@ -0,0 +1,2 @@ +cloop +loop --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/acpi-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/acpi-modules @@ -0,0 +1,2 @@ +fan +thermal --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/md-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/md-modules @@ -0,0 +1,15 @@ +dm-crypt +dm-emc ? +dm-mirror +dm-mod +dm-multipath ? +dm-round-robin ? +dm-snapshot +linear +multipath +raid0 +raid1 +raid10 +raid5 +raid6 +xor --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/plip-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/plip-modules @@ -0,0 +1 @@ +plip --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/floppy-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/floppy-modules @@ -0,0 +1 @@ +floppy --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/pcmcia-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/pcmcia-storage-modules @@ -0,0 +1 @@ +pata_pcmcia --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/ext2-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/ext2-modules @@ -0,0 +1 @@ +ext2 --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/rtc-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/rtc-modules @@ -0,0 +1,2 @@ +genrtc ? +rtc ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/jfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/jfs-modules @@ -0,0 +1 @@ +jfs --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/pcmcia-modules @@ -0,0 +1,8 @@ +i82092 +i82365 ? +pcmcia +pcmcia_core +pd6729 +rsrc_nonstatic +tcic ? +yenta_socket --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/nic-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/nic-modules @@ -0,0 +1,148 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x +8139cp ? +8139too +82596 ? +abyss ? +ac3200 ? +acx_pci ? +airo ? +airport ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +atmel ? +atmel_pci ? +b44 ? +bcm43xx ? +bmac ? +bnx2 +bonding ? +cassini ? +com20020 ? +com20020-pci ? +com90io ? +com90xx ? +cs89x0 ? +de2104x ? +de4x5 ? +de600 ? +de620 ? +defxx ? +depca ? +dl2k +dmfe ? +dummy ? +e100 +e1000 +e2100 ? +eepro ? +eepro100 ? +eexpress ? +epic100 +eql ? +es3210 ? +eth1394 ? +eth16i ? +ewrk3 ? +fealnx +forcedeth ? +hamachi ? +hermes ? +hp ? +hp100 ? +hp-plus ? +ibmtr ? +ieee80211_crypt_ccmp ? +ieee80211_crypt_tkip ? +ieee80211_crypt_wep ? +ipddp ? +ipw2100 ? +ipw2200 ? +ipw3945 ? +ixgb +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mv643xx_eth ? +myri_sbus ? +natsemi +ne ? +ne2 ? +ne2k-pci +ne3210 ? +netconsole ? +ni5010 ? +ni52 ? +ni65 ? +ns83820 +olympic ? +orinoco ? +orinoco_pci ? +orinoco_plx ? +orinoco_tmd ? +pcnet32 +prism54 ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2500 ? +rt2570 ? +rt2400pci ? +rt2500pci ? +rt2500usb ? +rt61pci ? +rt73usb ? +s2io +shaper +sis190 +sis900 +skfp ? +skge +sk98lin ? +sky2 ? +smc9194 ? +smc-ultra ? +smc-ultra32 ? +starfire +strip ? +sunbmac ? +sundance +sungem ? +sungem_phy ? +sunhme ? +sunlance ? +sunqe ? +tg3 +tlan ? +tms380tr ? +tmspci ? +tulip +tun +typhoon ? +uli526x ? +via-rhine +via-velocity +wavelan ? +wd ? +winbond-840 ? +yellowfin +znet ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/parport-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/parport-modules @@ -0,0 +1,3 @@ +parport +parport_pc +parport_sunbpp ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/cdrom-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/cdrom-core-modules @@ -0,0 +1,3 @@ +cdrom ? +ide-cd ? +sr_mod ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/scsi-core-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/scsi-core-modules @@ -0,0 +1,2 @@ +scsi_mod ? +sd_mod --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/ppp-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/ppp-modules @@ -0,0 +1,6 @@ +ppp_async +ppp_deflate +ppp_mppe +pppoe +pppox +ppp_synctty --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/usb-modules @@ -0,0 +1,6 @@ +ehci-hcd +ohci-hcd +sl811-hcd +uhci-hcd ? +usbcore ? +usbserial ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/ext3-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/ext3-modules @@ -0,0 +1,2 @@ +ext3 +jbd --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/usb-storage-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/usb-storage-modules @@ -0,0 +1 @@ +usb-storage --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/nic-pcmcia-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/nic-pcmcia-modules @@ -0,0 +1,19 @@ +3c574_cs ? +3c589_cs ? +airo_cs ? +atmel_cs ? +axnet_cs ? +com20020_cs ? +fmvj18x_cs ? +ibmtr_cs ? +netwave_cs ? +nmclan_cs ? +orinoco_cs ? +pcnet_cs ? +ray_cs ? +smc91c92_cs ? +wavelan_cs ? +wl3501_cs ? +xirc2ps_cs ? +xircom_cb ? +xircom_tulip_cb ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/ide-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/ide-modules @@ -0,0 +1,32 @@ +aec62xx +alim15x3 +amd74xx ? +atiixp ? +cmd64x +cs5520 +cs5530 +cy82c693 +generic +hpt34x +hpt366 +ide-disk +ide-floppy +ide-generic +ide-tape +isofs +jmicron ? +ns87415 +opti621 +pdc202xx_new +pdc202xx_old +piix +rz1000 ? +sc1200 +serverworks +sgiioc4 ? +siimage +sis5513 ? +slc90e66 +triflex +trm290 +via82cxxx --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/nic-usb-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/nic-usb-modules @@ -0,0 +1,6 @@ +catc ? +kaweth ? +pegasus ? +prism2_usb ? +rtl8150 ? +usbnet ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/speakup-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/speakup-modules @@ -0,0 +1,16 @@ +speakup_keyhelp +speakupmain +speakup_acntpc +speakup_acntsa +speakup_apollo +speakup_audptr +speakup_bns +speakup_decext +speakup_decpc +speakup_dectlk +speakup_dtlk +speakup_keypc +speakup_ltlk +speakup_sftsyn +speakup_spkout +speakup_txprt --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/nic-shared-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/nic-shared-modules @@ -0,0 +1,2 @@ +8390 +mii ? --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/ipv6-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/ipv6-modules @@ -0,0 +1 @@ +ipv6 --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/ntfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/ntfs-modules @@ -0,0 +1 @@ +ntfs --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/irda-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/irda-modules @@ -0,0 +1,26 @@ +act200l-sir +actisys-sir +ali-ircc +donauboe ? +esi-sir +girbil-sir +ircomm +ircomm-tty +irda +irda-usb +irlan +irnet +irport ? +irtty-sir +litelink-sir +ma600-sir +mcp2120-sir +nsc-ircc +old_belkin-sir +sir-dev +smsc-ircc2 +stir4200 +tekram-sir +via-ircc +vlsi_ir +w83977af_ir --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/modules/reiserfs-modules +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/modules/reiserfs-modules @@ -0,0 +1 @@ +reiserfs --- linux-source-2.6.17-2.6.17.1.orig/debian/d-i/shared/firmware/nic-firmware +++ linux-source-2.6.17-2.6.17.1/debian/d-i/shared/firmware/nic-firmware @@ -0,0 +1,29 @@ +atmel_at76c502-wpa.bin +atmel_at76c502.bin +atmel_at76c502_3com-wpa.bin +atmel_at76c502_3com.bin +atmel_at76c502d-wpa.bin +atmel_at76c502d.bin +atmel_at76c502e-wpa.bin +atmel_at76c502e.bin +atmel_at76c503-i3861.bin +atmel_at76c503-i3863.bin +atmel_at76c503-rfmd-0.90.2-140.bin +atmel_at76c503-rfmd-acc.bin +atmel_at76c503-rfmd.bin +atmel_at76c504.bin +atmel_at76c504_2958-wpa.bin +atmel_at76c504a_2958-wpa.bin +atmel_at76c504c-wpa.bin +atmel_at76c505-rfmd.bin +atmel_at76c505-rfmd2958.bin +atmel_at76c505a-rfmd2958.bin +atmel_at76c506-wpa.bin +atmel_at76c506.bin +ipw2200-bss.fw +ipw2200-ibss.fw +ipw2200-sniffer.fw +ipw2100-1.3-i.fw +ipw2100-1.3-p.fw +ipw2100-1.3.fw +isl3890 --- linux-source-2.6.17-2.6.17.1.orig/debian/config/archmap +++ linux-source-2.6.17-2.6.17.1/debian/config/archmap @@ -0,0 +1,7 @@ +# headers-$DEBARCH kernel build ARCH kernel headers ARCH +headers-amd64 x86_64 x86_64 +headers-hppa parisc parisc +headers-sparc sparc64 sparc64 +headers-powerpc powerpc powerpc +headers-ia64 ia64 ia64 +headers-i386 i386 x86_64 --- linux-source-2.6.17-2.6.17.1.orig/debian/config/flavour-control.stub +++ linux-source-2.6.17-2.6.17.1/debian/config/flavour-control.stub @@ -0,0 +1,64 @@ +# Items that get replaced: +# FLAVOUR +# DESC +# ARCH +# SUPPORTED +# TARGET +# BOOTLOADER +# =PROVIDES= +# +# Items marked with =FOO= are optional +# +# XXX: Leave the blank line before the first package!! + +Package: linux-image-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, =PROVIDES= +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: BOOTLOADER +Suggests: fdutils, linux-doc-PKGVER | linux-source-PKGVER +Description: Linux kernel image for version PKGVER on DESC + This package contains the Linux kernel image for version PKGVER on + DESC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports SUPPORTED processors. + . + TARGET + . + You likely do not want to install this package directly. Instead, install + the linux-FLAVOUR meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-PKGVER-ABINUM, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version PKGVER on DESC + This package provides kernel header files for version PKGVER on + DESC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details. + +Package: linux-image-debug-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version PKGVER on DESC + This package provides a kernel debug image for version PKGVER on + DESC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/vars.server-bigiron +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/vars.server-bigiron @@ -0,0 +1,5 @@ +supported="high end x86" +target="Geared toward large server systems." +desc="BigIron Server Equipment" +bootloader="lilo (>= 19.1) | grub" +provides="rhcs-modules2-1, ndiswrapper-modules-1.22" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/config.generic +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/config.generic @@ -0,0 +1,52 @@ +# +# Config options for config.generic automatically generated by splitconf.pl +# +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_COMPUTONE is not set +CONFIG_CPUSETS=y +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_GENERIC_PENDING_IRQ=y +# CONFIG_GFS2_FS is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_HOTPLUG_CPU=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +CONFIG_IRQBALANCE=y +CONFIG_LOCK_KERNEL=y +# CONFIG_M486 is not set +CONFIG_M586=y +# CONFIG_M686 is not set +# CONFIG_MATH_EMULATION is not set +# CONFIG_MOXA_INTELLIO is not set +CONFIG_NR_CPUS=8 +# CONFIG_OCFS2_FS is not set +CONFIG_PREEMPT_BKL=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_RIO is not set +CONFIG_RTC=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_SMP=y +CONFIG_STOP_MACHINE=y +CONFIG_SUSPEND_SMP=y +CONFIG_X86_ALIGNMENT_16=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_F00F_BUG=y +# CONFIG_X86_GENERICARCH is not set +CONFIG_X86_HT=y +CONFIG_X86_HT_DISABLE=y +CONFIG_X86_PC=y +CONFIG_X86_SMP=y +CONFIG_X86_TRAMPOLINE=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/config +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/config @@ -0,0 +1,2748 @@ +# +# Common config options automatically generated by splitconf.pl +# +# CONFIG_05GB is not set +CONFIG_1GB=y +# CONFIG_2GB is not set +CONFIG_3C359=m +CONFIG_3C515=m +# CONFIG_3GB is not set +# CONFIG_4KSTACKS is not set +CONFIG_53C700_IO_MAPPED=y +CONFIG_60XX_WDT=m +CONFIG_6PACK=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +CONFIG_ABYSS=m +CONFIG_AC3200=m +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACPI=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BLACKLIST_YEAR=2000 +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_CONTAINER=m +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEV=m +CONFIG_ACPI_DOCK=m +CONFIG_ACPI_EC=y +CONFIG_ACPI_FAN=m +CONFIG_ACPI_HOTKEY=m +CONFIG_ACPI_IBM=m +CONFIG_ACPI_INITRD=y +CONFIG_ACPI_PCC=m +CONFIG_ACPI_POWER=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_SBS=m +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_SLEEP_PROC_FS=y +CONFIG_ACPI_SLEEP_PROC_SLEEP=y +CONFIG_ACPI_SONY=m +CONFIG_ACPI_SYSTEM=y +CONFIG_ACPI_TC1100=m +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADM8211=m +CONFIG_ADV717X=m +CONFIG_ADV717X_PIXELPORT16BIT=y +CONFIG_ADV717X_PIXELPORTPAL=y +CONFIG_ADV717X_SWAP=y +CONFIG_ADVANTECH_WDT=m +# CONFIG_AEDSP16_MPU401 is not set +# CONFIG_AEDSP16_MSS is not set +# CONFIG_AEDSP16_SBPRO is not set +CONFIG_AFFS_FS=m +CONFIG_AFS_FS=m +CONFIG_AGP=m +CONFIG_AGP_ALI=m +CONFIG_AGP_AMD=m +CONFIG_AGP_AMD64=m +CONFIG_AGP_ATI=m +CONFIG_AGP_EFFICEON=m +CONFIG_AGP_INTEL=m +CONFIG_AGP_NVIDIA=m +CONFIG_AGP_SIS=m +CONFIG_AGP_SWORKS=m +CONFIG_AGP_VIA=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_ENABLE_RD_STRM=y +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_PROBE_EISA_VL=y +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_ALI_FIR=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_AMD8111_ETH=m +CONFIG_AMIGA_PARTITION=y +CONFIG_APM=m +# CONFIG_APM_ALLOW_INTS is not set +# CONFIG_APM_CPU_IDLE is not set +# CONFIG_APM_DISPLAY_BLANK is not set +# CONFIG_APM_DO_ENABLE is not set +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +# CONFIG_APM_REAL_MODE_POWER_OFF is not set +# CONFIG_APM_RTC_IS_GMT is not set +CONFIG_APPLICOM=m +CONFIG_APRICOT=m +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_ISA=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_RIM_I=m +CONFIG_ARLAN=m +# CONFIG_ARPD is not set +CONFIG_ASFS_DEFAULT_CODEPAGE="" +CONFIG_ASFS_FS=m +# CONFIG_ASFS_RW is not set +CONFIG_ASK_IP_FIB_HASH=y +CONFIG_AT1700=m +CONFIG_ATALK=m +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_OVER_ETH=m +CONFIG_ATM=y +CONFIG_ATMEL=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_ATM_CLIP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E_MAYBE=m +CONFIG_ATM_FORE200E_PCA=y +CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_LANAI=m +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +CONFIG_ATM_TCP=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATP=m +CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_AVERATEC_5100P=m +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_AZTCD=m +CONFIG_B44=m +CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +CONFIG_BCM43XX_PIO=y +# CONFIG_BCM43XX_PIO_MODE is not set +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_AEC62XX=m +CONFIG_BLK_DEV_ALI15X3=m +CONFIG_BLK_DEV_AMD74XX=m +CONFIG_BLK_DEV_ATIIXP=m +CONFIG_BLK_DEV_CLOOP=m +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_CS5520=m +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_CS5535=m +CONFIG_BLK_DEV_CY82C693=m +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_DEV_GENERIC=m +CONFIG_BLK_DEV_GNBD=m +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_HPT34X=m +CONFIG_BLK_DEV_HPT366=m +CONFIG_BLK_DEV_IDE=y +CONFIG_BLK_DEV_IDEACPI=y +CONFIG_BLK_DEV_IDECD=m +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDEDISK=m +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_BLK_DEV_IDEPNP=m +CONFIG_BLK_DEV_IDESCSI=m +CONFIG_BLK_DEV_IDETAPE=m +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_IT821X=m +CONFIG_BLK_DEV_JMICRON=m +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NS87415=m +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_OPTI621=m +CONFIG_BLK_DEV_PDC202XX_NEW=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +CONFIG_BLK_DEV_PIIX=m +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RZ1000=m +CONFIG_BLK_DEV_SC1200=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SIIMAGE=m +CONFIG_BLK_DEV_SIS5513=m +CONFIG_BLK_DEV_SLC90E66=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_BLK_DEV_SVWKS=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BLK_DEV_TRIFLEX=m +CONFIG_BLK_DEV_TRM290=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BLK_DEV_XD=m +CONFIG_BNX2=m +CONFIG_BONDING=m +CONFIG_BOOT_IOREMAP=y +CONFIG_BPQETHER=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BT865=m +CONFIG_BT_ALSA=m +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_L2CAP=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_SCO=m +CONFIG_BUG=y +CONFIG_C101=m +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_CARDBUS=y +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_CASSINI=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CDU535=m +CONFIG_CD_NO_IDESCSI=y +CONFIG_CHELSIO_T1=m +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=m +CONFIG_CIFS=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=m +CONFIG_COPS=m +CONFIG_COPS_DAYNA=y +CONFIG_COPS_TANGENT=y +CONFIG_COSA=m +CONFIG_CPU5_WDT=m +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=m +CONFIG_CRAMFS=y +# CONFIG_CRASH_DUMP is not set +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_DEV_PADLOCK=m +CONFIG_CRYPTO_DEV_PADLOCK_AES=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_WP512=m +CONFIG_CS5535_GPIO=m +CONFIG_CS89x0=m +CONFIG_CYCLADES=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +# CONFIG_CYZ_INTR is not set +CONFIG_D80211=m +CONFIG_DAVICOM_PHY=m +CONFIG_DAZUKO=m +CONFIG_DCDBAS=m +CONFIG_DE2104X=m +CONFIG_DE4X5=m +CONFIG_DE600=m +CONFIG_DE620=m +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFXX=m +CONFIG_DELL_RBU=m +CONFIG_DEPCA=m +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_DEV_APPLETALK=y +CONFIG_DE_AOC=y +CONFIG_DGRS=m +CONFIG_DIGIEPCA=m +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_COUNT=24 +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_DM9102=m +CONFIG_DMI=y +CONFIG_DM_CRYPT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_ZERO=m +CONFIG_DNOTIFY=y +CONFIG_DONGLE=y +CONFIG_DOUBLEFAULT=y +CONFIG_DRM=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_VIA=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DVB=y +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_BT8XX=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_CINERGYT2=m +CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y +CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 +CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 +CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 +CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 +CONFIG_DVB_CINERGYT2_TUNING=y +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10353=m +CONFIG_DXR3=m +CONFIG_E100=m +CONFIG_E1000=m +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +# CONFIG_E1000_NAPI is not set +CONFIG_E2100=m +CONFIG_EARLY_PRINTK=y +CONFIG_ECC=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +# CONFIG_EDAC is not set +# CONFIG_EDD is not set +CONFIG_EEPRO100=m +CONFIG_EEXPRESS=m +CONFIG_EEXPRESS_PRO=m +CONFIG_EFI=y +CONFIG_EFI_PARTITION=y +CONFIG_EFI_VARS=y +CONFIG_EFS_FS=m +CONFIG_EISA=y +CONFIG_EISA_NAMES=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EL1=m +CONFIG_EL16=m +CONFIG_EL2=m +CONFIG_EL3=m +CONFIG_ELF_CORE=y +CONFIG_ELMC=m +CONFIG_ELMC_II=m +CONFIG_ELPLUS=m +CONFIG_EM8300=m +CONFIG_EM8300_DICOMCTRL=y +CONFIG_EM8300_DICOMFIX=y +CONFIG_EM8300_DICOMPAL=y +CONFIG_EM8300_LOOPBACK=y +CONFIG_EM8300_UCODETIMEOUT=y +# CONFIG_EMBEDDED is not set +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ES3210=m +CONFIG_ESI_DONGLE=m +# CONFIG_ESPSERIAL is not set +CONFIG_ETH16I=m +CONFIG_EUROTECH_WDT=m +CONFIG_EWRK3=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CIRRUS=m +CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBLA=m +CONFIG_FB_FIRMWARE_EDID=y +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_IMAC=y +# CONFIG_FB_IMSTT is not set +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +CONFIG_FB_KYRO=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_RADEON=m +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_VESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FORCEDETH=m +# CONFIG_FORCED_INLINING is not set +CONFIG_FRAMEBUFFER_CONSOLE=m +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FRAME_POINTER is not set +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FTL=m +CONFIG_FUSE_FS=m +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GIGASET_BASE=m +# CONFIG_GIGASET_DEBUG is not set +CONFIG_GIGASET_M105=m +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_GIRBIL_DONGLE=m +CONFIG_GSCD=m +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=y +CONFIG_HDLC_FR=y +CONFIG_HDLC_PPP=y +CONFIG_HDLC_RAW=y +CONFIG_HDLC_RAW_ETH=y +CONFIG_HDLC_X25=y +CONFIG_HERMES=m +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +# CONFIG_HID_FF is not set +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_HIPPI=y +CONFIG_HISAX_16_0=y +CONFIG_HISAX_16_3=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_ASUSCOM=y +CONFIG_HISAX_AVM_A1=y +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_BKM_A4T=y +# CONFIG_HISAX_DEBUG is not set +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_ENTERNOW_PCI=y +CONFIG_HISAX_EURO=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HDLC=y +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_HFCS=y +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_HSTSAPHIR=y +CONFIG_HISAX_ISURF=y +CONFIG_HISAX_IX1MICROR2=y +CONFIG_HISAX_MAX_CARDS=8 +CONFIG_HISAX_MIC=y +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_NICCY=y +# CONFIG_HISAX_NO_KEYPAD is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_SPORTSTER=y +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_TELEINT=y +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_TELES_CS=m +CONFIG_HISAX_W6692=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTESS_SV11=m +CONFIG_HOTPLUG=y +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_PCIE=m +# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set +CONFIG_HOTPLUG_PCI_SHPC=m +# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set +CONFIG_HP100=m +CONFIG_HPET=y +CONFIG_HPET_MMAP=y +# CONFIG_HPET_RTC_IRQ is not set +CONFIG_HPET_TIMER=y +CONFIG_HPFS_FS=m +CONFIG_HPLAN=m +CONFIG_HPLAN_PLUS=m +# CONFIG_HPT34X_AUTODMA is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HW_CONSOLE=y +CONFIG_HW_RANDOM=m +# CONFIG_HZ_1000 is not set +CONFIG_I2C=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_ISA=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_STUB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I6300ESB_WDT=m +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_I8K=m +CONFIG_I8XX_TCO=m +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_IBMLANA=m +CONFIG_IBMLS=m +# CONFIG_IBMMCA_SCSI_DEV_RESET is not set +CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y +CONFIG_IBMOL=m +CONFIG_IBMTR=m +CONFIG_IBM_ASM=m +CONFIG_IDE=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_IDEDMA_PCI_AUTO=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDE_ARM is not set +# CONFIG_IDE_CHIPSETS is not set +CONFIG_IDE_GENERIC=m +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_CONFIG_ROM_IP1394=y +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_ETH1394=m +# CONFIG_IEEE1394_EXPORT_FULL_API is not set +CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_OUI_DB=y +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE80211=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +# CONFIG_IKCONFIG is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INOTIFY=y +CONFIG_INPUT=y +CONFIG_INPUT_ACERHK=m +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_TSDEV=m +CONFIG_INPUT_TSDEV_SCREEN_X=240 +CONFIG_INPUT_TSDEV_SCREEN_Y=320 +CONFIG_INPUT_UINPUT=m +CONFIG_INPUT_WISTRON_BTNS=m +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPDDP=m +CONFIG_IPDDP_DECAP=y +CONFIG_IPDDP_ENCAP=y +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPPP_FILTER=y +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_FS_AMILO_M7400=m +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW3945=m +# CONFIG_IPW3945_DEBUG is not set +CONFIG_IPW3945_MONITOR=y +CONFIG_IPW3945_PROMISCUOUS=y +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_DCCP=m +CONFIG_IP_DCCP_ACKVEC=y +CONFIG_IP_DCCP_CCID2=m +CONFIG_IP_DCCP_CCID3=m +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=m +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_MROUTE=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_NF_AMANDA=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CONNTRACK_MARK=y +CONFIG_IP_NF_CONNTRACK_NETLINK=m +CONFIG_IP_NF_CT_ACCT=y +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_IRC=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_H323=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_NAT_PPTP=m +CONFIG_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NETBIOS_NS=m +CONFIG_IP_NF_PPTP=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_IP_NF_TARGET_TCPMSS=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TFTP=m +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_IP_PNP is not set +CONFIG_IP_ROUTE_FWMARK=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_MULTIPATH_CACHED=y +CONFIG_IP_ROUTE_MULTIPATH_DRR=m +CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m +CONFIG_IP_ROUTE_MULTIPATH_RR=m +CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRTTY_SIR=m +CONFIG_ISA=y +CONFIG_ISAPNP=y +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_TCP=m +CONFIG_ISDN=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVERSION=m +CONFIG_ISDN_DRV_ACT2000=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_B1ISA=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_ISDN_DRV_AVMB1_T1ISA=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_ISDN_DRV_HISAX=m +CONFIG_ISDN_DRV_ICN=m +CONFIG_ISDN_DRV_PCBIT=m +CONFIG_ISDN_DRV_SC=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_MPP=y +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y +# CONFIG_ISI is not set +CONFIG_ISO9660_FS=m +CONFIG_ISP16_CDI=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS_FS=m +CONFIG_JFFS_FS_VERBOSE=0 +CONFIG_JFFS_PROC_FS=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KMOD=y +CONFIG_KPROBES=y +CONFIG_KTIME_SCALAR=y +CONFIG_LANCE=m +CONFIG_LANMEDIA=m +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LBD=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y +# CONFIG_LDM_DEBUG is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEDS_CLASS=m +# CONFIG_LEDS_TRIGGERS is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LIBCRC32C=m +CONFIG_LITELINK_DONGLE=m +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LNE390=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LP486E=m +# CONFIG_LP_CONSOLE is not set +# CONFIG_LSF is not set +CONFIG_LTPC=m +CONFIG_LXT_PHY=m +# CONFIG_M386 is not set +# CONFIG_M586MMX is not set +# CONFIG_M586TSC is not set +CONFIG_MA600_DONGLE=m +CONFIG_MACHZ_WDT=m +CONFIG_MAC_PARTITION=y +CONFIG_MADGEMC=m +CONFIG_MAGIC_SYSRQ=y +CONFIG_MARVELL_PHY=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MCA=y +CONFIG_MCA_LEGACY=y +# CONFIG_MCA_PROC_FS is not set +CONFIG_MCDX=m +CONFIG_MCP2120_DONGLE=m +# CONFIG_MCRUSOE is not set +# CONFIG_MCYRIXIII is not set +CONFIG_MD=y +CONFIG_MDA_CONSOLE=m +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +# CONFIG_MD_RAID5_RESHAPE is not set +CONFIG_MD_RAID6=m +# CONFIG_MEFFICEON is not set +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_SAS=m +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +CONFIG_MICROCODE=m +CONFIG_MIDI_EMU10K1=y +CONFIG_MIDI_VIA82CXXX=y +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISDN_AVM_FRITZ=y +CONFIG_MISDN_DRV=m +CONFIG_MISDN_DSP=y +# CONFIG_MISDN_HFCMULTI is not set +CONFIG_MISDN_HFCPCI=y +CONFIG_MISDN_HFCUSB=y +# CONFIG_MISDN_MEMDEBUG is not set +CONFIG_MISDN_SPEEDFAX=y +CONFIG_MISDN_W6692=y +CONFIG_MIXCOMWD=m +# CONFIG_MK6 is not set +# CONFIG_MK7 is not set +# CONFIG_MK8 is not set +CONFIG_MKISS=m +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=m +CONFIG_MMC_TIFM=m +CONFIG_MMC_WBSD=m +CONFIG_MMU=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +# CONFIG_MOUSE_ATIXL is not set +CONFIG_MOUSE_INPORT=m +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_SMARTIO=m +# CONFIG_MPENTIUM4 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +CONFIG_MTD=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CHAR=m +# CONFIG_MTD_CMDLINE_PARTS is not set +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DATAFLASH=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCPROBE_ADDRESS=0 +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_L440GX=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_NANDSIM=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NETSC520=m +CONFIG_MTD_NETtel=m +# CONFIG_MTD_OBSOLETE_CHIPS is not set +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_PCI=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_PNC2000=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS=m +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_ROM=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_TS5500=m +CONFIG_MTRR=y +# CONFIG_MVIAC3_2 is not set +CONFIG_MWAVE=m +# CONFIG_MWINCHIP2 is not set +# CONFIG_MWINCHIP3D is not set +# CONFIG_MWINCHIPC6 is not set +CONFIG_MYRI10GE=m +CONFIG_N2=m +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NDISWRAPPER=m +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_NE2_MCA=m +CONFIG_NE3210=m +CONFIG_NET=y +CONFIG_NETCONSOLE=m +# CONFIG_NETDEBUG is not set +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETROM=m +CONFIG_NET_ACX=m +CONFIG_NET_ACX_PCI=y +CONFIG_NET_ACX_USB=y +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_ACT is not set +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_POLICE=y +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +# CONFIG_NET_DIVERT is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ESTIMATOR=y +CONFIG_NET_ETHERNET=y +CONFIG_NET_FC=y +CONFIG_NET_IPG=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPIP=m +CONFIG_NET_ISA=y +CONFIG_NET_KEY=m +CONFIG_NET_PCI=y +CONFIG_NET_PCMCIA=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POCKET=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RADIO=y +CONFIG_NET_RTL8187=m +CONFIG_NET_RTL818X=m +CONFIG_NET_SB1000=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +# CONFIG_NET_SCH_CLK_CPU is not set +# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set +CONFIG_NET_SCH_CLK_JIFFIES=y +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_SMC=y +CONFIG_NET_WIRELESS=y +CONFIG_NET_WIRELESS_RTNETLINK=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_TCP=y +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NI52=m +CONFIG_NI65=m +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +# CONFIG_NOHIGHMEM is not set +CONFIG_NORTEL_HERMES=m +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NVRAM=m +CONFIG_N_HDLC=m +CONFIG_OBSOLETE_INTERMODULE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OPROFILE=m +CONFIG_OPTCD=m +CONFIG_OSF_PARTITION=y +CONFIG_PACKARDBELL_E5=m +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PARPORT=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_PATA_MARVELL=m +CONFIG_PC300=m +CONFIG_PC300_MLPPP=y +CONFIG_PCCARD=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCIEPORTBUS=y +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_ATMEL=m +CONFIG_PCI_BIOS=y +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DIRECT=y +CONFIG_PCI_GOANY=y +# CONFIG_PCI_GOBIOS is not set +# CONFIG_PCI_GODIRECT is not set +# CONFIG_PCI_GOMMCONFIG is not set +CONFIG_PCI_HERMES=m +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_PCMCIA_IOCTL=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NETWAVE=m +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE=y +CONFIG_PCMCIA_PROBE_MEM=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PCWATCHDOG=m +CONFIG_PD6729=m +CONFIG_PDC202XX_BURST=y +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=m +CONFIG_PHYSICAL_START=0x100000 +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_DISABLE_CONSOLE=y +CONFIG_PM_LEGACY=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PNP=y +CONFIG_PNPACPI=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +# CONFIG_PNP_DEBUG is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_PPDEV=m +CONFIG_PPP=m +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +# CONFIG_PREEMPT is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +CONFIG_PRISM2=y +CONFIG_PRISM2_PCI=m +CONFIG_PRISM2_PLX=m +CONFIG_PRISM2_USB=m +CONFIG_PRISM54=m +CONFIG_PRISM54_SOFTMAC=m +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROFILING=y +CONFIG_PROTEON=m +CONFIG_PSS_MIXER=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QNX4FS_FS=m +CONFIG_QSEMI_PHY=m +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_R1000=m +CONFIG_R3964=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_CADET=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RADIO_MIROPCM20=m +CONFIG_RADIO_MIROPCM20_RDS=m +CONFIG_RADIO_RTRACK=m +CONFIG_RADIO_RTRACK2=m +CONFIG_RADIO_SF16FMI=m +CONFIG_RADIO_SF16FMR2=m +CONFIG_RADIO_TERRATEC=m +CONFIG_RADIO_TRUST=m +CONFIG_RADIO_TYPHOON=m +CONFIG_RADIO_TYPHOON_PROC_FS=y +CONFIG_RADIO_ZOLTRIX=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMFS=y +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_REGPARM=y +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_RFD_FTL=m +CONFIG_RFKILL=m +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_FS=m +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +# CONFIG_RT2400PCI is not set +CONFIG_RT2400_LEGACY=m +# CONFIG_RT2500PCI is not set +# CONFIG_RT2500USB is not set +CONFIG_RT2500_LEGACY=m +CONFIG_RT2570_LEGACY=m +CONFIG_RT61PCI=m +# CONFIG_RT61PCI_DEBUG is not set +CONFIG_RT73USB=m +# CONFIG_RT73USB_DEBUG is not set +CONFIG_RTC_CLASS=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_LIB=m +CONFIG_RT_EXP=y +CONFIG_RT_LEGACY=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXRPC=m +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_SAS_CLASS=m +# CONFIG_SAS_DEBUG is not set +CONFIG_SBC8360_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_SC1200_WDT=m +CONFIG_SC520_WDT=m +CONFIG_SC6600=y +CONFIG_SC6600_CDROM=4 +CONFIG_SC6600_CDROMBASE=0x0 +CONFIG_SC6600_JOY=y +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +# CONFIG_SCHEDSTATS is not set +CONFIG_SCSI=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_7000FASST=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_ADVANSYS=m +CONFIG_SCSI_AHA152X=m +CONFIG_SCSI_AHA1542=m +CONFIG_SCSI_AHA1740=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_ATA_GENERIC is not set +CONFIG_SCSI_ATA_PIIX=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_DTC3280=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FD_MCS=m +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_GENERIC_NCR5380=m +CONFIG_SCSI_GENERIC_NCR5380_MMIO=m +CONFIG_SCSI_GENERIC_NCR53C400=y +CONFIG_SCSI_IBMMCA=m +CONFIG_SCSI_IMM=m +CONFIG_SCSI_IN2000=m +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4 +# CONFIG_SCSI_NCR53C8XX_PROFILE is not set +CONFIG_SCSI_NCR53C8XX_SYNC=5 +CONFIG_SCSI_NCR_D700=m +CONFIG_SCSI_NCR_Q720=m +CONFIG_SCSI_NSP32=m +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +CONFIG_SCSI_PAS16=m +# CONFIG_SCSI_PATA_ALI is not set +# CONFIG_SCSI_PATA_AMD is not set +# CONFIG_SCSI_PATA_ARTOP is not set +# CONFIG_SCSI_PATA_ATIIXP is not set +# CONFIG_SCSI_PATA_CMD64X is not set +# CONFIG_SCSI_PATA_CS5520 is not set +# CONFIG_SCSI_PATA_CS5530 is not set +# CONFIG_SCSI_PATA_CS5535 is not set +# CONFIG_SCSI_PATA_CYPRESS is not set +# CONFIG_SCSI_PATA_EFAR is not set +# CONFIG_SCSI_PATA_HPT366 is not set +# CONFIG_SCSI_PATA_HPT37X is not set +# CONFIG_SCSI_PATA_HPT3X2N is not set +# CONFIG_SCSI_PATA_HPT3X3 is not set +# CONFIG_SCSI_PATA_ISAPNP is not set +# CONFIG_SCSI_PATA_IT8172 is not set +# CONFIG_SCSI_PATA_IT821X is not set +# CONFIG_SCSI_PATA_LEGACY is not set +# CONFIG_SCSI_PATA_MPIIX is not set +# CONFIG_SCSI_PATA_NETCELL is not set +# CONFIG_SCSI_PATA_NS87410 is not set +# CONFIG_SCSI_PATA_OLDPIIX is not set +# CONFIG_SCSI_PATA_OPTI is not set +# CONFIG_SCSI_PATA_OPTIDMA is not set +CONFIG_SCSI_PATA_PCMCIA=m +# CONFIG_SCSI_PATA_PDC_OLD is not set +# CONFIG_SCSI_PATA_PIIX is not set +# CONFIG_SCSI_PATA_QDI is not set +# CONFIG_SCSI_PATA_RADISYS is not set +# CONFIG_SCSI_PATA_RZ1000 is not set +# CONFIG_SCSI_PATA_SC1200 is not set +# CONFIG_SCSI_PATA_SERVERWORKS is not set +# CONFIG_SCSI_PATA_SIL680 is not set +# CONFIG_SCSI_PATA_SIS is not set +# CONFIG_SCSI_PATA_TRIFLEX is not set +# CONFIG_SCSI_PATA_VIA is not set +# CONFIG_SCSI_PATA_WINBOND is not set +CONFIG_SCSI_PDC_ADMA=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +CONFIG_SCSI_PSI240I=m +# CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SATA=m +CONFIG_SCSI_SATA_ACPI=y +CONFIG_SCSI_SATA_AHCI=m +CONFIG_SCSI_SATA_INTEL_COMBINED=y +CONFIG_SCSI_SATA_MV=m +CONFIG_SCSI_SATA_NV=m +CONFIG_SCSI_SATA_PROMISE=m +CONFIG_SCSI_SATA_QSTOR=m +CONFIG_SCSI_SATA_SIL=m +CONFIG_SCSI_SATA_SIL24=m +CONFIG_SCSI_SATA_SIS=m +CONFIG_SCSI_SATA_SVW=m +CONFIG_SCSI_SATA_SX4=m +CONFIG_SCSI_SATA_ULI=m +CONFIG_SCSI_SATA_VIA=m +CONFIG_SCSI_SATA_VITESSE=m +CONFIG_SCSI_SIM710=m +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C416=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_T128=m +CONFIG_SCSI_U14_34F=m +CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y +CONFIG_SCSI_U14_34F_MAX_TAGS=8 +CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y +CONFIG_SCSI_ULTRASTOR=m +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_HMAC_MD5=y +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SCx200=m +CONFIG_SCx200_ACB=m +CONFIG_SCx200_GPIO=m +CONFIG_SCx200_I2C=m +CONFIG_SCx200_I2C_SCL=12 +CONFIG_SCx200_I2C_SDA=13 +CONFIG_SCx200_WDT=m +CONFIG_SDLA=m +CONFIG_SEALEVEL_4021=m +CONFIG_SECCOMP=y +# CONFIG_SECCOMP_DISABLE_TSC is not set +CONFIG_SECURITY=y +CONFIG_SECURITY_CAPABILITIES=m +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_REALTIME=m +CONFIG_SECURITY_ROOTPLUG=m +CONFIG_SECURITY_SECLVL=m +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SEEQ8005=m +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_HUB6=m +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_MCA=m +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIO=y +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +CONFIG_SHAPER=m +CONFIG_SHMEM=y +CONFIG_SIGMATEL_FIR=m +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SJCD=m +CONFIG_SK98LIN=m +CONFIG_SKFP=m +CONFIG_SKGE=m +CONFIG_SKISA=m +CONFIG_SKY2=m +CONFIG_SLAB=y +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_SMC9194=m +CONFIG_SMCTR=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_SND=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_AD1848_LIB=m +CONFIG_SND_AD1889=m +CONFIG_SND_ADLIB=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALS100=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT2320=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMI8330=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4231=m +CONFIG_SND_CS4231_LIB=m +CONFIG_SND_CS4232=m +CONFIG_SND_CS4236=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_CS5535AUDIO=m +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_DT019X=m +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1688=m +CONFIG_SND_ES18XX=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_ES968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_GUSCLASSIC=m +CONFIG_SND_GUSEXTREME=m +CONFIG_SND_GUSMAX=m +CONFIG_SND_GUS_SYNTH=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_INTERWAVE=m +CONFIG_SND_INTERWAVE_STB=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIA=m +CONFIG_SND_MIRO=m +CONFIG_SND_MIXART=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MTPAV=m +CONFIG_SND_NM256=m +CONFIG_SND_OPL3SA2=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OPL4_LIB=m +CONFIG_SND_OPTI92X_AD1848=m +CONFIG_SND_OPTI92X_CS4231=m +CONFIG_SND_OPTI93X=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_PCM=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_RTCTIMER=m +CONFIG_SND_SB16=m +CONFIG_SND_SB16_CSP=y +CONFIG_SND_SB8=m +CONFIG_SND_SBAWE=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SGALAXY=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SSCAPE=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TIMER=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_WAVEFRONT=m +CONFIG_SND_YMFPCI=m +CONFIG_SOFTWARE_SUSPEND=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SONYPI=m +CONFIG_SOUND=m +CONFIG_SOUND_ACI_MIXER=m +# CONFIG_SOUND_AD1816 is not set +CONFIG_SOUND_AD1889=m +CONFIG_SOUND_ADLIB=m +CONFIG_SOUND_AEDSP16=m +CONFIG_SOUND_BT878=m +CONFIG_SOUND_CS4232=m +# CONFIG_SOUND_DMAP is not set +CONFIG_SOUND_EMU10K1=m +CONFIG_SOUND_ES1371=m +CONFIG_SOUND_FUSION=m +CONFIG_SOUND_ICH=m +CONFIG_SOUND_KAHLUA=m +CONFIG_SOUND_MPU401=m +# CONFIG_SOUND_MSNDCLAS is not set +# CONFIG_SOUND_MSNDPIN is not set +CONFIG_SOUND_MSS=m +CONFIG_SOUND_NM256=m +CONFIG_SOUND_OPL3SA2=m +CONFIG_SOUND_OSS=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_PSS=m +CONFIG_SOUND_SB=m +# CONFIG_SOUND_TRACEINIT is not set +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_TVMIXER=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_VIA82CXXX=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_YM3812=m +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_SPARSEMEM_STATIC=y +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_ACNTPC=m +CONFIG_SPEAKUP_ACNTSA=m +CONFIG_SPEAKUP_APOLLO=m +CONFIG_SPEAKUP_AUDPTR=m +CONFIG_SPEAKUP_BNS=m +CONFIG_SPEAKUP_DECEXT=m +CONFIG_SPEAKUP_DECPC=m +CONFIG_SPEAKUP_DECTLK=m +CONFIG_SPEAKUP_DEFAULT="none" +CONFIG_SPEAKUP_DTLK=m +CONFIG_SPEAKUP_KEYPC=m +CONFIG_SPEAKUP_LTLK=m +CONFIG_SPEAKUP_SFTSYN=m +CONFIG_SPEAKUP_SPKOUT=m +CONFIG_SPEAKUP_TXPRT=m +CONFIG_SPECIALIX=m +# CONFIG_SPECIALIX_RTSCTS is not set +CONFIG_SPI=y +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set +CONFIG_STACK_BACKTRACE_COLS=2 +CONFIG_STALDRV=y +CONFIG_STANDALONE=y +CONFIG_STRIP=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNGEM=m +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUN_PARTITION=y +CONFIG_SWAP=y +CONFIG_SX=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYNCLINK_SYNCPPP=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSVIPC=y +CONFIG_SYSV_FS=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_TIS=m +CONFIG_TCG_TPM=m +CONFIG_TCIC=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +CONFIG_TEKRAM_DONGLE=m +CONFIG_TELCLOCK=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_THINKPAD_EC=m +CONFIG_TIGON3=m +# CONFIG_TINY_SHMEM is not set +CONFIG_TIPAR=m +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TLAN=m +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +# CONFIG_TOIM3232_DONGLE is not set +CONFIG_TOSHIBA=m +CONFIG_TOSHIBA_FIR=m +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TP_SMAPI=m +CONFIG_TR=y +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TUN=m +CONFIG_TUNER_3036=m +CONFIG_TYPHOON=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UFS_FS=m +CONFIG_UID16=y +CONFIG_ULI526X=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_ULTRAMCA=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNION_FS=m +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNWIND_INFO=y +CONFIG_USB=m +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACECAD=m +CONFIG_USB_ACM=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_APPLETOUCH=m +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATI_REMOTE=m +CONFIG_USB_ATI_REMOTE2=m +CONFIG_USB_ATM=m +CONFIG_USB_ATMEL=m +CONFIG_USB_AUERSWALD=m +# CONFIG_USB_BANDWIDTH is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_CATC=m +CONFIG_USB_CPADDEV=y +CONFIG_USB_CXACRU=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DABUSB=m +# CONFIG_USB_DEBUG is not set +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DSBR=m +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EAGLE=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ET61X251=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_EZUSB=y +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_GADGET=m +CONFIG_USB_GADGETFS=m +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +CONFIG_USB_GADGET_NET2280=y +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_G_SERIAL=m +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HIDINPUT=y +CONFIG_USB_HIDINPUT_POWERBOOK=y +CONFIG_USB_IBMCAM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IRDA=m +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_KAWETH=m +CONFIG_USB_KBD=m +CONFIG_USB_KBTAB=m +# CONFIG_USB_KEYSPAN_REMOTE is not set +CONFIG_USB_KONICAWC=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LIBUSUAL=y +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y +CONFIG_USB_MOUSE=m +CONFIG_USB_NET2280=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +CONFIG_USB_OV511=m +CONFIG_USB_OV511_DECOMP=m +CONFIG_USB_OV518_DECOMP=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_PODXTPRO=m +CONFIG_USB_POWERMATE=m +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +CONFIG_USB_QC=m +CONFIG_USB_RIO500=m +CONFIG_USB_RT2570=m +CONFIG_USB_RTL8150=m +CONFIG_USB_SE401=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_AIRPRIME=m +# CONFIG_USB_SERIAL_ANYDATA is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SN9C102=m +CONFIG_USB_SPCA5XX=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_DATAFAB=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STV680=m +CONFIG_USB_SUSPEND=y +CONFIG_USB_SYNAPTICS=m +CONFIG_USB_TEST=m +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +CONFIG_USB_VICAM=m +CONFIG_USB_W9968CF=m +CONFIG_USB_WACOM=m +CONFIG_USB_XPAD=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_YEALINK=m +CONFIG_USB_ZC0301=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +CONFIG_VERSION_SIGNATURE="Ubuntu Unofficial" +CONFIG_VFAT_FS=m +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VGA_CONSOLE=y +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BUF_DVB=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_PMS=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_SAA7134_OSS=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SELECT=y +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VLAN_8021Q=m +CONFIG_VLSI_FIR=m +CONFIG_VM86=y +CONFIG_VORTEX=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXFS_FS=m +CONFIG_W1=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS9490=m +CONFIG_W1_MASTER_DS9490_BRIDGE=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_W83627HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_WAFER_WDT=m +CONFIG_WAN=y +CONFIG_WANXL=m +CONFIG_WAN_ROUTER=m +CONFIG_WAN_ROUTER_DRIVERS=y +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WAVELAN=m +CONFIG_WD80x3=m +# CONFIG_WDC_ALI15X3 is not set +CONFIG_WDT=m +CONFIG_WDTPCI=m +CONFIG_WDT_501=y +CONFIG_WDT_501_PCI=y +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WIRELESS_EXT=y +CONFIG_WLAN_NG=y +CONFIG_X25=m +CONFIG_X25_ASY=m +CONFIG_X86=y +CONFIG_X86_32=y +CONFIG_X86_ACPI_CPUFREQ=m +# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set +# CONFIG_X86_BIGSMP is not set +CONFIG_X86_BIOS_REBOOT=y +CONFIG_X86_BSWAP=y +CONFIG_X86_CMPXCHG=y +CONFIG_X86_CPUFREQ_NFORCE2=m +CONFIG_X86_CPUID=m +# CONFIG_X86_ELAN is not set +# CONFIG_X86_ES7000 is not set +CONFIG_X86_FIND_SMP_CONFIG=y +CONFIG_X86_GENERIC=y +CONFIG_X86_GX_SUSPMOD=m +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_INVLPG=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_LONGRUN=m +# CONFIG_X86_MCE is not set +CONFIG_X86_MPPARSE=y +CONFIG_X86_MSR=m +# CONFIG_X86_NUMAQ is not set +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_PM_TIMER=y +CONFIG_X86_POPAD_OK=y +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +CONFIG_X86_POWERNOW_K7_ACPI=y +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_PPRO_FENCE=y +CONFIG_X86_REBOOTFIXUPS=y +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=m +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y +CONFIG_X86_SPEEDSTEP_SMI=m +# CONFIG_X86_SUMMIT is not set +# CONFIG_X86_VISWS is not set +# CONFIG_X86_VOYAGER is not set +CONFIG_X86_WP_WORKS_OK=y +CONFIG_X86_XADD=y +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +CONFIG_XFS_EXPORT=y +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_RT=y +CONFIG_XFS_SECURITY=y +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZNET=m --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/config.server +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/config.server @@ -0,0 +1,58 @@ +# +# Config options for config.server automatically generated by splitconf.pl +# +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_COMPUTONE is not set +CONFIG_CPUSETS=y +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS_FS=m +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HZ=100 +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_IRQBALANCE=y +CONFIG_LOCK_KERNEL=y +# CONFIG_M486 is not set +# CONFIG_M586 is not set +CONFIG_M686=y +# CONFIG_MATH_EMULATION is not set +# CONFIG_MOXA_INTELLIO is not set +CONFIG_NR_CPUS=8 +CONFIG_OCFS2_FS=m +# CONFIG_PREEMPT_BKL is not set +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_RIO is not set +CONFIG_RTC=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_SMP=y +CONFIG_STOP_MACHINE=y +CONFIG_SUSPEND_SMP=y +CONFIG_X86_CMPXCHG64=y +# CONFIG_X86_GENERICARCH is not set +CONFIG_X86_GOOD_APIC=y +CONFIG_X86_HT=y +CONFIG_X86_HT_DISABLE=y +CONFIG_X86_PAE=y +CONFIG_X86_PC=y +CONFIG_X86_SMP=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_X86_TSC=y +CONFIG_X86_USE_PPRO_CHECKSUM=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/vars.386 +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/vars.386 @@ -0,0 +1,5 @@ +supported="Alternate x86 (486 and better)" +target="Geared toward desktop systems." +desc="i386" +bootloader="lilo (>= 19.1) | grub" +provides="ndiswrapper-modules-1.22" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/config.386 +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/config.386 @@ -0,0 +1,74 @@ +# +# Config options for config.386 automatically generated by splitconf.pl +# +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_BROKEN_ON_SMP=y +CONFIG_CDU31A=m +CONFIG_CM206=m +CONFIG_COMPUTONE=m +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_DMASCC=m +# CONFIG_DONGLE_OLD is not set +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FTAPE=m +CONFIG_FT_ALPHA_CLOCK=0 +# CONFIG_FT_ALT_FDC is not set +CONFIG_FT_FDC_MAX_RATE=2000 +CONFIG_FT_FDC_THR=8 +# CONFIG_FT_FULL_DEBUG is not set +# CONFIG_FT_MACH2 is not set +CONFIG_FT_NORMAL_DEBUG=y +# CONFIG_FT_NO_TRACE is not set +# CONFIG_FT_NO_TRACE_AT_ALL is not set +CONFIG_FT_NR_BUFFERS=3 +# CONFIG_FT_PROBE_FC10 is not set +CONFIG_FT_PROC_FS=y +CONFIG_FT_STD_FDC=y +CONFIG_GEN_RTC=m +CONFIG_GEN_RTC_X=y +# CONFIG_GFS2_FS is not set +CONFIG_HIGHMEM4G=y +# CONFIG_HIGHMEM64G is not set +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +CONFIG_I2C_ELEKTOR=m +CONFIG_IRPORT_SIR=m +CONFIG_ISDN_DRV_LOOP=m +CONFIG_ISTALLION=m +CONFIG_M486=y +# CONFIG_M586 is not set +# CONFIG_M686 is not set +CONFIG_MATH_EMULATION=y +CONFIG_MOXA_INTELLIO=m +CONFIG_NI5010=m +# CONFIG_OCFS2_FS is not set +CONFIG_PCMCIA_XIRTULIP=m +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_RIO=m +CONFIG_RIO_OLDPCI=y +CONFIG_RISCOM8=m +CONFIG_RTC=m +CONFIG_SBPCD=m +CONFIG_SCSI_MCA_53C9X=m +# CONFIG_SMP is not set +CONFIG_STALLION=m +CONFIG_X86_ALIGNMENT_16=y +CONFIG_X86_F00F_BUG=y +# CONFIG_X86_GENERICARCH is not set +CONFIG_X86_PC=y +CONFIG_X86_UP_APIC=y +# CONFIG_X86_UP_APIC_DEFAULT_OFF is not set +CONFIG_X86_UP_IOAPIC=y +CONFIG_ZFTAPE=m +CONFIG_ZFT_COMPRESSOR=m +CONFIG_ZFT_DFLT_BLK_SZ=10240 --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/config.server-bigiron +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/config.server-bigiron @@ -0,0 +1,72 @@ +# +# Config options for config.server-bigiron automatically generated by splitconf.pl +# +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_SRAT=y +CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_ARCH_HAVE_MEMORY_PRESENT=y +# CONFIG_COMPUTONE is not set +CONFIG_CPUSETS=y +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DISCONTIGMEM=y +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS_FS=m +CONFIG_HAVE_ARCH_ALLOC_REMAP=y +CONFIG_HAVE_ARCH_BOOTMEM_NODE=y +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y +CONFIG_HAVE_ARCH_PARSE_SRAT=y +CONFIG_HAVE_MEMORY_PRESENT=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HZ=100 +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_IRQBALANCE=y +CONFIG_LOCK_KERNEL=y +# CONFIG_M486 is not set +# CONFIG_M586 is not set +CONFIG_M686=y +# CONFIG_MATH_EMULATION is not set +CONFIG_MIGRATION=y +# CONFIG_MOXA_INTELLIO is not set +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NEED_NODE_MEMMAP_SIZE=y +CONFIG_NODES_SHIFT=3 +CONFIG_NR_CPUS=64 +CONFIG_NUMA=y +CONFIG_OCFS2_FS=m +# CONFIG_PREEMPT_BKL is not set +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_RIO is not set +CONFIG_RTC=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_SMT=y +CONFIG_SMP=y +CONFIG_STOP_MACHINE=y +CONFIG_SUSPEND_SMP=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CYCLONE_TIMER=y +CONFIG_X86_GENERICARCH=y +CONFIG_X86_GOOD_APIC=y +CONFIG_X86_HT=y +CONFIG_X86_HT_DISABLE=y +CONFIG_X86_PAE=y +# CONFIG_X86_PC is not set +CONFIG_X86_SMP=y +CONFIG_X86_SUMMIT_NUMA=y +CONFIG_X86_TRAMPOLINE=y +CONFIG_X86_TSC=y +CONFIG_X86_USE_PPRO_CHECKSUM=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/i386/crashdump +++ linux-source-2.6.17-2.6.17.1/debian/config/i386/crashdump @@ -0,0 +1 @@ +386 --- linux-source-2.6.17-2.6.17.1.orig/debian/config/sparc/config.sparc64 +++ linux-source-2.6.17-2.6.17.1/debian/config/sparc/config.sparc64 @@ -0,0 +1,9 @@ +# +# Config options for config.sparc64 automatically generated by splitconf.pl +# +CONFIG_BROKEN_ON_SMP=y +CONFIG_ISTALLION=m +# CONFIG_RIO is not set +CONFIG_RISCOM8=m +# CONFIG_SMP is not set +CONFIG_STALLION=m --- linux-source-2.6.17-2.6.17.1.orig/debian/config/sparc/config +++ linux-source-2.6.17-2.6.17.1/debian/config/sparc/config @@ -0,0 +1,1551 @@ +# +# Common config options automatically generated by splitconf.pl +# +CONFIG_64BIT=y +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +# CONFIG_ACORN_PARTITION is not set +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_ADAPTEC_STARFIRE_NAPI=y +# CONFIG_ADFS_FS is not set +CONFIG_ADM8211=m +CONFIG_AFFS_FS=m +CONFIG_AFS_FS=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +# CONFIG_AIC79XX_ENABLE_RD_STRM is not set +# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +# CONFIG_AMD8111_ETH is not set +# CONFIG_AMIGA_PARTITION is not set +CONFIG_APPLICOM=m +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +# CONFIG_ARCNET is not set +CONFIG_ARPD=y +# CONFIG_ASFS_FS is not set +CONFIG_ATALK=m +# CONFIG_ATARI_PARTITION is not set +CONFIG_ATA_OVER_ETH=m +# CONFIG_ATM is not set +CONFIG_ATMEL=m +CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +# CONFIG_B44 is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BBC_I2C=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +CONFIG_BCM43XX_PIO=y +# CONFIG_BCM43XX_PIO_MODE is not set +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +# CONFIG_BINFMT_AOUT32 is not set +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_ELF32=y +CONFIG_BINFMT_MISC=m +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_CPQ_DA is not set +CONFIG_BLK_DEV_3W_XXXX_RAID=m +# CONFIG_BLK_DEV_AEC62XX is not set +CONFIG_BLK_DEV_ALI15X3=m +# CONFIG_BLK_DEV_AMD74XX is not set +CONFIG_BLK_DEV_CLOOP=m +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_COW_COMMON is not set +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +CONFIG_BLK_DEV_CS5520=m +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_CY82C693=m +# CONFIG_BLK_DEV_DAC960 is not set +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_BLK_DEV_FD=y +CONFIG_BLK_DEV_GENERIC=m +CONFIG_BLK_DEV_GNBD=m +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_HPT34X is not set +CONFIG_BLK_DEV_HPT366=m +CONFIG_BLK_DEV_IDE=y +CONFIG_BLK_DEV_IDECD=m +CONFIG_BLK_DEV_IDEDISK=m +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDEPCI=y +# CONFIG_BLK_DEV_IDESCSI is not set +CONFIG_BLK_DEV_IDETAPE=m +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_IT821X=m +CONFIG_BLK_DEV_JMICRON=m +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NS87415=m +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_PDC202XX_NEW=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +# CONFIG_BLK_DEV_PIIX is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +# CONFIG_BLK_DEV_SC1200 is not set +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SIIMAGE=m +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_BLK_DEV_SVWKS=m +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_TRIFLEX is not set +CONFIG_BLK_DEV_TRM290=m +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BNX2=m +CONFIG_BONDING=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_BT is not set +CONFIG_BUG=y +CONFIG_CASSINI=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CHELSIO_T1=m +CONFIG_CHR_DEV_OSST=m +# CONFIG_CHR_DEV_SCH is not set +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=m +CONFIG_CIFS=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_COMPAT=y +CONFIG_COMPUTONE=m +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=m +# CONFIG_CPU_FREQ is not set +CONFIG_CRAMFS=y +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_WP512=m +CONFIG_CYCLADES=m +# CONFIG_CYZ_INTR is not set +CONFIG_D80211=m +CONFIG_DAVICOM_PHY=m +CONFIG_DAZUKO=m +# CONFIG_DE2104X is not set +# CONFIG_DE4X5 is not set +CONFIG_DE600=m +CONFIG_DE620=m +# CONFIG_DEBUG_BOOTMEM is not set +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_DCFLUSH is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +CONFIG_DECNET_ROUTER=y +CONFIG_DECNET_ROUTE_FWMARK=y +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DEFAULT_NOOP is not set +# CONFIG_DEFXX is not set +CONFIG_DETECT_SOFTLOCKUP=y +# CONFIG_DEV_APPLETALK is not set +CONFIG_DGRS=m +CONFIG_DIGIEPCA=m +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_DISPLAY7SEG=m +CONFIG_DL2K=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +# CONFIG_DM9102 is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_ZERO=m +CONFIG_DNOTIFY=y +CONFIG_DRM=y +CONFIG_DRM_MGA=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_VIA=m +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +# CONFIG_DVB is not set +# CONFIG_DXR3 is not set +CONFIG_E100=m +CONFIG_E1000=m +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_E1000_NAPI=y +CONFIG_ECC=m +# CONFIG_ECONET is not set +# CONFIG_EEPRO100 is not set +# CONFIG_EFI_PARTITION is not set +CONFIG_EFS_FS=m +CONFIG_ELF_CORE=y +# CONFIG_EMBEDDED is not set +CONFIG_ENVCTRL=m +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_POSIX_ACL=y +# CONFIG_EXT2_FS_SECURITY is not set +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_POSIX_ACL=y +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT3_FS_XATTR=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +CONFIG_FB=y +# CONFIG_FB_3DFX is not set +# CONFIG_FB_ASILIANT is not set +CONFIG_FB_ATY=y +CONFIG_FB_ATY128=y +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +# CONFIG_FB_BW2 is not set +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CG14 is not set +# CONFIG_FB_CG3 is not set +CONFIG_FB_CG6=y +# CONFIG_FB_CIRRUS is not set +CONFIG_FB_FFB=y +CONFIG_FB_FIRMWARE_EDID=y +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_LEO is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_MATROX is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_NEOMAGIC is not set +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +# CONFIG_FB_P9100 is not set +# CONFIG_FB_PCI is not set +CONFIG_FB_PM2=y +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +CONFIG_FB_RADEON=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +# CONFIG_FB_RIVA is not set +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SBUS=y +# CONFIG_FB_SIS is not set +# CONFIG_FB_TCX is not set +CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_VOODOO1 is not set +CONFIG_FC4=m +CONFIG_FC4_SOC=m +CONFIG_FC4_SOCAL=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +# CONFIG_FLATMEM_MANUAL is not set +# CONFIG_FONTS is not set +# CONFIG_FONT_SUN12x22 is not set +CONFIG_FONT_SUN8x16=y +# CONFIG_FORCEDETH is not set +# CONFIG_FORCED_INLINING is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FUSE_FS=m +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_MAX_SGE=40 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +# CONFIG_GAMEPORT is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS_FS=m +# CONFIG_HAMACHI is not set +# CONFIG_HAMRADIO is not set +CONFIG_HAPPYMEAL=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HERMES=m +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +# CONFIG_HID_FF is not set +# CONFIG_HIPPI is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOTPLUG=y +# CONFIG_HP100 is not set +CONFIG_HPFS_FS=m +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HUGETLB_PAGE_SIZE_4MB=y +# CONFIG_HUGETLB_PAGE_SIZE_512K is not set +# CONFIG_HUGETLB_PAGE_SIZE_64K is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HW_CONSOLE=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALGOPCF=m +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_I810 is not set +CONFIG_I2C_ISA=m +# CONFIG_I2C_NFORCE2 is not set +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PIIX4=m +# CONFIG_I2C_PROSAVAGE is not set +# CONFIG_I2C_SAVAGE4 is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +CONFIG_I2C_STUB=m +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set +# CONFIG_I2C_VOODOO3 is not set +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +# CONFIG_I2O_CONFIG is not set +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_IDE=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set +CONFIG_IDEDMA_ONLYDISK=y +CONFIG_IDEDMA_PCI_AUTO=y +# CONFIG_IDEPCI_SHARE_IRQ is not set +# CONFIG_IDE_ARM is not set +CONFIG_IDE_GENERIC=m +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_CONFIG_ROM_IP1394=y +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_ETH1394=m +# CONFIG_IEEE1394_EXPORT_FULL_API is not set +CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_OUI_DB=y +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE80211=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +# CONFIG_IKCONFIG is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INOTIFY=y +CONFIG_INPUT=y +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_SPARCSPKR=y +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_UINPUT is not set +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +# CONFIG_IPMI_POWEROFF is not set +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW3945=m +# CONFIG_IPW3945_DEBUG is not set +CONFIG_IPW3945_MONITOR=y +CONFIG_IPW3945_PROMISCUOUS=y +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_DCCP=m +CONFIG_IP_DCCP_ACKVEC=y +CONFIG_IP_DCCP_CCID2=m +CONFIG_IP_DCCP_CCID3=m +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=m +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_MROUTE is not set +CONFIG_IP_MULTICAST=y +CONFIG_IP_NF_AMANDA=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CONNTRACK_MARK=y +CONFIG_IP_NF_CONNTRACK_NETLINK=m +CONFIG_IP_NF_CT_ACCT=y +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_IRC=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_H323=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_NAT_PPTP=m +CONFIG_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NETBIOS_NS=m +CONFIG_IP_NF_PPTP=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_IP_NF_TARGET_TCPMSS=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TFTP=m +CONFIG_IP_PNP=y +# CONFIG_IP_PNP_BOOTP is not set +# CONFIG_IP_PNP_DHCP is not set +CONFIG_IP_PNP_RARP=y +# CONFIG_IP_SCTP is not set +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +# CONFIG_IRDA is not set +CONFIG_ISCSI_TCP=m +# CONFIG_ISDN is not set +# CONFIG_ISI is not set +CONFIG_ISO9660_FS=m +CONFIG_IXGB=m +CONFIG_IXGB_NAPI=y +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +# CONFIG_JFS_FS is not set +CONFIG_JOLIET=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KARMA_PARTITION=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +# CONFIG_KEYBOARD_NEWTON is not set +CONFIG_KEYBOARD_SUNKBD=y +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYS is not set +CONFIG_KMOD=y +CONFIG_KPROBES=y +# CONFIG_LAPB is not set +CONFIG_LARGE_ALLOCS=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y +# CONFIG_LDM_PARTITION is not set +CONFIG_LEDS_CLASS=m +# CONFIG_LEDS_TRIGGERS is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LIBCRC32C=m +CONFIG_LLC=m +CONFIG_LLC2=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_LP_CONSOLE is not set +CONFIG_LXT_PHY=m +# CONFIG_MAC_PARTITION is not set +CONFIG_MAGIC_SYSRQ=y +CONFIG_MARVELL_PHY=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MD=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +# CONFIG_MD_RAID5_RESHAPE is not set +CONFIG_MD_RAID6=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_SAS=m +CONFIG_MII=m +CONFIG_MINIX_FS=m +# CONFIG_MINIX_SUBPARTITION is not set +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=m +CONFIG_MMC_TIFM=m +CONFIG_MMU=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_SERIAL=y +# CONFIG_MOUSE_VSXXXAA is not set +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +# CONFIG_MTD is not set +CONFIG_MYRI10GE=m +CONFIG_MYRI_SBUS=m +CONFIG_NATSEMI=m +# CONFIG_NCPFS_EXTRAS is not set +# CONFIG_NCPFS_IOCTL_LOCKING is not set +CONFIG_NCPFS_NFS_NS=y +# CONFIG_NCPFS_NLS is not set +CONFIG_NCPFS_OS2_NS=y +# CONFIG_NCPFS_PACKET_SIGNING is not set +# CONFIG_NCPFS_SMALLDOS is not set +# CONFIG_NCPFS_STRONG is not set +CONFIG_NCP_FS=m +CONFIG_NE2K_PCI=m +CONFIG_NET=y +CONFIG_NETCONSOLE=m +# CONFIG_NETDEBUG is not set +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +# CONFIG_NET_ACX is not set +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_ACT is not set +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_POLICE=y +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +# CONFIG_NET_DIVERT is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ESTIMATOR=y +CONFIG_NET_ETHERNET=y +CONFIG_NET_FC=y +CONFIG_NET_IPG=m +# CONFIG_NET_IPGRE is not set +CONFIG_NET_IPIP=m +CONFIG_NET_KEY=m +CONFIG_NET_PCI=y +# CONFIG_NET_PKTGEN is not set +CONFIG_NET_POCKET=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RADIO=y +CONFIG_NET_RTL8187=m +CONFIG_NET_RTL818X=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBQ=m +# CONFIG_NET_SCH_CLK_CPU is not set +# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set +CONFIG_NET_SCH_CLK_JIFFIES=y +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_WIRELESS=y +CONFIG_NET_WIRELESS_RTNETLINK=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_TCP=y +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +# CONFIG_NFS_DIRECTIO is not set +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_NORTEL_HERMES=m +CONFIG_NS83820=m +# CONFIG_NTFS_FS is not set +CONFIG_N_HDLC=m +CONFIG_OBP_FLASH=m +CONFIG_OCFS2_FS=m +# CONFIG_OSF_PARTITION is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +# CONFIG_PARIDE is not set +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SUNBPP=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_PATA_MARVELL=m +CONFIG_PCI=y +CONFIG_PCI_ATMEL=m +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_HERMES=m +CONFIG_PCNET32=m +# CONFIG_PDC202XX_BURST is not set +# CONFIG_PHONE is not set +CONFIG_PHYLIB=m +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_POSIX_MQUEUE=y +CONFIG_PPDEV=m +CONFIG_PPP=m +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +# CONFIG_PREEMPT is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +CONFIG_PRISM2=y +CONFIG_PRISM2_PCI=m +CONFIG_PRISM2_USB=m +CONFIG_PRISM54=m +CONFIG_PRISM54_SOFTMAC=m +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +# CONFIG_PROFILING is not set +CONFIG_PROM_CONSOLE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=m +# CONFIG_QNX4FS_FS is not set +CONFIG_QSEMI_PHY=m +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_R1000=m +CONFIG_R3964=m +# CONFIG_R8169 is not set +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMFS=y +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_RFKILL=m +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_FS=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +# CONFIG_RT2400PCI is not set +CONFIG_RT2400_LEGACY=m +# CONFIG_RT2500PCI is not set +# CONFIG_RT2500USB is not set +CONFIG_RT2500_LEGACY=m +CONFIG_RT2570_LEGACY=m +CONFIG_RT61PCI=m +# CONFIG_RT61PCI_DEBUG is not set +CONFIG_RT73USB=m +# CONFIG_RT73USB_DEBUG is not set +CONFIG_RTC=y +CONFIG_RTC_CLASS=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_LIB=m +CONFIG_RT_EXP=y +CONFIG_RT_LEGACY=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXRPC=m +CONFIG_S2IO=m +CONFIG_S2IO_NAPI=y +CONFIG_SAS_CLASS=m +# CONFIG_SAS_DEBUG is not set +CONFIG_SBUS=y +CONFIG_SBUSCHAR=y +# CONFIG_SCHEDSTATS is not set +CONFIG_SCSI=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AIC79XX=m +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_DC390T is not set +CONFIG_SCSI_DC395x=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_FCAL=m +CONFIG_SCSI_FC_ATTRS=m +# CONFIG_SCSI_FUTURE_DOMAIN is not set +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +# CONFIG_SCSI_IPS is not set +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +# CONFIG_SCSI_LOGGING is not set +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_PLUTO=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +# CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLOGICPTI=m +# CONFIG_SCSI_QLOGIC_1280 is not set +CONFIG_SCSI_SAS_ATTRS=m +# CONFIG_SCSI_SATA is not set +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SUNESP=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITY_CAPABILITIES=m +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_REALTIME=m +CONFIG_SECURITY_ROOTPLUG=m +CONFIG_SECURITY_SECLVL=m +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SELECT_MEMORY_MODEL=y +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +CONFIG_SENSORS_ADM1026=m +# CONFIG_SENSORS_ADM1031 is not set +CONFIG_SENSORS_ADM9240=m +# CONFIG_SENSORS_ASB100 is not set +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_EEPROM is not set +CONFIG_SENSORS_F71805F=m +# CONFIG_SENSORS_FSCHER is not set +CONFIG_SENSORS_FSCPOS=m +# CONFIG_SENSORS_GL518SM is not set +CONFIG_SENSORS_GL520SM=m +# CONFIG_SENSORS_IT87 is not set +CONFIG_SENSORS_LM63=m +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +CONFIG_SENSORS_LM87=m +# CONFIG_SENSORS_LM90 is not set +CONFIG_SENSORS_LM92=m +# CONFIG_SENSORS_MAX1619 is not set +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCA9539=m +# CONFIG_SENSORS_PCF8574 is not set +# CONFIG_SENSORS_PCF8591 is not set +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +# CONFIG_SENSORS_VIA686A is not set +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83781D is not set +CONFIG_SENSORS_W83792D=m +# CONFIG_SENSORS_W83L785TS is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_SUNCORE=y +CONFIG_SERIAL_SUNHV=y +CONFIG_SERIAL_SUNSAB=y +CONFIG_SERIAL_SUNSAB_CONSOLE=y +CONFIG_SERIAL_SUNSU=y +CONFIG_SERIAL_SUNSU_CONSOLE=y +CONFIG_SERIAL_SUNZILOG=y +CONFIG_SERIAL_SUNZILOG_CONSOLE=y +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_PARKBD is not set +CONFIG_SERIO_PCIPS2=y +CONFIG_SERIO_RAW=m +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SGI_PARTITION is not set +CONFIG_SHAPER=m +CONFIG_SHMEM=y +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SK98LIN=m +CONFIG_SKFP=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SLAB=y +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +# CONFIG_SLIP_MODE_SLIP6 is not set +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_SND=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AD1889=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALS300=m +# CONFIG_SND_ATIIXP is not set +CONFIG_SND_ATIIXP_MODEM=m +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_DUMMY is not set +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_HDA_INTEL=m +# CONFIG_SND_HDSP is not set +CONFIG_SND_HDSPM=m +CONFIG_SND_HWDEP=m +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIO=m +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIA=m +# CONFIG_SND_MIXART is not set +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MONA=m +# CONFIG_SND_MPU401 is not set +CONFIG_SND_MPU401_UART=m +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_NM256 is not set +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_PCM=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCXHR=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RIPTIDE=m +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_RTCTIMER is not set +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_SEQ_DUMMY=m +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_SONICVIBES is not set +CONFIG_SND_SUN_AMD7930=m +CONFIG_SND_SUN_CS4231=m +CONFIG_SND_SUN_DBRI=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TIMER=m +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VIA82XX is not set +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set +CONFIG_SOLARIS_EMUL=m +# CONFIG_SOLARIS_X86_PARTITION is not set +CONFIG_SOUND=m +CONFIG_SOUND_BT878=m +CONFIG_SOUND_EMU10K1=m +CONFIG_SOUND_ES1371=m +# CONFIG_SOUND_FUSION is not set +CONFIG_SOUND_ICH=m +# CONFIG_SOUND_MSNDCLAS is not set +# CONFIG_SOUND_MSNDPIN is not set +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_TVMIXER=m +CONFIG_SOUND_VIA82CXXX=m +CONFIG_SPARC=y +CONFIG_SPARC32_COMPAT=y +CONFIG_SPARC64=y +# CONFIG_SPARC64_PAGE_SIZE_4MB is not set +# CONFIG_SPARC64_PAGE_SIZE_512KB is not set +# CONFIG_SPARC64_PAGE_SIZE_64KB is not set +CONFIG_SPARC64_PAGE_SIZE_8KB=y +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_MANUAL=y +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPEAKUP is not set +# CONFIG_SPECIALIX is not set +CONFIG_SPI=y +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set +# CONFIG_STACK_DEBUG is not set +CONFIG_STALDRV=y +CONFIG_STANDALONE=y +CONFIG_STRIP=m +CONFIG_SUNBMAC=m +CONFIG_SUNDANCE=m +CONFIG_SUNDANCE_MMIO=y +CONFIG_SUNGEM=y +CONFIG_SUNLANCE=m +CONFIG_SUNQE=m +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUN_AUXIO=y +# CONFIG_SUN_BPP is not set +CONFIG_SUN_IO=y +CONFIG_SUN_MOSTEK_RTC=y +CONFIG_SUN_OPENPROMFS=m +CONFIG_SUN_OPENPROMIO=y +CONFIG_SUN_PARTITION=y +CONFIG_SWAP=y +CONFIG_SX=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYSV_FS=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_TPM=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +CONFIG_TELCLOCK=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TIGON3=m +CONFIG_TIME_INTERPOLATION=y +# CONFIG_TINY_SHMEM is not set +CONFIG_TIPAR=m +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +# CONFIG_TR is not set +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +CONFIG_TULIP_NAPI=y +CONFIG_TULIP_NAPI_HW_MITIGATION=y +CONFIG_TUN=m +# CONFIG_TUNER_3036 is not set +CONFIG_TYPHOON=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UFS_FS=m +CONFIG_UID16=y +CONFIG_ULI526X=m +# CONFIG_ULTRIX_PARTITION is not set +CONFIG_UNION_FS=m +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_UNWIND_INFO is not set +CONFIG_USB=y +CONFIG_USB_ACECAD=m +# CONFIG_USB_ACM is not set +# CONFIG_USB_AIPTEK is not set +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +# CONFIG_USB_APPLETOUCH is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATI_REMOTE=m +CONFIG_USB_ATI_REMOTE2=m +CONFIG_USB_ATMEL=m +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_BANDWIDTH is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_CATC=m +CONFIG_USB_CPADDEV=y +CONFIG_USB_CYTHERM=m +CONFIG_USB_DABUSB=m +# CONFIG_USB_DEBUG is not set +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DSBR=m +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EAGLE=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ET61X251=m +# CONFIG_USB_GADGET is not set +CONFIG_USB_HID=y +# CONFIG_USB_HIDDEV is not set +CONFIG_USB_HIDINPUT=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_USB_IBMCAM is not set +CONFIG_USB_IDMOUSE=m +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_KAWETH=m +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_KONICAWC is not set +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +# CONFIG_USB_LEGOTOWER is not set +CONFIG_USB_LIBUSUAL=y +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OV511 is not set +CONFIG_USB_PEGASUS=m +CONFIG_USB_PHIDGETKIT=m +# CONFIG_USB_PHIDGETSERVO is not set +CONFIG_USB_PODXTPRO=m +# CONFIG_USB_POWERMATE is not set +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +CONFIG_USB_QC=m +CONFIG_USB_RIO500=m +CONFIG_USB_RT2570=m +CONFIG_USB_RTL8150=m +CONFIG_USB_SE401=m +# CONFIG_USB_SERIAL is not set +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_HCD=m +# CONFIG_USB_SN9C102 is not set +CONFIG_USB_SPCA5XX=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=y +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STV680=m +CONFIG_USB_SYNAPTICS=m +# CONFIG_USB_TEST is not set +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_USBNET=m +# CONFIG_USB_USS720 is not set +# CONFIG_USB_VICAM is not set +CONFIG_USB_W9968CF=m +# CONFIG_USB_WACOM is not set +# CONFIG_USB_XPAD is not set +CONFIG_USB_YEALINK=m +CONFIG_USB_ZC0301=m +CONFIG_USB_ZD1201=m +CONFIG_VERSION_SIGNATURE="Ubuntu Unofficial" +CONFIG_VFAT_FS=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX25840=m +# CONFIG_VIDEO_CX88 is not set +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA5246A=m +# CONFIG_VIDEO_SAA5249 is not set +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_OSS=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VLAN_8021Q=m +CONFIG_VORTEX=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +# CONFIG_VXFS_FS is not set +CONFIG_W1=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS9490=m +CONFIG_W1_MASTER_DS9490_BRIDGE=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +# CONFIG_WAN is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_WATCHDOG is not set +# CONFIG_WDC_ALI15X3 is not set +CONFIG_WINBOND_840=m +CONFIG_WIRELESS_EXT=y +CONFIG_WLAN_NG=y +# CONFIG_X25 is not set +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +CONFIG_XFS_EXPORT=y +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_SECURITY is not set +CONFIG_YELLOWFIN=m +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +# CONFIG_ZISOFS is not set +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/sparc/config.sparc64-smp +++ linux-source-2.6.17-2.6.17.1/debian/config/sparc/config.sparc64-smp @@ -0,0 +1,11 @@ +# +# Config options for config.sparc64-smp automatically generated by splitconf.pl +# +CONFIG_CPUSETS=y +CONFIG_LOCK_KERNEL=y +CONFIG_NR_CPUS=32 +CONFIG_RIO=m +CONFIG_RIO_OLDPCI=y +CONFIG_SCHED_SMT=y +CONFIG_SMP=y +CONFIG_STOP_MACHINE=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/sparc/vars.sparc64-smp +++ linux-source-2.6.17-2.6.17.1/debian/config/sparc/vars.sparc64-smp @@ -0,0 +1,5 @@ +supported="64-bit UltraSPARC SMP" +target="Geared toward desktop or server systems." +desc="64-bit UltraSPARC SMP" +bootloader="silo" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/sparc/vars.sparc64 +++ linux-source-2.6.17-2.6.17.1/debian/config/sparc/vars.sparc64 @@ -0,0 +1,5 @@ +supported="64-bit UltraSPARC" +target="Geared toward desktop or server systems." +desc="64-bit UltraSPARC" +bootloader="silo" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/powerpc/config +++ linux-source-2.6.17-2.6.17.1/debian/config/powerpc/config @@ -0,0 +1,2212 @@ +# +# Common config options automatically generated by splitconf.pl +# +CONFIG_3C359=m +CONFIG_6PACK=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +CONFIG_ABYSS=m +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_ADB_PMU=y +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADM8211=m +# CONFIG_AEDSP16_MPU401 is not set +# CONFIG_AEDSP16_MSS is not set +# CONFIG_AEDSP16_SBPRO is not set +CONFIG_AFFS_FS=m +CONFIG_AFS_FS=m +CONFIG_AGP=m +CONFIG_AGP_SIS=m +CONFIG_AGP_UNINORTH=m +CONFIG_AGP_VIA=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_ENABLE_RD_STRM=y +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +CONFIG_ALI_FIR=m +CONFIG_ALTIVEC=y +# CONFIG_AMD8111E_NAPI is not set +CONFIG_AMD8111_ETH=m +CONFIG_AMIGA_PARTITION=y +CONFIG_APPLE_AIRPORT=m +CONFIG_APPLICOM=m +# CONFIG_APUS is not set +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_RIM_I=m +# CONFIG_ARPD is not set +CONFIG_ASFS_DEFAULT_CODEPAGE="" +CONFIG_ASFS_FS=m +# CONFIG_ASFS_RW is not set +CONFIG_ASK_IP_FIB_HASH=y +CONFIG_ATALK=m +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_OVER_ETH=m +CONFIG_ATM=y +CONFIG_ATMEL=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_ATM_CLIP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E_MAYBE=m +CONFIG_ATM_FORE200E_PCA=y +CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_LANAI=m +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_TCP=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_B44=m +CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +CONFIG_BCM43XX_PIO=y +# CONFIG_BCM43XX_PIO_MODE is not set +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_AEC62XX=m +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +CONFIG_BLK_DEV_CLOOP=m +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_CY82C693 is not set +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_DEV_GENERIC=m +CONFIG_BLK_DEV_GNBD=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_HPT34X=m +CONFIG_BLK_DEV_HPT366=m +CONFIG_BLK_DEV_IDE=y +CONFIG_BLK_DEV_IDECD=m +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDEDISK=m +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEDMA_PMAC=y +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_BLK_DEV_IDESCSI=m +CONFIG_BLK_DEV_IDETAPE=m +CONFIG_BLK_DEV_IDE_PMAC=y +CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y +# CONFIG_BLK_DEV_IDE_PMAC_BLINK is not set +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_IT821X=m +CONFIG_BLK_DEV_JMICRON=m +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NS87415=m +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_OPTI621 is not set +CONFIG_BLK_DEV_PDC202XX_NEW=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +# CONFIG_BLK_DEV_PIIX is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_SC1200=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SIIMAGE=m +CONFIG_BLK_DEV_SL82C105=m +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_SVWKS is not set +CONFIG_BLK_DEV_SX8=m +# CONFIG_BLK_DEV_TRIFLEX is not set +CONFIG_BLK_DEV_TRM290=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BNX2=m +CONFIG_BONDING=m +# CONFIG_BOOTX_TEXT is not set +CONFIG_BPQETHER=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BT_ALSA=m +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_L2CAP=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_SCO=m +CONFIG_BUG=y +CONFIG_CARDBUS=y +# CONFIG_CARDMAN_4000 is not set +# CONFIG_CARDMAN_4040 is not set +CONFIG_CASSINI=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CHELSIO_T1=m +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=m +CONFIG_CIFS=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_COMPUTONE=m +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=m +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CRAMFS=y +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_WP512=m +CONFIG_CYCLADES=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +# CONFIG_CYZ_INTR is not set +CONFIG_D80211=m +CONFIG_DAVICOM_PHY=m +CONFIG_DAZUKO=m +CONFIG_DE2104X=m +CONFIG_DE4X5=m +CONFIG_DE600=m +CONFIG_DE620=m +# CONFIG_DEBUGGER is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_VM is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DEFAULT_NOOP is not set +# CONFIG_DEFAULT_UIMAGE is not set +CONFIG_DEFXX=m +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_DEV_APPLETALK=y +CONFIG_DGRS=m +CONFIG_DIGIEPCA=m +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_COUNT=24 +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_DM9102=m +CONFIG_DM_CRYPT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_ZERO=m +CONFIG_DNOTIFY=y +CONFIG_DONGLE=y +CONFIG_DRM=m +CONFIG_DRM_MGA=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_VIA=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DVB=y +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_BT8XX=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_CINERGYT2=m +CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y +CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 +CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 +CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 +CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 +CONFIG_DVB_CINERGYT2_TUNING=y +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10353=m +# CONFIG_DXR3 is not set +CONFIG_E100=m +CONFIG_E1000=m +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +# CONFIG_E1000_NAPI is not set +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PROM_PRINT is not set +CONFIG_ECC=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +CONFIG_EEPRO100=m +# CONFIG_EFI_PARTITION is not set +CONFIG_EFS_FS=m +CONFIG_ELF_CORE=y +# CONFIG_EMBEDDED is not set +# CONFIG_EMBEDDED6xx is not set +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ESI_DONGLE=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_3DFX=y +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_ASILIANT=y +CONFIG_FB_ATY=y +CONFIG_FB_ATY128=y +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CIRRUS=m +CONFIG_FB_CONTROL=y +CONFIG_FB_CT65550=y +CONFIG_FB_CYBER2000=m +CONFIG_FB_FIRMWARE_EDID=y +CONFIG_FB_IMSTT=y +CONFIG_FB_KYRO=m +CONFIG_FB_MACMODES=y +CONFIG_FB_MATROX=y +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_OF=y +CONFIG_FB_PLATINUM=y +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_RADEON=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_TRIDENT=m +CONFIG_FB_TRIDENT_ACCEL=y +CONFIG_FB_VALKYRIE=y +# CONFIG_FB_VGA16 is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=y +CONFIG_FDDI=y +CONFIG_FEALNX=m +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FORCEDETH=m +# CONFIG_FORCED_INLINING is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FTL=m +CONFIG_FUSE_FS=m +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GEN_RTC=y +# CONFIG_GEN_RTC_X is not set +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS_FS=m +CONFIG_GIRBIL_DONGLE=m +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HAPPYMEAL=m +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=y +CONFIG_HDLC_FR=y +CONFIG_HDLC_PPP=y +CONFIG_HDLC_RAW=y +CONFIG_HDLC_RAW_ETH=y +CONFIG_HDLC_X25=y +CONFIG_HERMES=m +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +# CONFIG_HID_FF is not set +CONFIG_HIPPI=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOTPLUG=y +# CONFIG_HOTPLUG_PCI is not set +CONFIG_HP100=m +CONFIG_HPFS_FS=m +# CONFIG_HPT34X_AUTODMA is not set +# CONFIG_HVC_RTAS is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HW_CONSOLE=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=y +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_ISA=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_POWERMAC=y +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_STUB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I82092=m +CONFIG_IBMOL=m +CONFIG_IDE=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_IDEDMA_PCI_AUTO=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDE_ARM is not set +# CONFIG_IDE_GENERIC is not set +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_CONFIG_ROM_IP1394=y +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_ETH1394=m +# CONFIG_IEEE1394_EXPORT_FULL_API is not set +CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_OUI_DB=y +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE80211=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +# CONFIG_IKCONFIG is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INOTIFY=y +CONFIG_INPUT=y +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_TSDEV=m +CONFIG_INPUT_TSDEV_SCREEN_X=240 +CONFIG_INPUT_TSDEV_SCREEN_Y=320 +CONFIG_INPUT_UINPUT=m +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPDDP=m +CONFIG_IPDDP_DECAP=y +CONFIG_IPDDP_ENCAP=y +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW3945=m +# CONFIG_IPW3945_DEBUG is not set +CONFIG_IPW3945_MONITOR=y +CONFIG_IPW3945_PROMISCUOUS=y +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_DCCP=m +CONFIG_IP_DCCP_ACKVEC=y +CONFIG_IP_DCCP_CCID2=m +CONFIG_IP_DCCP_CCID3=m +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=m +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_MROUTE=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_NF_AMANDA=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CONNTRACK_MARK=y +CONFIG_IP_NF_CONNTRACK_NETLINK=m +CONFIG_IP_NF_CT_ACCT=y +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_IRC=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_H323=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_NAT_PPTP=m +CONFIG_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NETBIOS_NS=m +CONFIG_IP_NF_PPTP=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_IP_NF_TARGET_TCPMSS=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TFTP=m +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_IP_PNP is not set +CONFIG_IP_ROUTE_FWMARK=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_MULTIPATH_CACHED=y +CONFIG_IP_ROUTE_MULTIPATH_DRR=m +CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m +CONFIG_IP_ROUTE_MULTIPATH_RR=m +CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRTTY_SIR=m +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_TCP=m +# CONFIG_ISDN is not set +# CONFIG_ISI is not set +CONFIG_ISO9660_FS=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS_FS=m +CONFIG_JFFS_FS_VERBOSE=0 +CONFIG_JFFS_PROC_FS=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KMOD=y +CONFIG_LANMEDIA=m +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y +# CONFIG_LDM_DEBUG is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEDS_CLASS=m +# CONFIG_LEDS_TRIGGERS is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LIBCRC32C=m +CONFIG_LITELINK_DONGLE=m +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_LP_CONSOLE is not set +CONFIG_LXT_PHY=m +CONFIG_MA600_DONGLE=m +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MARVELL_PHY=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MCP2120_DONGLE=m +CONFIG_MD=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +# CONFIG_MD_RAID5_RESHAPE is not set +CONFIG_MD_RAID6=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_SAS=m +CONFIG_MIDI_EMU10K1=y +CONFIG_MIDI_VIA82CXXX=y +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MKISS=m +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=m +CONFIG_MMC_TIFM=m +CONFIG_MMC_WBSD=m +CONFIG_MMU=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +CONFIG_MPIC=y +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +CONFIG_MTD=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CHAR=m +# CONFIG_MTD_CMDLINE_PARTS is not set +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DATAFLASH=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCPROBE_ADDRESS=0 +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_NANDSIM=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_PCI=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS=m +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_ROM=m +CONFIG_MTD_SLRAM=m +CONFIG_MV643XX_ETH=m +CONFIG_MYRI10GE=m +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NE2K_PCI=m +CONFIG_NET=y +CONFIG_NETCONSOLE=m +# CONFIG_NETDEBUG is not set +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETROM=m +CONFIG_NET_ACX=m +CONFIG_NET_ACX_PCI=y +CONFIG_NET_ACX_USB=y +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_ACT is not set +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_POLICE=y +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +# CONFIG_NET_DIVERT is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ESTIMATOR=y +CONFIG_NET_ETHERNET=y +CONFIG_NET_FC=y +CONFIG_NET_IPG=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPIP=m +CONFIG_NET_KEY=m +CONFIG_NET_PCI=y +CONFIG_NET_PCMCIA=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POCKET=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RADIO=y +CONFIG_NET_RTL8187=m +CONFIG_NET_RTL818X=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +# CONFIG_NET_SCH_CLK_CPU is not set +# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set +CONFIG_NET_SCH_CLK_JIFFIES=y +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_WIRELESS=y +CONFIG_NET_WIRELESS_RTNETLINK=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_TCP=y +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_NORTEL_HERMES=m +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_N_HDLC=m +CONFIG_OBSOLETE_INTERMODULE=m +CONFIG_OCFS2_FS=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OPROFILE=m +CONFIG_OSF_PARTITION=y +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PARPORT=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_PATA_MARVELL=m +CONFIG_PC300=m +CONFIG_PC300_MLPPP=y +CONFIG_PCCARD=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_ATMEL=m +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_HERMES=m +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IOCTL=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NETWAVE=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE_MEM=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PD6729=m +# CONFIG_PDC202XX_BURST is not set +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=m +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_DISABLE_CONSOLE=y +CONFIG_PM_LEGACY=y +CONFIG_POSIX_MQUEUE=y +CONFIG_PPC=y +# CONFIG_PPC_EARLY_DEBUG_G5 is not set +# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set +# CONFIG_PPC_EARLY_DEBUG_LPAR is not set +# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set +# CONFIG_PPC_EARLY_DEBUG_RTAS is not set +CONFIG_PPC_FPU=y +CONFIG_PPC_I8259=y +# CONFIG_PPC_ISERIES is not set +CONFIG_PPC_MERGE=y +CONFIG_PPC_MULTIPLATFORM=y +CONFIG_PPC_OF=y +CONFIG_PPC_PMAC=y +CONFIG_PPC_RTAS=y +CONFIG_PPC_STD_MMU=y +CONFIG_PPC_UDBG_16550=y +CONFIG_PPDEV=m +CONFIG_PPP=m +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +# CONFIG_PREEMPT is not set +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +CONFIG_PRISM2=y +CONFIG_PRISM2_PCI=m +CONFIG_PRISM2_USB=m +CONFIG_PRISM54=m +CONFIG_PRISM54_SOFTMAC=m +CONFIG_PROC_DEVICETREE=y +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROFILING=y +CONFIG_PSS_MIXER=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QNX4FS_FS=m +CONFIG_QSEMI_PHY=m +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_R1000=m +CONFIG_R3964=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMFS=y +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_RFD_FTL=m +CONFIG_RFKILL=m +# CONFIG_RIO is not set +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_FS=m +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +# CONFIG_RT2400PCI is not set +CONFIG_RT2400_LEGACY=m +# CONFIG_RT2500PCI is not set +# CONFIG_RT2500USB is not set +CONFIG_RT2500_LEGACY=m +CONFIG_RT2570_LEGACY=m +CONFIG_RT61PCI=m +# CONFIG_RT61PCI_DEBUG is not set +CONFIG_RT73USB=m +# CONFIG_RT73USB_DEBUG is not set +CONFIG_RTAS_PROC=y +CONFIG_RTC_CLASS=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_LIB=m +CONFIG_RT_EXP=y +CONFIG_RT_LEGACY=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXRPC=m +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_SAS_CLASS=m +# CONFIG_SAS_DEBUG is not set +CONFIG_SC6600=y +CONFIG_SC6600_CDROM=4 +CONFIG_SC6600_CDROMBASE=0x0 +CONFIG_SC6600_JOY=y +# CONFIG_SCHEDSTATS is not set +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +CONFIG_SCSI=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_ATA_GENERIC is not set +CONFIG_SCSI_ATA_PIIX=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +# CONFIG_SCSI_PATA_ALI is not set +# CONFIG_SCSI_PATA_AMD is not set +# CONFIG_SCSI_PATA_ARTOP is not set +# CONFIG_SCSI_PATA_ATIIXP is not set +# CONFIG_SCSI_PATA_CMD64X is not set +# CONFIG_SCSI_PATA_CS5520 is not set +# CONFIG_SCSI_PATA_CS5530 is not set +# CONFIG_SCSI_PATA_CYPRESS is not set +# CONFIG_SCSI_PATA_EFAR is not set +# CONFIG_SCSI_PATA_HPT366 is not set +# CONFIG_SCSI_PATA_HPT37X is not set +# CONFIG_SCSI_PATA_HPT3X2N is not set +# CONFIG_SCSI_PATA_HPT3X3 is not set +# CONFIG_SCSI_PATA_ISAPNP is not set +# CONFIG_SCSI_PATA_IT8172 is not set +# CONFIG_SCSI_PATA_IT821X is not set +# CONFIG_SCSI_PATA_LEGACY is not set +# CONFIG_SCSI_PATA_MPIIX is not set +# CONFIG_SCSI_PATA_NETCELL is not set +# CONFIG_SCSI_PATA_NS87410 is not set +# CONFIG_SCSI_PATA_OLDPIIX is not set +# CONFIG_SCSI_PATA_OPTI is not set +# CONFIG_SCSI_PATA_OPTIDMA is not set +CONFIG_SCSI_PATA_PCMCIA=m +# CONFIG_SCSI_PATA_PDC_OLD is not set +# CONFIG_SCSI_PATA_PIIX is not set +# CONFIG_SCSI_PATA_QDI is not set +# CONFIG_SCSI_PATA_RADISYS is not set +# CONFIG_SCSI_PATA_RZ1000 is not set +# CONFIG_SCSI_PATA_SC1200 is not set +# CONFIG_SCSI_PATA_SERVERWORKS is not set +# CONFIG_SCSI_PATA_SIL680 is not set +# CONFIG_SCSI_PATA_SIS is not set +# CONFIG_SCSI_PATA_TRIFLEX is not set +# CONFIG_SCSI_PATA_VIA is not set +# CONFIG_SCSI_PATA_WINBOND is not set +CONFIG_SCSI_PDC_ADMA=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +# CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SATA=m +CONFIG_SCSI_SATA_AHCI=m +CONFIG_SCSI_SATA_INTEL_COMBINED=y +CONFIG_SCSI_SATA_MV=m +CONFIG_SCSI_SATA_NV=m +CONFIG_SCSI_SATA_PROMISE=m +CONFIG_SCSI_SATA_QSTOR=m +CONFIG_SCSI_SATA_SIL=m +CONFIG_SCSI_SATA_SIL24=m +CONFIG_SCSI_SATA_SIS=m +CONFIG_SCSI_SATA_SVW=m +CONFIG_SCSI_SATA_SX4=m +CONFIG_SCSI_SATA_ULI=m +CONFIG_SCSI_SATA_VIA=m +CONFIG_SCSI_SATA_VITESSE=m +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_HMAC_MD5=y +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SECCOMP=y +CONFIG_SECURITY=y +CONFIG_SECURITY_CAPABILITIES=m +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_REALTIME=m +CONFIG_SECURITY_ROOTPLUG=m +CONFIG_SECURITY_SECLVL=m +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SERIAL_8250=m +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=m +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_CORE=m +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIO=y +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +CONFIG_SHAPER=m +CONFIG_SHMEM=y +CONFIG_SIGMATEL_FIR=m +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SK98LIN=m +CONFIG_SKFP=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SLAB=y +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_SMC_IRCC_FIR=m +CONFIG_SND=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AD1889=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_AOA=m +CONFIG_SND_AOA_FABRIC_LAYOUT=m +CONFIG_SND_AOA_ONYX=m +CONFIG_SND_AOA_SOUNDBUS=m +CONFIG_SND_AOA_SOUNDBUS_I2S=m +CONFIG_SND_AOA_TAS=m +CONFIG_SND_AOA_TOONIE=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIA=m +CONFIG_SND_MIXART=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MTPAV=m +CONFIG_SND_NM256=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_PCM=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_POWERMAC=m +CONFIG_SND_POWERMAC_AUTO_DRC=y +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TIMER=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_YMFPCI=m +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +CONFIG_SOUND_ACI_MIXER=m +# CONFIG_SOUND_AD1816 is not set +CONFIG_SOUND_AD1889=m +CONFIG_SOUND_ADLIB=m +CONFIG_SOUND_AEDSP16=m +CONFIG_SOUND_BT878=m +CONFIG_SOUND_CS4232=m +# CONFIG_SOUND_DMAP is not set +CONFIG_SOUND_EMU10K1=m +CONFIG_SOUND_ES1371=m +CONFIG_SOUND_FUSION=m +CONFIG_SOUND_ICH=m +CONFIG_SOUND_KAHLUA=m +CONFIG_SOUND_MPU401=m +# CONFIG_SOUND_MSNDCLAS is not set +# CONFIG_SOUND_MSNDPIN is not set +CONFIG_SOUND_MSS=m +CONFIG_SOUND_NM256=m +CONFIG_SOUND_OPL3SA2=m +CONFIG_SOUND_OSS=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_PSS=m +CONFIG_SOUND_SB=m +# CONFIG_SOUND_TRACEINIT is not set +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_TVMIXER=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_VIA82CXXX=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_YM3812=m +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_ACNTPC=m +CONFIG_SPEAKUP_ACNTSA=m +CONFIG_SPEAKUP_APOLLO=m +CONFIG_SPEAKUP_AUDPTR=m +CONFIG_SPEAKUP_BNS=m +CONFIG_SPEAKUP_DECEXT=m +CONFIG_SPEAKUP_DECPC=m +CONFIG_SPEAKUP_DECTLK=m +CONFIG_SPEAKUP_DEFAULT="none" +CONFIG_SPEAKUP_DTLK=m +CONFIG_SPEAKUP_KEYPC=m +CONFIG_SPEAKUP_LTLK=m +CONFIG_SPEAKUP_SFTSYN=m +CONFIG_SPEAKUP_SPKOUT=m +CONFIG_SPEAKUP_TXPRT=m +CONFIG_SPECIALIX=m +# CONFIG_SPECIALIX_RTSCTS is not set +CONFIG_SPI=y +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set +CONFIG_STALDRV=y +CONFIG_STANDALONE=y +CONFIG_STRIP=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNGEM=m +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUN_PARTITION=y +CONFIG_SWAP=y +CONFIG_SX=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYNCLINK_SYNCPPP=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSVIPC=y +CONFIG_SYSV_FS=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_TPM=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +CONFIG_TEKRAM_DONGLE=m +CONFIG_TELCLOCK=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TIGON3=m +# CONFIG_TINY_SHMEM is not set +CONFIG_TIPAR=m +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +# CONFIG_TOIM3232_DONGLE is not set +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TR=y +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TUN=m +CONFIG_TUNER_3036=m +CONFIG_TYPHOON=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UFS_FS=m +CONFIG_ULI526X=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNION_FS=m +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_USB=m +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACECAD=m +CONFIG_USB_ACM=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_APPLETOUCH=m +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATI_REMOTE=m +CONFIG_USB_ATI_REMOTE2=m +CONFIG_USB_ATM=m +CONFIG_USB_ATMEL=m +CONFIG_USB_AUERSWALD=m +# CONFIG_USB_BANDWIDTH is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_CATC=m +CONFIG_USB_CPADDEV=y +CONFIG_USB_CXACRU=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DABUSB=m +# CONFIG_USB_DEBUG is not set +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DSBR=m +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EAGLE=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ET61X251=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_EZUSB=y +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_GADGET=m +CONFIG_USB_GADGETFS=m +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +CONFIG_USB_GADGET_NET2280=y +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_G_SERIAL=m +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HIDINPUT=y +CONFIG_USB_HIDINPUT_POWERBOOK=y +CONFIG_USB_IBMCAM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IRDA=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_KBD=m +CONFIG_USB_KBTAB=m +# CONFIG_USB_KEYSPAN_REMOTE is not set +CONFIG_USB_KONICAWC=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LIBUSUAL=y +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y +CONFIG_USB_MOUSE=m +CONFIG_USB_NET2280=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +CONFIG_USB_OV511=m +CONFIG_USB_OV511_DECOMP=m +CONFIG_USB_OV518_DECOMP=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_PODXTPRO=m +CONFIG_USB_POWERMATE=m +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +CONFIG_USB_QC=m +CONFIG_USB_RIO500=m +CONFIG_USB_RT2570=m +CONFIG_USB_RTL8150=m +CONFIG_USB_SE401=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_AIRPRIME=m +# CONFIG_USB_SERIAL_ANYDATA is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SN9C102=m +CONFIG_USB_SPCA5XX=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_DATAFAB=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STV680=m +CONFIG_USB_SUSPEND=y +CONFIG_USB_SYNAPTICS=m +CONFIG_USB_TEST=m +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +CONFIG_USB_VICAM=m +CONFIG_USB_W9968CF=m +CONFIG_USB_WACOM=m +CONFIG_USB_XPAD=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_YEALINK=m +CONFIG_USB_ZC0301=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +CONFIG_VERSION_SIGNATURE="Ubuntu Unofficial" +CONFIG_VFAT_FS=m +# CONFIG_VGA_CONSOLE is not set +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BUF_DVB=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_SAA7134_OSS=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VLAN_8021Q=m +CONFIG_VLSI_FIR=m +CONFIG_VORTEX=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXFS_FS=m +CONFIG_W1=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS9490=m +CONFIG_W1_MASTER_DS9490_BRIDGE=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_WAN=y +# CONFIG_WANT_EARLY_SERIAL is not set +CONFIG_WANXL=m +CONFIG_WAN_ROUTER=m +CONFIG_WAN_ROUTER_DRIVERS=y +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_RTAS=m +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WINDFARM=m +CONFIG_WIRELESS_EXT=y +CONFIG_WLAN_NG=y +CONFIG_X25=m +CONFIG_X25_ASY=m +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +CONFIG_XFS_EXPORT=y +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_RT=y +CONFIG_XFS_SECURITY=y +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/powerpc/vars.powerpc-smp +++ linux-source-2.6.17-2.6.17.1/debian/config/powerpc/vars.powerpc-smp @@ -0,0 +1,5 @@ +supported="32-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC SMP" +bootloader="yaboot" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/powerpc/vars.powerpc +++ linux-source-2.6.17-2.6.17.1/debian/config/powerpc/vars.powerpc @@ -0,0 +1,5 @@ +supported="32-bit PowerPC" +target="Geared toward desktop or server systems." +desc="32-bit PowerPC" +bootloader="yaboot" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/powerpc/vars.powerpc64-smp +++ linux-source-2.6.17-2.6.17.1/debian/config/powerpc/vars.powerpc64-smp @@ -0,0 +1,5 @@ +supported="64-bit PowerPC SMP" +target="Geared toward desktop or server systems." +desc="64-bit PowerPC SMP" +bootloader="yaboot" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/powerpc/config.powerpc +++ linux-source-2.6.17-2.6.17.1/debian/config/powerpc/config.powerpc @@ -0,0 +1,119 @@ +# +# Config options for config.powerpc automatically generated by splitconf.pl +# +# CONFIG_40x is not set +# CONFIG_44x is not set +CONFIG_6xx=y +# CONFIG_8xx is not set +CONFIG_ACT200L_DONGLE_OLD=m +CONFIG_ACTISYS_DONGLE_OLD=m +CONFIG_ADB=y +CONFIG_ADB_CUDA=y +CONFIG_ADB_MACIO=y +# CONFIG_ADVANCED_OPTIONS is not set +CONFIG_ANSLCD=m +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +CONFIG_BAYCOM_EPP=m +# CONFIG_BDI_SWITCH is not set +CONFIG_BMAC=m +CONFIG_BOOT_LOAD=0x00800000 +CONFIG_BROKEN_ON_SMP=y +CONFIG_CLASSIC32=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_PMAC=y +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DMASOUND=m +CONFIG_DMASOUND_PMAC=m +CONFIG_DONGLE_OLD=y +# CONFIG_E200 is not set +CONFIG_ESI_DONGLE_OLD=m +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_GENERIC_NVRAM=y +# CONFIG_GENERIC_TBSYNC is not set +CONFIG_GIRBIL_DONGLE_OLD=m +CONFIG_HIGHMEM=y +CONFIG_HIGHMEM_START=0xfe000000 +# CONFIG_HUGETLB_PAGE is not set +CONFIG_I2C_HYDRA=m +CONFIG_I2C_MPC=m +CONFIG_IBMLS=m +CONFIG_INPUT_ADBHID=y +CONFIG_IRPORT_SIR=m +# CONFIG_ISA is not set +CONFIG_ISTALLION=m +CONFIG_KERNEL_START=0xc0000000 +# CONFIG_LBD is not set +CONFIG_LITELINK_DONGLE_OLD=m +CONFIG_LOWMEM_SIZE=0x30000000 +# CONFIG_LSF is not set +CONFIG_MA600_DONGLE_OLD=m +CONFIG_MACE=m +# CONFIG_MACE_AAUI_PORT is not set +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_MAC_FLOPPY=m +CONFIG_MCP2120_DONGLE_OLD=m +# CONFIG_MMIO_NVRAM is not set +CONFIG_MOL=m +# CONFIG_MV643XX_ETH_0 is not set +# CONFIG_MV643XX_ETH_1 is not set +# CONFIG_MV643XX_ETH_2 is not set +CONFIG_NVRAM=y +CONFIG_OLD_BELKIN_DONGLE_OLD=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_XIRTULIP=m +CONFIG_PMAC_APM_EMU=m +CONFIG_PMAC_BACKLIGHT=y +CONFIG_PMAC_MEDIABAY=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PPC32=y +# CONFIG_PPC601_SYNC_FIX is not set +# CONFIG_PPC64 is not set +# CONFIG_PPC_52xx is not set +# CONFIG_PPC_82xx is not set +# CONFIG_PPC_83xx is not set +# CONFIG_PPC_85xx is not set +# CONFIG_PPC_970_NAP is not set +CONFIG_PPC_CHRP=y +CONFIG_PPC_INDIRECT_PCI=y +CONFIG_PPC_MPC106=y +CONFIG_PPC_STD_MMU_32=y +CONFIG_RISCOM8=m +# CONFIG_RTAS_ERROR_LOGGING is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_MAC53C94=m +CONFIG_SCSI_MESH=m +CONFIG_SCSI_MESH_RESET_DELAY_MS=4000 +CONFIG_SCSI_MESH_SYNC_RATE=5 +CONFIG_SCSI_NSP32=m +CONFIG_SENSORS_M41T00=m +CONFIG_SERIAL_PMACZILOG=m +# CONFIG_SMP is not set +CONFIG_SOFTWARE_SUSPEND=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_STALLION=m +CONFIG_TASK_SIZE=0x80000000 +CONFIG_TAU=y +# CONFIG_TAU_AVERAGE is not set +# CONFIG_TAU_INT is not set +CONFIG_TEKRAM_DONGLE_OLD=m +CONFIG_THERM_ADT746X=m +CONFIG_THERM_WINDTUNNEL=m +CONFIG_TLAN=m +CONFIG_TOSHIBA_FIR=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m --- linux-source-2.6.17-2.6.17.1.orig/debian/config/powerpc/config.powerpc64-smp +++ linux-source-2.6.17-2.6.17.1/debian/config/powerpc/config.powerpc64-smp @@ -0,0 +1,90 @@ +# +# Config options for config.powerpc64-smp automatically generated by splitconf.pl +# +CONFIG_64BIT=y +CONFIG_ARCH_MEMORY_PROBE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_CELL_IIC=y +CONFIG_COMPAT=y +CONFIG_CPUSETS=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_PMAC64=y +# CONFIG_CRASH_DUMP is not set +# CONFIG_DEBUG_STACKOVERFLOW is not set +# CONFIG_DEBUG_STACK_USAGE is not set +CONFIG_EEH=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_FORCE_MAX_ZONEORDER=13 +CONFIG_GENERIC_TBSYNC=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y +CONFIG_HAVE_MEMORY_PRESENT=y +# CONFIG_HOTPLUG_CPU is not set +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HVCS=m +# CONFIG_HVC_CONSOLE is not set +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_IBMEBUS=y +CONFIG_IBMVETH=m +CONFIG_IBMVIO=y +# CONFIG_IOMMU_VMERGE is not set +# CONFIG_IRQSTACKS is not set +CONFIG_IRQ_ALL_CPUS=y +CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_KEYS_COMPAT=y +CONFIG_KPROBES=y +CONFIG_LOCK_KERNEL=y +CONFIG_LPARCFG=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MIGRATION=y +CONFIG_MMIO_NVRAM=y +CONFIG_MPIC_BROKEN_U3=y +CONFIG_MV643XX_ETH_0=y +CONFIG_MV643XX_ETH_1=y +CONFIG_MV643XX_ETH_2=y +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NODES_SHIFT=4 +CONFIG_NR_CPUS=32 +CONFIG_NUMA=y +CONFIG_PMAC_SMU=y +CONFIG_POWER3=y +CONFIG_POWER4=y +# CONFIG_POWER4_ONLY is not set +CONFIG_PPC64=y +# CONFIG_PPC_64K_PAGES is not set +CONFIG_PPC_970_NAP=y +CONFIG_PPC_CELL=y +# CONFIG_PPC_INDIRECT_PCI is not set +CONFIG_PPC_MAPLE=y +# CONFIG_PPC_MPC106 is not set +CONFIG_PPC_PMAC64=y +CONFIG_PPC_PSERIES=y +CONFIG_PPC_PSERIES_PANEL_MSG="Ubuntu ppc64" +CONFIG_PPC_SPLPAR=y +CONFIG_PREEMPT_BKL=y +CONFIG_RTAS_ERROR_LOGGING=y +CONFIG_RTAS_FLASH=m +CONFIG_SCANLOG=m +CONFIG_SCHED_SMT=y +CONFIG_SCSI_IBMVSCSI=m +CONFIG_SERIAL_ICOM=m +# CONFIG_SERIAL_PMACZILOG is not set +CONFIG_SMP=y +CONFIG_SPARSEMEM=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_MANUAL=y +# CONFIG_SPIDER_NET is not set +CONFIG_SPUFS_MMAP=y +CONFIG_SPU_FS=m +CONFIG_STOP_MACHINE=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_THERM_PM72=m +CONFIG_U3_DART=y +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_WINDFARM_PM112=m +CONFIG_WINDFARM_PM81=m +CONFIG_WINDFARM_PM91=m +CONFIG_XICS=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/powerpc/config.powerpc-smp +++ linux-source-2.6.17-2.6.17.1/debian/config/powerpc/config.powerpc-smp @@ -0,0 +1,108 @@ +# +# Config options for config.powerpc-smp automatically generated by splitconf.pl +# +# CONFIG_40x is not set +# CONFIG_44x is not set +CONFIG_6xx=y +# CONFIG_8xx is not set +CONFIG_ADB=y +CONFIG_ADB_CUDA=y +CONFIG_ADB_MACIO=y +# CONFIG_ADVANCED_OPTIONS is not set +CONFIG_ANSLCD=m +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ATM_IA=m +# CONFIG_ATM_IA_DEBUG is not set +CONFIG_ATM_NICSTAR=m +# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set +# CONFIG_ATM_NICSTAR_USE_SUNI is not set +CONFIG_BAYCOM_EPP=m +# CONFIG_BDI_SWITCH is not set +CONFIG_BMAC=m +CONFIG_BOOT_LOAD=0x00800000 +CONFIG_CLASSIC32=y +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ_DEBUG=y +CONFIG_CPU_FREQ_PMAC=y +# CONFIG_DEBUG_HIGHMEM is not set +CONFIG_DMASOUND=m +CONFIG_DMASOUND_PMAC=m +# CONFIG_E200 is not set +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_GENERIC_NVRAM=y +CONFIG_GENERIC_TBSYNC=y +CONFIG_HIGHMEM=y +CONFIG_HIGHMEM_START=0xfe000000 +# CONFIG_HOTPLUG_CPU is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_I2C_HYDRA=m +CONFIG_I2C_MPC=m +CONFIG_IBMLS=m +CONFIG_INPUT_ADBHID=y +# CONFIG_IRQ_ALL_CPUS is not set +# CONFIG_ISA is not set +CONFIG_KERNEL_START=0xc0000000 +# CONFIG_LBD is not set +CONFIG_LOCK_KERNEL=y +CONFIG_LOWMEM_SIZE=0x30000000 +# CONFIG_LSF is not set +CONFIG_MACE=m +# CONFIG_MACE_AAUI_PORT is not set +CONFIG_MAC_EMUMOUSEBTN=y +CONFIG_MAC_FLOPPY=m +# CONFIG_MMIO_NVRAM is not set +CONFIG_MOL=m +# CONFIG_MV643XX_ETH_0 is not set +# CONFIG_MV643XX_ETH_1 is not set +# CONFIG_MV643XX_ETH_2 is not set +CONFIG_NR_CPUS=4 +CONFIG_NVRAM=y +CONFIG_PARIDE_BPCK6=m +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_IBMTR=m +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PMAC_APM_EMU=m +CONFIG_PMAC_BACKLIGHT=y +CONFIG_PMAC_MEDIABAY=y +CONFIG_PPC32=y +# CONFIG_PPC601_SYNC_FIX is not set +# CONFIG_PPC64 is not set +# CONFIG_PPC_52xx is not set +# CONFIG_PPC_82xx is not set +# CONFIG_PPC_83xx is not set +# CONFIG_PPC_85xx is not set +# CONFIG_PPC_970_NAP is not set +CONFIG_PPC_CHRP=y +CONFIG_PPC_INDIRECT_PCI=y +CONFIG_PPC_MPC106=y +CONFIG_PPC_STD_MMU_32=y +CONFIG_PREEMPT_BKL=y +# CONFIG_RTAS_ERROR_LOGGING is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_MAC53C94=m +CONFIG_SCSI_MESH=m +CONFIG_SCSI_MESH_RESET_DELAY_MS=4000 +CONFIG_SCSI_MESH_SYNC_RATE=5 +CONFIG_SCSI_NSP32=m +CONFIG_SENSORS_M41T00=m +CONFIG_SERIAL_PMACZILOG=m +CONFIG_SMP=y +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_STOP_MACHINE=y +CONFIG_TASK_SIZE=0x80000000 +CONFIG_TAU=y +# CONFIG_TAU_AVERAGE is not set +# CONFIG_TAU_INT is not set +CONFIG_THERM_ADT746X=m +CONFIG_THERM_WINDTUNNEL=m +CONFIG_TLAN=m +CONFIG_TOSHIBA_FIR=m +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m --- linux-source-2.6.17-2.6.17.1.orig/debian/config/hppa/config.hppa64 +++ linux-source-2.6.17-2.6.17.1/debian/config/hppa/config.hppa64 @@ -0,0 +1,19 @@ +# +# Config options for config.hppa64 automatically generated by splitconf.pl +# +CONFIG_64BIT=y +CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_COMPAT=y +CONFIG_DISCONTIGMEM=y +CONFIG_DISCONTIGMEM_MANUAL=y +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NODES_SHIFT=3 +CONFIG_PA20=y +# CONFIG_PA7000 is not set +CONFIG_PA8X00=y +CONFIG_PREFETCH=y +CONFIG_SPLIT_PTLOCK_CPUS=4 --- linux-source-2.6.17-2.6.17.1.orig/debian/config/hppa/config.hppa32 +++ linux-source-2.6.17-2.6.17.1/debian/config/hppa/config.hppa32 @@ -0,0 +1,18 @@ +# +# Config options for config.hppa32 automatically generated by splitconf.pl +# +# CONFIG_ARLAN is not set +# CONFIG_DISCONTIGMEM_MANUAL is not set +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +# CONFIG_HPUX is not set +CONFIG_PA11=y +CONFIG_PA7000=y +# CONFIG_PA8X00 is not set +CONFIG_PCMCIA_AHA152X=m +CONFIG_PCMCIA_NINJA_SCSI=m +# CONFIG_SCSI_AHA152X is not set +CONFIG_SCSI_DPT_I2O=m +CONFIG_SCSI_NSP32=m +CONFIG_SPLIT_PTLOCK_CPUS=4096 +CONFIG_TLAN=m --- linux-source-2.6.17-2.6.17.1.orig/debian/config/hppa/config +++ linux-source-2.6.17-2.6.17.1/debian/config/hppa/config @@ -0,0 +1,1349 @@ +# +# Common config options automatically generated by splitconf.pl +# +CONFIG_53C700_LE_ON_BE=y +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +CONFIG_AC3200=m +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +# CONFIG_ADFS_FS is not set +CONFIG_ADM8211=m +# CONFIG_AFFS_FS is not set +# CONFIG_AFS_FS is not set +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIRO_CS=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_AMD8111_ETH=m +# CONFIG_APPLICOM is not set +CONFIG_APRICOT=m +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_ARCNET is not set +# CONFIG_ARPD is not set +# CONFIG_ASFS_FS is not set +CONFIG_AT1700=m +# CONFIG_ATALK is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_ATM is not set +# CONFIG_ATMEL is not set +CONFIG_AUDIT=y +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_B44=m +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +CONFIG_BCM43XX_PIO=y +# CONFIG_BCM43XX_PIO_MODE is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +# CONFIG_BLK_CPQ_CISS_DA is not set +# CONFIG_BLK_CPQ_DA is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_BLK_DEV_AEC62XX is not set +# CONFIG_BLK_DEV_ALI15X3 is not set +# CONFIG_BLK_DEV_AMD74XX is not set +CONFIG_BLK_DEV_CLOOP=m +# CONFIG_BLK_DEV_CMD64X is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +# CONFIG_BLK_DEV_CS5520 is not set +# CONFIG_BLK_DEV_CS5530 is not set +# CONFIG_BLK_DEV_CY82C693 is not set +# CONFIG_BLK_DEV_DAC960 is not set +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_BLK_DEV_GENERIC=m +CONFIG_BLK_DEV_GNBD=m +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_HPT34X is not set +# CONFIG_BLK_DEV_HPT366 is not set +CONFIG_BLK_DEV_IDE=y +CONFIG_BLK_DEV_IDECD=m +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDEDISK=m +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +# CONFIG_BLK_DEV_IDEFLOPPY is not set +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_BLK_DEV_IDESCSI=m +# CONFIG_BLK_DEV_IDETAPE is not set +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_BLK_DEV_IT821X is not set +CONFIG_BLK_DEV_JMICRON=m +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_MD=m +# CONFIG_BLK_DEV_NBD is not set +CONFIG_BLK_DEV_NS87415=m +# CONFIG_BLK_DEV_OFFBOARD is not set +# CONFIG_BLK_DEV_OPTI621 is not set +# CONFIG_BLK_DEV_PDC202XX_NEW is not set +# CONFIG_BLK_DEV_PDC202XX_OLD is not set +# CONFIG_BLK_DEV_PIIX is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +# CONFIG_BLK_DEV_SC1200 is not set +CONFIG_BLK_DEV_SD=m +# CONFIG_BLK_DEV_SIIMAGE is not set +# CONFIG_BLK_DEV_SLC90E66 is not set +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +# CONFIG_BLK_DEV_SVWKS is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_TRIFLEX is not set +# CONFIG_BLK_DEV_TRM290 is not set +# CONFIG_BLK_DEV_UB is not set +# CONFIG_BLK_DEV_UMEM is not set +# CONFIG_BLK_DEV_VIA82CXXX is not set +CONFIG_BNX2=m +# CONFIG_BONDING is not set +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +# CONFIG_BT is not set +CONFIG_BUG=y +CONFIG_CARDBUS=y +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_CASSINI=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +# CONFIG_CD_NO_IDESCSI is not set +CONFIG_CHASSIS_LCD_LED=y +CONFIG_CHELSIO_T1=m +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=m +CONFIG_CIFS=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CLS_U32_MARK=y +CONFIG_CLS_U32_PERF=y +# CONFIG_CODA_FS is not set +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=m +CONFIG_CPUSETS=y +CONFIG_CRAMFS=y +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_WP512=m +CONFIG_CS89x0=m +CONFIG_D80211=m +CONFIG_DAVICOM_PHY=m +CONFIG_DAZUKO=m +# CONFIG_DE2104X is not set +# CONFIG_DE4X5 is not set +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_RWLOCK is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DECNET is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEPCA=m +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_DGRS=m +CONFIG_DL2K=m +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +# CONFIG_DM9102 is not set +CONFIG_DM_CRYPT=m +CONFIG_DM_MIRROR=m +# CONFIG_DM_MULTIPATH is not set +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_ZERO=m +CONFIG_DNOTIFY=y +# CONFIG_DRM is not set +# CONFIG_DTLK is not set +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=160 +CONFIG_DUMMY_CONSOLE_ROWS=64 +# CONFIG_DVB is not set +CONFIG_E100=m +CONFIG_E1000=m +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +# CONFIG_E1000_NAPI is not set +CONFIG_E2100=m +CONFIG_ECC=m +# CONFIG_ECONET is not set +CONFIG_EEPRO100=m +CONFIG_EEXPRESS=m +CONFIG_EEXPRESS_PRO=m +# CONFIG_EFS_FS is not set +CONFIG_EISA=y +CONFIG_EISA_NAMES=y +CONFIG_EL1=m +CONFIG_EL16=m +CONFIG_EL2=m +CONFIG_EL3=m +CONFIG_ELF_CORE=y +# CONFIG_EMBEDDED is not set +CONFIG_EPIC100=m +CONFIG_EPOLL=y +# CONFIG_EQUALIZER is not set +CONFIG_ES3210=m +CONFIG_ETH16I=m +CONFIG_EWRK3=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=m +# CONFIG_EXT2_FS_XATTR is not set +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +CONFIG_FB=y +# CONFIG_FB_3DFX is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_ATY128 is not set +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_CYBER2000 is not set +CONFIG_FB_FIRMWARE_EDID=y +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_MACMODES is not set +# CONFIG_FB_MATROX is not set +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_PM2 is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +CONFIG_FB_STI=y +CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_VIRTUAL is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FDDI is not set +CONFIG_FEALNX=m +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FORCEDETH=m +CONFIG_FORCED_INLINING=y +CONFIG_FRAMEBUFFER_CONSOLE=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_FUSE_FS=m +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GACT_PROB=y +# CONFIG_GAMEPORT is not set +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GEN_RTC=y +CONFIG_GEN_RTC_X=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS_FS=m +CONFIG_GSC=y +CONFIG_GSC_DINO=y +CONFIG_GSC_LASI=y +CONFIG_GSC_WAX=y +CONFIG_HAMACHI=m +# CONFIG_HAMRADIO is not set +CONFIG_HAPPYMEAL=m +CONFIG_HERMES=m +# CONFIG_HFSPLUS_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HID_FF is not set +CONFIG_HIL_MLC=m +# CONFIG_HIPPI is not set +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOTPLUG=y +CONFIG_HOTPLUG_CPU=y +# CONFIG_HOTPLUG_PCI is not set +CONFIG_HP100=m +# CONFIG_HPFS_FS is not set +CONFIG_HPLAN=m +CONFIG_HPLAN_PLUS=m +CONFIG_HPPB=y +CONFIG_HP_SDC=m +CONFIG_HP_SDC_RTC=m +# CONFIG_HUGETLB_PAGE is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +# CONFIG_HWMON_VID is not set +CONFIG_HW_CONSOLE=y +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +# CONFIG_I2C is not set +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I82092=m +CONFIG_I82365=m +CONFIG_IDE=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_IDEDMA_PCI_AUTO=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDE_ARM is not set +# CONFIG_IDE_CHIPSETS is not set +CONFIG_IDE_GENERIC=m +# CONFIG_IDE_TASK_IOCTL is not set +# CONFIG_IEEE1394 is not set +CONFIG_IEEE80211=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_IFB=m +CONFIG_IKCONFIG=y +# CONFIG_IKCONFIG_PROC is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +# CONFIG_INFINIBAND is not set +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INOTIFY=y +CONFIG_INPUT=y +# CONFIG_INPUT_EVBUG is not set +CONFIG_INPUT_EVDEV=m +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_JOYSTICK is not set +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_TSDEV is not set +# CONFIG_INPUT_UINPUT is not set +CONFIG_IOMMU_CCIO=y +CONFIG_IOMMU_SBA=y +CONFIG_IOSAPIC=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +# CONFIG_IPMI_HANDLER is not set +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW3945=m +# CONFIG_IPW3945_DEBUG is not set +CONFIG_IPW3945_MONITOR=y +CONFIG_IPW3945_PROMISCUOUS=y +# CONFIG_IPX is not set +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_DCCP=m +CONFIG_IP_DCCP_ACKVEC=y +CONFIG_IP_DCCP_CCID2=m +CONFIG_IP_DCCP_CCID3=m +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=m +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_MROUTE is not set +CONFIG_IP_MULTICAST=y +CONFIG_IP_NF_AMANDA=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CONNTRACK_MARK=y +CONFIG_IP_NF_CONNTRACK_NETLINK=m +CONFIG_IP_NF_CT_ACCT=y +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_IRC=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_H323=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_NAT_PPTP=m +CONFIG_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NETBIOS_NS=m +CONFIG_IP_NF_PPTP=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_IP_NF_TARGET_TCPMSS=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TFTP=m +CONFIG_IP_PNP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_DHCP is not set +# CONFIG_IP_PNP_RARP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_IP_VS is not set +# CONFIG_IRDA is not set +CONFIG_ISA=y +CONFIG_ISCSI_TCP=m +# CONFIG_ISDN is not set +CONFIG_ISO9660_FS=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +# CONFIG_JFS_POSIX_ACL is not set +# CONFIG_JFS_SECURITY is not set +# CONFIG_JFS_STATISTICS is not set +CONFIG_JOLIET=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_ATKBD_HP_KEYCODES is not set +CONFIG_KEYBOARD_HIL=m +CONFIG_KEYBOARD_HIL_OLD=m +# CONFIG_KEYBOARD_LKKBD is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYS is not set +CONFIG_KMOD=y +# CONFIG_LAPB is not set +CONFIG_LASI_82596=m +CONFIG_LEDS_CLASS=m +# CONFIG_LEDS_TRIGGERS is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LIBCRC32C=m +CONFIG_LLC=m +# CONFIG_LLC2 is not set +CONFIG_LNE390=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_LOCK_KERNEL=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LP486E=m +# CONFIG_LP_CONSOLE is not set +CONFIG_LXT_PHY=m +CONFIG_MAGIC_SYSRQ=y +CONFIG_MARVELL_PHY=m +CONFIG_MD=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +# CONFIG_MD_RAID5_RESHAPE is not set +CONFIG_MD_RAID6=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_SAS=m +CONFIG_MII=m +# CONFIG_MINIX_FS is not set +# CONFIG_MMC is not set +CONFIG_MMU=y +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_HIL=m +# CONFIG_MOUSE_INPORT is not set +# CONFIG_MOUSE_LOGIBM is not set +# CONFIG_MOUSE_PC110PAD is not set +CONFIG_MOUSE_PS2=m +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_VSXXXAA is not set +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +# CONFIG_MTD is not set +CONFIG_MYRI10GE=m +CONFIG_NATSEMI=m +# CONFIG_NCP_FS is not set +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_NE3210=m +CONFIG_NET=y +CONFIG_NETCONSOLE=m +# CONFIG_NETDEBUG is not set +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NET_ACT_GACT=m +CONFIG_NET_ACT_IPT=m +CONFIG_NET_ACT_MIRRED=m +CONFIG_NET_ACT_PEDIT=m +CONFIG_NET_ACT_POLICE=m +CONFIG_NET_ACT_SIMP=m +CONFIG_NET_ACX=m +CONFIG_NET_ACX_PCI=y +CONFIG_NET_ACX_USB=y +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FW=m +CONFIG_NET_CLS_IND=y +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +# CONFIG_NET_DIVERT is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ESTIMATOR=y +CONFIG_NET_ETHERNET=y +# CONFIG_NET_FC is not set +CONFIG_NET_IPG=m +CONFIG_NET_IPGRE=m +# CONFIG_NET_IPGRE_BROADCAST is not set +CONFIG_NET_IPIP=m +CONFIG_NET_ISA=y +CONFIG_NET_KEY=m +CONFIG_NET_PCI=y +CONFIG_NET_PCMCIA=y +# CONFIG_NET_PKTGEN is not set +# CONFIG_NET_POCKET is not set +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RADIO=y +CONFIG_NET_RTL8187=m +CONFIG_NET_RTL818X=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBQ=m +# CONFIG_NET_SCH_CLK_CPU is not set +# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set +CONFIG_NET_SCH_CLK_JIFFIES=y +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_VENDOR_RACAL=y +CONFIG_NET_VENDOR_SMC=y +CONFIG_NET_WIRELESS=y +CONFIG_NET_WIRELESS_RTNETLINK=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_TCP=y +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFS_FS=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NI52 is not set +CONFIG_NLS=y +# CONFIG_NLS_ASCII is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_CODEPAGE_437=m +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_ISO8859_1=m +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +CONFIG_NLS_UTF8=m +CONFIG_NORTEL_HERMES=m +CONFIG_NR_CPUS=32 +CONFIG_NS83820=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_OCFS2_FS=m +CONFIG_OPROFILE=m +# CONFIG_PA7100LC is not set +# CONFIG_PA7200 is not set +# CONFIG_PA7300LC is not set +CONFIG_PACKET=y +CONFIG_PACKET_MMAP=y +# CONFIG_PARIDE is not set +CONFIG_PARISC=y +# CONFIG_PARISC_PAGE_SIZE_16KB is not set +CONFIG_PARISC_PAGE_SIZE_4KB=y +# CONFIG_PARISC_PAGE_SIZE_64KB is not set +CONFIG_PARPORT=m +# CONFIG_PARPORT_1284 is not set +CONFIG_PARPORT_GSC=y +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +# CONFIG_PARPORT_PC_FIFO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +# CONFIG_PARPORT_SERIAL is not set +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_PATA_MARVELL=m +CONFIG_PCCARD=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCI=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_HERMES is not set +CONFIG_PCI_LBA=y +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IOCTL=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NETWAVE=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PD6729=m +CONFIG_PDC_CHASSIS=y +CONFIG_PDC_CHASSIS_WARN=y +CONFIG_PDC_CONSOLE=y +CONFIG_PDC_STABLE=y +# CONFIG_PHONE is not set +CONFIG_PHYLIB=m +CONFIG_PLIP=m +# CONFIG_PLX_HERMES is not set +# CONFIG_PNP is not set +CONFIG_POSIX_MQUEUE=y +# CONFIG_PPDEV is not set +CONFIG_PPP=m +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +# CONFIG_PREEMPT is not set +CONFIG_PREEMPT_BKL=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +CONFIG_PRISM2=y +CONFIG_PRISM2_PCI=m +CONFIG_PRISM2_USB=m +CONFIG_PRISM54=m +CONFIG_PRISM54_SOFTMAC=m +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROFILING=y +# CONFIG_QNX4FS_FS is not set +CONFIG_QSEMI_PHY=m +# CONFIG_QUOTA is not set +CONFIG_QUOTACTL=y +CONFIG_R1000=m +# CONFIG_R3964 is not set +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_RAID_ATTRS=m +CONFIG_RAMFS=y +# CONFIG_RAW_DRIVER is not set +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +# CONFIG_REISERFS_FS_XATTR is not set +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_RFKILL=m +# CONFIG_ROMFS_FS is not set +CONFIG_ROOT_NFS=y +CONFIG_RPCSEC_GSS_KRB5=y +CONFIG_RPCSEC_GSS_SPKM3=m +# CONFIG_RT2400PCI is not set +CONFIG_RT2400_LEGACY=m +# CONFIG_RT2500PCI is not set +# CONFIG_RT2500USB is not set +CONFIG_RT2500_LEGACY=m +CONFIG_RT2570_LEGACY=m +CONFIG_RT61PCI=m +# CONFIG_RT61PCI_DEBUG is not set +CONFIG_RT73USB=m +# CONFIG_RT73USB_DEBUG is not set +CONFIG_RTC_CLASS=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_LIB=m +CONFIG_RT_EXP=y +CONFIG_RT_LEGACY=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_SAS_CLASS=m +# CONFIG_SAS_DEBUG is not set +# CONFIG_SCHEDSTATS is not set +CONFIG_SCSI=y +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AHA1740 is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC7XXX_OLD is not set +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_DC390T is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_DTC3280 is not set +CONFIG_SCSI_FC_ATTRS=m +# CONFIG_SCSI_FUTURE_DOMAIN is not set +# CONFIG_SCSI_GENERIC_NCR5380 is not set +# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set +# CONFIG_SCSI_IMM is not set +# CONFIG_SCSI_IN2000 is not set +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_INITIO=m +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_IPS is not set +CONFIG_SCSI_ISCSI_ATTRS=m +CONFIG_SCSI_LASI700=m +# CONFIG_SCSI_LOGGING is not set +CONFIG_SCSI_LPFC=m +# CONFIG_SCSI_MULTI_LUN is not set +# CONFIG_SCSI_NCR53C406A is not set +CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8 +CONFIG_SCSI_NCR53C8XX_MAX_TAGS=32 +# CONFIG_SCSI_NCR53C8XX_PROFILE is not set +CONFIG_SCSI_NCR53C8XX_SYNC=20 +# CONFIG_SCSI_PAS16 is not set +# CONFIG_SCSI_PPA is not set +CONFIG_SCSI_PROC_FS=y +# CONFIG_SCSI_PSI240I is not set +# CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set +CONFIG_SCSI_QLA_FC=m +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLOGIC_FAS is not set +CONFIG_SCSI_SAS_ATTRS=m +# CONFIG_SCSI_SATA is not set +# CONFIG_SCSI_SIM710 is not set +CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SCSI_SYM53C416 is not set +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCSI_T128 is not set +CONFIG_SCSI_ZALON=m +CONFIG_SECURITY=y +CONFIG_SECURITY_CAPABILITIES=y +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_REALTIME=m +# CONFIG_SECURITY_ROOTPLUG is not set +CONFIG_SECURITY_SECLVL=m +# CONFIG_SECURITY_SELINUX is not set +CONFIG_SEEQ8005=m +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SENSORS_F71805F=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_FOURPORT=m +CONFIG_SERIAL_8250_GSC=y +CONFIG_SERIAL_8250_HUB6=m +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=y +# CONFIG_SERIAL_8250_RSA is not set +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_MUX is not set +# CONFIG_SERIAL_NONSTANDARD is not set +CONFIG_SERIO=y +CONFIG_SERIO_GSCPS2=y +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_PARKBD is not set +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_RAW=m +# CONFIG_SERIO_SERPORT is not set +CONFIG_SHAPER=m +CONFIG_SHMEM=y +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SK98LIN=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SLAB=y +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +# CONFIG_SLIP_MODE_SLIP6 is not set +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_SMC9194=m +CONFIG_SMP=y +CONFIG_SND=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_AC97_CODEC=m +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ALI5451 is not set +CONFIG_SND_ALS300=m +# CONFIG_SND_ATIIXP is not set +CONFIG_SND_ATIIXP_MODEM=m +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AZT3328 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +# CONFIG_SND_EMU10K1 is not set +CONFIG_SND_EMU10K1X=m +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_ES1938 is not set +# CONFIG_SND_ES1968 is not set +# CONFIG_SND_FM801 is not set +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_HARMONY=m +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDSP is not set +CONFIG_SND_HDSPM=m +CONFIG_SND_HWDEP=m +# CONFIG_SND_ICE1712 is not set +# CONFIG_SND_ICE1724 is not set +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIO=m +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +# CONFIG_SND_MAESTRO3 is not set +CONFIG_SND_MIA=m +# CONFIG_SND_MIXART is not set +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MONA=m +# CONFIG_SND_MPU401 is not set +CONFIG_SND_MPU401_UART=m +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_NM256 is not set +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_PCM=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RIPTIDE=m +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQUENCER_OSS=y +# CONFIG_SND_SEQ_DUMMY is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_SONICVIBES is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TIMER=m +# CONFIG_SND_TRIDENT is not set +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_VX222 is not set +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +# CONFIG_SND_YMFPCI is not set +CONFIG_SOUND=m +CONFIG_SOUND_BT878=m +CONFIG_SOUND_EMU10K1=m +CONFIG_SOUND_ES1371=m +# CONFIG_SOUND_FUSION is not set +# CONFIG_SOUND_ICH is not set +# CONFIG_SOUND_MSNDCLAS is not set +# CONFIG_SOUND_MSNDPIN is not set +CONFIG_SOUND_PRIME=m +# CONFIG_SOUND_TRIDENT is not set +CONFIG_SOUND_VIA82CXXX=m +# CONFIG_SPARSEMEM_MANUAL is not set +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPEAKUP is not set +CONFIG_SPI=y +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set +CONFIG_STACK_GROWSUP=y +CONFIG_STANDALONE=y +CONFIG_STI_CONSOLE=y +CONFIG_STOP_MACHINE=y +# CONFIG_STRIP is not set +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNGEM=m +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUPERIO=y +CONFIG_SWAP=y +CONFIG_SYNCLINK_CS=m +# CONFIG_SYN_COOKIES is not set +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSVIPC=y +# CONFIG_SYSV_FS is not set +# CONFIG_TCG_TPM is not set +CONFIG_TCIC=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +CONFIG_TELCLOCK=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TIGON3=m +CONFIG_TIME_LOW_RES=y +# CONFIG_TINY_SHMEM is not set +# CONFIG_TIPAR is not set +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +# CONFIG_TMD_HERMES is not set +CONFIG_TMPFS=y +# CONFIG_TR is not set +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TUN=m +CONFIG_TYPHOON=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +# CONFIG_UFS_FS is not set +CONFIG_ULI526X=m +CONFIG_ULTRA=m +CONFIG_ULTRA32=m +CONFIG_UNION_FS=m +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_USB=m +CONFIG_USB_ACECAD=m +# CONFIG_USB_ACM is not set +# CONFIG_USB_AIPTEK is not set +# CONFIG_USB_APPLETOUCH is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +# CONFIG_USB_ATI_REMOTE is not set +CONFIG_USB_ATI_REMOTE2=m +# CONFIG_USB_AUERSWALD is not set +# CONFIG_USB_BANDWIDTH is not set +# CONFIG_USB_CATC is not set +CONFIG_USB_CPADDEV=y +# CONFIG_USB_CYTHERM is not set +CONFIG_USB_DABUSB=m +CONFIG_USB_DEBUG=y +# CONFIG_USB_DEVICEFS is not set +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EAGLE=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +# CONFIG_USB_GADGET is not set +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HIDINPUT=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_KAWETH is not set +CONFIG_USB_KBD=m +# CONFIG_USB_KBTAB is not set +# CONFIG_USB_KEYSPAN_REMOTE is not set +# CONFIG_USB_LCD is not set +CONFIG_USB_LD=m +# CONFIG_USB_LED is not set +# CONFIG_USB_LEGOTOWER is not set +CONFIG_USB_LIBUSUAL=y +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +CONFIG_USB_MON=y +CONFIG_USB_MOUSE=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_PEGASUS is not set +CONFIG_USB_PHIDGETKIT=m +# CONFIG_USB_PHIDGETSERVO is not set +# CONFIG_USB_POWERMATE is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_RIO500 is not set +CONFIG_USB_RT2570=m +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_SERIAL is not set +# CONFIG_USB_SISUSBVGA is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=y +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_DPCM is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_SYNAPTICS=m +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_USS720 is not set +# CONFIG_USB_WACOM is not set +# CONFIG_USB_XPAD is not set +CONFIG_USB_YEALINK=m +# CONFIG_USB_ZD1201 is not set +CONFIG_VERSION_SIGNATURE="Ubuntu Unofficial" +CONFIG_VFAT_FS=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_VIDEO_DEV is not set +CONFIG_VIDEO_V4L2=y +CONFIG_VLAN_8021Q=m +CONFIG_VORTEX=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXFS_FS=m +# CONFIG_W1 is not set +# CONFIG_WAN is not set +# CONFIG_WAN_ROUTER is not set +# CONFIG_WATCHDOG is not set +# CONFIG_WAVELAN is not set +CONFIG_WD80x3=m +# CONFIG_WINBOND_840 is not set +CONFIG_WIRELESS_EXT=y +CONFIG_WLAN_NG=y +# CONFIG_X25 is not set +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +CONFIG_XFS_EXPORT=y +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +# CONFIG_XFS_RT is not set +# CONFIG_XFS_SECURITY is not set +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/hppa/vars.hppa32 +++ linux-source-2.6.17-2.6.17.1/debian/config/hppa/vars.hppa32 @@ -0,0 +1,5 @@ +supported="32-bit HP PA-RISC SMP" +target="Geared toward desktop or server systems." +desc="32-bit HP PA-RISC SMP" +bootloader="palo" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/hppa/vars.hppa64 +++ linux-source-2.6.17-2.6.17.1/debian/config/hppa/vars.hppa64 @@ -0,0 +1,5 @@ +supported="64-bit HP PA-RISC SMP" +target="Geared toward desktop or server systems." +desc="64-bit HP PA-RISC SMP" +bootloader="palo" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/amd64/config.generic +++ linux-source-2.6.17-2.6.17.1/debian/config/amd64/config.generic @@ -0,0 +1,16 @@ +# +# Config options for config.generic automatically generated by splitconf.pl +# +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_GFS2_FS is not set +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +CONFIG_NR_CPUS=8 +# CONFIG_OCFS2_FS is not set +CONFIG_PREEMPT_BKL=y +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_VOLUNTARY=y +# CONFIG_SCHED_SMT is not set --- linux-source-2.6.17-2.6.17.1.orig/debian/config/amd64/config +++ linux-source-2.6.17-2.6.17.1/debian/config/amd64/config @@ -0,0 +1,2473 @@ +# +# Common config options automatically generated by splitconf.pl +# +CONFIG_3C359=m +CONFIG_60XX_WDT=m +CONFIG_64BIT=y +CONFIG_6PACK=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +CONFIG_ABYSS=m +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACORN_PARTITION=y +# CONFIG_ACORN_PARTITION_ADFS is not set +# CONFIG_ACORN_PARTITION_CUMANA is not set +# CONFIG_ACORN_PARTITION_EESOX is not set +CONFIG_ACORN_PARTITION_ICS=y +# CONFIG_ACORN_PARTITION_POWERTEC is not set +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACPI=y +CONFIG_ACPI_AC=m +CONFIG_ACPI_ASUS=m +CONFIG_ACPI_BATTERY=m +CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_CONTAINER=m +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DEV=m +CONFIG_ACPI_DOCK=m +CONFIG_ACPI_EC=y +CONFIG_ACPI_FAN=m +CONFIG_ACPI_HOTKEY=m +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_IBM=m +CONFIG_ACPI_INITRD=y +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCC=m +CONFIG_ACPI_POWER=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_SBS=m +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_SLEEP_PROC_FS=y +CONFIG_ACPI_SLEEP_PROC_SLEEP=y +CONFIG_ACPI_SONY=m +CONFIG_ACPI_SYSTEM=y +CONFIG_ACPI_TC1100=m +CONFIG_ACPI_THERMAL=m +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADM8211=m +CONFIG_ADV717X=m +CONFIG_ADV717X_PIXELPORT16BIT=y +CONFIG_ADV717X_PIXELPORTPAL=y +CONFIG_ADV717X_SWAP=y +CONFIG_ADVANTECH_WDT=m +# CONFIG_AEDSP16_MPU401 is not set +# CONFIG_AEDSP16_MSS is not set +# CONFIG_AEDSP16_SBPRO is not set +CONFIG_AFFS_FS=m +CONFIG_AFS_FS=m +CONFIG_AGP=y +CONFIG_AGP_AMD64=y +CONFIG_AGP_INTEL=m +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +CONFIG_AIC79XX_DEBUG_ENABLE=y +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_ENABLE_RD_STRM=y +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +CONFIG_AIC7XXX_DEBUG_ENABLE=y +CONFIG_AIC7XXX_DEBUG_MASK=0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT=y +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIRO=m +CONFIG_AIRO_CS=m +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_ALI_FIR=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_AMD8111_ETH=m +CONFIG_AMIGA_PARTITION=y +CONFIG_APPLICOM=m +CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_PCI=m +CONFIG_ARCNET_COM90xx=m +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +CONFIG_ARCNET_RIM_I=m +# CONFIG_ARPD is not set +CONFIG_ASFS_DEFAULT_CODEPAGE="" +CONFIG_ASFS_FS=m +# CONFIG_ASFS_RW is not set +CONFIG_ASK_IP_FIB_HASH=y +CONFIG_ATALK=m +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_OVER_ETH=m +CONFIG_ATM=y +CONFIG_ATMEL=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_ATM_CLIP=y +# CONFIG_ATM_CLIP_NO_ICMP is not set +# CONFIG_ATM_DUMMY is not set +CONFIG_ATM_ENI=m +# CONFIG_ATM_ENI_DEBUG is not set +# CONFIG_ATM_ENI_TUNE_BURST is not set +CONFIG_ATM_FIRESTREAM=m +CONFIG_ATM_FORE200E=m +CONFIG_ATM_FORE200E_DEBUG=0 +CONFIG_ATM_FORE200E_MAYBE=m +CONFIG_ATM_FORE200E_PCA=y +CONFIG_ATM_FORE200E_PCA_DEFAULT_FW=y +CONFIG_ATM_FORE200E_TX_RETRY=16 +# CONFIG_ATM_FORE200E_USE_TASKLET is not set +CONFIG_ATM_HE=m +CONFIG_ATM_HE_USE_SUNI=y +CONFIG_ATM_HORIZON=m +# CONFIG_ATM_HORIZON_DEBUG is not set +CONFIG_ATM_IDT77252=m +# CONFIG_ATM_IDT77252_DEBUG is not set +# CONFIG_ATM_IDT77252_RCV_ALL is not set +CONFIG_ATM_IDT77252_USE_SUNI=y +CONFIG_ATM_LANAI=m +CONFIG_ATM_LANE=m +CONFIG_ATM_MPOA=m +CONFIG_ATM_TCP=m +CONFIG_ATM_ZATM=m +# CONFIG_ATM_ZATM_DEBUG is not set +CONFIG_ATP=m +CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_AVERATEC_5100P=m +CONFIG_AX25=m +# CONFIG_AX25_DAMA_SLAVE is not set +CONFIG_B44=m +CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +CONFIG_BCM43XX_PIO=y +# CONFIG_BCM43XX_PIO_MODE is not set +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_AEC62XX=m +CONFIG_BLK_DEV_ALI15X3=m +CONFIG_BLK_DEV_AMD74XX=m +CONFIG_BLK_DEV_ATIIXP=m +CONFIG_BLK_DEV_CLOOP=m +CONFIG_BLK_DEV_CMD640=y +# CONFIG_BLK_DEV_CMD640_ENHANCED is not set +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_CS5520=m +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_CY82C693=m +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_BLK_DEV_FD=m +CONFIG_BLK_DEV_GENERIC=m +CONFIG_BLK_DEV_GNBD=m +# CONFIG_BLK_DEV_HD is not set +# CONFIG_BLK_DEV_HD_IDE is not set +CONFIG_BLK_DEV_HPT34X=m +CONFIG_BLK_DEV_HPT366=m +CONFIG_BLK_DEV_IDE=y +CONFIG_BLK_DEV_IDEACPI=y +CONFIG_BLK_DEV_IDECD=m +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDEDISK=m +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_BLK_DEV_IDEPNP=m +CONFIG_BLK_DEV_IDESCSI=m +CONFIG_BLK_DEV_IDETAPE=m +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_IT821X=m +CONFIG_BLK_DEV_JMICRON=m +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NS87415=m +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_OPTI621=m +CONFIG_BLK_DEV_PDC202XX_NEW=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +CONFIG_BLK_DEV_PIIX=m +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_RZ1000=m +CONFIG_BLK_DEV_SC1200=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SIIMAGE=m +CONFIG_BLK_DEV_SIS5513=m +CONFIG_BLK_DEV_SLC90E66=m +CONFIG_BLK_DEV_SR=m +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_BLK_DEV_SVWKS=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BLK_DEV_TRIFLEX=m +CONFIG_BLK_DEV_TRM290=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BNX2=m +CONFIG_BONDING=m +CONFIG_BPQETHER=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BT865=m +CONFIG_BT_ALSA=m +CONFIG_BT_BNEP=m +CONFIG_BT_BNEP_MC_FILTER=y +CONFIG_BT_BNEP_PROTO_FILTER=y +CONFIG_BT_CMTP=m +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +CONFIG_BT_HCIUART_BCSP=y +CONFIG_BT_HCIUART_H4=y +CONFIG_BT_HCIUSB=m +CONFIG_BT_HCIUSB_SCO=y +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_L2CAP=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_SCO=m +CONFIG_BUG=y +CONFIG_CAPI_AVM=y +CONFIG_CAPI_EICON=y +CONFIG_CARDBUS=y +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_CASSINI=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CHELSIO_T1=m +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=m +CONFIG_CIFS=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CODA_FS=m +# CONFIG_CODA_FS_OLD_API is not set +CONFIG_COMPAT=y +CONFIG_COMPUTONE=m +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=m +CONFIG_CPU5_WDT=m +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=m +CONFIG_CRAMFS=y +# CONFIG_CRASH_DUMP is not set +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_AES_X86_64=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_WP512=m +CONFIG_CYCLADES=m +CONFIG_CYCLADES_SYNC=m +CONFIG_CYCLOMX_X25=y +# CONFIG_CYZ_INTR is not set +CONFIG_D80211=m +CONFIG_DAVICOM_PHY=m +CONFIG_DAZUKO=m +CONFIG_DCDBAS=m +CONFIG_DE2104X=m +CONFIG_DE4X5=m +CONFIG_DE600=m +CONFIG_DE620=m +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_RODATA is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_VM is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +# CONFIG_DEFAULT_AS is not set +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFXX=m +CONFIG_DELL_RBU=m +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_DEV_APPLETALK=y +CONFIG_DE_AOC=y +CONFIG_DGRS=m +CONFIG_DIGIEPCA=m +CONFIG_DISCONTIGMEM=y +CONFIG_DISCONTIGMEM_MANUAL=y +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_COUNT=24 +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_DM9102=m +CONFIG_DMI=y +CONFIG_DM_CRYPT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_ZERO=m +CONFIG_DNOTIFY=y +CONFIG_DONGLE=y +CONFIG_DRM=m +CONFIG_DRM_I810=m +CONFIG_DRM_I830=m +CONFIG_DRM_I915=m +CONFIG_DRM_MGA=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_VIA=m +CONFIG_DSCC4=m +CONFIG_DSCC4_PCISYNC=y +CONFIG_DSCC4_PCI_RST=y +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DVB=y +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_BT8XX=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_CINERGYT2=m +CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y +CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 +CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 +CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 +CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 +CONFIG_DVB_CINERGYT2_TUNING=y +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10353=m +CONFIG_DXR3=m +CONFIG_E100=m +CONFIG_E1000=m +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +# CONFIG_E1000_NAPI is not set +CONFIG_EARLY_PRINTK=y +CONFIG_ECC=m +CONFIG_ECONET=m +CONFIG_ECONET_AUNUDP=y +CONFIG_ECONET_NATIVE=y +# CONFIG_EDAC is not set +# CONFIG_EDD is not set +CONFIG_EEPRO100=m +CONFIG_EFI_PARTITION=y +CONFIG_EFS_FS=m +CONFIG_ELF_CORE=y +CONFIG_EM8300=m +CONFIG_EM8300_DICOMCTRL=y +CONFIG_EM8300_DICOMFIX=y +CONFIG_EM8300_DICOMPAL=y +CONFIG_EM8300_LOOPBACK=y +CONFIG_EM8300_UCODETIMEOUT=y +# CONFIG_EMBEDDED is not set +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ESI_DONGLE=m +CONFIG_EUROTECH_WDT=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +# CONFIG_FB_ARC is not set +# CONFIG_FB_ASILIANT is not set +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_CFB_COPYAREA=m +CONFIG_FB_CFB_FILLRECT=m +CONFIG_FB_CFB_IMAGEBLIT=m +CONFIG_FB_CIRRUS=m +CONFIG_FB_CYBER2000=m +CONFIG_FB_FIRMWARE_EDID=y +CONFIG_FB_GEODE=y +CONFIG_FB_GEODE_GX=m +CONFIG_FB_GEODE_GX1=m +CONFIG_FB_HGA=m +# CONFIG_FB_HGA_ACCEL is not set +# CONFIG_FB_IMAC is not set +# CONFIG_FB_IMSTT is not set +CONFIG_FB_KYRO=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_RADEON=m +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_VESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FORCEDETH=m +# CONFIG_FORCED_INLINING is not set +CONFIG_FRAMEBUFFER_CONSOLE=m +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FRAME_POINTER is not set +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FTL=m +CONFIG_FUSE_FS=m +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_MAX_SGE=128 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GART_IOMMU=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CPU=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GIGASET_BASE=m +# CONFIG_GIGASET_DEBUG is not set +CONFIG_GIGASET_M105=m +# CONFIG_GIGASET_UNDOCREQ is not set +CONFIG_GIRBIL_DONGLE=m +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=y +CONFIG_HDLC_FR=y +CONFIG_HDLC_PPP=y +CONFIG_HDLC_RAW=y +CONFIG_HDLC_RAW_ETH=y +CONFIG_HDLC_X25=y +CONFIG_HERMES=m +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +# CONFIG_HID_FF is not set +CONFIG_HIPPI=y +CONFIG_HISAX_16_3=y +CONFIG_HISAX_1TR6=y +CONFIG_HISAX_AVM_A1_CS=m +CONFIG_HISAX_AVM_A1_PCMCIA=y +CONFIG_HISAX_BKM_A4T=y +# CONFIG_HISAX_DEBUG is not set +CONFIG_HISAX_DIEHLDIVA=y +CONFIG_HISAX_ELSA=y +CONFIG_HISAX_ELSA_CS=m +CONFIG_HISAX_ENTERNOW_PCI=y +CONFIG_HISAX_EURO=y +CONFIG_HISAX_FRITZPCI=y +CONFIG_HISAX_FRITZ_PCIPNP=m +CONFIG_HISAX_GAZEL=y +CONFIG_HISAX_HDLC=y +CONFIG_HISAX_HFC4S8S=m +CONFIG_HISAX_HFCUSB=m +CONFIG_HISAX_HFC_PCI=y +CONFIG_HISAX_HFC_SX=y +CONFIG_HISAX_MAX_CARDS=8 +CONFIG_HISAX_NETJET=y +CONFIG_HISAX_NETJET_U=y +CONFIG_HISAX_NI1=y +CONFIG_HISAX_NICCY=y +# CONFIG_HISAX_NO_KEYPAD is not set +# CONFIG_HISAX_NO_LLC is not set +# CONFIG_HISAX_NO_SENDCOMPLETE is not set +CONFIG_HISAX_S0BOX=y +CONFIG_HISAX_SCT_QUADRO=y +CONFIG_HISAX_SEDLBAUER=y +CONFIG_HISAX_SEDLBAUER_CS=m +CONFIG_HISAX_ST5481=m +CONFIG_HISAX_TELESPCI=y +CONFIG_HISAX_TELES_CS=m +CONFIG_HISAX_W6692=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOTPLUG=y +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_FAKE=m +CONFIG_HOTPLUG_PCI_PCIE=m +# CONFIG_HOTPLUG_PCI_PCIE_POLL_EVENT_MODE is not set +CONFIG_HOTPLUG_PCI_SHPC=m +# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set +CONFIG_HP100=m +CONFIG_HPET=y +# CONFIG_HPET_EMULATE_RTC is not set +CONFIG_HPET_MMAP=y +# CONFIG_HPET_RTC_IRQ is not set +CONFIG_HPET_TIMER=y +CONFIG_HPFS_FS=m +# CONFIG_HPT34X_AUTODMA is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HW_CONSOLE=y +CONFIG_HW_RANDOM=m +# CONFIG_HZ_1000 is not set +CONFIG_I2C=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_ISA=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_STUB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I6300ESB_WDT=m +CONFIG_I82092=m +CONFIG_I8XX_TCO=m +# CONFIG_IA32_AOUT is not set +CONFIG_IA32_EMULATION=y +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_IBMOL=m +CONFIG_IBM_ASM=m +CONFIG_IDE=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_IDEDMA_PCI_AUTO=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDE_ARM is not set +CONFIG_IDE_GENERIC=m +# CONFIG_IDE_TASK_IOCTL is not set +CONFIG_IEEE1394=m +CONFIG_IEEE1394_CONFIG_ROM_IP1394=y +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_ETH1394=m +# CONFIG_IEEE1394_EXPORT_FULL_API is not set +CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_OUI_DB=y +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE80211=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +# CONFIG_IKCONFIG is not set +CONFIG_INET=y +CONFIG_INET6_AH=m +CONFIG_INET6_ESP=m +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +CONFIG_INET_AH=m +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INOTIFY=y +CONFIG_INPUT=y +# CONFIG_INPUT_ACERHK is not set +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_PCSPKR=m +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_TSDEV=m +CONFIG_INPUT_TSDEV_SCREEN_X=240 +CONFIG_INPUT_TSDEV_SCREEN_Y=320 +CONFIG_INPUT_UINPUT=m +# CONFIG_IOMMU_DEBUG is not set +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_QUEUE=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPATH_CORE=m +CONFIG_IPDDP=m +CONFIG_IPDDP_DECAP=y +CONFIG_IPDDP_ENCAP=y +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPPP_FILTER=y +CONFIG_IPV6=m +CONFIG_IPV6_PRIVACY=y +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_FS_AMILO_M7400=m +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW3945=m +# CONFIG_IPW3945_DEBUG is not set +CONFIG_IPW3945_MONITOR=y +CONFIG_IPW3945_PROMISCUOUS=y +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_DCCP=m +CONFIG_IP_DCCP_ACKVEC=y +CONFIG_IP_DCCP_CCID2=m +CONFIG_IP_DCCP_CCID3=m +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=m +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +CONFIG_IP_MROUTE=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_NF_AMANDA=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CONNTRACK_MARK=y +CONFIG_IP_NF_CONNTRACK_NETLINK=m +CONFIG_IP_NF_CT_ACCT=y +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_IRC=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_H323=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_NAT_PPTP=m +CONFIG_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NETBIOS_NS=m +CONFIG_IP_NF_PPTP=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_IP_NF_TARGET_TCPMSS=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TFTP=m +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +# CONFIG_IP_PNP is not set +CONFIG_IP_ROUTE_FWMARK=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_MULTIPATH_CACHED=y +CONFIG_IP_ROUTE_MULTIPATH_DRR=m +CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m +CONFIG_IP_ROUTE_MULTIPATH_RR=m +CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +CONFIG_IRDA_DEBUG=y +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRTTY_SIR=m +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_TCP=m +CONFIG_ISDN=m +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m +CONFIG_ISDN_CAPI_CAPIFS=m +CONFIG_ISDN_CAPI_CAPIFS_BOOL=y +CONFIG_ISDN_CAPI_MIDDLEWARE=y +CONFIG_ISDN_DIVAS=m +CONFIG_ISDN_DIVAS_BRIPCI=y +CONFIG_ISDN_DIVAS_DIVACAPI=m +CONFIG_ISDN_DIVAS_MAINT=m +CONFIG_ISDN_DIVAS_PRIPCI=y +CONFIG_ISDN_DIVAS_USERIDI=m +CONFIG_ISDN_DIVERSION=m +CONFIG_ISDN_DRV_AVMB1_AVM_CS=m +CONFIG_ISDN_DRV_AVMB1_B1PCI=m +CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y +CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m +CONFIG_ISDN_DRV_AVMB1_C4=m +CONFIG_ISDN_DRV_AVMB1_T1PCI=m +CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y +CONFIG_ISDN_DRV_GIGASET=m +CONFIG_ISDN_DRV_HISAX=m +CONFIG_ISDN_I4L=m +CONFIG_ISDN_MPP=y +CONFIG_ISDN_PPP=y +CONFIG_ISDN_PPP_BSDCOMP=m +CONFIG_ISDN_PPP_VJ=y +CONFIG_ISDN_TTY_FAX=y +CONFIG_ISDN_X25=y +# CONFIG_ISI is not set +CONFIG_ISO9660_FS=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS_FS=m +CONFIG_JFFS_FS_VERBOSE=0 +CONFIG_JFFS_PROC_FS=y +# CONFIG_JFS_DEBUG is not set +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_IFORCE=m +CONFIG_JOYSTICK_IFORCE_232=y +CONFIG_JOYSTICK_IFORCE_USB=y +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_K8_NUMA=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KARMA_PARTITION=y +CONFIG_KEXEC=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KMOD=y +CONFIG_KPROBES=y +CONFIG_LANMEDIA=m +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LBD=y +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y +# CONFIG_LDM_DEBUG is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEDS_CLASS=m +# CONFIG_LEDS_TRIGGERS is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LIBCRC32C=m +CONFIG_LITELINK_DONGLE=m +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_LOCK_KERNEL=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_LP_CONSOLE is not set +# CONFIG_LSF is not set +CONFIG_LXT_PHY=m +CONFIG_MA600_DONGLE=m +CONFIG_MACHZ_WDT=m +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MARVELL_PHY=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MCP2120_DONGLE=m +CONFIG_MD=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +# CONFIG_MD_RAID5_RESHAPE is not set +CONFIG_MD_RAID6=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_SAS=m +CONFIG_MICROCODE=m +CONFIG_MIDI_EMU10K1=y +CONFIG_MIDI_VIA82CXXX=y +CONFIG_MIGRATION=y +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +CONFIG_MISDN_AVM_FRITZ=y +CONFIG_MISDN_DRV=m +CONFIG_MISDN_DSP=y +# CONFIG_MISDN_HFCMULTI is not set +CONFIG_MISDN_HFCPCI=y +CONFIG_MISDN_HFCUSB=y +# CONFIG_MISDN_MEMDEBUG is not set +CONFIG_MISDN_SPEEDFAX=y +CONFIG_MISDN_W6692=y +# CONFIG_MK8 is not set +CONFIG_MKISS=m +CONFIG_MMC=m +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=m +CONFIG_MMC_TIFM=m +CONFIG_MMC_WBSD=m +CONFIG_MMU=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +# CONFIG_MPSC is not set +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +CONFIG_MTD=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CHAR=m +# CONFIG_MTD_CMDLINE_PARTS is not set +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DATAFLASH=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DILNETPC=m +CONFIG_MTD_DILNETPC_BOOTSIZE=0x80000 +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCPROBE_ADDRESS=0 +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_L440GX=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_NANDSIM=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +CONFIG_MTD_NETSC520=m +CONFIG_MTD_NETtel=m +# CONFIG_MTD_OBSOLETE_CHIPS is not set +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_PCI=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_PNC2000=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS=m +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_ROM=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_TS5500=m +CONFIG_MTRR=y +CONFIG_MWAVE=m +CONFIG_MYRI10GE=m +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NDISWRAPPER=m +CONFIG_NE2K_PCI=m +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NET=y +CONFIG_NETCONSOLE=m +# CONFIG_NETDEBUG is not set +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_RX is not set +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETROM=m +CONFIG_NET_ACX=m +CONFIG_NET_ACX_PCI=y +CONFIG_NET_ACX_USB=y +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_ACT is not set +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_POLICE=y +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +# CONFIG_NET_DIVERT is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ESTIMATOR=y +CONFIG_NET_ETHERNET=y +CONFIG_NET_FC=y +CONFIG_NET_IPG=m +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPIP=m +CONFIG_NET_KEY=m +CONFIG_NET_PCI=y +CONFIG_NET_PCMCIA=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POCKET=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RADIO=y +CONFIG_NET_RTL8187=m +CONFIG_NET_RTL818X=m +CONFIG_NET_SB1000=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +# CONFIG_NET_SCH_CLK_CPU is not set +# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set +CONFIG_NET_SCH_CLK_JIFFIES=y +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_WIRELESS=y +CONFIG_NET_WIRELESS_RTNETLINK=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_TCP=y +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="cp437" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_NODES_SHIFT=6 +CONFIG_NORTEL_HERMES=m +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NUMA=y +# CONFIG_NUMA_EMU is not set +CONFIG_NVRAM=m +CONFIG_N_HDLC=m +CONFIG_OBSOLETE_INTERMODULE=m +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OPROFILE=m +CONFIG_OSF_PARTITION=y +CONFIG_OUT_OF_LINE_PFN_TO_PAGE=y +CONFIG_PACKARDBELL_E5=m +CONFIG_PACKET=m +CONFIG_PACKET_MMAP=y +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PARPORT=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_PATA_MARVELL=m +CONFIG_PC300=m +CONFIG_PC300_MLPPP=y +CONFIG_PCCARD=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCIEPORTBUS=y +CONFIG_PCIPCWATCHDOG=m +CONFIG_PCI_ATMEL=m +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DIRECT=y +CONFIG_PCI_HERMES=m +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IOCTL=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NETWAVE=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE_MEM=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PD6729=m +CONFIG_PDC202XX_BURST=y +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=m +CONFIG_PHYSICAL_START=0x200000 +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_DISABLE_CONSOLE=y +CONFIG_PM_LEGACY=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PNP=y +CONFIG_PNPACPI=y +# CONFIG_PNP_DEBUG is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_PPDEV=m +CONFIG_PPP=m +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +# CONFIG_PREEMPT is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +CONFIG_PRISM2=y +CONFIG_PRISM2_PCI=m +CONFIG_PRISM2_PLX=m +CONFIG_PRISM2_USB=m +CONFIG_PRISM54=m +CONFIG_PRISM54_SOFTMAC=m +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROFILING=y +CONFIG_PSS_MIXER=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QNX4FS_FS=m +CONFIG_QSEMI_PHY=m +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_R1000=m +CONFIG_R3964=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMFS=y +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_REORDER=y +CONFIG_RFD_FTL=m +CONFIG_RFKILL=m +# CONFIG_RIO is not set +CONFIG_ROADRUNNER=m +# CONFIG_ROADRUNNER_LARGE_RINGS is not set +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_FS=m +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +# CONFIG_RT2400PCI is not set +CONFIG_RT2400_LEGACY=m +# CONFIG_RT2500PCI is not set +# CONFIG_RT2500USB is not set +CONFIG_RT2500_LEGACY=m +CONFIG_RT2570_LEGACY=m +CONFIG_RT61PCI=m +# CONFIG_RT61PCI_DEBUG is not set +CONFIG_RT73USB=m +# CONFIG_RT73USB_DEBUG is not set +CONFIG_RTC=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_LIB=y +CONFIG_RT_EXP=y +CONFIG_RT_LEGACY=y +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_RXRPC=m +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_SAS_CLASS=m +# CONFIG_SAS_DEBUG is not set +CONFIG_SBC8360_WDT=m +CONFIG_SBC_EPX_C3_WATCHDOG=m +CONFIG_SBNI=m +# CONFIG_SBNI_MULTILINE is not set +CONFIG_SC1200_WDT=m +CONFIG_SC520_WDT=m +CONFIG_SC6600=y +CONFIG_SC6600_CDROM=4 +CONFIG_SC6600_CDROMBASE=0x0 +CONFIG_SC6600_JOY=y +# CONFIG_SCHEDSTATS is not set +CONFIG_SCHED_MC=y +CONFIG_SCSI=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_ATA_GENERIC is not set +CONFIG_SCSI_ATA_PIIX=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +CONFIG_SCSI_DEBUG=m +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_EATA=m +CONFIG_SCSI_EATA_LINKED_COMMANDS=y +CONFIG_SCSI_EATA_MAX_TAGS=16 +CONFIG_SCSI_EATA_TAGGED_QUEUE=y +CONFIG_SCSI_FC_ATTRS=m +CONFIG_SCSI_FUTURE_DOMAIN=m +CONFIG_SCSI_GDTH=m +CONFIG_SCSI_IMM=m +# CONFIG_SCSI_INIA100 is not set +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_OMIT_FLASHPOINT is not set +# CONFIG_SCSI_PATA_ALI is not set +# CONFIG_SCSI_PATA_AMD is not set +# CONFIG_SCSI_PATA_ARTOP is not set +# CONFIG_SCSI_PATA_ATIIXP is not set +# CONFIG_SCSI_PATA_CMD64X is not set +# CONFIG_SCSI_PATA_CS5520 is not set +# CONFIG_SCSI_PATA_CS5530 is not set +# CONFIG_SCSI_PATA_CYPRESS is not set +# CONFIG_SCSI_PATA_EFAR is not set +# CONFIG_SCSI_PATA_HPT366 is not set +# CONFIG_SCSI_PATA_HPT37X is not set +# CONFIG_SCSI_PATA_HPT3X2N is not set +# CONFIG_SCSI_PATA_HPT3X3 is not set +# CONFIG_SCSI_PATA_ISAPNP is not set +# CONFIG_SCSI_PATA_IT8172 is not set +# CONFIG_SCSI_PATA_IT821X is not set +# CONFIG_SCSI_PATA_LEGACY is not set +# CONFIG_SCSI_PATA_MPIIX is not set +# CONFIG_SCSI_PATA_NETCELL is not set +# CONFIG_SCSI_PATA_NS87410 is not set +# CONFIG_SCSI_PATA_OLDPIIX is not set +# CONFIG_SCSI_PATA_OPTI is not set +# CONFIG_SCSI_PATA_OPTIDMA is not set +CONFIG_SCSI_PATA_PCMCIA=m +# CONFIG_SCSI_PATA_PDC_OLD is not set +# CONFIG_SCSI_PATA_PIIX is not set +# CONFIG_SCSI_PATA_QDI is not set +# CONFIG_SCSI_PATA_RADISYS is not set +# CONFIG_SCSI_PATA_RZ1000 is not set +# CONFIG_SCSI_PATA_SC1200 is not set +# CONFIG_SCSI_PATA_SERVERWORKS is not set +# CONFIG_SCSI_PATA_SIL680 is not set +# CONFIG_SCSI_PATA_SIS is not set +# CONFIG_SCSI_PATA_TRIFLEX is not set +# CONFIG_SCSI_PATA_VIA is not set +# CONFIG_SCSI_PATA_WINBOND is not set +CONFIG_SCSI_PDC_ADMA=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +# CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SATA=m +CONFIG_SCSI_SATA_ACPI=y +CONFIG_SCSI_SATA_AHCI=m +CONFIG_SCSI_SATA_INTEL_COMBINED=y +CONFIG_SCSI_SATA_MV=m +CONFIG_SCSI_SATA_NV=m +CONFIG_SCSI_SATA_PROMISE=m +CONFIG_SCSI_SATA_QSTOR=m +CONFIG_SCSI_SATA_SIL=m +CONFIG_SCSI_SATA_SIL24=m +CONFIG_SCSI_SATA_SIS=m +CONFIG_SCSI_SATA_SVW=m +CONFIG_SCSI_SATA_SX4=m +CONFIG_SCSI_SATA_ULI=m +CONFIG_SCSI_SATA_VIA=m +CONFIG_SCSI_SATA_VITESSE=m +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +CONFIG_SCTP_HMAC_MD5=y +# CONFIG_SCTP_HMAC_NONE is not set +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SECCOMP=y +# CONFIG_SECCOMP_DISABLE_TSC is not set +CONFIG_SECURITY=y +CONFIG_SECURITY_CAPABILITIES=m +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_REALTIME=m +CONFIG_SECURITY_ROOTPLUG=m +CONFIG_SECURITY_SECLVL=m +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SEMAPHORE_SLEEPERS=y +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_MANY_PORTS=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIO=y +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_PARTITION=y +CONFIG_SHAPER=m +CONFIG_SHMEM=y +CONFIG_SIGMATEL_FIR=m +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SK98LIN=m +CONFIG_SKFP=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SLAB=y +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SMB_FS=m +# CONFIG_SMB_NLS_DEFAULT is not set +CONFIG_SMC_IRCC_FIR=m +CONFIG_SMP=y +CONFIG_SND=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AD1889=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIA=m +CONFIG_SND_MIXART=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MTPAV=m +CONFIG_SND_NM256=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_PCM=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_RTCTIMER=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TIMER=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_USX2Y=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_YMFPCI=m +CONFIG_SOFTWARE_SUSPEND=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=m +CONFIG_SOUND_ACI_MIXER=m +# CONFIG_SOUND_AD1816 is not set +CONFIG_SOUND_AD1889=m +CONFIG_SOUND_ADLIB=m +CONFIG_SOUND_AEDSP16=m +CONFIG_SOUND_BT878=m +CONFIG_SOUND_CS4232=m +# CONFIG_SOUND_DMAP is not set +CONFIG_SOUND_EMU10K1=m +CONFIG_SOUND_ES1371=m +CONFIG_SOUND_FUSION=m +CONFIG_SOUND_ICH=m +CONFIG_SOUND_KAHLUA=m +CONFIG_SOUND_MPU401=m +# CONFIG_SOUND_MSNDCLAS is not set +# CONFIG_SOUND_MSNDPIN is not set +CONFIG_SOUND_MSS=m +CONFIG_SOUND_NM256=m +CONFIG_SOUND_OPL3SA2=m +CONFIG_SOUND_OSS=m +CONFIG_SOUND_PAS=m +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_PSS=m +CONFIG_SOUND_SB=m +# CONFIG_SOUND_TRACEINIT is not set +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_TRIX=m +CONFIG_SOUND_TVMIXER=m +CONFIG_SOUND_UART6850=m +CONFIG_SOUND_VIA82CXXX=m +CONFIG_SOUND_VMIDI=m +CONFIG_SOUND_YM3812=m +# CONFIG_SPARSEMEM_MANUAL is not set +# CONFIG_SPARSEMEM_STATIC is not set +CONFIG_SPEAKUP=m +CONFIG_SPEAKUP_ACNTPC=m +CONFIG_SPEAKUP_ACNTSA=m +CONFIG_SPEAKUP_APOLLO=m +CONFIG_SPEAKUP_AUDPTR=m +CONFIG_SPEAKUP_BNS=m +CONFIG_SPEAKUP_DECEXT=m +CONFIG_SPEAKUP_DECPC=m +CONFIG_SPEAKUP_DECTLK=m +CONFIG_SPEAKUP_DEFAULT="none" +CONFIG_SPEAKUP_DTLK=m +CONFIG_SPEAKUP_KEYPC=m +CONFIG_SPEAKUP_LTLK=m +CONFIG_SPEAKUP_SFTSYN=m +CONFIG_SPEAKUP_SPKOUT=m +CONFIG_SPEAKUP_TXPRT=m +CONFIG_SPECIALIX=m +# CONFIG_SPECIALIX_RTSCTS is not set +CONFIG_SPI=y +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set +CONFIG_STALDRV=y +CONFIG_STANDALONE=y +CONFIG_STOP_MACHINE=y +CONFIG_STRIP=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNGEM=m +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUN_PARTITION=y +CONFIG_SUSPEND_SMP=y +CONFIG_SWAP=y +CONFIG_SWIOTLB=y +CONFIG_SX=m +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYNCLINK_SYNCPPP=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYSV_FS=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_TIS=m +CONFIG_TCG_TPM=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +CONFIG_TEKRAM_DONGLE=m +CONFIG_TELCLOCK=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_THINKPAD_EC=m +CONFIG_TIGON3=m +# CONFIG_TINY_SHMEM is not set +CONFIG_TIPAR=m +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +CONFIG_TMS380TR=m +CONFIG_TMSPCI=m +# CONFIG_TOIM3232_DONGLE is not set +CONFIG_TOUCHSCREEN_ADS7846=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TP_SMAPI=m +CONFIG_TR=y +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TUN=m +CONFIG_TUNER_3036=m +CONFIG_TYPHOON=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UFS_FS=m +CONFIG_UID16=y +CONFIG_ULI526X=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNION_FS=m +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNWIND_INFO=y +CONFIG_USB=m +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACECAD=m +CONFIG_USB_ACM=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +CONFIG_USB_APPLETOUCH=m +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATI_REMOTE=m +CONFIG_USB_ATI_REMOTE2=m +CONFIG_USB_ATM=m +CONFIG_USB_ATMEL=m +CONFIG_USB_AUERSWALD=m +# CONFIG_USB_BANDWIDTH is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_CATC=m +CONFIG_USB_CPADDEV=y +CONFIG_USB_CXACRU=m +CONFIG_USB_CYTHERM=m +CONFIG_USB_DABUSB=m +# CONFIG_USB_DEBUG is not set +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DSBR=m +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EAGLE=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ET61X251=m +CONFIG_USB_ETH=m +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_EZUSB=y +CONFIG_USB_FILE_STORAGE=m +# CONFIG_USB_FILE_STORAGE_TEST is not set +CONFIG_USB_GADGET=m +CONFIG_USB_GADGETFS=m +# CONFIG_USB_GADGET_AT91 is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +CONFIG_USB_GADGET_DUALSPEED=y +# CONFIG_USB_GADGET_DUMMY_HCD is not set +# CONFIG_USB_GADGET_GOKU is not set +# CONFIG_USB_GADGET_LH7A40X is not set +CONFIG_USB_GADGET_NET2280=y +# CONFIG_USB_GADGET_OMAP is not set +# CONFIG_USB_GADGET_PXA2XX is not set +CONFIG_USB_GADGET_SELECTED=y +CONFIG_USB_G_SERIAL=m +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HIDINPUT=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +CONFIG_USB_IBMCAM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IRDA=m +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_KAWETH=m +CONFIG_USB_KBD=m +CONFIG_USB_KBTAB=m +# CONFIG_USB_KEYSPAN_REMOTE is not set +CONFIG_USB_KONICAWC=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LIBUSUAL=y +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y +CONFIG_USB_MOUSE=m +CONFIG_USB_NET2280=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +CONFIG_USB_OV511=m +CONFIG_USB_OV511_DECOMP=m +CONFIG_USB_OV518_DECOMP=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_PODXTPRO=m +CONFIG_USB_POWERMATE=m +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +CONFIG_USB_QC=m +CONFIG_USB_RIO500=m +CONFIG_USB_RT2570=m +CONFIG_USB_RTL8150=m +CONFIG_USB_SE401=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_AIRPRIME=m +# CONFIG_USB_SERIAL_ANYDATA is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SN9C102=m +CONFIG_USB_SPCA5XX=m +CONFIG_USB_SPEEDTOUCH=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_DATAFAB=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STV680=m +CONFIG_USB_SUSPEND=y +CONFIG_USB_SYNAPTICS=m +CONFIG_USB_TEST=m +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +CONFIG_USB_VICAM=m +CONFIG_USB_W9968CF=m +CONFIG_USB_WACOM=m +CONFIG_USB_XPAD=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_YEALINK=m +CONFIG_USB_ZC0301=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +CONFIG_VERSION_SIGNATURE="Ubuntu Unofficial" +CONFIG_VFAT_FS=m +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VGA_CONSOLE=y +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BUF_DVB=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_SAA7134_OSS=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SELECT=y +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VLAN_8021Q=m +CONFIG_VLSI_FIR=m +CONFIG_VM86=y +CONFIG_VORTEX=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXFS_FS=m +CONFIG_W1=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS9490=m +CONFIG_W1_MASTER_DS9490_BRIDGE=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_W83627HF_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_WAFER_WDT=m +CONFIG_WAN=y +CONFIG_WANXL=m +CONFIG_WAN_ROUTER=m +CONFIG_WAN_ROUTER_DRIVERS=y +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +# CONFIG_WDC_ALI15X3 is not set +CONFIG_WDTPCI=m +CONFIG_WDT_501_PCI=y +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WIRELESS_EXT=y +CONFIG_WLAN_NG=y +CONFIG_X25=m +CONFIG_X25_ASY=m +CONFIG_X86=y +CONFIG_X86_64=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_X86_64_NOLONG_MSG="This is not an amd64 machine. Please install the i386 distribution of Ubuntu." +CONFIG_X86_ACPI_CPUFREQ=m +# CONFIG_X86_ACPI_CPUFREQ_PROC_INTF is not set +CONFIG_X86_CMPXCHG=y +CONFIG_X86_CPUID=m +CONFIG_X86_GOOD_APIC=y +CONFIG_X86_HT=y +CONFIG_X86_INTERNODE_CACHE_BYTES=128 +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_BYTES=128 +CONFIG_X86_L1_CACHE_SHIFT=7 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_MCE=y +CONFIG_X86_MCE_AMD=y +CONFIG_X86_MCE_INTEL=y +CONFIG_X86_MSR=m +CONFIG_X86_PC=y +CONFIG_X86_PM_TIMER=y +CONFIG_X86_POWERNOW_K8=m +CONFIG_X86_POWERNOW_K8_ACPI=y +CONFIG_X86_SPEEDSTEP_CENTRINO=m +CONFIG_X86_SPEEDSTEP_CENTRINO_ACPI=y +# CONFIG_X86_SPEEDSTEP_LIB is not set +CONFIG_X86_TSC=y +# CONFIG_X86_VSMP is not set +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +CONFIG_XFS_EXPORT=y +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +CONFIG_XFS_RT=y +CONFIG_XFS_SECURITY=y +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/amd64/config.server +++ linux-source-2.6.17-2.6.17.1/debian/config/amd64/config.server @@ -0,0 +1,19 @@ +# +# Config options for config.server automatically generated by splitconf.pl +# +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS_FS=m +CONFIG_HZ=100 +CONFIG_HZ_100=y +# CONFIG_HZ_250 is not set +CONFIG_NR_CPUS=64 +CONFIG_OCFS2_FS=m +# CONFIG_PREEMPT_BKL is not set +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_SCHED_SMT=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/ia64/config.mckinley +++ linux-source-2.6.17-2.6.17.1/debian/config/ia64/config.mckinley @@ -0,0 +1,6 @@ +# +# Config options for config.mckinley automatically generated by splitconf.pl +# +CONFIG_IA64_L1_CACHE_SHIFT=7 +# CONFIG_ITANIUM is not set +CONFIG_MCKINLEY=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/ia64/config.itanium +++ linux-source-2.6.17-2.6.17.1/debian/config/ia64/config.itanium @@ -0,0 +1,7 @@ +# +# Config options for config.itanium automatically generated by splitconf.pl +# +CONFIG_IA64_BRL_EMU=y +CONFIG_IA64_L1_CACHE_SHIFT=6 +CONFIG_ITANIUM=y +# CONFIG_MCKINLEY is not set --- linux-source-2.6.17-2.6.17.1.orig/debian/config/ia64/config +++ linux-source-2.6.17-2.6.17.1/debian/config/ia64/config @@ -0,0 +1,2138 @@ +# +# Common config options automatically generated by splitconf.pl +# +CONFIG_3C359=m +CONFIG_64BIT=y +# CONFIG_6PACK is not set +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +# CONFIG_8139TOO_PIO is not set +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +CONFIG_ACENIC=m +# CONFIG_ACENIC_OMIT_TIGON_I is not set +CONFIG_ACORN_PARTITION=y +CONFIG_ACORN_PARTITION_ADFS=y +# CONFIG_ACORN_PARTITION_CUMANA is not set +CONFIG_ACORN_PARTITION_EESOX=y +CONFIG_ACORN_PARTITION_ICS=y +CONFIG_ACORN_PARTITION_POWERTEC=y +CONFIG_ACORN_PARTITION_RISCIX=y +CONFIG_ACPI=y +CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_ACPI_BUTTON=m +CONFIG_ACPI_CONTAINER=m +CONFIG_ACPI_DEBUG=y +CONFIG_ACPI_DEV=m +CONFIG_ACPI_DOCK=m +CONFIG_ACPI_EC=y +CONFIG_ACPI_FAN=m +CONFIG_ACPI_INITRD=y +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_POWER=y +CONFIG_ACPI_PROCESSOR=m +CONFIG_ACPI_SYSTEM=y +CONFIG_ACPI_TC1100=m +CONFIG_ACPI_THERMAL=m +CONFIG_ADAPTEC_STARFIRE=m +# CONFIG_ADAPTEC_STARFIRE_NAPI is not set +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADM8211=m +CONFIG_ADV717X=m +CONFIG_ADV717X_PIXELPORT16BIT=y +CONFIG_ADV717X_PIXELPORTPAL=y +CONFIG_ADV717X_SWAP=y +CONFIG_AFFS_FS=m +CONFIG_AFS_FS=m +CONFIG_AGP=m +CONFIG_AGP_HP_ZX1=m +CONFIG_AGP_I460=m +# CONFIG_AGP_SGI_TIOCA is not set +CONFIG_AGP_SIS=m +CONFIG_AGP_VIA=m +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +# CONFIG_AIC79XX_ENABLE_RD_STRM is not set +# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set +CONFIG_AIC79XX_RESET_DELAY_MS=15000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=253 +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +CONFIG_AIC7XXX_DEBUG_MASK=0 +# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set +CONFIG_AIC7XXX_RESET_DELAY_MS=15000 +# CONFIG_AIC94XX_DEBUG is not set +CONFIG_AIRO_CS=m +# CONFIG_AMD8111E_NAPI is not set +CONFIG_AMD8111_ETH=m +CONFIG_AMIGA_PARTITION=y +CONFIG_APPLICOM=m +CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y +CONFIG_ARCH_DISCONTIGMEM_ENABLE=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_FLATMEM_ENABLE=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCNET=m +CONFIG_ARCNET_1051=m +CONFIG_ARCNET_1201=m +CONFIG_ARCNET_CAP=m +CONFIG_ARCNET_COM20020=m +CONFIG_ARCNET_COM20020_CS=m +CONFIG_ARCNET_COM20020_PCI=m +# CONFIG_ARCNET_COM90xx is not set +CONFIG_ARCNET_COM90xxIO=m +CONFIG_ARCNET_RAW=m +# CONFIG_ARCNET_RIM_I is not set +# CONFIG_ARPD is not set +CONFIG_ASFS_DEFAULT_CODEPAGE="" +CONFIG_ASFS_FS=m +# CONFIG_ASFS_RW is not set +CONFIG_ASK_IP_FIB_HASH=y +CONFIG_ATALK=m +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_OVER_ETH=m +# CONFIG_ATM is not set +CONFIG_ATMEL=m +CONFIG_AUDIT=y +# CONFIG_AUDITSYSCALL is not set +CONFIG_AUTOFS4_FS=m +CONFIG_AUTOFS_FS=m +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_B44=m +CONFIG_BACKLIGHT_CLASS_DEVICE=m +CONFIG_BACKLIGHT_DEVICE=y +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCM43XX=m +# CONFIG_BCM43XX_DEBUG is not set +CONFIG_BCM43XX_DMA=y +CONFIG_BCM43XX_DMA_AND_PIO_MODE=y +# CONFIG_BCM43XX_DMA_MODE is not set +CONFIG_BCM43XX_PIO=y +# CONFIG_BCM43XX_PIO_MODE is not set +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BLK_CPQ_CISS_DA=m +CONFIG_BLK_CPQ_DA=m +CONFIG_BLK_DEV_3W_XXXX_RAID=m +CONFIG_BLK_DEV_AEC62XX=m +CONFIG_BLK_DEV_ALI15X3=m +# CONFIG_BLK_DEV_AMD74XX is not set +CONFIG_BLK_DEV_CLOOP=m +CONFIG_BLK_DEV_CMD64X=m +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_CS5520=m +CONFIG_BLK_DEV_CS5530=m +CONFIG_BLK_DEV_CY82C693=m +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_DM=m +CONFIG_BLK_DEV_DM_BBR=m +CONFIG_BLK_DEV_GENERIC=m +CONFIG_BLK_DEV_GNBD=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_HPT34X=m +CONFIG_BLK_DEV_HPT366=m +CONFIG_BLK_DEV_IDE=y +CONFIG_BLK_DEV_IDEACPI=y +CONFIG_BLK_DEV_IDECD=m +# CONFIG_BLK_DEV_IDECS is not set +CONFIG_BLK_DEV_IDEDISK=m +CONFIG_BLK_DEV_IDEDMA=y +# CONFIG_BLK_DEV_IDEDMA_FORCED is not set +CONFIG_BLK_DEV_IDEDMA_PCI=y +CONFIG_BLK_DEV_IDEFLOPPY=m +CONFIG_BLK_DEV_IDEPCI=y +CONFIG_BLK_DEV_IDEPNP=m +CONFIG_BLK_DEV_IDESCSI=m +CONFIG_BLK_DEV_IDETAPE=m +# CONFIG_BLK_DEV_IDE_SATA is not set +CONFIG_BLK_DEV_INITRD=y +# CONFIG_BLK_DEV_IO_TRACE is not set +CONFIG_BLK_DEV_IT821X=m +CONFIG_BLK_DEV_JMICRON=m +CONFIG_BLK_DEV_LOOP=m +CONFIG_BLK_DEV_MD=m +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NS87415=m +# CONFIG_BLK_DEV_OFFBOARD is not set +CONFIG_BLK_DEV_OPTI621=m +CONFIG_BLK_DEV_PDC202XX_NEW=m +CONFIG_BLK_DEV_PDC202XX_OLD=m +CONFIG_BLK_DEV_PIIX=m +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=65536 +CONFIG_BLK_DEV_SC1200=m +CONFIG_BLK_DEV_SD=m +CONFIG_BLK_DEV_SIIMAGE=m +CONFIG_BLK_DEV_SLC90E66=m +CONFIG_BLK_DEV_SR=m +CONFIG_BLK_DEV_SR_VENDOR=y +CONFIG_BLK_DEV_SVWKS=m +CONFIG_BLK_DEV_SX8=m +CONFIG_BLK_DEV_TRIFLEX=m +CONFIG_BLK_DEV_TRM290=m +# CONFIG_BLK_DEV_UB is not set +CONFIG_BLK_DEV_UMEM=m +CONFIG_BLK_DEV_VIA82CXXX=m +CONFIG_BNX2=m +CONFIG_BONDING=m +CONFIG_BPQETHER=m +CONFIG_BRIDGE=m +CONFIG_BRIDGE_EBT_802_3=m +CONFIG_BRIDGE_EBT_AMONG=m +CONFIG_BRIDGE_EBT_ARP=m +CONFIG_BRIDGE_EBT_ARPREPLY=m +CONFIG_BRIDGE_EBT_BROUTE=m +CONFIG_BRIDGE_EBT_DNAT=m +CONFIG_BRIDGE_EBT_IP=m +CONFIG_BRIDGE_EBT_LIMIT=m +CONFIG_BRIDGE_EBT_LOG=m +CONFIG_BRIDGE_EBT_MARK=m +CONFIG_BRIDGE_EBT_MARK_T=m +CONFIG_BRIDGE_EBT_PKTTYPE=m +CONFIG_BRIDGE_EBT_REDIRECT=m +CONFIG_BRIDGE_EBT_SNAT=m +CONFIG_BRIDGE_EBT_STP=m +CONFIG_BRIDGE_EBT_T_FILTER=m +CONFIG_BRIDGE_EBT_T_NAT=m +CONFIG_BRIDGE_EBT_ULOG=m +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BT865=m +CONFIG_BT_ALSA=m +CONFIG_BT_BNEP=m +# CONFIG_BT_BNEP_MC_FILTER is not set +# CONFIG_BT_BNEP_PROTO_FILTER is not set +CONFIG_BT_HCIBCM203X=m +CONFIG_BT_HCIBFUSB=m +CONFIG_BT_HCIBLUECARD=m +CONFIG_BT_HCIBPA10X=m +CONFIG_BT_HCIBT3C=m +CONFIG_BT_HCIBTUART=m +CONFIG_BT_HCIDTL1=m +CONFIG_BT_HCIUART=m +# CONFIG_BT_HCIUART_BCSP is not set +# CONFIG_BT_HCIUART_H4 is not set +CONFIG_BT_HCIUSB=m +# CONFIG_BT_HCIUSB_SCO is not set +CONFIG_BT_HCIVHCI=m +CONFIG_BT_HIDP=m +CONFIG_BT_L2CAP=m +CONFIG_BT_RFCOMM=m +# CONFIG_BT_RFCOMM_TTY is not set +CONFIG_BT_SCO=m +CONFIG_BUG=y +CONFIG_CARDBUS=y +CONFIG_CARDMAN_4000=m +CONFIG_CARDMAN_4040=m +CONFIG_CASSINI=m +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CHELSIO_T1=m +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=m +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=m +CONFIG_CIFS=m +# CONFIG_CIFS_EXPERIMENTAL is not set +# CONFIG_CIFS_STATS is not set +# CONFIG_CIFS_XATTR is not set +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CODA_FS=m +CONFIG_CODA_FS_OLD_API=y +CONFIG_COMPAT=y +CONFIG_COMPUTONE=m +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=m +CONFIG_CPUSETS=y +CONFIG_CPU_FREQ=y +# CONFIG_CPU_FREQ_DEBUG is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m +CONFIG_CPU_FREQ_GOV_ONDEMAND=m +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=m +CONFIG_CPU_FREQ_GOV_USERSPACE=m +CONFIG_CPU_FREQ_STAT=m +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=m +CONFIG_CRAMFS=y +CONFIG_CRC16=m +CONFIG_CRC32=y +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRYPTO=y +CONFIG_CRYPTO_AES=m +CONFIG_CRYPTO_ANUBIS=m +CONFIG_CRYPTO_ARC4=m +CONFIG_CRYPTO_BLOWFISH=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CRC32C=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_MD4=m +CONFIG_CRYPTO_MD5=y +CONFIG_CRYPTO_MICHAEL_MIC=m +CONFIG_CRYPTO_NULL=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SHA1=m +CONFIG_CRYPTO_SHA256=m +CONFIG_CRYPTO_SHA512=m +CONFIG_CRYPTO_TEA=m +CONFIG_CRYPTO_TEST=m +CONFIG_CRYPTO_TGR192=m +CONFIG_CRYPTO_TWOFISH=m +CONFIG_CRYPTO_WP512=m +# CONFIG_CYCLADES is not set +# CONFIG_CYCLADES_SYNC is not set +CONFIG_D80211=m +CONFIG_DAVICOM_PHY=m +CONFIG_DAZUKO=m +CONFIG_DE2104X=m +CONFIG_DE4X5=m +CONFIG_DE600=m +CONFIG_DE620=m +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_FS is not set +# CONFIG_DEBUG_INFO is not set +CONFIG_DEBUG_KERNEL=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_SLAB is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_SPINLOCK_SLEEP is not set +# CONFIG_DEBUG_VM is not set +CONFIG_DECNET=m +CONFIG_DECNET_NF_GRABULATOR=m +# CONFIG_DECNET_ROUTER is not set +# CONFIG_DEFAULT_AS is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_IOSCHED="cfq" +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFXX=m +CONFIG_DETECT_SOFTLOCKUP=y +CONFIG_DEV_APPLETALK=y +CONFIG_DGRS=m +# CONFIG_DIGIEPCA is not set +# CONFIG_DISABLE_VHPT is not set +CONFIG_DISCONTIGMEM=y +CONFIG_DISCONTIGMEM_MANUAL=y +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_COUNT=24 +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_DM9102=m +CONFIG_DMA_IS_DMA32=y +CONFIG_DMI=y +CONFIG_DM_CRYPT=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_EMC=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_ZERO=m +CONFIG_DNOTIFY=y +# CONFIG_DONGLE is not set +CONFIG_DRM=m +CONFIG_DRM_MGA=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_VIA=m +CONFIG_DSCC4=m +# CONFIG_DSCC4_PCISYNC is not set +# CONFIG_DSCC4_PCI_RST is not set +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DVB=y +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +CONFIG_DVB_B2C2_FLEXCOP_USB=m +CONFIG_DVB_BCM3510=m +CONFIG_DVB_BT8XX=m +CONFIG_DVB_BUDGET=m +CONFIG_DVB_BUDGET_AV=m +CONFIG_DVB_BUDGET_CI=m +CONFIG_DVB_BUDGET_PATCH=m +CONFIG_DVB_CINERGYT2=m +CONFIG_DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y +CONFIG_DVB_CINERGYT2_QUERY_INTERVAL=250 +CONFIG_DVB_CINERGYT2_RC_QUERY_INTERVAL=100 +CONFIG_DVB_CINERGYT2_STREAM_BUF_SIZE=512 +CONFIG_DVB_CINERGYT2_STREAM_URB_COUNT=32 +CONFIG_DVB_CINERGYT2_TUNING=y +CONFIG_DVB_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_DIB3000MB=m +CONFIG_DVB_DIB3000MC=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_MT312=m +CONFIG_DVB_MT352=m +CONFIG_DVB_NXT200X=m +CONFIG_DVB_NXT6000=m +CONFIG_DVB_OR51132=m +CONFIG_DVB_OR51211=m +CONFIG_DVB_PLUTO2=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_TDA10021=m +CONFIG_DVB_TDA1004X=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TTUSB_BUDGET=m +CONFIG_DVB_TTUSB_DEC=m +CONFIG_DVB_USB=m +CONFIG_DVB_USB_A800=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIBUSB_MB=m +CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_VP702X=m +CONFIG_DVB_USB_VP7045=m +CONFIG_DVB_VES1820=m +CONFIG_DVB_VES1X93=m +CONFIG_DVB_ZL10353=m +CONFIG_DXR3=m +CONFIG_E100=m +CONFIG_E1000=m +# CONFIG_E1000_DISABLE_PACKET_SPLIT is not set +CONFIG_E1000_NAPI=y +CONFIG_ECC=m +# CONFIG_ECONET is not set +CONFIG_EEPRO100=m +CONFIG_EFI=y +CONFIG_EFI_PARTITION=y +CONFIG_EFI_PCDP=y +CONFIG_EFI_RTC=y +CONFIG_EFI_VARS=m +CONFIG_EFS_FS=m +CONFIG_ELF_CORE=y +CONFIG_EM8300=m +CONFIG_EM8300_DICOMCTRL=y +CONFIG_EM8300_DICOMFIX=y +CONFIG_EM8300_DICOMPAL=y +CONFIG_EM8300_LOOPBACK=y +CONFIG_EM8300_UCODETIMEOUT=y +# CONFIG_EMBEDDED is not set +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_EXPERIMENTAL=y +CONFIG_EXPORTFS=m +CONFIG_EXT2_FS=m +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT2_FS_XATTR=y +# CONFIG_EXT2_FS_XIP is not set +CONFIG_EXT3_FS=m +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT3_FS_XATTR=y +CONFIG_FARSYNC=m +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +CONFIG_FAT_FS=m +CONFIG_FB=y +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +CONFIG_FB_ASILIANT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +CONFIG_FB_ATY_CT=y +CONFIG_FB_ATY_GENERIC_LCD=y +CONFIG_FB_ATY_GX=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_CIRRUS=m +CONFIG_FB_CYBER2000=m +CONFIG_FB_FIRMWARE_EDID=y +# CONFIG_FB_IMSTT is not set +CONFIG_FB_KYRO=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MULTIHEAD=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_PM2=m +# CONFIG_FB_PM2_FIFO_DISCONNECT is not set +CONFIG_FB_RADEON=m +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_SAVAGE=m +CONFIG_FB_SAVAGE_ACCEL=y +CONFIG_FB_SAVAGE_I2C=y +CONFIG_FB_SIS=m +CONFIG_FB_SIS_300=y +CONFIG_FB_SIS_315=y +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_TRIDENT=m +# CONFIG_FB_TRIDENT_ACCEL is not set +CONFIG_FB_VESA=m +CONFIG_FB_VGA16=m +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +# CONFIG_FLATMEM_MANUAL is not set +CONFIG_FLAT_NODE_MEM_MAP=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x16=y +CONFIG_FONT_8x8=y +CONFIG_FORCEDETH=m +# CONFIG_FORCED_INLINING is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_FRAMEBUFFER_CONSOLE=m +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FTL=m +CONFIG_FUSE_FS=m +CONFIG_FUSION=y +CONFIG_FUSION_CTL=m +CONFIG_FUSION_FC=m +CONFIG_FUSION_LAN=m +CONFIG_FUSION_MAX_SGE=40 +CONFIG_FUSION_SAS=m +CONFIG_FUSION_SPI=m +CONFIG_FUTEX=y +CONFIG_FW_LOADER=y +CONFIG_GAMEPORT=m +CONFIG_GAMEPORT_EMU10K1=m +CONFIG_GAMEPORT_FM801=m +CONFIG_GAMEPORT_L4=m +CONFIG_GAMEPORT_NS558=m +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_FIND_NEXT_BIT=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GFS2_FS=m +CONFIG_GFS2_FS_LOCKING_DLM=m +CONFIG_GFS2_FS_LOCKING_NOLOCK=m +CONFIG_GFS_FS=m +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +# CONFIG_HAPPYMEAL is not set +CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=y +CONFIG_HDLC_FR=y +CONFIG_HDLC_PPP=y +CONFIG_HDLC_RAW=y +CONFIG_HDLC_RAW_ETH=y +CONFIG_HERMES=m +CONFIG_HFSPLUS_FS=m +CONFIG_HFS_FS=m +# CONFIG_HID_FF is not set +# CONFIG_HIPPI is not set +CONFIG_HOLES_IN_ZONE=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOTPLUG=y +# CONFIG_HOTPLUG_CPU is not set +CONFIG_HOTPLUG_PCI=m +CONFIG_HOTPLUG_PCI_ACPI=m +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_FAKE=m +# CONFIG_HOTPLUG_PCI_SGI is not set +CONFIG_HOTPLUG_PCI_SHPC=m +# CONFIG_HOTPLUG_PCI_SHPC_POLL_EVENT_MODE is not set +# CONFIG_HP100 is not set +# CONFIG_HPET is not set +CONFIG_HPFS_FS=m +# CONFIG_HPT34X_AUTODMA is not set +# CONFIG_HP_SIMETH is not set +# CONFIG_HP_SIMSCSI is not set +# CONFIG_HP_SIMSERIAL is not set +# CONFIG_HUGETLBFS is not set +# CONFIG_HUGETLB_PAGE is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HW_CONSOLE=y +# CONFIG_HW_RANDOM is not set +CONFIG_HZ=250 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +CONFIG_I2C=m +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=m +CONFIG_I2C_ALGOPCF=m +CONFIG_I2C_ALI1535=m +CONFIG_I2C_ALI1563=m +CONFIG_I2C_ALI15X3=m +CONFIG_I2C_AMD756=m +CONFIG_I2C_AMD756_S4882=m +CONFIG_I2C_AMD8111=m +CONFIG_I2C_CHARDEV=m +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# CONFIG_I2C_DEBUG_CHIP is not set +# CONFIG_I2C_DEBUG_CORE is not set +CONFIG_I2C_I801=m +CONFIG_I2C_I810=m +CONFIG_I2C_ISA=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_PARPORT=m +CONFIG_I2C_PARPORT_LIGHT=m +CONFIG_I2C_PCA_ISA=m +CONFIG_I2C_PIIX4=m +CONFIG_I2C_PROSAVAGE=m +CONFIG_I2C_SAVAGE4=m +CONFIG_I2C_SIS5595=m +CONFIG_I2C_SIS630=m +CONFIG_I2C_SIS96X=m +CONFIG_I2C_STUB=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VOODOO3=m +CONFIG_I2O=m +CONFIG_I2O_BLOCK=m +CONFIG_I2O_BUS=m +CONFIG_I2O_CONFIG=m +CONFIG_I2O_CONFIG_OLD_IOCTL=y +CONFIG_I2O_EXT_ADAPTEC=y +CONFIG_I2O_EXT_ADAPTEC_DMA64=y +CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y +CONFIG_I2O_PROC=m +CONFIG_I2O_SCSI=m +CONFIG_I82092=m +CONFIG_IA32_SUPPORT=y +CONFIG_IA64=y +# CONFIG_IA64_ACPI_CPUFREQ is not set +# CONFIG_IA64_CYCLONE is not set +# CONFIG_IA64_DEBUG_CMPXCHG is not set +# CONFIG_IA64_DEBUG_IRQ is not set +# CONFIG_IA64_DIG is not set +CONFIG_IA64_GENERIC=y +CONFIG_IA64_GRANULE_16MB=y +# CONFIG_IA64_GRANULE_64MB is not set +# CONFIG_IA64_HP_SIM is not set +# CONFIG_IA64_HP_ZX1 is not set +# CONFIG_IA64_HP_ZX1_SWIOTLB is not set +CONFIG_IA64_MCA_RECOVERY=m +CONFIG_IA64_PAGE_SIZE_16KB=y +# CONFIG_IA64_PAGE_SIZE_4KB is not set +# CONFIG_IA64_PAGE_SIZE_64KB is not set +# CONFIG_IA64_PAGE_SIZE_8KB is not set +CONFIG_IA64_PALINFO=m +CONFIG_IA64_PRINT_HAZARDS=y +# CONFIG_IA64_SGI_SN2 is not set +CONFIG_IA64_SGI_SN_XP=m +CONFIG_IA64_UNCACHED_ALLOCATOR=y +CONFIG_IBMOL=m +CONFIG_IDE=y +# CONFIG_IDEDISK_MULTI_MODE is not set +CONFIG_IDEDMA_AUTO=y +# CONFIG_IDEDMA_IVB is not set +# CONFIG_IDEDMA_ONLYDISK is not set +CONFIG_IDEDMA_PCI_AUTO=y +CONFIG_IDEPCI_SHARE_IRQ=y +# CONFIG_IDE_ARM is not set +CONFIG_IDE_GENERIC=m +CONFIG_IDE_MAX_HWIFS=4 +CONFIG_IDE_TASK_IOCTL=y +CONFIG_IEEE1394=m +CONFIG_IEEE1394_CONFIG_ROM_IP1394=y +CONFIG_IEEE1394_DV1394=m +CONFIG_IEEE1394_ETH1394=m +# CONFIG_IEEE1394_EXPORT_FULL_API is not set +CONFIG_IEEE1394_EXTRA_CONFIG_ROMS=y +CONFIG_IEEE1394_OHCI1394=m +CONFIG_IEEE1394_OUI_DB=y +CONFIG_IEEE1394_PCILYNX=m +CONFIG_IEEE1394_RAWIO=m +CONFIG_IEEE1394_SBP2=m +# CONFIG_IEEE1394_VERBOSEDEBUG is not set +CONFIG_IEEE1394_VIDEO1394=m +CONFIG_IEEE80211=m +CONFIG_IEEE80211_CRYPT_CCMP=m +CONFIG_IEEE80211_CRYPT_TKIP=m +CONFIG_IEEE80211_CRYPT_WEP=m +# CONFIG_IEEE80211_DEBUG is not set +CONFIG_IEEE80211_SOFTMAC=m +# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_INET=y +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +CONFIG_INET6_IPCOMP=m +CONFIG_INET6_TUNNEL=m +CONFIG_INET6_XFRM_TUNNEL=m +# CONFIG_INET_AH is not set +CONFIG_INET_DCCP_DIAG=m +CONFIG_INET_DIAG=y +# CONFIG_INET_ESP is not set +CONFIG_INET_IPCOMP=m +CONFIG_INET_TCP_DIAG=y +CONFIG_INET_TUNNEL=m +CONFIG_INET_XFRM_TUNNEL=m +CONFIG_INFINIBAND=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_DEBUG=y +# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set +CONFIG_INFINIBAND_MTHCA=m +CONFIG_INFINIBAND_MTHCA_DEBUG=y +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INOTIFY=y +CONFIG_INPUT=y +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MOUSE=y +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_TSDEV=m +CONFIG_INPUT_TSDEV_SCREEN_X=240 +CONFIG_INPUT_TSDEV_SCREEN_Y=320 +CONFIG_INPUT_UINPUT=m +CONFIG_IOSAPIC=y +CONFIG_IOSCHED_AS=y +CONFIG_IOSCHED_CFQ=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_NOOP=y +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_IPTABLES=m +CONFIG_IP6_NF_MANGLE=m +CONFIG_IP6_NF_MATCH_AH=m +CONFIG_IP6_NF_MATCH_EUI64=m +CONFIG_IP6_NF_MATCH_FRAG=m +CONFIG_IP6_NF_MATCH_HL=m +CONFIG_IP6_NF_MATCH_IPV6HEADER=m +CONFIG_IP6_NF_MATCH_OPTS=m +CONFIG_IP6_NF_MATCH_OWNER=m +CONFIG_IP6_NF_MATCH_RT=m +# CONFIG_IP6_NF_QUEUE is not set +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_LOG=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPDDP=m +CONFIG_IPDDP_DECAP=y +CONFIG_IPDDP_ENCAP=y +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPV6=m +# CONFIG_IPV6_PRIVACY is not set +# CONFIG_IPV6_ROUTER_PREF is not set +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPW3945=m +# CONFIG_IPW3945_DEBUG is not set +CONFIG_IPW3945_MONITOR=y +CONFIG_IPW3945_PROMISCUOUS=y +CONFIG_IPX=m +# CONFIG_IPX_INTERN is not set +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_DCCP=m +CONFIG_IP_DCCP_ACKVEC=y +CONFIG_IP_DCCP_CCID2=m +CONFIG_IP_DCCP_CCID3=m +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_DCCP_TFRC_LIB=m +CONFIG_IP_FIB_HASH=y +# CONFIG_IP_FIB_TRIE is not set +# CONFIG_IP_MROUTE is not set +CONFIG_IP_MULTICAST=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_NF_AMANDA=m +CONFIG_IP_NF_ARPFILTER=m +CONFIG_IP_NF_ARPTABLES=m +CONFIG_IP_NF_ARP_MANGLE=m +CONFIG_IP_NF_CONNTRACK=m +# CONFIG_IP_NF_CONNTRACK_EVENTS is not set +CONFIG_IP_NF_CONNTRACK_MARK=y +CONFIG_IP_NF_CONNTRACK_NETLINK=m +CONFIG_IP_NF_CT_ACCT=y +CONFIG_IP_NF_CT_PROTO_SCTP=m +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_FTP=m +CONFIG_IP_NF_H323=m +CONFIG_IP_NF_IPTABLES=m +CONFIG_IP_NF_IRC=m +CONFIG_IP_NF_MANGLE=m +CONFIG_IP_NF_MATCH_ADDRTYPE=m +CONFIG_IP_NF_MATCH_AH=m +CONFIG_IP_NF_MATCH_DSCP=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_HASHLIMIT=m +CONFIG_IP_NF_MATCH_IPRANGE=m +CONFIG_IP_NF_MATCH_OWNER=m +CONFIG_IP_NF_MATCH_RECENT=m +CONFIG_IP_NF_MATCH_TOS=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_NAT_AMANDA=m +CONFIG_IP_NF_NAT_FTP=m +CONFIG_IP_NF_NAT_H323=m +CONFIG_IP_NF_NAT_IRC=m +CONFIG_IP_NF_NAT_NEEDED=y +CONFIG_IP_NF_NAT_PPTP=m +CONFIG_IP_NF_NAT_SNMP_BASIC=m +CONFIG_IP_NF_NAT_TFTP=m +CONFIG_IP_NF_NETBIOS_NS=m +CONFIG_IP_NF_PPTP=m +CONFIG_IP_NF_QUEUE=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_DSCP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_LOG=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +CONFIG_IP_NF_TARGET_NETMAP=m +CONFIG_IP_NF_TARGET_REDIRECT=m +CONFIG_IP_NF_TARGET_REJECT=m +CONFIG_IP_NF_TARGET_SAME=m +CONFIG_IP_NF_TARGET_TCPMSS=m +CONFIG_IP_NF_TARGET_TOS=m +CONFIG_IP_NF_TARGET_TTL=m +CONFIG_IP_NF_TARGET_ULOG=m +CONFIG_IP_NF_TFTP=m +# CONFIG_IP_PNP is not set +CONFIG_IP_ROUTE_FWMARK=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_MULTIPATH_CACHED=y +CONFIG_IP_ROUTE_MULTIPATH_DRR=m +CONFIG_IP_ROUTE_MULTIPATH_RANDOM=m +CONFIG_IP_ROUTE_MULTIPATH_RR=m +CONFIG_IP_ROUTE_MULTIPATH_WRANDOM=m +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_VS=m +# CONFIG_IP_VS_DEBUG is not set +CONFIG_IP_VS_DH=m +CONFIG_IP_VS_FTP=m +CONFIG_IP_VS_LBLC=m +CONFIG_IP_VS_LBLCR=m +CONFIG_IP_VS_LC=m +CONFIG_IP_VS_NQ=m +CONFIG_IP_VS_PROTO_AH=y +CONFIG_IP_VS_PROTO_ESP=y +CONFIG_IP_VS_PROTO_TCP=y +CONFIG_IP_VS_PROTO_UDP=y +CONFIG_IP_VS_RR=m +CONFIG_IP_VS_SED=m +CONFIG_IP_VS_SH=m +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_DEBUG is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_ULTRA is not set +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRTTY_SIR=m +CONFIG_ISCSI_TCP=m +# CONFIG_ISDN is not set +# CONFIG_ISI is not set +CONFIG_ISO9660_FS=m +CONFIG_IXGB=m +# CONFIG_IXGB_NAPI is not set +CONFIG_JBD=m +# CONFIG_JBD_DEBUG is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_FS=m +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +CONFIG_JFFS2_RTIME=y +# CONFIG_JFFS2_RUBIN is not set +# CONFIG_JFFS2_SUMMARY is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS_FS=m +CONFIG_JFFS_FS_VERBOSE=0 +CONFIG_JFFS_PROC_FS=y +CONFIG_JFS_DEBUG=y +CONFIG_JFS_FS=m +CONFIG_JFS_POSIX_ACL=y +CONFIG_JFS_SECURITY=y +CONFIG_JFS_STATISTICS=y +CONFIG_JOLIET=y +CONFIG_JOYSTICK_A3D=m +CONFIG_JOYSTICK_ADI=m +CONFIG_JOYSTICK_ANALOG=m +CONFIG_JOYSTICK_COBRA=m +CONFIG_JOYSTICK_DB9=m +CONFIG_JOYSTICK_GAMECON=m +CONFIG_JOYSTICK_GF2K=m +CONFIG_JOYSTICK_GRIP=m +CONFIG_JOYSTICK_GRIP_MP=m +CONFIG_JOYSTICK_GUILLEMOT=m +CONFIG_JOYSTICK_IFORCE=m +# CONFIG_JOYSTICK_IFORCE_232 is not set +# CONFIG_JOYSTICK_IFORCE_USB is not set +CONFIG_JOYSTICK_INTERACT=m +CONFIG_JOYSTICK_JOYDUMP=m +CONFIG_JOYSTICK_MAGELLAN=m +CONFIG_JOYSTICK_SIDEWINDER=m +CONFIG_JOYSTICK_SPACEBALL=m +CONFIG_JOYSTICK_SPACEORB=m +CONFIG_JOYSTICK_STINGER=m +CONFIG_JOYSTICK_TMDC=m +CONFIG_JOYSTICK_TURBOGRAFX=m +CONFIG_JOYSTICK_TWIDJOY=m +CONFIG_JOYSTICK_WARRIOR=m +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +# CONFIG_KALLSYMS_EXTRA_PASS is not set +CONFIG_KARMA_PARTITION=y +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_XTKBD=m +# CONFIG_KEYS is not set +CONFIG_KMOD=y +CONFIG_KPROBES=y +CONFIG_LANMEDIA=m +# CONFIG_LAPB is not set +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_DEVICE=y +CONFIG_LDM_DEBUG=y +CONFIG_LDM_PARTITION=y +CONFIG_LEDS_CLASS=m +# CONFIG_LEDS_TRIGGERS is not set +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +CONFIG_LIBCRC32C=m +CONFIG_LLC=y +CONFIG_LLC2=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCKD=m +CONFIG_LOCKD_V4=y +CONFIG_LOCK_KERNEL=y +# CONFIG_LOGO is not set +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_LP_CONSOLE is not set +CONFIG_LXT_PHY=m +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MARVELL_PHY=m +CONFIG_MAX_RAW_DEVS=256 +CONFIG_MD=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID5=m +# CONFIG_MD_RAID5_RESHAPE is not set +CONFIG_MD_RAID6=m +CONFIG_MEGARAID_LEGACY=m +CONFIG_MEGARAID_MAILBOX=m +CONFIG_MEGARAID_MM=m +CONFIG_MEGARAID_SAS=m +CONFIG_MIGRATION=y +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=y +# CONFIG_MKISS is not set +# CONFIG_MMC is not set +# CONFIG_MMTIMER is not set +CONFIG_MMU=y +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOXA_INTELLIO=m +# CONFIG_MOXA_SMARTIO is not set +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +CONFIG_MSNDCLAS_INIT_FILE="m" +CONFIG_MSNDCLAS_PERM_FILE="m" +CONFIG_MSNDPIN_INIT_FILE="m" +CONFIG_MSNDPIN_PERM_FILE="m" +CONFIG_MTD=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CHAR=m +# CONFIG_MTD_CMDLINE_PARTS is not set +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_CONCAT=m +CONFIG_MTD_DATAFLASH=m +# CONFIG_MTD_DEBUG is not set +CONFIG_MTD_DOC2000=m +CONFIG_MTD_DOC2001=m +CONFIG_MTD_DOC2001PLUS=m +CONFIG_MTD_DOCECC=m +CONFIG_MTD_DOCPROBE=m +CONFIG_MTD_DOCPROBE_ADDRESS=0 +# CONFIG_MTD_DOCPROBE_ADVANCED is not set +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_DISKONCHIP=m +# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set +CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0 +# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_NAND_NANDSIM=m +# CONFIG_MTD_NAND_VERIFY_WRITE is not set +# CONFIG_MTD_OBSOLETE_CHIPS is not set +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_PARTITIONS=y +CONFIG_MTD_PCI=m +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +CONFIG_MTD_PHYSMAP_BANKWIDTH=2 +CONFIG_MTD_PHYSMAP_LEN=0x4000000 +CONFIG_MTD_PHYSMAP_START=0x8000000 +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS=m +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_ROM=m +CONFIG_MTD_SLRAM=m +CONFIG_MYRI10GE=m +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +CONFIG_NCPFS_SMALLDOS=y +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NE2K_PCI=m +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NET=y +CONFIG_NETCONSOLE=m +# CONFIG_NETDEBUG is not set +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNMARK=m +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_DCCP=m +CONFIG_NETFILTER_XT_MATCH_ESP=m +CONFIG_NETFILTER_XT_MATCH_HELPER=m +CONFIG_NETFILTER_XT_MATCH_LENGTH=m +CONFIG_NETFILTER_XT_MATCH_LIMIT=m +CONFIG_NETFILTER_XT_MATCH_MAC=m +CONFIG_NETFILTER_XT_MATCH_MARK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m +CONFIG_NETFILTER_XT_MATCH_POLICY=m +CONFIG_NETFILTER_XT_MATCH_REALM=m +CONFIG_NETFILTER_XT_MATCH_SCTP=m +CONFIG_NETFILTER_XT_MATCH_STATE=m +CONFIG_NETFILTER_XT_MATCH_STRING=m +CONFIG_NETFILTER_XT_MATCH_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +CONFIG_NETPOLL=y +CONFIG_NETPOLL_RX=y +CONFIG_NETPOLL_TRAP=y +CONFIG_NETROM=m +CONFIG_NET_ACX=m +CONFIG_NET_ACX_PCI=y +CONFIG_NET_ACX_USB=y +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_ACT is not set +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_POLICE=y +CONFIG_NET_CLS_ROUTE=y +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +# CONFIG_NET_DIVERT is not set +CONFIG_NET_EMATCH=y +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_META=m +CONFIG_NET_EMATCH_NBYTE=m +CONFIG_NET_EMATCH_STACK=32 +CONFIG_NET_EMATCH_TEXT=m +CONFIG_NET_EMATCH_U32=m +CONFIG_NET_ESTIMATOR=y +CONFIG_NET_ETHERNET=y +CONFIG_NET_FC=y +CONFIG_NET_IPG=m +# CONFIG_NET_IPGRE is not set +CONFIG_NET_IPIP=m +CONFIG_NET_KEY=m +CONFIG_NET_PCI=y +CONFIG_NET_PCMCIA=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POCKET=y +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RADIO=y +CONFIG_NET_RTL8187=m +CONFIG_NET_RTL818X=m +CONFIG_NET_SB1000=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_CBQ=m +# CONFIG_NET_SCH_CLK_CPU is not set +# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set +CONFIG_NET_SCH_CLK_JIFFIES=y +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_WIRELESS=y +CONFIG_NET_WIRELESS_RTNETLINK=y +CONFIG_NEW_LEDS=y +CONFIG_NFSD=m +CONFIG_NFSD_TCP=y +CONFIG_NFSD_V3=y +# CONFIG_NFSD_V3_ACL is not set +CONFIG_NFSD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_NFS_DIRECTIO=y +CONFIG_NFS_FS=m +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=m +CONFIG_NLS_CODEPAGE_737=m +CONFIG_NLS_CODEPAGE_775=m +CONFIG_NLS_CODEPAGE_850=m +CONFIG_NLS_CODEPAGE_852=m +CONFIG_NLS_CODEPAGE_855=m +CONFIG_NLS_CODEPAGE_857=m +CONFIG_NLS_CODEPAGE_860=m +CONFIG_NLS_CODEPAGE_861=m +CONFIG_NLS_CODEPAGE_862=m +CONFIG_NLS_CODEPAGE_863=m +CONFIG_NLS_CODEPAGE_864=m +CONFIG_NLS_CODEPAGE_865=m +CONFIG_NLS_CODEPAGE_866=m +CONFIG_NLS_CODEPAGE_869=m +CONFIG_NLS_CODEPAGE_874=m +CONFIG_NLS_CODEPAGE_932=m +CONFIG_NLS_CODEPAGE_936=m +CONFIG_NLS_CODEPAGE_949=m +CONFIG_NLS_CODEPAGE_950=m +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_ISO8859_1=m +CONFIG_NLS_ISO8859_13=m +CONFIG_NLS_ISO8859_14=m +CONFIG_NLS_ISO8859_15=m +CONFIG_NLS_ISO8859_2=m +CONFIG_NLS_ISO8859_3=m +CONFIG_NLS_ISO8859_4=m +CONFIG_NLS_ISO8859_5=m +CONFIG_NLS_ISO8859_6=m +CONFIG_NLS_ISO8859_7=m +CONFIG_NLS_ISO8859_8=m +CONFIG_NLS_ISO8859_9=m +CONFIG_NLS_KOI8_R=m +CONFIG_NLS_KOI8_U=m +CONFIG_NLS_UTF8=m +CONFIG_NODES_SHIFT=8 +CONFIG_NORTEL_HERMES=m +CONFIG_NR_CPUS=64 +CONFIG_NS83820=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NUMA=y +CONFIG_N_HDLC=m +CONFIG_OBSOLETE_INTERMODULE=m +CONFIG_OCFS2_FS=m +CONFIG_OPROFILE=m +CONFIG_OSF_PARTITION=y +CONFIG_PACKET=y +# CONFIG_PACKET_MMAP is not set +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +CONFIG_PARIDE_EPATC8=y +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PARPORT=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +# CONFIG_PARPORT_PC_FIFO is not set +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_PATA_MARVELL=m +CONFIG_PC300=m +CONFIG_PC300_MLPPP=y +CONFIG_PCCARD=m +CONFIG_PCCARD_NONSTATIC=m +CONFIG_PCI=y +CONFIG_PCI200SYN=m +CONFIG_PCI_ATMEL=m +# CONFIG_PCI_DEBUG is not set +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_HERMES=m +# CONFIG_PCI_MSI is not set +CONFIG_PCMCIA=m +CONFIG_PCMCIA_3C574=m +CONFIG_PCMCIA_3C589=m +CONFIG_PCMCIA_ATMEL=m +CONFIG_PCMCIA_AXNET=m +# CONFIG_PCMCIA_DEBUG is not set +CONFIG_PCMCIA_FDOMAIN=m +CONFIG_PCMCIA_FMVJ18X=m +CONFIG_PCMCIA_HERMES=m +CONFIG_PCMCIA_IOCTL=y +CONFIG_PCMCIA_LOAD_CIS=y +CONFIG_PCMCIA_NETWAVE=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE_MEM=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WAVELAN=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PD6729=m +# CONFIG_PDC202XX_BURST is not set +CONFIG_PERFMON=y +CONFIG_PGTABLE_3=y +# CONFIG_PGTABLE_4 is not set +CONFIG_PHONE=m +CONFIG_PHONE_IXJ=m +CONFIG_PHONE_IXJ_PCMCIA=m +CONFIG_PHYLIB=m +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_DISABLE_CONSOLE=y +CONFIG_PM_LEGACY=y +CONFIG_PNP=y +CONFIG_PNPACPI=y +# CONFIG_PNP_DEBUG is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_PPDEV=m +CONFIG_PPP=m +CONFIG_PPPOE=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +# CONFIG_PREEMPT is not set +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +# CONFIG_PRISM2 is not set +CONFIG_PRISM54=m +CONFIG_PRISM54_SOFTMAC=m +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROFILING=y +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QNX4FS_FS=m +CONFIG_QSEMI_PHY=m +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_R1000=m +CONFIG_R3964=m +CONFIG_R8169=m +# CONFIG_R8169_NAPI is not set +CONFIG_R8169_VLAN=y +CONFIG_RADIO_GEMTEK_PCI=m +CONFIG_RADIO_MAESTRO=m +CONFIG_RADIO_MAXIRADIO=m +CONFIG_RAID_ATTRS=m +CONFIG_RAMFS=y +CONFIG_RAW_DRIVER=m +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_REED_SOLOMON=m +CONFIG_REED_SOLOMON_DEC16=y +# CONFIG_REISERFS_CHECK is not set +CONFIG_REISERFS_FS=m +CONFIG_REISERFS_FS_POSIX_ACL=y +CONFIG_REISERFS_FS_SECURITY=y +CONFIG_REISERFS_FS_XATTR=y +# CONFIG_REISERFS_PROC_INFO is not set +CONFIG_RELAY=y +CONFIG_RFD_FTL=m +CONFIG_RFKILL=m +CONFIG_RIO=m +CONFIG_RIO_OLDPCI=y +CONFIG_ROCKETPORT=m +CONFIG_ROMFS_FS=m +CONFIG_ROSE=m +CONFIG_RPCSEC_GSS_KRB5=m +CONFIG_RPCSEC_GSS_SPKM3=m +# CONFIG_RT2400PCI is not set +CONFIG_RT2400_LEGACY=m +# CONFIG_RT2500PCI is not set +# CONFIG_RT2500USB is not set +CONFIG_RT2500_LEGACY=m +CONFIG_RT2570_LEGACY=m +CONFIG_RT61PCI=m +# CONFIG_RT61PCI_DEBUG is not set +CONFIG_RT73USB=m +# CONFIG_RT73USB_DEBUG is not set +CONFIG_RTC_CLASS=m +CONFIG_RTC_DRV_DS1672=m +CONFIG_RTC_DRV_M48T86=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_TEST=m +CONFIG_RTC_DRV_X1205=m +CONFIG_RTC_INTF_DEV=m +CONFIG_RTC_INTF_PROC=m +CONFIG_RTC_INTF_SYSFS=m +CONFIG_RTC_LIB=m +CONFIG_RT_EXP=y +CONFIG_RT_LEGACY=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXRPC=m +CONFIG_S2IO=m +# CONFIG_S2IO_NAPI is not set +CONFIG_SAS_CLASS=m +# CONFIG_SAS_DEBUG is not set +# CONFIG_SCHEDSTATS is not set +CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y +# CONFIG_SCHED_SMT is not set +CONFIG_SCSI=m +CONFIG_SCSI_3W_9XXX=m +CONFIG_SCSI_AACRAID=m +CONFIG_SCSI_ACARD=m +CONFIG_SCSI_AIC79XX=m +CONFIG_SCSI_AIC7XXX=m +CONFIG_SCSI_AIC7XXX_OLD=m +CONFIG_SCSI_AIC94XX=m +CONFIG_SCSI_ARCMSR=m +# CONFIG_SCSI_ATA_GENERIC is not set +CONFIG_SCSI_ATA_PIIX=m +CONFIG_SCSI_CONSTANTS=y +CONFIG_SCSI_DC390T=m +CONFIG_SCSI_DC395x=m +# CONFIG_SCSI_DEBUG is not set +CONFIG_SCSI_DMX3191D=m +CONFIG_SCSI_FC_ATTRS=m +# CONFIG_SCSI_FUTURE_DOMAIN is not set +CONFIG_SCSI_IMM=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCSI_ATTRS=m +# CONFIG_SCSI_IZIP_EPP16 is not set +# CONFIG_SCSI_IZIP_SLOW_CTR is not set +CONFIG_SCSI_LOGGING=y +CONFIG_SCSI_LPFC=m +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_PATA_ALI is not set +# CONFIG_SCSI_PATA_AMD is not set +# CONFIG_SCSI_PATA_ARTOP is not set +# CONFIG_SCSI_PATA_ATIIXP is not set +# CONFIG_SCSI_PATA_CMD64X is not set +# CONFIG_SCSI_PATA_CS5520 is not set +# CONFIG_SCSI_PATA_CS5530 is not set +# CONFIG_SCSI_PATA_CYPRESS is not set +# CONFIG_SCSI_PATA_EFAR is not set +# CONFIG_SCSI_PATA_HPT366 is not set +# CONFIG_SCSI_PATA_HPT37X is not set +# CONFIG_SCSI_PATA_HPT3X2N is not set +# CONFIG_SCSI_PATA_HPT3X3 is not set +# CONFIG_SCSI_PATA_ISAPNP is not set +# CONFIG_SCSI_PATA_IT8172 is not set +# CONFIG_SCSI_PATA_IT821X is not set +# CONFIG_SCSI_PATA_LEGACY is not set +# CONFIG_SCSI_PATA_MPIIX is not set +# CONFIG_SCSI_PATA_NETCELL is not set +# CONFIG_SCSI_PATA_NS87410 is not set +# CONFIG_SCSI_PATA_OLDPIIX is not set +# CONFIG_SCSI_PATA_OPTI is not set +# CONFIG_SCSI_PATA_OPTIDMA is not set +CONFIG_SCSI_PATA_PCMCIA=m +# CONFIG_SCSI_PATA_PDC_OLD is not set +# CONFIG_SCSI_PATA_PIIX is not set +# CONFIG_SCSI_PATA_QDI is not set +# CONFIG_SCSI_PATA_RADISYS is not set +# CONFIG_SCSI_PATA_RZ1000 is not set +# CONFIG_SCSI_PATA_SC1200 is not set +# CONFIG_SCSI_PATA_SERVERWORKS is not set +# CONFIG_SCSI_PATA_SIL680 is not set +# CONFIG_SCSI_PATA_SIS is not set +# CONFIG_SCSI_PATA_TRIFLEX is not set +# CONFIG_SCSI_PATA_VIA is not set +# CONFIG_SCSI_PATA_WINBOND is not set +CONFIG_SCSI_PDC_ADMA=m +CONFIG_SCSI_PPA=m +CONFIG_SCSI_PROC_FS=y +# CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE is not set +CONFIG_SCSI_QLA_FC=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SATA=m +CONFIG_SCSI_SATA_ACPI=y +CONFIG_SCSI_SATA_AHCI=m +CONFIG_SCSI_SATA_INTEL_COMBINED=y +CONFIG_SCSI_SATA_MV=m +CONFIG_SCSI_SATA_NV=m +CONFIG_SCSI_SATA_PROMISE=m +CONFIG_SCSI_SATA_QSTOR=m +CONFIG_SCSI_SATA_SIL=m +CONFIG_SCSI_SATA_SIL24=m +CONFIG_SCSI_SATA_SIS=m +# CONFIG_SCSI_SATA_SVW is not set +CONFIG_SCSI_SATA_SX4=m +CONFIG_SCSI_SATA_ULI=m +CONFIG_SCSI_SATA_VIA=m +CONFIG_SCSI_SATA_VITESSE=m +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SCSI_SYM53C8XX_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +# CONFIG_SCTP_DBG_MSG is not set +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_HMAC_MD5 is not set +CONFIG_SCTP_HMAC_NONE=y +# CONFIG_SCTP_HMAC_SHA1 is not set +CONFIG_SECURITY=y +CONFIG_SECURITY_CAPABILITIES=m +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +CONFIG_SECURITY_REALTIME=m +CONFIG_SECURITY_ROOTPLUG=m +CONFIG_SECURITY_SECLVL=m +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0 +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1 +CONFIG_SECURITY_SELINUX_DEVELOP=y +CONFIG_SECURITY_SELINUX_DISABLE=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SENSORS_ADM1021=m +CONFIG_SENSORS_ADM1025=m +CONFIG_SENSORS_ADM1026=m +CONFIG_SENSORS_ADM1031=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ASB100=m +CONFIG_SENSORS_ATXP1=m +CONFIG_SENSORS_DS1337=m +CONFIG_SENSORS_DS1374=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_EEPROM=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_FSCHER=m +CONFIG_SENSORS_FSCPOS=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_LM63=m +CONFIG_SENSORS_LM75=m +CONFIG_SENSORS_LM77=m +CONFIG_SENSORS_LM78=m +CONFIG_SENSORS_LM80=m +CONFIG_SENSORS_LM83=m +CONFIG_SENSORS_LM85=m +CONFIG_SENSORS_LM87=m +CONFIG_SENSORS_LM90=m +CONFIG_SENSORS_LM92=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX6875=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PCA9539=m +CONFIG_SENSORS_PCF8574=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_SIS5595=m +CONFIG_SENSORS_SMSC47B397=m +CONFIG_SENSORS_SMSC47M1=m +CONFIG_SENSORS_VIA686A=m +CONFIG_SENSORS_VT8231=m +CONFIG_SENSORS_W83627EHF=m +CONFIG_SENSORS_W83627HF=m +CONFIG_SENSORS_W83781D=m +CONFIG_SENSORS_W83792D=m +CONFIG_SENSORS_W83L785TS=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_EXTENDED=y +CONFIG_SERIAL_8250_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_PNP=y +CONFIG_SERIAL_8250_RSA=y +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_SHARE_IRQ=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_SGI_IOC3=m +CONFIG_SERIAL_SGI_L1_CONSOLE=y +CONFIG_SERIO=y +CONFIG_SERIO_I8042=m +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SGI_IOC3=m +CONFIG_SGI_MBCS=m +CONFIG_SGI_PARTITION=y +CONFIG_SGI_SN=y +CONFIG_SGI_SNSC=y +CONFIG_SGI_TIOCX=y +CONFIG_SHAPER=m +CONFIG_SHMEM=y +CONFIG_SIGMATEL_FIR=m +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SK98LIN=m +CONFIG_SKFP=m +CONFIG_SKGE=m +CONFIG_SKY2=m +CONFIG_SLAB=y +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SMB_FS=m +CONFIG_SMB_NLS_DEFAULT=y +CONFIG_SMB_NLS_REMOTE="cp437" +CONFIG_SMP=y +CONFIG_SND=m +CONFIG_SND_AC97_BUS=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AD1889=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALS300=m +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_AU8810=m +CONFIG_SND_AU8820=m +CONFIG_SND_AU8830=m +CONFIG_SND_AZT3328=m +CONFIG_SND_BT87X=m +# CONFIG_SND_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMIPCI=m +CONFIG_SND_CS4281=m +CONFIG_SND_CS46XX=m +CONFIG_SND_CS46XX_NEW_DSP=y +CONFIG_SND_DARLA20=m +CONFIG_SND_DARLA24=m +# CONFIG_SND_DEBUG is not set +CONFIG_SND_DUMMY=m +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_ECHO3G=m +CONFIG_SND_EMU10K1=m +CONFIG_SND_EMU10K1X=m +CONFIG_SND_ENS1370=m +CONFIG_SND_ENS1371=m +CONFIG_SND_ES1938=m +CONFIG_SND_ES1968=m +CONFIG_SND_FM801=m +CONFIG_SND_FM801_TEA575X=m +CONFIG_SND_FM801_TEA575X_BOOL=y +CONFIG_SND_GINA20=m +CONFIG_SND_GINA24=m +CONFIG_SND_HDA_INTEL=m +CONFIG_SND_HDSP=m +CONFIG_SND_HDSPM=m +CONFIG_SND_HWDEP=m +CONFIG_SND_ICE1712=m +CONFIG_SND_ICE1724=m +CONFIG_SND_INDIGO=m +CONFIG_SND_INDIGODJ=m +CONFIG_SND_INDIGOIO=m +CONFIG_SND_INTEL8X0=m +CONFIG_SND_INTEL8X0M=m +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MIA=m +CONFIG_SND_MIXART=m +CONFIG_SND_MIXER_OSS=m +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MTPAV=m +CONFIG_SND_NM256=m +CONFIG_SND_OPL3_LIB=m +CONFIG_SND_OSSEMUL=y +CONFIG_SND_PCM=m +CONFIG_SND_PCM_OSS=m +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SEQUENCER=m +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TIMER=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB_AUDIO=m +# CONFIG_SND_VERBOSE_PRINTK is not set +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m +CONFIG_SND_VIRMIDI=m +CONFIG_SND_VX222=m +CONFIG_SND_VXPOCKET=m +CONFIG_SND_VX_LIB=m +CONFIG_SND_YMFPCI=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOUND=y +CONFIG_SOUND_BT878=m +CONFIG_SOUND_EMU10K1=m +CONFIG_SOUND_ES1371=m +CONFIG_SOUND_FUSION=m +CONFIG_SOUND_ICH=m +CONFIG_SOUND_MSNDCLAS=m +CONFIG_SOUND_MSNDPIN=m +CONFIG_SOUND_PRIME=m +CONFIG_SOUND_TRIDENT=m +CONFIG_SOUND_TVMIXER=m +CONFIG_SOUND_VIA82CXXX=m +# CONFIG_SPARSEMEM_MANUAL is not set +# CONFIG_SPARSEMEM_STATIC is not set +# CONFIG_SPEAKUP is not set +# CONFIG_SPECIALIX is not set +CONFIG_SPI=y +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_SQUASHFS_VMALLOC is not set +CONFIG_STALDRV=y +CONFIG_STANDALONE=y +CONFIG_STOP_MACHINE=y +CONFIG_STRIP=m +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +# CONFIG_SUNGEM is not set +CONFIG_SUNRPC=m +CONFIG_SUNRPC_GSS=m +CONFIG_SUN_PARTITION=y +CONFIG_SWAP=y +CONFIG_SWIOTLB=y +# CONFIG_SX is not set +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYNCLINK_SYNCPPP=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSFS=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_COMPAT=y +CONFIG_SYSV_FS=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_TIS=m +CONFIG_TCG_TPM=m +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_BIC=y +CONFIG_TELCLOCK=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_TIGON3=m +CONFIG_TIME_INTERPOLATION=y +# CONFIG_TINY_SHMEM is not set +CONFIG_TIPAR=m +CONFIG_TIPC=m +# CONFIG_TIPC_ADVANCED is not set +# CONFIG_TIPC_DEBUG is not set +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +# CONFIG_TMS380TR is not set +CONFIG_TR=y +CONFIG_TULIP=m +# CONFIG_TULIP_MMIO is not set +# CONFIG_TULIP_MWI is not set +# CONFIG_TULIP_NAPI is not set +CONFIG_TUN=m +CONFIG_TUNER_3036=m +CONFIG_TYPHOON=m +CONFIG_UDF_FS=m +CONFIG_UDF_NLS=y +CONFIG_UFS_FS=m +CONFIG_ULI526X=m +CONFIG_ULTRIX_PARTITION=y +CONFIG_UNION_FS=m +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_USB=m +CONFIG_USB_ACECAD=m +CONFIG_USB_ACM=m +CONFIG_USB_AIPTEK=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AN2720=y +# CONFIG_USB_APPLETOUCH is not set +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARCH_HAS_OHCI=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATI_REMOTE=m +CONFIG_USB_ATI_REMOTE2=m +CONFIG_USB_ATMEL=m +CONFIG_USB_AUERSWALD=m +# CONFIG_USB_BANDWIDTH is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_CATC=m +CONFIG_USB_CPADDEV=y +CONFIG_USB_CYTHERM=m +CONFIG_USB_DABUSB=m +# CONFIG_USB_DEBUG is not set +CONFIG_USB_DEVICEFS=y +CONFIG_USB_DSBR=m +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_EAGLE=m +CONFIG_USB_EHCI_HCD=m +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_SPLIT_ISO=y +CONFIG_USB_EMI26=m +CONFIG_USB_EMI62=m +CONFIG_USB_EPSON2888=y +CONFIG_USB_ET61X251=m +CONFIG_USB_EZUSB=y +# CONFIG_USB_GADGET is not set +CONFIG_USB_HID=m +CONFIG_USB_HIDDEV=y +CONFIG_USB_HIDINPUT=y +# CONFIG_USB_HIDINPUT_POWERBOOK is not set +CONFIG_USB_IBMCAM=m +CONFIG_USB_IDMOUSE=m +CONFIG_USB_IRDA=m +# CONFIG_USB_ISP116X_HCD is not set +CONFIG_USB_KAWETH=m +CONFIG_USB_KBD=m +CONFIG_USB_KBTAB=m +# CONFIG_USB_KEYSPAN_REMOTE is not set +CONFIG_USB_KONICAWC=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LIBUSUAL=y +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MON=y +CONFIG_USB_MOUSE=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_SUBSET=m +CONFIG_USB_NET_GL620A=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_OHCI_BIG_ENDIAN is not set +CONFIG_USB_OHCI_HCD=m +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +CONFIG_USB_OV511=m +CONFIG_USB_OV511_DECOMP=m +CONFIG_USB_OV518_DECOMP=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PHIDGETKIT=m +CONFIG_USB_PHIDGETSERVO=m +CONFIG_USB_PODXTPRO=m +CONFIG_USB_POWERMATE=m +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +CONFIG_USB_QC=m +CONFIG_USB_RIO500=m +CONFIG_USB_RT2570=m +CONFIG_USB_RTL8150=m +CONFIG_USB_SE401=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_AIRPRIME=m +# CONFIG_USB_SERIAL_ANYDATA is not set +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CP2101=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_FTDI_SIO=m +CONFIG_USB_SERIAL_FUNSOFT=m +CONFIG_USB_SERIAL_GARMIN=m +CONFIG_USB_SERIAL_GENERIC=y +CONFIG_USB_SERIAL_HP4X=m +CONFIG_USB_SERIAL_IPAQ=m +CONFIG_USB_SERIAL_IPW=m +CONFIG_USB_SERIAL_IR=m +CONFIG_USB_SERIAL_KEYSPAN=m +# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set +CONFIG_USB_SERIAL_KEYSPAN_PDA=m +# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set +# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set +CONFIG_USB_SERIAL_KLSI=m +CONFIG_USB_SERIAL_KOBIL_SCT=m +CONFIG_USB_SERIAL_MCT_U232=m +CONFIG_USB_SERIAL_NAVMAN=m +CONFIG_USB_SERIAL_OMNINET=m +CONFIG_USB_SERIAL_OPTION=m +CONFIG_USB_SERIAL_PL2303=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_TI=m +CONFIG_USB_SERIAL_VISOR=m +CONFIG_USB_SERIAL_WHITEHEAT=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SN9C102=m +CONFIG_USB_SPCA5XX=m +CONFIG_USB_STORAGE=m +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_DATAFAB=y +# CONFIG_USB_STORAGE_DEBUG is not set +CONFIG_USB_STORAGE_DPCM=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STV680=m +CONFIG_USB_SUSPEND=y +CONFIG_USB_SYNAPTICS=m +CONFIG_USB_TEST=m +CONFIG_USB_TOUCHSCREEN=m +CONFIG_USB_TOUCHSCREEN_3M=y +CONFIG_USB_TOUCHSCREEN_EGALAX=y +CONFIG_USB_TOUCHSCREEN_ITM=y +CONFIG_USB_TOUCHSCREEN_PANJIT=y +CONFIG_USB_UHCI_HCD=m +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +CONFIG_USB_VICAM=m +CONFIG_USB_W9968CF=m +CONFIG_USB_WACOM=m +CONFIG_USB_XPAD=m +CONFIG_USB_YEALINK=m +CONFIG_USB_ZC0301=m +CONFIG_USB_ZD1201=m +CONFIG_VERSION_SIGNATURE="Ubuntu Unofficial" +CONFIG_VFAT_FS=m +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VGA_CONSOLE=y +CONFIG_VIA_RHINE=m +# CONFIG_VIA_RHINE_MMIO is not set +CONFIG_VIA_VELOCITY=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT848_DVB=y +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BUF=m +CONFIG_VIDEO_BUF_DVB=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CPIA=m +CONFIG_VIDEO_CPIA2=m +CONFIG_VIDEO_CPIA_PP=m +CONFIG_VIDEO_CPIA_USB=m +CONFIG_VIDEO_CQCAM=m +CONFIG_VIDEO_CS53L32A=m +CONFIG_VIDEO_CX25840=m +CONFIG_VIDEO_CX88=m +CONFIG_VIDEO_CX88_ALSA=m +CONFIG_VIDEO_CX88_DVB=m +CONFIG_VIDEO_CX88_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_CX88_VP3054=m +CONFIG_VIDEO_DEV=m +CONFIG_VIDEO_DPC=m +CONFIG_VIDEO_EM28XX=m +CONFIG_VIDEO_HEXIUM_GEMINI=m +CONFIG_VIDEO_HEXIUM_ORION=m +CONFIG_VIDEO_IR=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OVCAMCHIP=m +CONFIG_VIDEO_SAA5246A=m +CONFIG_VIDEO_SAA5249=m +CONFIG_VIDEO_SAA6588=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_DVB_ALL_FRONTENDS=y +CONFIG_VIDEO_SAA7134_OSS=m +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SELECT=y +CONFIG_VIDEO_STRADIS=m +CONFIG_VIDEO_TUNER=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBVIDEO=m +CONFIG_VIDEO_V4L1=y +CONFIG_VIDEO_V4L1_COMPAT=y +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_VIDEOBUF=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIRTUAL_MEM_MAP=y +CONFIG_VLAN_8021Q=m +# CONFIG_VLSI_FIR is not set +CONFIG_VORTEX=m +CONFIG_VT=y +CONFIG_VT_CONSOLE=y +CONFIG_VXFS_FS=m +CONFIG_W1=m +CONFIG_W1_MASTER_DS2482=m +CONFIG_W1_MASTER_DS9490=m +CONFIG_W1_MASTER_DS9490_BRIDGE=m +CONFIG_W1_MASTER_MATROX=m +CONFIG_W1_SLAVE_DS2433=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_WAN=y +CONFIG_WANXL=m +CONFIG_WAN_ROUTER=m +CONFIG_WAN_ROUTER_DRIVERS=y +# CONFIG_WATCHDOG is not set +CONFIG_WDC_ALI15X3=y +CONFIG_WINBOND_840=m +CONFIG_WIRELESS_EXT=y +# CONFIG_WLAN_NG is not set +# CONFIG_X25 is not set +CONFIG_XFRM=y +CONFIG_XFRM_USER=m +CONFIG_XFS_EXPORT=y +CONFIG_XFS_FS=m +CONFIG_XFS_POSIX_ACL=y +CONFIG_XFS_QUOTA=y +# CONFIG_XFS_RT is not set +CONFIG_XFS_SECURITY=y +CONFIG_YAM=m +CONFIG_YELLOWFIN=m +CONFIG_YENTA=m +CONFIG_YENTA_ENE_TUNE=y +CONFIG_YENTA_O2=y +CONFIG_YENTA_RICOH=y +CONFIG_YENTA_TI=y +CONFIG_YENTA_TOSHIBA=y +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZISOFS=y +CONFIG_ZISOFS_FS=m +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y --- linux-source-2.6.17-2.6.17.1.orig/debian/config/ia64/vars.mckinley +++ linux-source-2.6.17-2.6.17.1/debian/config/ia64/vars.mckinley @@ -0,0 +1,5 @@ +supported="Itanium II SMP" +target="Geared toward desktop or server systems." +desc="Itanium II SMP" +bootloader="elilo (>= 3.6-1)" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/ia64/vars.itanium +++ linux-source-2.6.17-2.6.17.1/debian/config/ia64/vars.itanium @@ -0,0 +1,5 @@ +supported="Itanium SMP" +target="Geared toward desktop or server systems." +desc="Itanium SMP" +bootloader="elilo (>= 3.6-1)" +provides="rhcs-modules2-1" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/vars.server +++ linux-source-2.6.17-2.6.17.1/debian/config/vars.server @@ -0,0 +1,6 @@ +arch="i386 amd64" +supported="Server" +target="Geared toward server systems." +desc="x86/x86_64" +bootloader="lilo (>= 19.1) | grub" +provides="rhcs-modules2-1, ndiswrapper-modules-1.22" --- linux-source-2.6.17-2.6.17.1.orig/debian/config/vars.generic +++ linux-source-2.6.17-2.6.17.1/debian/config/vars.generic @@ -0,0 +1,6 @@ +arch="i386 amd64" +supported="Generic" +target="Geared toward desktop systems." +desc="x86/x86_64" +bootloader="lilo (>= 19.1) | grub" +provides="ndiswrapper-modules-1.22" --- linux-source-2.6.17-2.6.17.1.orig/debian/control.stub.in +++ linux-source-2.6.17-2.6.17.1/debian/control.stub.in @@ -0,0 +1,97 @@ +Source: linux-source-PKGVER +Section: devel +Priority: optional +Maintainer: Ben Collins +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 3), kernel-package (>= 10.049ubuntu2), module-init-tools, kernel-wedge (>= 2.24ubuntu1), gcc-3.4-hppa64 [hppa], binutils-hppa64 [hppa], gcc-3.4 [hppa], m4, unifdef +Build-Depends-Indep: xmlto, docbook-utils, gs, transfig, bzip2, sharutils + +Package: linux-kernel-devel +Architecture: all +Section: devel +Priority: optional +Depends: build-essential, git-core, gitk, rsync, curl, openssh-client, debhelper, kernel-package, kernel-wedge +Description: Linux kernel hacking dependencies + This is a dummy package that will install all possible packages + required to hack comfortably on the kernel. + +Package: linux-source-PKGVER +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version PKGVER with Ubuntu patches + This package provides the source code for the Linux kernel version PKGVER. + . + You may configure the kernel to your setup by typing "make config" and + following instructions, but you could get ncursesX.X-dev and try "make + menuconfig" for a jazzier, and easier to use interface. There are options + to use QT or GNOME based configuration interfaces, but they need + additional packages to be installed. Also, please read the detailed + documentation in the file + /usr/share/doc/linux-source-PKGVER/README.headers.gz. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc-PKGVER +Architecture: all +Section: doc +Priority: optional +Provides: linux-doc-2.6 +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Depends: coreutils | fileutils (>= 4.0) +Description: Linux kernel specific documentation for version PKGVER + This package provides the various readme's in the PKGVER kernel + Documentation/ subdirectory: these typically contain kernel-specific + installation notes for some drivers for example. See + /usr/share/doc/linux-doc-PKGVER/Documentation/00-INDEX for a list of what + is contained in each file. Please read the Changes file, as it contains + information about the problems, which may result by upgrading your + kernel. + +Package: linux-headers-PKGVER-ABINUM +Architecture: amd64 i386 powerpc sparc ia64 hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version PKGVER + This package provides kernel header files for version PKGVER, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-PKGVER-ABINUM/debian.README.gz for details + +Package: linux-libc-dev +Architecture: amd64 i386 powerpc sparc ia64 hppa +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1) +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6) +Provides: linux-kernel-headers +Conflicts: linux-kernel-headers +Replaces: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. + +Package: linux-image-kdump +Architecture: i386 +Depends: kexec-tools (>= 1.101-2ubuntu1) +Description: Linux Kernel Crash Dump Image. + This package provides a kernel suitable for use as a crash dump kernel. + It's main purpose is to be booted after the main kernel has crashed, in + order to capture crash information. + . + Kernel Crash Dump is only available on i386, x86_64(amd64) and PowerPC64 + systems. + . + Please read the information in /usr/share/doc/linux-image-kdump/ + for how to setup this kernel. --- linux-source-2.6.17-2.6.17.1.orig/debian/changelog +++ linux-source-2.6.17-2.6.17.1/debian/changelog @@ -0,0 +1,8634 @@ +linux-source-2.6.17 (2.6.17.1-50.50) edgy-proposed; urgency=low + + [NOTES] + + * This is the initial release of a line of kernels for edgy-proposed + updates. This is meant as a means of testing non-security patches more + thoroughly prior to releasing into mainline edgy. + * The debian/changelog for edgy-proposed-updates kernel is rolling. This + means that there will only even be the one changelog for the latest + version, and it will only contain those changes that differ from the + edgy proper kernel. Once changes are merged into edgy mainline, they + will be removed from this top level rolling changelog group. + + [Kyle McMartin] + + * debian: Update configs for SCSI_QLA_FC on i386,amd64,ia64,sparc,powerpc + * hdaps: Backport support for ThinkPad T60/T60p/X60 + - Upstream GIT-SHA: 0f6c840d774d669baf4727c0499ab0674826429f + - Fixes #68627 + * sound/pci/hda: Fix thinko in patch_atihdmi.c + * Merge in dapper-updates 2.6.15-50.60 fixes, see rolling changelog + for that version below. + * sound/pci/hda: Fix mismerge in patch_sigmatel.c + * sound/pci/hda: Fix typedefs in hda_intel.c + * debian/d-i: Add bnx2.ko to nic-modules + * sky2: Backport v1.9 + - Fixes #68338 + * sky2: 88E803X transmit lockup + - Fixes #68338 + * tg3: Backport v3.69 + * forcedeth: Backport v0.59 + * ipw3945: Backport v1.1.3 + * fs: Revert "Update for proper nfsv4 support" which causes no end + of problems. + + [Fabio Massimo Di Nitto] + + * ocfs2: fix page zeroing during simple extends + - Fixes #70983 + * ocfs2: cond_resched() in ocfs2_zero_extend() + - Fixes #70983 + * debian/d-i: Update scsi-modules to include qlogicpti + + [Chuck Short] + + * usb: List Sony Ericsson P990i in unusual_devs.h + - Upstream GIT-SHA: 6a9fb060393e04a79973f95925f4f6587442e9c7 + - Fixes #62469 + * nfs: Fix FTBFS in NFS when CONFIG_NFS_V4 is off + - Upstream GIT-SHA: d75d54147db9db5194040bd1c5022df6ba36ee48 + - Fixes #64423 + * debian: Enable CONFIG_SCSI_QLA_FC on i386/amd64 + - Fixes #67463 + * sound: Backport ATI RS690 HDMI audio support + - Upstream GIT-SHA: 5b15c95f889c7bc43cb759c27211c597c0ad9f05 + - Fixes #69072 + * hid-input: Backport support for Apple Mighty Mouse + - Upstream GIT-SHA: a82e49b8aeb9f8dafdf6cf2e617c8b95bf056257 + - Fixes #70478 + * i2c-nforce2: Backport support for MCP51 and MCP55 + - Upstream GIT-SHA: 5c7ae65899a4c5b05b6277f856018d1eeeb98907 + - Fixes #57139 + * usb: Add Nokia N80 to unsuual devs + - Upstream GIT-SHA: d5681fe8110e1169902df37a8fd8bd01c2b7810e + - Fixes #62799 + * cx88: Backport support for pcHDTV HD5500 ATSC/QAM + - Upstream GIT-SHA: da215d22d82d547c5312f61ac9881ad571e67eea + - Fixes #63315 + * usb: Add Novatech NV-902W id to rt2570 + - Fixes #61797 + + -- Kyle McMartin Mon, 8 Jan 2007 22:56:32 -0500 + +linux-source-2.6.17 (2.6.17.1-10.35) edgy-security; urgency=low + + [Kyle McMartin] + + * sky2: 88E803X transmit lockup + - Upstream GIT-SHA: 470ea7eba4aaa517533f9b02ac9a104e77264548 + + -- Kyle McMartin Thu, 4 Jan 2007 12:19:04 -0500 + +linux-source-2.6.17 (2.6.17.1-10.34) edgy-security; urgency=low + + [Ben Collins] + + * ia64: Include asm-ia64/ustack.h in headers_install. Fixes FTBFS for other + packages. This matches 2.6.18+ + - Fixes #66253 + * pata_marvell: Backported driver to support newer Marvell ATA chipsets. + Patch tested by bug submitter. Since these chipsets are non-working + already, adding the driver is low-level (touches no other code) risk. + - Fixes #67012 + * Update squashfs from v3.0 to v3.1-r2. Fixes these bugs affecting edgy + (from CHANGES): + - A rare SMP bug which occurred when simultaneously acccessing multiply + mounted Squashfs filesystems has been fixed. + - Kernel code stack usage has been reduced. This is to ensure Squashfs + works with 4K stacks. + * ide/pci/generic: Add all_generic_ide module option. This is a no-op + patch. Only affects people who know to use this option. Option existed + already, but didn't work because we compiled this as a module instead + of into the kernel. + * [SPARC64]: Fix futex_atomic_cmpxchg_inatomic implementation. + Upstream GIT-SHA: c7fed9d75074f7c243ec8ff2c55d04de2839a6f6 + - Malone #68266 + * qla2xxx: Re-enable this module, and add firmware for it. + + [Kyle McMartin] + + * CVE-2006-5751: bridge: fix possible overflow in get_fdb_entries + * CVE-2006-5701: squashfs: Fix various fsfuzz triggered crashes + * CVE-2006-5649: [POWERPC] Make alignment exception always check + exception table + * CVE-2006-5648: [POWERPC] Implement PowerPC + futex_atomic_cmpxchg_inatomic() + * CVE-2006-5619: [IPV6]: fix lockup via /proc/net/ip6_flowlabel + * CVE-2006-5173: x86: save/restore eflags in context switch + * CVE-2006-4572: [NETFILTER]: Fix ip6_tables protocol bypass bug + * CVE-2006-4572: [NETFILTER]: Fix ip6_tables extension header bypass bug + + [Upstream Kernel Changes] + + * dvb-core: Proper handling ULE SNDU length of 0 (CVE-2006-4623) + * NFS: Fix a potential deadlock in nfs_release_page + * SUNRPC: avoid choosing an IPMI port for RPC traffic + * LOCKD: Fix a deadlock in nlm_traverse_files() + * NFS: More page cache revalidation fixups + * Backport: Old IDE, fix SATA detection for cabling + * ext3 sequential read regression fix + * sysfs: remove duplicated dput in sysfs_update_file + * V4L: Fix msp343xG handling regression + * DVB: cx24123: fix PLL divisor setup + * SPARC64: Fix serious bug in sched_clock() on sparc64 + * Fix sparc64 ramdisk handling + * PKT_SCHED: cls_basic: Use unsigned int when generating handle + * xirc2ps_cs: Cannot reset card in atomic context + * Add PIIX4 APCI quirk for the 440MX chipset too + * MMC: Always use a sector size of 512 bytes + * ahci: do not fail softreset if PHY reports no device + * Input: logips2pp - fix button mapping for MX300 + * Linux 2.6.17.14 + + -- Ben Collins Wed, 25 Oct 2006 02:02:17 -0400 + +linux-source-2.6.17 (2.6.17-10.33) edgy; urgency=low + + * Fix build failure + + [2.6.17-10.32] + + * ia64: Fix merge error for CVE-2006-3741. Caused a FTBFS. + * Re-add ipw2200 quiesce patch. + * Revert "usb/unusual: Add Domain Tech as GO_SLOW". + * general: Quieten some more messages. + * prism2: Commented out devices from MODULE_DEV_TABLE that are supported by + hostap. + - Malone #62685 + * pcbios: Cherry pick fix for PCBIOS PCI probing: + Upstream GIT-SHA: 954c0b7cd5b9aaa11fb67a0c011fcb5e5897385a + - Malone #60231 + * sdhci: Cherry pick fix for some devices, avoid reset in certain cases. + Upstream GIT-SHA: 8a4da1430f7f2a16df3be9c7b5d55ba4e75b708c + - Malone #63553 + * ahci: Add Intel 2680 device. + - Malone #64433 + * hdaps: Re-implement lost dapper patch for y-only axis swapping. Add X41 as + y-only. + - Malone #58742 + * Enable all V4L1 modules. + - Malone #58742 + + -- Ben Collins Wed, 11 Oct 2006 17:05:07 -0400 + +linux-source-2.6.17 (2.6.17-10.31) edgy; urgency=low + + * wlan-ng: Add init/exit module calls so that things get initialized + properly. + * sparc: Enable hpt366 ide driver. + * Merge 2.6.17.11 -> 2.6.17.13 + * usb/unusual: Add Domain Tech as GO_SLOW + - Malone #61235 + + [Security] + + * CVE-2006-2935: Buffer overflow in dvd_read_bca() function. + - Already fixed. + * CVE-2006-3468: Possible DoS when using ext3 and nfs. + - Already fixed. + * CVE-2006-3741: Incorrect file descriptor reference counting in perfmon on + ia64. + - Upstream GIT-SHA: b8444d00762703e1b6146fce12ce2684885f8bf6 + * CVE-2006-3745: sctp potential local privilege escalation + - Already fixed. + * CVE-2006-4093: PPC HID0 DoS + - Already fixed. + * CVE-2006-4145: Fix possible UDF deadlock and memory corruption. + - Already fixed. + * CVE-2006-4535: fix for CVE-2006-3745 sctp fix from dave miller. + - Already fixed. + * CVE-2006-4538: binfmt_elf: fix checks for bad address + - Already fixed. + * CVE-2006-4997: IP over ATM clip_mkip dereference freed pointer. + - Upstream GIT-SHA: fe26109a9dfd9327fdbe630fc819e1b7450986b2 + + -- Ben Collins Tue, 10 Oct 2006 18:07:31 -0400 + +linux-source-2.6.17 (2.6.17-10.30) edgy; urgency=low + + * ata_piix: Revert to dapper version of driver, known working. + - Malone #63516 + * intel-agp: Backport to support newer AGP. + * i915-drm: Add PCI ID's for newer 965 chipsets. + * libata: Do not set power state to D3hot when suspending devices. Fixes + suspend on some toshiba laptops. This fix was lost from dapper, and causes + a regression. + * Fix sony and toshiba hotkeys to work with newer acpi API. Patch from + mjg59. + - Malone #61981 + - Malone #61515 + * Quieten some needless KERN_ERR's to KERN_WARN's. + + -- Ben Collins Fri, 6 Oct 2006 12:17:06 -0400 + +linux-source-2.6.17 (2.6.17-10.28) edgy; urgency=low + + * prism2: Fix packed attribute so p80211 works. + + -- Ben Collins Thu, 5 Oct 2006 15:59:00 -0400 + +linux-source-2.6.17 (2.6.17-10.27) edgy; urgency=low + + [Ben Collins] + + * prism2: Disable plx and pcmcia prism2 support on all but x86/x86_64. + Was causing build failures. + * post-install: Copy zd1211 firmware into it's own subdirectory like the + driver expects. + - Malone #60222 + * bcm43xx: Driver updates to fix stability and signal issues. + Hopefully fixes the following bugs: + - Malone #58638 + - Malone #61388 + - Malone #62190 + + -- Ben Collins Tue, 3 Oct 2006 22:30:07 -0400 + +linux-source-2.6.17 (2.6.17-10.26) edgy; urgency=low + + * make promcon driver init a boot option: + - fix Niagara cpu soft lockups. (Closes Ubuntu: #61821) + + The generic PROM_CONSOLE driver is just too slow and blocks IRQ during + normal output. Ideally the PROM_CONSOLE should be used only if we fail + to find the correct driver for a certain hardware. In reality when built in + it will be always used as default. With this workaround, we init the driver + only on specific requests. + The pro is that all machines that have a working console driver will notice + a speed up at boot. The cons is that machines for which we have no driver + will need to wait for one or boot with "forcepromconsole" boot option. + + -- Fabio M. Di Nitto Mon, 02 Oct 2006 06:48:54 +0200 + +linux-source-2.6.17 (2.6.17-10.25) edgy; urgency=low + + * amd64-agp: Revert to previous version. Doesn't need k8-nb (which was the + cause of the crash). Remove k8-nb. + - Malone #62547 + * sparc64: Always offset ramdisk_image physical by KERNBASE. + - Malone #61820 + * crash-helper: Because of the weirdness of deleting a file in the kernel, I + think it's best to just ask the helper to do it when it needs to. Now + passes REMOVE_CORE=1 when it should do that. + - Malone #62972 + * linux-wlan-ng: Update to 0.2.5, and re-enable drivers. prism2 was disabled + until now because it would not compile on 2.6.17 kernels. + - Malone #53748 + * This upload is going to be in .orig.tar.gz format, like what was done for + dapper. + + -- Ben Collins Thu, 28 Sep 2006 07:47:26 -0400 + +linux-source-2.6.17 (2.6.17-10.24) edgy; urgency=low + + * agp_amd64: Disable. Causes crashes, and isn't needed right now. + * i386: Disable -server udeb's and enable -generic. + * ide: JMicron module added. The 2.6.18 JMicron stuff would only work if + you are able to fiddle with the BIOS a bit. The JMicron module replaces + most of this fiddling with a native driver. Works for the 366 and 363 eval + boards that JMicron provided me. SATA (ahci) appears to be working as well. + + -- Ben Collins Fri, 22 Sep 2006 17:27:06 -0400 + +linux-source-2.6.17 (2.6.17-9.23) edgy; urgency=low + + [Ben Collins] + + * ABI bump: + - rt2x00 changes + - powerpc nvram built-in + * ppc: Build nvram into kernel (CONFIG_NVRAM=y). + * crash-helper: Fix oops. Cleanup compile warnings. + - Malone: #60644 + * rt2x00: Update to latest CVS, rt2x00-cvs-2006091910. + * zd1211rw + - Revert 3209efac3d5ed215740d4f3b1fcafaf942ec96f5 + - Update zd1211 firmware: v1.2. + * i386/io_apic: Fix timer_irq_works detection. + - Malone: #53910 + * bcm43xx: Implement signal stats (patch sent to me, pulled from upstream). + * hid-core: Add noget quirk for turbox keyboard. + * agp/drm: Backport from 2.6.18. Clean merge. One-liner change to get it all + to compile. + * libata: Do not error out when ent->irq == 0. This was causing a failure on + G5 powermac's. I think this line came from the libpata patch. + - Malone: #60686 + * e1000: Disable MSI by default. Allow it to be enabled with module param. + Some chip implementations seem to not work well with MSI. + - Malone: #56885 + * bcm43xx: Re-add PCIE device id's. + * ahci/ide-generic: Cherry picked fix for JMicron IDE support. + - Upstream GIT-SHA: 15e0c694367332d7e7114c7c73044bc5fed9ee48 + * kdump: Disable on amd64 and ppc64, where it doesn't seem to work. + + [Matthew Garrett] + + * ipw2100: Add option to disable C3/C4 state transitions. + * nsc-ircc: Default to dongle type 9 on IBM hardware. + + -- Ben Collins Tue, 19 Sep 2006 08:20:30 -0400 + +linux-source-2.6.17 (2.6.17-8.22) edgy; urgency=low + + [Ben Collins] + + * Synced to dapper-proposed-updates. + - HEAD GIT-SHA: d6b2e2a87f154e41d5fd871310802759804c9bd2 + * ahci: Apply suspend/resume patch from Fedora: + - http://cvs.fedora.redhat.com/viewcvs/rpms/kernel/FC-5/linux-2.6-sata-ahci-suspend.patch + - Malone: #59851 + * zd1211rw: Fix firmware naming + - Malone: #60222 + * rt2x00-legacy: Update all drivers to latest betas. + - Malone: #60282 + * e1000: Ignore eeprom checksum being bad, make it a warning. + - Malone: #60388 + * ipv4/tcp: Revert expansion of tcp buffers (upstream patch reverted). + - Reverted GIT-SHA: 7b4f4b5ebceab67ce440a61081a69f0265e17c2a + - Malone: #59331 + * Disable EDAC drivers. + - Malone: #58193 + + [Matthew Garrett] + + * Merged 154 commits from ACPI upstream. + * Merged 25 commits for SDHCI. + * Merged 11 commits for SWSUSP. + * Applied 5 more patches related to SWSUSP. + * Merged 3 commits for IDE suspend/resume. + + [Fabio M. Di Nitto] + + * Update gfs2/dlmfs. + * Port gfs to the new gfs2 lm_interface. + + -- Ben Collins Mon, 18 Sep 2006 11:44:34 -0400 + +linux-source-2.6.17 (2.6.17-7.20) edgy; urgency=low + + * Fix ia64 header, build failure. + * Fix small bug in header-install that caused buildd's to fail. + + [2.6.17-7.19] + + Changes by Ben Collins + + * Bump ABI. + * Sync with dapper: HEAD GIT-SHA 72fe207ae3ed56d8de8d72fd554f668157be9f66 + * Merge 2.6.17.6 -> 2.6.17.11. + - See ChangeLog-2.6.17 for list of extensive changes in this merge. + * bcm43xx: Reimplement 0x900 chip id (common_new) + - Malone: #56237 + * bcm43xx: Sync to 2.6.18 version (minus hwrng). + * speakup: Implement auto synth module loading when writing synth name to + proc file. + * Implement /proc/version_signature file. Used for bug reporting, and + possible can be used by sleep/resume code. + * Changes in kernel targets: + - i386 + - Remove k7 and 686 targets + - Create a new generic target, that is basically like k7/686 but aimed + at 586 and better. + - amd64 + - Rename amd64-generic and amd64-server to just generic and server. + - Remove the k8 and xeon targets. + - ia64 and hppa + - Remove non-smp versions of kernels. + * speakup: Add patch to map "ctrl spk key_8" to cursor toggle. + * powerpc: Patch from BenH to fix memory corruption when bootx is booted + with ramdisk. + - Malone: #50746 + * mrv8k: Remove. This driver doesn't really work. Use ndiswrapper instead. + * ide-cs: Disable. Buggy. + * pata_pcmcia: Enable to replace ide-cs. Add set_mode callback. + * headers: Include ufs_fs headers (fixes silo build). + * e1000: Update to driver in 2.6.18 for improved support of new Intel + chipsets. + * myri10ge: New driver from 2.6.18: Myricom Myri-10G Ethernet + * suspend: Diable PM's handling of console switching. + - Malone: #56591 + * nfs: Update for nfsv4 code. + - Malone: #57543 + * ipw2200: Sync to 2.6.18 version. + * Undefine ATA_ENABLE_PATA. It changes the way some ata modules act, and + isn't really needed. + * Disable all PATA drivers (except pata_pcmcia). + + Changes by Matthew Garrett + + * TIFM secure digital driver (replaces fudged TI support in sdhci driver). + * SMAPI support for thinkpads. + + Changes by Fabio M. Di Nitto + + * ndiswrapper: fix Makefile to generate proper shell .h.cmd files. + * update dlmfs to latest code in gfs2-2.6.git. + * update gfs2 to latest code in gfs2-2.6.git. It can now mount in lock_dlm + mode! + * update gfs to latest code in cvs. + + -- Ben Collins Tue, 5 Sep 2006 12:10:22 -0400 + +linux-source-2.6.17 (2.6.17-6.18) edgy; urgency=low + + * Fixed speakup-modules udeb's to have a description. + + Changes by Ben Collins + + * drivers/macintosh: Add mol/ to Makefile. It wasn't getting built since the + 2.6.17 update. + * Merge dapper changes (includes dazuko module). + * Disable HD LED BLINK on ppc. + * Enable kprobes. + * ndiswrapper: Update to v1.22, also actually build this sucker. + * zd1211: Remove external driver and copy 2.6.18 version of driver. + * ieee80211: Update for zd1211 driver from 2.6.18. + * ipw3945: Update to 1.1.0. + * sound/aoa: Update from latest alsa. Also fixed codecs/Kconfig to select + I2C*. + * bcm43xx: Add 4312 and 4319 PCI id's lost from dapper. + - Malone: #53802 + * crashdump_helper: Improvements as per pitti's specs. + * Change linux-kernel-headers name to linux-libc-dev. Provide + linux-kernel-headers for upgrade and compatibility. + * Add missing nic-firmware. In dapper we had this patched into kernel-wedge, + but we wont do that anymore (so we can use stock kernel-wedge). So add it + here. + - Malone: #53141 + * Implement speakup-modules udeb aswell. + + Changes by Fabio M. Di Nitto: + + * Update gfs/gfs2/dlmfs. + + -- Ben Collins Wed, 9 Aug 2006 18:25:04 -0400 + +linux-source-2.6.17 (2.6.17-5.16) edgy; urgency=low + + Changes by Fabio M. Di Nitto: + + * Fix typo in include/linux/Kbuild to install ubuntu extra headers. + + -- Fabio M. Di Nitto Mon, 24 Jul 2006 08:46:41 +0200 + +linux-source-2.6.17 (2.6.17-5.15) edgy; urgency=low + + Changes by Ben Collins + + * Sync 2.6.17.6 + * Implement kdump infrastructure. For currently supported architectures + (amd64, powerpc64, i386) we now build a linux-image-$(ver)-kdump kernel. + * Sync to dapper. + + Changes by Fabio M. Di Nitto: + + * Update gfs2 to the latest git code. + * Update dlmfs to the latest git code. + * Readd gfs1 filesystem. + * Cleanup gfs1/gfs2 headers. + * Export all gfs1/gfs2/dlm headers to userland. + * Readd proc support to gfs1. + * Make sure to use LC_ALL=C when building debian/control.stub to avoid + annoying control diffs due to locale mismatches. + * Export gnbd.h to userland. + * Revert .statfs change change in gfs1/gfs2 to match .17 API and fix an OOPS + when calling df. + + -- Ben Collins Fri, 21 Jul 2006 14:07:23 -0400 + +linux-source-2.6.17 (2.6.17-5.14) edgy; urgency=low + + * Ok, final changes for knot-1. + * Get rid of conflicting scsi/*.h headers in lkh package. These are in + libc6-dev. Oddly enough, they are actually in the glibc source tree. I + thought maybe they were just being copied from lkh, but that's not the + case. + + -- Ben Collins Mon, 17 Jul 2006 12:03:19 -0400 + +linux-source-2.6.17 (2.6.17-5.13) edgy; urgency=low + + * Fix asm symlink in linux-headers packages. + * Fix installation of ABI file. + * Add dlm and gfs2 header files to linux-kernel-headers + * Install all headers produced by header_install in linux-kernel-headers. + + -- Ben Collins Sat, 15 Jul 2006 21:46:00 -0400 + +linux-source-2.6.17 (2.6.17-5.12) edgy; urgency=low + + * Disable LED_TRIGGERS + * Build PDC_STATIC in for hppa. + + (From 5.11) + * Fix BOOTLOADER entry in image control stanzas. + * Fix header-deb target. + + (From 5.8 - 5.10) + * Re-upload for build failures (kernel-package related) + * Cherry pick via irq workaround + * implement linux-kernel-headers package creation. + * Remove pmac subarch for kpkg. + * Add subarch override for sparc -> sparc64 + * Fixup kernel arch and subarch stuff. + * Add unifdef to build-deps, update kernel-{package,wedge} build-dep + versions. + * Add asm-generic to linux-kernel-headers. + * Fixup gnu-host usage for asm directory. The only things that need it are + architectures with multiple asm directories (sparc64 and x86/i386). + + (From 5.7) + * Rework the way we create the control file. + * Enable KEXEC in i386, amd64 and powerpc kernels. + * Revert x86_64 smp-alt code to one from -mm. + * Quieten bz image boot on i386. + - https://wiki.ubuntu.com/QuietenGrub + * ata_piix: Revert changes from Alan's libpata stuff. Was causing crashes on + my xeon. We weren't using the PATA portions in this driver anyway. + + -- Ben Collins Tue, 4 Jul 2006 20:46:45 -0400 + +linux-source-2.6.17 (2.6.17-4.6) edgy; urgency=low + + * Update to 2.6.17.3 + * Updates from dapper. + * powerpc: Re-enable ADB (not sure how that got turned off). + - Malone #50976 + * Fix echo3g to include interrupt.h instead of irq.h, which caused a + conflict, and build failure on sparc64. + * ata_piix: Disable PATA support for now. + * sound/sparc/amd7930: Revert alsa updates. It was mainly changes to use new + prom/irq mechanisms for sparc that are only in 2.6.18-git. + + -- Ben Collins Tue, 4 Jul 2006 20:34:01 -0400 + +linux-source-2.6.17 (2.6.17-4.5) edgy; urgency=low + + * Synced to dapper. + * Enable Some SCSI-PATA drivers. These double for a few ide-pci drivers. + They will be blacklisted by default, but you can test them by fiddling + with the blacklist with /etc/modprobe.d/blacklist-pata and regenerating + your initramfs. The following modules are enabled: + - pata_amd: replaces amd74xx + - pata_atiixp: replaces atiixp + - pata_cs5530: replaces cs5530 + - pata_cs5535: replaces cs5535 + - pata_hpt34x: replaces hpt34x + - pata_netcell: was handled by ide-generic + - pata_ns87410: was handled by ide-generic + - pata_sil680: replaces siimage + - pata_via: replaces via82cxxx + * Bump module-init-tools depends so we make sure we get the blacklist for + pata modules. + * Get rid of scsi_transport_spi2. Was left over from dapper for aic7xxx + module. + * ABI bump, due to above change. + * Remove remnants of spi2 from aic7xxx module, to fix failure of module + loading. + * powerpc: Make i2c-powermac built-in. Should keep people from having too + many problems when switching to snd_aoa. + * Make CFQ the default scheduler for desktop (normal) kernels. The server + kernels remain DEADLINE. This is in advance of the cfq-by-default spec + being approved, but in reality, this needs to happen regardless. + * Sound: + - Synced to alsa-current git. + - Pulled in remaining ac97 commits from dapper that are not in alsa + upstream yet + + -- Ben Collins Sun, 2 Jul 2006 23:41:23 -0400 + +linux-source-2.6.17 (2.6.17-3.4) edgy; urgency=low + + * Re-upload for FTBFS + * Missing bzip2 for build-depends. However, it was needed for + build-depends-indep. Split build-depends correctly for indep and add + bzip2. + + Changes by Ben Collins + + * Update to 2.6.17 final, further kernel updates will mainly be bug fixes. + * ipw3945: Update to 1.0.5. Fix Kconfig so it actually builds. + * speakup: Integrated userspace side and build as modules everywhere. + * Implement crashdump helper. + * The mondo hdrinstall2 git merge. Didn't use git for this, but it's all + there. + * Added parisc patches. My A500 should boot now. This should also fix some + problems like ipv6.ko not being loadable. + * Merge dapper updates. + + -- Ben Collins Wed, 28 Jun 2006 21:18:11 -0400 + +linux-source-2.6.17 (2.6.17-2.2) edgy; urgency=low + + Changes by Ben Collins + + * Obvious sync to upstream-linux git. + * Syncs from dapper + * Lots of MODPOST warning fixes. + * usbvideo: Fix Kconfig so usbvideo.ko gets built. + * zd1211: Fix usage of file operations. + * dev_acpi: Include smp_lock.h so we get the correct declerations for + {lock,unlock}_kernel. + * toshiba_acpi: Add legacy isa defines. + * Sync ieee1394 git (these are updates targetted at 2.6.18, because they + missed the 2.6.17 window). + * ndiswrapper: Upgrade from 1.8 to 1.17. + * Setup easier build system where debian/control is auto-generated from info + in debian/changelog. This allows easier ABI bumps, but the real benefit is + easier custom builds for users who don't understand the ABI system and how + to edit everything. + * Update gfs2 from git. + * Enable CONFIG_REGPARM (finally) on i386. This should have been the default + a long time ago. + + Changes by David Miller + + * sparc64: smp_tune_scheduling(), to adjust max_cache_size for sparc64 + systems, so that the scheduler properly tunes for migration_cost. + + Changes by Fabio M. Di Nitto + + * Remove gfs1 100%. + * Provides: rhcs-modules2-1 + * Sync with latest GFS2 + + -- Ben Collins Thu, 15 Jun 2006 22:23:32 -0400 + +linux-source-2.6.17 (2.6.17-1.1) edgy; urgency=low + + Welcome to the wonderful world of the Edgy Eft kernel. + + Changes by Ben Collins + + * Merge 2.6.17-git + * Merge gfs2-git (remove gfs). + * unionfs: Update to 1.1.4 (current version failed to build in this kernel). + * Lots of i_sem -> i_mutex changes (fs layer). + * Lots of MODULE_PARM -> module_param changes (all over, mostly our external + modules). + * Disable CONFIG_SCSI_SATA_ACPI until it's forward ported. + * Disable PRIMS2 until it can be fixed to compile. We only need PRISM2_USB + anyway, since hostap takes care of most others. + * Major reversions to stock code: + - libata + - parisc + - sound, except snd-powermac + - acpi + - i386 SMP Alternatives, except config option to disable/enable it by + default. + - ieee80211_1_1_13 stack (purged). + * RaLinkTech: + - Added rt61 and rt73 firmware. + - Added rt2x00 drivers, but not enabling most, just rt61 and rt73. rt2500 + and rt2400 are not stable yet. + * Include .kernelrelease file in linux-headers packages. + * Update adm8211 driver to latest version. + * Update zd1211 to v2.6.0.0, remove unneeded mawk build-dep as a result. + * Switch all desktop targets to HZ=250 and PREEMPT_VOLUNRARY, instead of + HZ=1000 and PREEMPT. + + -- Ben Collins Thu, 18 May 2006 18:45:39 -0400 + +linux-source-2.6.15 (2.6.15-50.60) dapper-proposed; urgency=low + + [NOTES] + + * This is the initial release of a line of kernels for dapper-proposed + updates. This is meant as a means of testing non-security patches more + thoroughly prior to releasing into mainline dapper. + * The debian/changelog for dapper-proposed-updates kernel is rolling. This + means that there will only even be the one changelog for the latest + version, and it will only contain those changes that differ from the + dapper proper kernel. Once changes are merged into dapper mainline, they + will be removed from this top level rolling changelog group. + + [Kyle McMartin] + + * sound/pci/hda: Fix some ALSA typedefs + * sound/pci/hda: Use old-style IRQ flags in request_irq + + [Ben Collins] + + * ahci: Sync with edgy PCI list (add some ATI id's). + * scsi: Ignore devices that fail slave_configure. Patch from bug report + (matches same usage in edgy/2.6.17). + - Malone: #57265 + * i386/io_apic: Fix timer_irq_works detection. + - Malone: #53910 + * e1000: Disable MSI by default. Allow it to be enabled with module param. + Some chip implementations seem to not work well with MSI. + - Malone: #56885 + + [Daniel T Chen] + + * sound/drivers/ Fix element typos in dummy driver. + * sound/pci/hda/: Add missing sub{vendor,device} ids for Intel 915 and + D102GGC boards + * sound/pci/hda/: Fix headphone output for Intel 945 systems using + Sigmatel HDA codec + * sound/pci/ac97/: Fix non-working IEC958 output on ASUS P5P800-VM + * sound/pci/hda/: #42600: Fix silent recording from microphone on Dell + Inspiron 630m (and assorted models) + * sound/pci/ac97/: Fix bad sound quality on VIA VT1617A + * sound/usb/: Properly support non-standard sampling rates in USB audio + driver + * sound/ppc/: #25634: Fix gpio state detection for tumbler + * sound/pci/hda/: Clean up hda-intel.c + * sound/pci/: Fix maestro2 hardware volume control + * sound/pci/rme9652/: Fix firmware autoupdate for hdsp + * sound/pci/: Fix HP-only quirk for HP nc8000 + * sound/pci/hda/: Fix SPDIF subdevice for Realtek HDA codecs + * sound/pci/hda/: Add IDs for LG LW25 laptop with ALC880 HDA codec + * sound/pci/hda/: Fix speaker output on Acer Aspire 5600 (HDA Realtek 883) + * sound/pci/hda/: #59715: Fix headphone volume control for generic + HDA codec parser + * sound/pci/hda/: Add Motorola and Conexant vendor IDs + * sound/pci/hda/: Prefer 24-bit format instead of 20-bit for HDA + * sound/usb/: usb-audio: increase number of packets per URB + * sound/usb/: Add mixer control names for TerraTec Aureon 5.1 MkII USB + * sound/pci/hda/: Add MSI support to HDA Intel + * sound/core/: Fix dereference after free() in snd_hwdep_release() + * sound/pci/hda/: Add ID for Nvidia MCP61 + * sound/pci/hda/: Add IDs for Acer laptops + * sound/pci/hda/: Add IDs for Si3054 codec-based HDA modems + * sound/pci/: Fix MUTE_LED quirk for HP NX 6120 + * sound/pci/: Add HP_MUTE_LED quirk for Dell Latitude D810 + * sound/pci/: Fix HP_MUTE_LED quirk for Dell Inspiron 6000 + * sound/pci/hda/: Backport Sigmatel HDA fixes and ID additions + * sound/pci/hda/: Increase max DMA buffer size to 1024 MB to support + multichannel + * sound/pci/ac97/: Add EAPD hack for MSI L725 + * sound/pci/emu10k1/: Fix reversed argument list in + snd_emu10k1_resume_regs() + * sound/pci/hda/: Fix mic input for STAC92xx HDA codecs + * sound/pci/hda/: Add support for multiple headphone pins + * sound/pci/hda/: Fix suspend/resume for HDA when MSI is enabled + * sound/pci/hda/: One more inverted-call-order fix for pci_disable_msi() + * sound/pci/rme9652/: Add support for RME9632 rev 152 + * sound/isa/: Check kmalloc() return value + * sound/pci/hda/: Fix mic capture with generic parser + * sound/core/: Fix timer correction/calculation + * sound/usb/: Fix analog capture by adding device_setup parameter (affects + notably M-Audio Audiophile) + * sound/usb/: Add multichannel support for Turtle Beach Roadie + * {include/sound,sound/pci/ymfpci}/: Fix swap_rear for S/PDIF passthrough + * sound/pci/hda/: Fix error checks in HDA Realtek and Analog Devices codecs + for setting channel mode + * sound/pci/hda/: Don't fail loading if modem can't be initialised + * sound/pci/hda/: Fix PCM device assignment for Realtek HDA codecs + * sound/pci/hda/: Add support for Medion laptops + * sound/pci/hda/: Add IDs for Asus U5F and Z62F to HDA Analog Devices + * sound/pci/ac97: #42919: Enable audible sound through MSI S250 laptop + speakers + * sound/pci/hda/: Backport support for various Toshiba laptops to HDA + Realtek + * sound/pci/hda/: Backport HDA fixes for MSI availability and polling mode + for CORB/RIRB communication + * sound/pci/hda/: Backport additions for Realtek ALC660, ALC262, and ALC883 + * sound/pci/hda/: Backport support for ASUS HDA models to Realtek ALC861 + * sound/pci/hda/: Add ID for HP q965 to Realtek HDA codec + * sound/core/: Fix snd_pcm_playback_silence() semantics + * sound/pci/hda/: Fix noise on Lenovo A60 + * sound/pci/: #68659: Disable DXS explicitly for 0x1458a002 (VIA-based) + * sound/pci/rme9652/: Fix missing /proc interface for RME HDSP + * sound/pci/rme9652/: Disable precise_ptr by default for RME HDSP + * sound/pci/rme9652/: Add required DDS register support for RME9632 + revisions newer than 152 + * sound/pci/hda/: Add Nvidia HDA MCP67 IDs + * sound/pci/hda/: #68556: Fix model for Samsung R55 XEH 2300 + * sound/usb/: #36788: Add support for Creative SB Live! 24-bit Ext + * sound/pci/ac97/: Don't enumerate {HP,Line} Jack Sense elements for two + models + * sound/pci/hda/: #42600: Fix Dell system detection for STAC9200 + * sound/pci/hda/: Fix two IDs (ASUS M2N-MX & HP xw4400) + + [Steven Walter] + + * drivers/usb/net/atmel/at76c503-rfmd.c: Fix ad-hoc mode + + [Chuck Short] + + * scsi/ahci: Add JMicron support. + - Malone: #57502 + * asus_acpi: Added W3V support. + - Malone: #17125 + * pci: Add VIA PCI quirk for Enhanced/Extnended USB on VT8235 southbridge. + * drivers/ide/: Old IDE, fix SATA detection for cabling + - Malone: #59696 + - Upstream Git-SHA: 1a1276e7b6cba549553285f74e87f702bfff6fac + + -- Kyle McMartin Mon, 20 Nov 2006 15:52:19 -0500 + +linux-source-2.6.15 (2.6.15-27.48) dapper-security; urgency=low + + [Security] + + * CVE-2006-4535: Fix for SCTP SO_LINGER DoS. + - Upstream GIT-SHA: b9ac86727fc02cc7117ef3fe518a4d51cd573c82 + * CVE-2006-4538: ia64 and sparc elf loader memory checking vulnerability. + - Upstream GIT-SHA: 3a459756810912d2c2bf188cef566af255936b4d + + [Ben Collins] + + * Revert GIT-SHA: 5aae548f78f22a7069342fecad3f9e2e8d308c55 + - VIA Southbridge fixups + - Malone: #52649 + * sbp2: Fix for lockup on device insertion. + - Upstream GIT-SHA: 24c7cd0630f76f0eb081d539c53893d9f15787e8 + - Malone: #28647 + * Re-enable sky2 driver, but only for models not supported by the sk98lin + driver. + - Malone: #60271 + + -- Ben Collins Mon, 11 Sep 2006 08:46:07 -0400 + +linux-source-2.6.15 (2.6.15-26.47) dapper-security; urgency=low + + [Security] + + * CVE-2006-3468: Exporting ext3 over NFS vulnerability. + - Upstream GIT-SHA: 2ccb48ebb4de139eef4fcefd5f2bb823cb0d81b9 + * CVE-2006-3745: Buffer overflow in the sctp_make_abort_user() function + of iptables' SCTP module + - Upstream GIT-SHA: 96ec9da385cf72c5f775e5f163420ea92e66ded2 + * CVE-2006-4093: PowerPC HID0 DoS. + - Upstream GIT-SHA: 9a936a2e0526089194159eae31238e36b1c19e74 + * CVE-2006-4145: Fix possible UDF deadlock and memory corruption. + - Upstream GIT-SHA: 7127be29378b1230eb8dd8b84f18d6b69c56e959 + + [Ben Collins] + + * zd1211: Update to latest version of driver + - Malone: #37795 + * sata_mv: Disable MSI by default + - Malone: #55234 + - Upstream GIT-SHA: ddef9bb367b19383df627e388cb4c01c86ddba6c + * p4-clockmod. Lower n60 errata max down to 700Mhz instead of 2ghz. + - Malone: ##51847 + * usb-hub: Always turn on power to hub ports, even if it doesn't support + power switching. + - Malone: #53293 + - Upstream GIT-SHA: 4489a5712b086621a6c3f669057d2996245cd3fb + * unusual_devs: Add 60G Video iPod. + - Malone: #54279 + * usb-core: Rate limit the over-current dev_err message. + - Malone: #55253 + * gamecon: Fix crashes when accessing the device. + - Malone: #55355 + - Upstrea GIT-SHA's (in order applied) + - c7fd018d75cae2b0c1cf03003b38f4c76e3df826 + - 77fc46ca5b331df3fc0ffef24012ba0d51d601b3 + * uhci-hub: Increase port-reset completion delay for HP controllers. + - Malone: #55495 + - Upstream GIT-SHA: ae55717584431761b70215d3d574c13fe97093f2 + * seccomp: Make the TSC disable purely paranoid feature optional, so by + default seccomp returns absolutely zerocost. + - Malone: #52272 + * skge: Update to version in 2.6.17, to obtain fixes and D-Link DGE-530T + support. + - Malone: #55847 + * ide/via82cxxx: Add vt8237a support. + * acpi_sbs: Fix perms on capacity_mode module param. + - Malone: #55806 + * sk98lin: Forward port driver from breezy (known working for sky2). + - Malone: #38865 + * bluetooth: Rate limit SCO packet error message. + - Malone: #39414 + * ieee80211: Fix race in wep/tkip crypt modules. + - Malone: #56894 + * sched: Multi-core scheduler support. + - Upstream GIT-SHA: 1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7 + * dm-bbr: Device-Mapper Bad Block Relocator. This went missing in dapper + (was in breezy). + + [Daniel T Chen] + + * sound/pci/hda: Add IDs for ASUS W6A, A7TC; fix support for HP model + (patch_realtek) + * sound/pci: Fix inaudible sound by default for ENS1371 + * {include/sound,sound/pci/ymfpci}: Fix PM and IEC958 output for ymfpci + * sound/pci/ac97: #42194: Use hp_only quirk for Fujitsu Lifebook C1211D + * sound/pci/hda: Fix sound for Uniwill M31 + * sound/pci/ice1712: Fix typo in sampling rate (16000 not 1600) + * sound/pci/ac97: Fix inaudible sound for LG K1 Express + * sound/pci{,/emu10k1}: Miscellaneous cleanups + * sound/pci/hda: Fix inaudible sound on Sony VAIO AR 11B + * sound/pci/hda: #56576: Fix inaudible sound on Sony VAIO AR 11S + * sound/pci/hda: Backport support for HDA STAC9205 family + + -- Ben Collins Mon, 7 Aug 2006 13:02:48 -0400 + +linux-source-2.6.15 (2.6.15-26.46) dapper-security; urgency=low + + Security: + + * CVE-2006-2934: SCTP conntrack: fix crash triggered by packet without + chunks. + Upstream GIT-SHA: dd7271feba61d5dc0fab1cb5365db9926d35ea3a + + * CVE-2006-2935: cdrom: fix bad cgc.buflen assignment. + Upstream GIT-SHA: 454d6fbc48374be8f53b9bafaa86530cf8eb3bc1 + + * CVE-2006-2936: USB serial ftdi_sio: Prevent userspace DoS. + Upstream GIT-SHA: 224654004ca688af67cec44d9300e8c3f647577c + + Changes by Ben Collins + + * Cherry pick fixes related to incorrect idle time on some processors. This + may also fix the "no timer" errors in MacBook's. + - Malone: #30557 + - GIT SHA's (in order applied): + - 5a07a30c3cc4dc438494d6416ffa74008a2194b3 + - 6eb0a0fd059598ee0d49c6283ce25cccd743e9fc + - d25bf7e5fe73b5b6d2246ab0be08ae35d718456b + - 76b461c21468f41837283b7888d55f1c0671f719 + - bd6633476922b7b51227f7f704c2546e763ae5ed + - 0b5c59a1e41636afa77b90d34e8c394d8d929733 + + * Cherry pick fix for ali ide, broken CD burning with DMA turned on. + - Malone: #53524 + - GIT SHA: 0d8a95efd878920e7f791d5bcfb9b70f107aadda + + * Cherry pick fix for ali ide, broken CD burning with DMA turned on. + - Malone: #53524 + - GIT SHA: 0d8a95efd878920e7f791d5bcfb9b70f107aadda + + * Cherry pick fix for HP laptop batteries. + - Malone: #47561 + - GIT SHA: 49fee981fa98f3c0a21f3d6c8193eddcc15e84e9 + + * Add Anydata device to usb-serial option driver. Disable anydata driver. + - Malone: #38191 + + * Added dazuko 2.2.1 driver. + + * Add RAZr unusual_dev entry. + - Malone: #50859 + + Changes by Daniel T Chen + + * sound/pci/emu10k1: Don't hang when Audigy 2 ZS (cardbus) is removed + * sound/usb: Add quirks for Yamaha USB MIDI devices + * sound/pci/{emu10k1,hda}: Add support for various newer HDA and Audigy + 2 ZS models + * sound/pci: Correct dxs_support entries for various models + * sound/pci/hda: Fix erroneous re-initialisation of pins + * sound/pci/hda: Fix noisy HDA output when switch channel output mode + (patch_{analog,realtek}) + + Changes by David Miller + + * [SPARC64]: Fix typo in pgprot_noncached(). + * [SPARC64]: Fix quad-float multiply emulation. + + -- Ben Collins Wed, 2 Aug 2006 16:59:21 -0400 + +linux-source-2.6.15 (2.6.15-26.45) dapper-security; urgency=low + + Security: + + * Fix patch for CVE-2006-2451. + * CVE-2006-3626: Fix suid root environ files in /proc + - GIT Hashes (in order applied): + - 4a7ac3ab06932949d3069c1811f6f2a310f656c4 + - 1d87a98f9db06b6c7fadd20f13ab092875d53801 + + Changes by Ben Collins + + * usb: Fix oopses on device disconnects + * prism54: Move PCI ID 10b7:6001 from prism54_softmac back to prism54. + - Malone: #38278 + + Changes by Daniel T Chen + + * sound/pci/hda: Fix/add Realtek ALC8{61,8[38]} codecs (hda_codec,patch_realtek) + * sound/pci/hda: Fix MacMini's built-in speaker (patch_sigmatel) + + Changes by Andrew Straw + + * drivers/ieee1394: Fix incorrect video1394 timestamps. + + -- Ben Collins Tue, 11 Jul 2006 16:21:27 -0400 + +linux-source-2.6.15 (2.6.15-26.44) dapper-security; urgency=low + + Security: + + * CVE-2006-0039: Race condition in the do_add_counters + * CVE-2006-2445: run_posix_cpu_timers: remove a bogus BUG_ON() + * CVE-2006-2448: powerpc: Fix machine check problem on 32-bit kernels + * CVE-????-????: IPC: access to unmapped vmalloc area in grow_ary() + * CVE-2006-2451: Fix prctl() DoS and privilege escalation vulnerability. + + Changes by Ben Collins + + * hid: Add 0x0218 to list of powerbook quirks. + * sky2: Update to latest version in linux-2.6.git. + * sata_nv/amd74xx: Add mcp65 ID's. + * Max freq stucks at low freq if reduced by _PPC and sysfs gov access. + - Git-7970e08bf066900efcd7794a1a338c11eb8f5141 + - Malone #36014 + * i8042-x86ia64io.h: Backport some 2.6.17 blacklist entries. + * forcedeth: Update to v0.54 from 2.6.17. + * cx88-dvb: Revert: 3a580f39df8937f54976b2e7ce2ef54294da06f9 + - Malone #33096 + * tulip: Re-add removed PCI id's left to dmfe, just for sparc. + * ipw3945: Update to 1.0.5 + * Enable CPUSETS + - Malone: #50782 + * nsc-ircc: Fix usage of pnp_register_driver() + * megaraid: Update to latest driver + - Malone: #32752 + * Move VIA pci id's from ahci to sata_via. + - Malone: #33030 + + Changes by Chuck Short + + * i8042-x86ia64io: Blacklist IBM 2656. + * via-agp: Add support for PT880ULTRA. + * sundance: Added IP100A chipset support. + * pci/quirks: VIA IRQ fixup should only run for VIA southbridges. + * cdrom: Fix cdrom open + * com20020_cs: Add SoHard SH ARC-PCMCIA card. + * drm: Allow drm detection of new VIA chipsets. + * via-ircc: Fix memory leak. + * acpi/boot: Fix noapic for acpi. + * acpi: Do not abort method execution if asked to release not acquired mutex. + * ati_remote: Fix FILTER_TIME causing multiple button presses. + - Malone #50593 + * CIFS: Fix suspend/resume problem which causes EIO on subsequent access to + - Malone #42583 + + Changes by Daniel T Chen + + * sound/pci/hda: + - Add ID for Samsung X60 Chane (patch_analog) + - Add support for Intel D965 boards using STAC9227 (patch_sigmatel) + * acpi/boot: Requires acpi=off + * hid-core: Fixes irq status on some keyboards and mices. + * sound/isa/sb: Fix potential NULL pointer dereference in + sb8_midi.c::snd_sb8dsp_midi_interrupt() + * sound/pci/ac97: Don't erroneously attempt to create AC97 controls again + * sound/pci: Update default sample rate for MSI K8T Neo2-FI (snd_via82xx) + * sound/pci/ac97: Fix suspend/resume for AD1888 codec (ac97_patch) + * sound/pci/hda: Add id for supported models + - reinstate commit ba42a99e564f63b2d5506a6df0da0b37b2e4774f + fixing audible support for Lenovo 3000 N100-07684JU (patch_analog.c) + * sound/pci/ac97: Add codec ID to Jack Sense blacklist (ac97_patch) + * sound/pci: Add AC97 quirk for Tyan Thunder K8WE (intel8x0) + * sound/pci/hda: Don't use the AD1988A rev.2 workaround on AD1988B chips + * sound/core: #34831: Fix hard freeze with timer {re,}store (timer) + * sound/pci/cs46xx: Fix deadlock inversion in dsp_spos_scb_lib.c::cs46xx_dsp_remove_scb() + * sound/pci/hda: Use the proper codec patch for SigmaTel 922[7-9] (patch_sigmatel) + * sound/pci/hda: Fix missing terminators in AD1988 mixer models (patch_analog) + + Changes by Fabio M. Di Nitto + + * Add sata_mv to sata-modules udeb if available. + + * Add cassini driver to nic-modules udeb if available. + (Closes Ubuntu: #52234) + + Changes by David Miller + + * Proper fix for Niagara memory corruption. + + -- Ben Collins Fri, 7 Jul 2006 12:29:51 -0400 + +linux-source-2.6.15 (2.6.15-25.43) dapper-security; urgency=low + + Changes by Ben Collins + + * bcm43xx dma mask handling (> 1GB memory) + - Add powerpc IOMMU handlers for dma masks + - Sync updates to amd64 IOMMU to handle dma masks + + * Sync ide changes for better flash driver handling (flash isn't removable). + + Changes by David S. Miller + + * [SPARC64]: Temporary workaround for memory corruption on Niagara. + + -- Fabio M. Di Nitto Wed, 14 Jun 2006 11:05:57 +0200 + +linux-source-2.6.15 (2.6.15-24.42) dapper-security; urgency=low + + Changed by Daniel T Chen + + * Fix cs4266 build failure. + + -- Ben Collins Mon, 12 Jun 2006 22:26:24 -0400 + +linux-source-2.6.15 (2.6.15-24.41) dapper-security; urgency=low + + Changes by Ben Collins + + * usb: Enable CONFIG_USB_EHCI_SPLIT_ISO and CONFIG_USB_EHCI_ROOT_HUB_TT + - Malone #28840 + - Malone #49367 + * usb: Enable CONFIG_USB_SUSPEND + * powerpc: Fix for smp clock timer + - Malone #29420 + - Git cherry pick: 0c2aca88bdac4254a13466fb108733d243a118b6 + * powerpc: Enable zilog as a module, and serial core/8250 as modules as + well. + - Malone #36499 + * btsco: Patch to get headset working. + - Maline #48910 + + Changes by Chuck Short + + * speedstep-smi: Allow speedstep-smi to load Thinkpad T20. + - Malone #35044 + + Changes by Daniel T Chen + + * sound/pci/cs46xx: Fix PM support for snd_cs46xx + - Malone #11149 + + Changes by David S Miller + + * [SPARC64]: Avoid JBUS errors on some Niagara systems. + + -- Ben Collins Mon, 12 Jun 2006 12:27:42 -0400 + +linux-source-2.6.15 (2.6.15-24.40) dapper-security; urgency=low + + Changes by Ben Collins + + * psmouse: Total reset for intellimouse. + - Malone #30224 + * powerpc: Add one-liner to fix physical memory mapping on some G3's. + - Malone #34508 + * nsc-ircc: Update to latest code to fix crashes. + - Malone #46947 + * nsc-ircc: Add some IBM thinkpads + * ahci: Add support for JMicron ahci controller. + - Malone #45839 + * acx: Make all TI ACX111's use 1.2.1.34 firmware. + - Malone #30766 + * sky2: Update to latest version, 1.4. + - Malone #38865 (and others) + * rt2500: Update to CVS code, which the maintainer says will fix our SMP + related bugs with this driver. + * PCI: reverse pci config space restore order. Stolen from upstream patch. + This should fix a few resume bugs for hardware that stricly needs to + adhere to PCI specs. MacTel is one of the biggest examples. + * Disable davicom usage in tulip driver to let dmfe module takeover. + - Malone #48287 + * powerpc: Enable MESH and MAC_FLOPPY drivers. + * acpi/ec: Use semaphore instead of spinlock to get rid of missed interrupts + - Malone #39315 + * i386/amd64: Change HZ=1000 to HZ=250. The high frequency was causing high + power consumption on some laptops, and also some latency under certain I/O + loads. + * irda/sir: Fix wait operations in kernel thread. Use proper + wait_event_interruptible_timeout(). + - Malone #45542 + * hid-powerbook: Enable on i386 for MacTels. + * i386: Add Averatec 3200 to list of acpi=noirq dmi matches. + - Malone #48263 + + Changes by David S Miller + + * [SPARC64]: Fix missing fold at end of checksums. + * [SPARC64]: Fix D-cache corruption in mremap. + * [TG3]: Handle Sun onboard tg3 chips more correctly. + + Changes by Fabio M. Di Nitto + + * [debian/config] Enable HUGE_TLB & Co. on sparc64. + + Changes by Daniel T Chen + + * sound/{drivers/opl3,synth/emux}/: Fix port type bits + * sound/pci/ac97/: Add workaround for ASUS A6KM + * sound/pci/hda/: Fix handling of capture controls on ALC882 3/6-stack models + * sound/core/: Fix pcm-draining of capture stream in PCM middle layer + * sound/pci/hda/: Fix init verbs for ALC260 hp model + * sound/usb/: Add workaround for CSR Bluetooth Headphones + * sound/synth/emux/: Fix NULL pointer dereference + * sound/pci/hda/: Fix codec model for HP dc7600 + * sound/pci/ice1712/: Don't use Consumer AC97 for Terratec DMX6fire + * sound/pci/hda/: Add support for more Sony Vaio models + * sound/pci/hda/: Add support for Sigmatel 922[7-9] HDA codecs + * sound/pci/ac97/: Add ThinkPad T41p to Jack Sense blacklist + * sound/pci/: Fix incorrect mixer element name for cmipci + * sound/pci/{cs46xx,hda}/: Fix race in removing device + * sound/pci/hda/: Add HP nx6320 to supported list + * sound/pci: Fix additional races in the irq handler and ioremap() + + Changes by Ryan Lortie + + * snd-hda-intel: fix routing on macbook + * usb-hid: enable Fn key on Macbook keyboard (Intel) + * libata: delay resume to wait for harddrives to spin up + * ich7-sci-en-quirk: poke the SCI_EN bit on Macbook resume + + Security updates + + * CVE-2006-1052: Cherry picked + * CVE-2006-1066: Cherry picked + * CVE-2006-1368: Cherry picked + * CVE-2006-1525: Cherry picked + * CVE-2006-1055: Cherry picked + * CVE-2006-0744: Cherry picked + * CVE-2006-0038: Cherry picked and merged + * CVE-2006-1522: Cherry picked + * CVE-2006-1527: Cherry picked + * CVE-2006-1056: Cherry picked and merged + * CVE-2006-1863: Cherry picked + * CVE-2006-1864: Copied patch and applied + * CVE-2006-1859: Cherry picked + * CVE-2006-1860: Cherry picked + * CVE-2006-2271: Cherry picked + * CVE-2006-2272: Cherry picked + * CVE-2006-2274: Cherry picked + * CVE-2006-2275: Cherry picked + * CVE-2006-1857: Cherry picked + * CVE-2006-1858: Cherry picked + * CVE-2006-2444: Cherry picked + + -- Ben Collins Fri, 9 Jun 2006 12:15:10 -0400 + +linux-source-2.6.15 (2.6.15-23.39) dapper; urgency=low + + Changes by Fabio M. Di Nitto + + * Make sure that all RV350 will get the CHIP_NEW_MMAP flag. + + * Reenable all ABI checkers. + + * Update ABI files to fix FTBFS on i386. + + Changes by David S. Miller + + * Fix severe memory corruption when using sound on sparc64. + + -- Ben Collins Tue, 23 May 2006 07:17:42 -0400 + +linux-source-2.6.15 (2.6.15-23.38) dapper; urgency=low + + * Ignore ABI change on sparc this time around. + * amd64: Update configs. + + -- Ben Collins Mon, 22 May 2006 16:52:46 -0400 + +linux-source-2.6.15 (2.6.15-23.37) dapper; urgency=low + + * Ignore ABI change on sparc this time around. + * amd64: Update configs. + + -- Ben Collins Mon, 22 May 2006 11:52:46 -0400 + +linux-source-2.6.15 (2.6.15-23.36) dapper; urgency=low + + Changes by Ben Collins + + * powerpc64: Enable HUGETLB + * x86,amd64: Build-in rtc and genrtc on all but the 386 kernel. + * sparc: Enable CONFIG_FB_RADEON_I2C and CONFIG_SND_ALI5451. + + Changes by Fabio M. Di Nitto + + * Fix drm/dri/radeonfb crash on ppc with input from Dave Airlie. + + -- Ben Collins Mon, 22 May 2006 10:12:30 -0400 + +linux-source-2.6.15 (2.6.15-23.35) dapper; urgency=low + + This IS the final dapper kernel. There have been many kernels like this, but + this one superceeds them all. The kernel you are about to install is the + hard work of the following people: + + - Fabbione M. Di Nitto + - Matthew Garrett + - Daniel T. Chen + - Chuck Short + + Give them all a big "Thank You" next time you email them or see them on IRC. + If you happen to see them in real life, buy them a beer. Without their + hardwork, your computer would be a wimpering pile circuits with little more + use than as an egg timer to make sure you don't burn your precious + breakfast. + + Changes by Ben Collins + + * ipw3945: Update to latest version, 1.0.3. + * Merge with 2.6.15.7 (This takes care of a lot of CVE's that I haven't + listed here yet). + * sky2/skge/sk98lin: Sync with 2.6.16.13. + * Update drm to 1.0.1, from 2.6.16.13. This reverts the PPC radeon patch + aswell. + * pcmcia: TI PCIxx12 CardBus controller support. + * r1000: New realtek driver. + * irda/sir[41589]: Add small timeout to kthread to reduce load. + * powerpc[30273]: Add BootX support patch. + * bcm43xx: Sync to latest source from wireless git. + * Change lilo/grub Suggests to Recommends. + * sky2: Add patch to fix IRQ masks. + * sound/pcmcia[44283]: PCMCIA sound devices do not depend on ISA. + * VFS: Ensure LOOKUP_CONTINUE flag is preserved by link_path_walk() + - Bug #44783 + * Fix per zone pages, min-zone overflow + - Bug #44782 + * asus_acpi: Disable extraneous error reading LCD status. + * forcedeth: Let the driver work when no PHY is found. This matches the + breezy behavior. + - Bug #45257 + + Changes by Matthew Garrett + + * acpi/sony: Add FN hotkey support + * pcmcia/yenta[43881]: Fixup the subordinate number parent bridge of yenta Cardbus + Bridges + * imacfb: Disable if EFI is not available + * vga16fb: Use 640x480 on certain machines. Specifically Apple and some Sony + laptops. + * PCI: MSI(X) save/restore for suspend/resume. + + Changes by Daniel T Chen + + * sound/pci: Add hp_only quirk for Dell D800 laptops + * sound/pci/ca0106: Fix error handling for nonexistent mpu401 interface + (ca0106 driver) + * sound/pci: + - Revert to hp_mute_led for HP n*8*0 laptops + - Add hp_only quirk for another Dell laptop model + * sound/pci/hda: + - Use hp model for all HP laptops with AD1981HD codec + - Fix support for Thinkpad *60s (patch_analog.c) + * sound/pci: Fix possible OOPS with ALI5455 SPDIF-in + * sound/pci/hda: Fix master mute switch on Vaio laptops using STAC7661 + HDA codec + * sound/pci: Add Dell Inspiron 6000 to hp_only quirk list + * sound/bluetooth: Fix suspend/hibernate in snd-bt-sco driver + * sound/pci/hda: Really merge patch_realtek.c from upstream + alsa-driver 1.0.11 + * sound/pci/ice1712: Backport fixes and cosmetic cleanups from alsa-driver + 1.0.11 + * sound/core: Minor optimisations from alsa-driver 1.0.11 + + Changes by Fabio M. Di Nitto + + * Upstream informs us about 2 critical bugs in our cluster modules: + - Update cman and dlm. + * Backport inotify syscalls to hppa. + + Changes by Dave Airlie + + * DRM backport patches: + - fixup r300 scratch on BE machines + - add new radeon PCI ids.. + - read breadcrumb in IRQ handler + - fixup i915 breadcrumb read/write + - fixup improper cast. + - rationalise some pci ids + - Add general-purpose packet for manipulating scratch registers (r300) + - rework radeon memory map (radeon 1.23) + - update r300 register names + - fixup PCI DMA support + + -- Ben Collins Thu, 18 May 2006 10:00:24 -0400 + +linux-source-2.6.15 (2.6.15-22.34) dapper; urgency=low + + Changes by Ben Collins + + * Include dma-mapping.h in aic94xx driver. Fixes FTBFS on sparc. + * scsi/aic7xxx[41061]: Include spi module from 2.6.17-git as spi2, and use + it for aic7xxx modules. This fixes the failure to load these modules. + Caused by the need for symbols now found in the 2.6.15 spi module. + + -- Ben Collins Sun, 7 May 2006 10:23:49 -0400 + +linux-source-2.6.15 (2.6.15-22.33) dapper; urgency=low + + Changes by Ben Collins + + * ieee80211: Sync to wireless-git. + * bcm43xx: Sync to wireless-git. + * Add ipw3945 for nic-modules udeb. + * Fix net/Makefile so ieee80211_1_1_13 builds. + * Add Adaptec aix94xx and SAS drivers. + * Cherry pick ipw2200 quiese patch back into existence. + * sonypi[35319]: Add ICH7 support. + * drm/via[29586]: Fix 64-bit crashes. + + Changes by Daniel T. Chen + + * sound/core/seq: Fix sleep in atomic in virmidi driver + * sound/pci/ac97: Add Samsung NP-X20C004/SEG to Jack Sense blacklist + * sound/pci: Add VT8251 workaround to via82xx driver + * sound/pci/hda: Add id for ASUS M9 laptop and id for AD1988B codec to + patch_analog.c + * sound/drivers/mpu401: Properly propagate error for nonexistent mpu401 + interface + * sound/pci/emu10k1: #34831: Fix remaining instances of improper error + propagation for nonexistent mpu401 interfaces + * sound/pci: #41015: Fix Master volume control for headphones (hp_only + quirk) for HP NX8220 (intel8x0) + * sound/pci/hda: Fix capture from line-in on VAIO SZ/FE laptops + * sound/pci: Make DXS_SRC the default for VIA8235/8237/8251 chips + * sound/pci/ice1712: #40158: Fix DXR support for Terratec DMX 6FIRE + + Changes by Matthew Garrett + + * libata: Hotswap support + * libata: ACPI hotswap support + * bluetooth: Fix failures for suspend/resume + * libata: Update handling of queued commands. + * acpi: Let drivers check if the system is in suspend state + * libata: Tidy up the acpi hotswap code + * pci: Don't do insane PCI config space restoration + * acpi: Threaded ACPI support + + -- Ben Collins Tue, 2 May 2006 00:56:08 -0400 + +linux-source-2.6.15 (2.6.15-21.32) dapper; urgency=low + + * Fix libata docbook entry. FTBFS. + + -- Ben Collins Fri, 21 Apr 2006 10:45:37 -0400 + +linux-source-2.6.15 (2.6.15-21.31) dapper; urgency=low + + Changes by Ben Collins + + * 14394: Sync aix79xxx driver to 2.6.17-rc version. + * 20125: Fix dying mice on Intel UHCI controllers. + * 22449: Add sis190 to nic-modules udeb. + * sound/ppc: Revert tumbler changes for gpio rework. + * 38228: Add R40E to proc-idle blacklist. + * hdaps: Correct x/y inversions for IBM notebooks and others. + * ieee80211_1_1_13: Slightly munged ieee80211 1.1.13 stack for use with + ipw3945. + * ipw3945: New driver. + * 38278: Rectify some PCI id's between hard and soft mac drivers. Also, add + needed firmware. + * 39985: Do not print mapping table info on x86_64 (quiet boot). + + Changed by Matthew Garrett + + * libata: Backport of ACPI handling patch. + * ide-acpi: Replaces our old IDE ACPI support code with new and shiney + stuff that should work better on some hardware. + * acpi-osl: Fixes some cases where code could sleep during resume (not + allowed, since interrupts are disabled). + * acpi: Bad characters shouldn't be fatal. + * nsc-ircc: Stop nsc-ircc trying to grab ioports it already owns + * pnp: Add support for suspend/resume callbacks in the pnp layer (from + upstream) + * 8250_pnp: Add support for other Wacom tablets that are around + + Changes by Daniel T Chen + + * sound/{core,pci/emu10k1}: Fix silence on resume and OOPS on suspend for + emu10k. + * sound/pci: Add hp_only quirk for pci id [161f:2032] to via82xx ALSA driver + * sound/pci: Fix detection of SIS7012 tertiary codec for intel8x0 + * sound/pci: Add various models to supported list + * sound/pci/au88x0: Fix overrun in sound/pci/au88x0/au88x0_pcm.c + * sound/pcmcia/pdaudiocf: Fix Coverity #1099 (memory leak in + sound/pcmcia/pdaudiocf/pdaudiocf.c) + * sound/pci/ice1712: Add basic support for M-Audio Revolution 5.1 + * sound/pci/ice1712: Add support for Prodigy-7.1LT + * sound/pci/ice1712: Force analog daughter board detection for Juli@ + * sound/pci/ice1712: Fix wrong value types for enums + * sound/pci/ice1712: Fix M-Audio Delta 1010LT SPDIF output + * sound/pci/hda: Add support for Lenovo 3000 N100-07684JU + + Changes by Chuck Short + + * pci: Enable renumbering of PCI bus#. + * pci: Blacklist HP F.12 + * fsam7400: Disable autoload for fsam7400. + * pl2303: Add support for Speed Dragon Multimedia. + + Changes by Fabio M. Di Nitto + + * Pull updates from David S. Miller sparc branch to fix some smp issues. + * Make IOSCHED deadline default on -server* configs (x86 and x86_64). + + -- Ben Collins Thu, 20 Apr 2006 23:00:55 -0400 + +linux-source-2.6.15 (2.6.15-20.30) dapper; urgency=low + + Changes by Ben Collins + + * 35795: Keeps the kernel from panicing when it notices that an IOAPIC is + reported, but not really present. Patch applied, taken from upstream + 2.6.16. + + * 35742: AGP/DRM backport support for 945gm chipset. + + * 35703: Added firmware version override for acx. + + * 35145: Don't check num_possible_cpus() for powernow-k8's PSB BIOS usage. + It explains in comments that this is only available on UP machines, so the + check is only sanity anyway. + + * Fixup hppa and sparc so we get nic udeb's. + + * Rebase PCIE patch for bcm43xx. + + * Sync to 2.6.15.6. + + * Update ARECA (arcmsr) driver. + + * 34978: Fix isdn Makefile so misdn actually gets compiled. + + * 34791: Add Toshiba Protege M300 to synaptics rate=40 blacklist. + + * 33939: Disable CONFIG_EDD. Causing problems, and not needed anyway. + Symptons were seemingly locked up after grub jumped to kernel, but + actually would boot after 2 minute delay. + + * 33855: Update pcc_acpi driver. + + * 33854: Better config setup for memory split options. + + * sky2: Backport driver from 2.6.16, version 1.1. + + * 33704: Better patch for ATI IO-APIC timer bugginess. + + * bcm43xx: Quite a few upstream patches that should make things work better + out of the box (mjg59). + + * prism54: Via mjg59: + - Load firmware before bring up interface. + - Add prism54 softmac driver. + + * Fix ACPI-PNP brokeness, mjg59. + + * Fixes for swsusp with highmem, mjg59. + + Changes by Daniel T. Chen + + * sound/isa: Fix memory leak in isa/es18xx.c + * sound/isa: Update opl3sa2 driver + * sound/hda: Fix support for Samsung R65 and ASUS A6J + * sound/hda: Fix BIOS autoconfig, thereby fixing inaudible sound on recent + Dell laptops with STAC9200 + * sound/hda: Remove duplicate line in + pci/hda/patch_sigmatel.c::ref927x_pin_configs[] + * sound/usb: Fix to properly resolve volume at initialization + * sound/pci/hda: Fix noisy stereo output on AD1986A 3stack model + * sound/pci/hda: Fix mic input and erroneous post-resume + reinitialization for STAC92xx codecs + * sound/pci/ac97: Add Toshiba Satellite A-15 S127 to Jack Sense + blacklist + * sound/pci: Add pci id for MCP51 to pci/intel8x0.c + * sound/pci/ac97: Add Asus A7V8X-MX to Jack Sense blacklist + * sound/usb: Fix double kfree() and possible memory leak in sound/usb/usbmixer.c + * sound/usb: Fix non-48 kHz sample rates on SB Audigy 2 ZS + * sound/usb: Make error messages more informative + * sound/usb: Add mixer control names for the AudioTrak Maya44 USB + * sound/usb: Fix Edirol UA-20; Add Edirol UM-3ex/PC-50/UM-1EX/UM-2EX, + Roland G-70, Miditech Play'n Roll, Casio AP-80R/PL-40R, Yamaha MDP-5/EZ-J24 + * sound/pci/ac97: Add ThinkPad T43p 2668-G7U to Jack Sense blacklist + * sound/isa/cs423x: Fix silence in right channel of cs4236+ driver + * sound/pci: Add ASRock models to dxs entry list + * sound/isa/ad1848: Fix double-free in AD1848 driver + * sound/drivers/opl3: Fix use after free() in sound/drivers/opl3/opl3_{oss,seq}.c + * sound/pci/rme9652: Fix off-by-ones in RME9652 driver + * sound/drivers: Fix memory leak in sound/drivers/serial-u16550.c::snd_uart16550_create() + * sound/pci/cs46xx: Fix memory leaks in CS46xx driver + * sound/isa/gus: Fix gus_pcm dereference before NULL + * sound/core: Fix memory leaks in error path of sound/core/control.c + + Changes by Fabio M. Di Nitto: + + * Sync latest sparc64 bug fixes from David S. Miller. + + * Backport Emulex from 2.6.16 to fix a hard machine hang. + + * Backport e1000 driver from 2.6.16. + + * Add missing .proc_name to scsi_host_table in Emulex driver. + (drivers/scsi/lpfc/lpfc_scsi.c) + + * Add gitk to linux-kernel-devel. + + * Actually build linux-kernel-devel. + + -- Ben Collins Mon, 20 Mar 2006 10:54:39 -0500 + +linux-source-2.6.15 (2.6.15-19.29) dapper; urgency=low + + Changes by Ben Collins + + * Fix d-i firmware list (ipw2200 update), FTBFS. + + * Add nic-firmware for ia64, sparc and hppa. They have the drivers, so it's + pointless to not have the firmware too. + + * PPC: Add AOAShasta and layout-id 0x2d to toonie sound detection. + + * imacfb: Add support for mac mini, and better autodetection (mjg59) + + * ipw2200: Include two patches from upstream: + - Fix problem with diversity algorithm causing disassocaition + - Fix endian issues with v3.0 fw image format + + * Pull sparc64 updates from davem. + + -- Ben Collins Sun, 19 Mar 2006 10:30:20 -0500 + +linux-source-2.6.15 (2.6.15-19.28) dapper; urgency=low + + Changes by Ben Collins + + * bcm43xx: Add support for PCIE cards (Mactel related, mjg59) + * ipw2200: quiesce on shutdown (lost from breezy, mjg59) + * 31879: Add usb-handoff command line to enable usb-handoff pci quirks. + Disable the quirk by default. + * 31936: Update synaptics-usb driver (previously known as cpad) to version + 1.4rc3 + * Update ipw2200 to version 1.1.1. + * Update bcm43xx to 3-14-2006 snapshot. + * Merge DaveM's niagara tree. + - Tg3 fixes + - Fix proc/cpuinfo output on niagara (sun4v) + - E1000 fixes + * 33030: Add support for VIA VT8251 to ahci driver. + + Changes by Daniel T. Chen + + * sound: Add Jack Sense blacklist for ThinkPads + * sound: Add card entry for Audigy4 SB0400 model + * sound: Fix use after free() in pci/emu10k1/emu10k1_synth.c + * sound: Properly support sound on Siemens FieldPG-M + * sound: Add support for Agere's variant of Si3054/5 + * sound: Apply various fixes to Sigmatel HDA codecs + * sound: Restore xxx_t typedefs for compatibility in pci/hda/patch_sigmatel.c + * sound: Restore xxx_t typedefs for compatibility in + * sound: Fix support for Analog Devices AD198x HDA + * sound: Restore xxx_t typedefs for compatibility in + * sound: Simplify C-Media cmi9880 HDA codec support + * sound: Fix initialization and routing for Realtek + * sound: Finalize HDA restructuring for + * sound: Add model for Aopen i915GMm-HFS motherboard + * sound: Fix sound on laptops with AD1986A HDA codec + * sound: Support FIC P4M-915GD1 with ALC880 codec + * sound: Add support for Sony VAIO FE550G and SZ110 + + Changes by Fabio M. Di Nitto + + * Add linux-kernel-devel meta-package to pull in all core development + tools. + * Set CONFIG_SERIAL_8250_NR_UARTS to 48 to avoid regression from 2.6.12. + + -- Ben Collins Thu, 9 Mar 2006 09:39:41 -0500 + +linux-source-2.6.15 (2.6.15-18.27) dapper; urgency=low + + Changes by Ben Collins + + * Fix build failure in mrv8k on sparc. + + * Lots of Mactel related patches from mjg59. + + * Revert to 1/3GB physical mem. Should fix valgrind among other things. + + * Sync to 2.6.15.5. + + * Enable all of the PCI and USB wireless stuff for sparc. + + Changes by Fabio M. Di Nitto + + * Readd input-modules udeb to sparc64. + + -- Ben Collins Tue, 7 Mar 2006 07:40:01 -0500 + +linux-source-2.6.15 (2.6.15-17.26) dapper; urgency=low + + * Quick reupload to fix sparc FTBFS (due to out-dated config's). + + -- Ben Collins Mon, 6 Mar 2006 18:17:18 -0500 + +linux-source-2.6.15 (2.6.15-17.25) dapper; urgency=low + + [Your company ad here! Send payments to Ben Collins] + + Changes by Ben Collins + + * Enable EFI for x86 (MacBook Pro, come hither). + + * Cleanup the message for finding the DSDT in the initramfs. On my amd64, it + was just printing an extraneous " not found!". + + * Backported EHCI-HCD (USB2 Host) driver from 2.6.16. Maybe this will fix + some EHCI related bugs. + + * Backport aic7xxx driver from 2.6.16-git. + + * #28902 3w-9xxx: Add proc_name member to scsi_host_template + + * Whoops, bcm43xx went missing. + + -- Ben Collins Mon, 6 Mar 2006 15:19:40 -0500 + +linux-source-2.6.15 (2.6.15-17.24) dapper; urgency=low + + Changes by Ben Collins + + * #28485: Add WAP capa decleration to ipw2[12]00 drivers. + + * #27842: Cherry picked WoL fix from 2.6.16 git. Fix claims to fix lockup + when loading driver. + + * #28174: Applied 10-byte/TYPE_RBC patch to sbp2. + + * #31061: Assume AC power when there are no batteries, regardless of the + hardware not reporting it. + + * Merge radeon DRI PCI ID's (cherry-pick from mainline). + + * Update bcm43xx from daily git snapshots (wow, I initially typed snapshits, + hope that's not an omen). + + * x86_64: Make a default config option for when amd64 is booted on i386. Set + our defaults to something more Ubuntu specific. + + * sym2: Update driver from 2.2.1 to 2.2.2, mainly for parisc, but should + help all architectures. + + * tulip: Updates from upstream, mainly for parisc. + + * acpi_sbs: Fix divide-by-zero possibility. Patch from Matthew Garrett. + + * input: Allow root to inject unknown scancodes. Useful for keys like + hibernate and screen lock. Patch from Matthew Garrett. + + * Large parisc sync. + + * Increase LOG_BUF_SHIFT for all architectures to 17 (128k). This should + help catch all the kernel messages (especially on amd64 where we lose a + lot of the initial kernel setup). + + * video1394: Pulled patch sent to mailine to fix error return. + + Changes by Fabio M. Di Nitto + + * Merge SUN4V support from David Miller. + + * Update redhat cluster suite to CVS20060222. + + * Stop spca5xx to redefine PUD_SHIFT that's arch specific mem management. + + * Import OCFS2 and configfs bug fixes from 2.6.16-rc5. This commit must be + reverted before we will sync 2.6.16 directly from git or they will + conflict badly. + + * Bump kernel-package B-D version to get that sparc32/sparc64 identify mess + out of the way. + + -- Ben Collins Wed, 22 Feb 2006 20:09:12 +0100 + +linux-source-2.6.15 (2.6.15-16.23) dapper; urgency=low + + Changes by Ben Collins + + * Add build-depends for m4. Mainly for ppc, but just make it generic. + + -- Ben Collins Sun, 19 Feb 2006 11:46:26 -0500 + +linux-source-2.6.15 (2.6.15-16.22) dapper; urgency=low + + Changes by Ben Collins + + * Synced bcm43xx to latest SVN. + + * Added Mac-On-Linux kernel module. Not sure why MOL is contrib. It can + boot Linux without any proprietary software. Anyway, this module will make + it easier for MOL users, they wont have to recompile mol-module-source + every time the kernel is updated. This also includes an extra patch that + isn't in the original source that allows booting OSX Tiger. + + * Disable CONFIG_BOOTX_TEXT on ppc to avoid the white flash of prom console. + Also disable prom_printf (through a compile time config option). + + * Incorrectly set memory split to 3/1 instead of the default 1/3. Revert to + correct 2/2 mapping. Fixes problems with UML and Wine. + + * Merged 2.6.15.4 + + * #30309: Added A8V-MX to pci=noacpi blacklist. + + * #30707: Fix incorrect pci device id for ipg driver (DLink cards). + + * #30987: Make "DMA end" message a DBG statement only. + + * Fix version in unionfs Makefile (1.1.2). + + * #31431: Fix description of linux-source-2.6.15 package to steer users to + linux-headers where needed. + + * #31518: Add Sempron to list of supported CPU's by -k7 image. + + * #31528: Disable VERBOSE_IDE_CD_ERRORS. + + * Quiet ieee80211 a little. + + * Re-apply ACPI-CA patch set. Add a couple of fixes from Matt to get it + all working. + + Changes by Fabio M. Di Nitto: + + * Fix regression from hoary kernel in megaraid scsi driver: + In the breezy kernel a split up of the megaraid and megaraid_m* driver was + done to be able to support all controllers. During the split one pci + subvendor ID was lost due to removal of PCI_ANY catch all. + Thanks to Brian (bubba) Wilson for spotting the issue and testing the fix. + + * [SECURITY]: Fix extra dst release when ip_options_echo fails. + (CVE-2006-0454) + + * Update redhat cluster suite to CVS20060216: + - Add DIO_CLUSTER_LOCKING support from + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=173912 + (Thanks to Wendy Cheng for pushing the patch back to us) + + -- Ben Collins Sat, 18 Feb 2006 15:11:19 -0500 + +linux-source-2.6.15 (2.6.15-15.21) dapper; urgency=low + + * Quick release + + * Fix regression in squashfs. The 2.x compatibility layer was broken. Added + missing call to old_decode_dev() for chr/dev types. + + -- Ben Collins Thu, 09 Feb 2006 10:48:00 -0500 + +linux-source-2.6.15 (2.6.15-15.20) dapper; urgency=low + + Changes by Ben Collins + + * Add 0x52 layout-id for toonie pmac sound. + + * #29784: Updated unionfs to 1.1.2 + + * Updated squashfs to latest CVS. + + * Apply emu10k patch to fix distortion on Audigy 2 ZS notebook. + + * #29859: Enable v9fs by default. + + * snd-powermac: Do not fail on headphone/lineout detection failure for + tumbler. + + * ndiswrapper: Update to 1.8 + + * Backported hfsplus changes from 2.6.16-git. Allows mounting of hfsplus + + case-sensitive filesystems. + + * Backport emu10k power management support. + + * #28543: Added dmi-table override for ASUS A8N motherboard, acpi=noirq. + + * #19749: Reverted to stock 2.6.16-git code for ata_piix. + + * Fix powernow-k7 to work on SMP. + + * Add new quirk to not send clear-halt for some devices. Add this quirk to + UGCI devices. + + * Pulled from l-k: Handle more bogus PCI MCFG entries. + + * Pulled from linux1394: + - sbp2: prevent unloading of 1394 low-level driver + - sbp2: fix another deadlock after disconnection + + * Add ns87415 to hppa ide modules (per Lamont). + + * Update/Sync for sdhci. Submitted by Matthew Garrett. + + * Add 818x/8187 wireless drivers. + + * Cherry picked from 2.6.16-git: x86: GDT alignment fix + + * Synced ACPI to current ACPICA code. Patches via Matthew Garrett. + + * Added Smart Battery driver. + + * #30340: Bump module-init-tools depends. + + * #30335: Build mmc_block into mmc_core to make sure the block + functionality is always present after mmc_core is loaded. + + Changes by Chuck Short: + + * Added rt2600 wireless driver support. + + * Blacklisted Dell Optiplex. Closes #23330. + + -- Ben Collins Mon, 6 Feb 2006 11:15:02 -0500 + +linux-source-2.6.15 (2.6.15-14.19) dapper; urgency=low + + Changes by Ben Collins: + + (From here out all bug numbers refer to malone bug numbers, unless noted + otherwise) + + * Change depends for ia64 and hppa s/initrd-tools/initramfs-tools/ + + * #28533: Add Dothan tables to centrino-speedstep driver. + + * Add mrv8k-0.0.2 Marvell wifi driver. + + * Backport pata support for sata_promise driver. + + * Reverted change to powernow-k7, since it didn't fix the problem. + + * Reverted local changes to ieee1394. + + * Enable irq events for platform functions. + + * Fix snd-pmac-gpio to check for NULL altname. + + * #28580: Fix device table for yealink driver. + + * Fix linux-headers Makefile EXTRAVERSION (broken my sed when EXTRAVERSION + went to .1-ubuntu1). + + -- Ben Collins Wed, 25 Jan 2006 09:39:28 -0500 + +linux-source-2.6.15 (2.6.15-13.18) dapper; urgency=low + + Changes by Ben Collins: + + * hid-input: Make powerbook FN key default to fkeys first (matches macosx + operation). + + * Patch to fix oopses in kobject (pulled from l-k). + + * Patch to fix workqueue oopses when remove cpu0 (pulled from l-k). + + * Patch to accept vci devices on older powerpc's as PCI Bridges (pulled from + linuxppc-dev). + + * Backport pmac_pfunc interfaces from 2.6.16-git + + * Make use of plaform functions for sound/ppc to get toonie sound working on newer + powerbook's. + + * #28619: Apply patch for asus-acpi to fix oops. + + * Add PowerBook5,7 id (0x50) to toonie listings. + + * Update to 2.6.15.1 + + * Update bcm43xx and softmac code to latest repo's. + + * Cherry picked security patches for: + - CVE-2006-0095(9d3520a339d62f942085e9888f66905eb8b350bd): + dm-crypt: zero key before freeing it + - CVE-2005-3356(7c7dce9209161eb260cdf9e9172f72c3a02379e6): + double decrement of mqueue_mnt->mnt_count in sys_mq_open + + * unionfs: Disable debug (should fix oopses). + + * Include linux/types.h in asm/alternatives.h to fix compilation problems + (specifically with vmware modules). + + * ia64 kernels now depend on elilo >= 3.6-1, which allows initramfs support. + + * Bump build-dep for kernel-package to get the one that has initramfs + support for hppa and ia64. + + Changes by Fabio M. Di Nitto: + + * Provides rhcs-modules only from -server* flavours on i386/amd64. + + Changes by Daniel T Chen: + + * Sync ipw2200 driver to 1.0.10. + + * Fix sound output for Sound Blaster Audigy SE [SB0570] and Shuttle XPC + SD11G5 + + Changes by Chuck Short: + + * Disabled stupid keyboard warning. Closes #20152. + + * Avoid clock running too fast on many ATI IXP and nforce motherboards. + Closes #11304. + + * Disable ACPI for MSI Neo4 FI. Closes #15939. + + -- Ben Collins Thu, 19 Jan 2006 10:33:30 -0500 + +linux-source-2.6.15 (2.6.15-12.17) dapper; urgency=low + + Changed by Ben Collins: + + * Update spca5xx driver: #21279 + + * Update Changelog-2.6.15 to final version. + + * Minor cleanups to match stock code. Pushed a lot of stuff upstream. + + * Malone #6490: Updated acerhk driver to 0.5.31. + + * #21417: Add specific firmware version for acx driver. + + * Disable USB_EHCI_SPLIT_ISO and USB_EHCI_ROOT_HUB_TT, since they are + experimental. + + * Add smp-alt-disable boot option to allow disabling of alt-smp code. + + * #14081: Add sdhci driver (Secure Digital MMC). + + * Update ipw2200 driver to 1.0.9 + + * #22131: Enable IPW2200_MONITOR + + * Update ieee80211 to 1.1.8. + + * ICH8 patches from Jason Gaston (pulled from + linux-kernel). + + * #21968: Fix mix of simple/complex smp alternatives. + + * Fix amd64 complex smp alternatives to actually work. + + * Add uli526x module to nic-modules udeb. + + * Patch from BenH to support newer dual core G5's and iMac G5's with iSight. + + * Updated bcm43xx driver. It now contains a module device table, so it's + going to start loading for people. + + * Added config option to allow enabling or disabling the default behavior of + SMP alternatives. For -server kernels, it will default to disables (enable + with smp-alt-enable), and for desktop it is enabled (disable with + smp-alt-disable). + + * Disable CLUSTER, OCFS2 and GFS for desktop kernels on i386 and amd64. The + -server kernels are suggested for these. + + * Fix GENERIC_TBSYNC config option. + + * Remove slashed from disk names when creation dev names in sysfs. Patch + pulled from l-k. + + * Use better powerbook-fn patch, pulled from l-k. + + * Security: + - CVE-2005-4605: Verified, already fixed. + - CVE-2005-3623: Verified, already fixed. + - CVE-2006-0035: Patch pulled from git. + - CVE-2006-0036: Patch pulled from git. + - CVE-2006-0037: Patch pulled from git. + + Changes by Fabio M. Di Nitto: + + * Stop shipping cluster/cmirror in coordination with upstream. + + -- Ben Collins Thu, 12 Jan 2006 13:41:20 -0500 + +linux-source-2.6.15 (2.6.15-11.16) dapper; urgency=low + + The "Ben got a PowerBook for Christmas" Release. + + Changes by Ben Collins: + + * Bump ABI. + + * Radeon_cp: Patch from BenH, fixes screen corruption for console switching + and resume. + + * appletouch: Fixes for latest powerbooks. + + * hid-input-powerbook: Tweaks for fn multifunction keys on recent power + books. + + * Update bcm43xx and softmac code. + + * Apply patch to ieee80211 from Johannes Berg which allows bcm43xx to use + wep encryption. I'm now using my Airport2 card with bcm43xx on a WEP + enabled AP (albeit, only at 11M) + + * #21032: Patch to fix ndiswrapper on amd64. + + * #20622: Fix powernow-k7 to work when kernel is compiled for SMP (but only + works on actual UP systems). + + * Fix i2c-keywest stuck state machine. + + * Synced Linus tree. This means final 2.6.15. From here after, we will be + following gregkh's stable 2.6.15.y git. + + * parisc/powerpc: Fix signal.h not to use BITS_PER_LONG for userspace + compile + + * Malone #3819: Add 1SET68WW for R40 laptop in C2/C3 sleep blacklist. + + Changes by Fabio M. Di Nitto: + + * Update configfs and ocfs2 from the new splitted oracle git repository. + + * Make therm_adt746x a bit more silent. + + * Update redhat cluster suite to CVS20060102: + - Provides rhcs-modules-4. + + Changes by Chuck Short: + + * Added hotplug support to qlogicfc. + * Added hotplug support to igafb. + * Added hotplug support to alim7101_wdt. + * Added hotplug support to specialix + * Added hotplug support to ip2main. + * Added support to ATI/Philips USB RF remotes. (Closes #16390). + * Removed spurious warning from asus_acpi. (Closes #10834). + * Updated Toshiba satelite USB quirk fix. + + -- Ben Collins Thu, 29 Dec 2005 13:49:32 -0500 + +linux-source-2.6.15 (2.6.15-10.15) dapper; urgency=low + + Changes by Ben Collins: + + * Bump ABI. + + * Sync to Linus (rc7) + - scsi scan and transport + - usb-storage scsiglue + - saa7134 oss and alsa + - saa7127 + - nfs + - vlan + - ipv6 + - xfrm + + * #5049: Add my logic back to CDROMEJECT. Has to be read or 0x01 start-stop + that is giving it the right magic. + + * #15940: Remove uneeded error message for missing _GTM methods. + + * Add arcmsr to scsi-modules udeb. + + * Add new SMP/UP alternatives code to replace the inferior SMP2UP code. + Benefits of this code over old smp2up: + - Handles modules correctly (module fixup wasn't even enabled in old code). + - Handles converting smp functions to up alternatives. + - Can even re-enable SMP after hotplug of a new cpu. + - Should be easier to port to amd64 and possibly ppc. + + * Port alternative_smp code to x86_64. + + * Sync acpi git: + - Fix processor_thermal inverted check + - Bumps max owner id's to 64 (was 32). + - ACPI_EC, not just for X86 anymore + + * Updated softmac code to rev 211. + + * Updated bcm430x driver to rev 946. + + * Sync netdev git: + - sky2 + - orinoco + - skge + + * Get rid of amd64-k8-smp, make amd64-k8 SMP. Make amd64-generic SMP also. + + -- Ben Collins Wed, 21 Dec 2005 09:01:50 -0500 + +linux-source-2.6.15 (2.6.15-9.14) dapper; urgency=low + + Changes by Adam Conrad: + + * Fix archtable to include KPKG_ARCH for generic headers, and fix + debian/rules to use that value when building header packages. + + Changes by Ben Collins: + + * Stop chasing our tails and fix kernel-package, which was the real reason + our symlink kept getting messed up. Build dep on this sweet new kernel + package. + + -- Ben Collins Wed, 21 Dec 2005 08:22:38 -0500 + +linux-source-2.6.15 (2.6.15-9.13) dapper; urgency=low + + * Add the missing amd64-server ABI file, so we can build on amd64. + + -- Adam Conrad Wed, 21 Dec 2005 05:52:33 +0000 + +linux-source-2.6.15 (2.6.15-9.12) dapper; urgency=low + + Changes by Ben Collins: + + * CONFIG_ACPI_INTERPRETER? What's what? Seems some of our patches/modules + from breezy used this config option to dep on. It no longer exists, so + these modules were not getting enabled (sony_acpi, acpi_dev, sonypi, etc). + + * Fix amd64-k8-smp header package. + + * Sync to Linus. Lots of random fixes. We are post rc6 now, so it's mostly + important things. + + * Set KPKG_ARCH when building generic header package. + + -- Ben Collins Tue, 20 Dec 2005 22:54:26 -0500 + +linux-source-2.6.15 (2.6.15-9.11) dapper; urgency=low + + Changes by Ben Collins: + + * Bump ABI + + * #1927: Switch 8139too driver to MMIO (no idea why PIO was enabled). Synced + 8139too config options across all architectures. + + * Sync to linux-2.6 (-rc6): + - PowerPC changes + - Large DVB merge + - Networking related changes + - x86_64 updates + - PCI fixes (some related to k8) + - video/fb cleanups/fixes + - ia64 updates + - sparc updates + + * Sync netdev: + - sky2 updates + - e1000 updates + + * Sync ieee1394: + - nodemgr + - sbp2 + - ohci1394 + + * #20807: Revert sata_sil to stock upstream code. + + * Revert sis5513 driver patch for SiS 965. Conflicted with an existing + patch. + + * #20978: Add bcm43xx to nic-modules. Although it wont work (no firmware), + atleast it can be available for use if someone takes the time to install + the firmware (usb stick?). + + * Upgrade unionfs to latest version: 1.1.0 -> 1.1.1 + + * #13404: alps: Add Fujitsu Siemens S6010 support. + + * #21032: Add missing source file for x86_64_stubs.h generation. Fixes + missing symbols on x86_64 builds. + + * #17398: Disable ACPI-PCI for Toshiba Tecra A4 laptops, bios ver 1.60. + + * Add amd64-server. + + * Tune i386 and amd64 targets as follows: + - Server: 100 HZ, PREEMPT NONE + - Desktop: 1000 HZ, PREEMPT, PREEMPT BKL + + * #17897: i2o layer needs to leave the pci device enabled when it's in use + by someone else. + + * #21206: Add realtime-lsm module. + + * Code reversion: ieee1394, libata (stock kernel, no git pulls). Libata + still retains out suspend/resume code. Cleaned up the scsi suspend/resume + stuff a bit. + + * #5049: Finally fix the bug where CDROMEJECT wont eject some devices. + + Changes by Chuck Short: + + * Added support for Acer TravelMate 240 wistron buttons interface. + + -- Ben Collins Mon, 19 Dec 2005 11:33:24 -0500 + +linux-source-2.6.15 (2.6.15-8.10) dapper; urgency=low + + Changes by Ben Collins: + + * ABI Bump + + * #8745: Added ov511_decomp and ov518_decomp modules. + + * #2129: Apply isapnp support patch to nsc-ircc driver. + + * #1978: Include patch for radeonfb D2 sleep state. + + * sky2: Quiet debug messages. + + * #17547: Increased COMMAND_LINE_SIZE to 1024 for all 6 architectures + (parisc was already at 1024). + + * Sync trivial ia64 and acpi changes (git sync). + + * Rename i386 server-{low,high}end to server and server-bigiron. + + * #8853: Added ECC memory check modules, patch in bug report was taken from + Suse. + + * #10770: Invert read of wled proc file to show correct sate of LED. + + * #8320: Remove hardcoded skip of 8250 driver initialization for PMac + + * via82cxxx IDE: Add VT8251 ISA bridge, patch from Daniel Drake + , taken from linux-kernel. + + * #12843: Include podxtpro USB driver. + + * #14216: Set EXTRAVERSION in installed kernel-header Makefile. + + * Fix ppc and parisc asm link in kernel headers package. + + * #14460: Enable VIA and Savage DRM modules. + + * #15573: mv643xx: Add missing MODULE_DEVICE_TABLE. + + * #16029: Add newer acx driver. Requires newer firmware files in + linux-restricted-modules-2.6.15.3. + + * #15993: Add IP1000A gigabit ethernet driver. + + * Consolidated scsi dma direction checking. Fixes crash in sbp2. Patch taken + from linux1394, from James Bottomley. + + * Added mISDN drivers. + + * Added getabis script. Added rules target for getprevabis to make use of + it. + + * vga16fb: Set mode to 640x400 to be more compatible. This should close more + bugs than I'd care to list. I will enjoy doing the mass closing. + + * #17041: Reports show that longhaul cpufreq support is broken, and wont be + fixed. For us that means disabling the driver. + + * #17236: Add support for SiS 965 in sis5513 driver. + + * #17367: Reapply patch for DVICO DVB TPlus, referenced in bug #5773. + + * Include missing cloop patch to fix cloop over dm. + + * #17872: Add proper module device table for initio scsi driver. + + * #17923: Export parport_get_port() from parport/share.c. + + * #18162(and others): Make ide-core built-in for all architectures. The + issue was that modular build caused ide= and hd?= kernel command line + options to be ignores, since ide.ko was only expecting them as module + options. Notified Kamion and Keybuk. ide-core-modules udeb is going away. + + * Make unix.ko built-in. Who's bright idea was this anyway? + + * Upgraded to linux-wlan-ng/prism2 0.2.3 + + Changes by Chuck Short: + + * Added CONFIG_EFI_PARTITION=y. Closes (#20082). + + -- Ben Collins Tue, 06 Dec 2005 14:16:47 -0500 + +linux-source-2.6.15 (2.6.15-7.9) dapper; urgency=low + + Changes by Ben Collins: + + * Patch from Keybuk: Revert some of our modular ide patch. The general issue + is that we do things different in dapper than we did in breezy, which + makes this patch wrong now. + + * Applied patch for via-sound irq problem (from breezy). + + * Added HP 4318 id to bcm43xx driver. + + * Upgraded bcm43xx and softmac to latest code. Should have working xmit/recv + now. + + * combined_mode patch from Jesse Barnes (snagged from l-k). Allows you to + target ide resources to IDE, LIBATA, or both. + + * Removed devices from prism2 device table, so hostap can take precedence. + Prism2 can still be used if hostap module is unloaded, and prims2 + reloaded. + + * Fix acx100 makefile to it actually compiles this driver. + + * Enable vga16fb and vesafb for ia64. Required some work to export all the + symbols needed for modular vga16fb. VesaFB also needed to ifdef some mtrr + stuff. + + * libata: Enable ATAPI by default. Add ATA_FLAG_NO_ATAPI, and enable it for + drivers known not to work with atapi devices (either because theie phys + can't or the driver doesn't implement it yet). Added printk to let users + know when and why their atapi device is disabled. + + Patch was done using jgarzik's suggestions (sata_{mv,promise,sx4} were + known to now work with ATAPI). Patch has been sent to him for inclusion + with libata-dev.git. + + * Enable CONFIG_THERM_ADT746X and CONFIG_THERM_WINDTUNNEL for powerpc and + powerpc-smp. + + * Created lowend and highend server config's for i386. + + * Bump ABI + + * abi-install got disabled, fix it. + + * linux-doc-2.6.15: Conflicts linux-doc-2.6, so only one is installable at a + time. + + * Synced to -rc5 + + * Git pull's: + - ACPI + - NetDev-2.6#upstream + - Adds the sky2 driver, to support Yukon2 ethernet cards. + - libata + - Several new PATA drivers + - Checked, but nothing new: ia64, parisc, ocfs2, ieee1394 + + Changes by Fabio M. Di Nitto: + + * Update redhat cluster suite kernel modules to CVS20051205: + - Provides rhcs-modules-3. + + * Stop providing ext2-modules and ship it for all arches. + + -- Ben Collins Thu, 01 Dec 2005 09:58:54 -0500 + +linux-source-2.6.15 (2.6.15-6.8) dapper; urgency=low + + Changes by Ben Collins: + + * Change powerpc to use GEN_RTC. Fixes oopses. + + * Apply toshiba_acpi patches from breezy: + - drivers-acpi-toshibaacpi_detect-hotkeys.dpatch + - external-drivers-acpi-toshiba_update.dpatch + + * Provide ndiswrapper-modules-1.5 (instead of -1.1). + + * Patch from l-k: fix swsusp on machines not supporting S4 + + * Remove rtl8180 and rtl8187 drivers. They don't even compile cleanly enough + to modprobe. + + * Pruned broken drivers from config's. + + * ppc: Added asm-powerpc/highmem.h stub. Fixed lrm compilation. + + * intel_hda_snd: Fix typo in autofill. + + * hppa: Enable ide/pci/dma stuff + + * Enable cpu hotplug for amd64/i386 smp targets, so that acpi sleep can be + enabled aswell. + + * pcmcia/i82365: Revert Ubuntu patch for device release. + + * mm: Fix compile errors caused by recent vm changes. Patch sent upstream. + + * hppa: Apply Compat signal/siginfo patches to get compilation working. + hppa64{,-smp} now builds, and my A500 boots hppa64-smp. + + * Resync from Linus' tree (post -rc3). + + * Bump ABI + + -- Ben Collins Tue, 29 Nov 2005 11:22:19 -0500 + +linux-source-2.6.15 (2.6.15-5.7) dapper; urgency=low + + Changes by Ben Collins: + + * net/wireless/rt2500: Revert to del_timer() instead of del_timer_sync() + + * Remove notifier stuff. Kernel-package now calls + /usr/share/update-notifier/notify-reboot-required for us. + + * Update initramfs-tools depends to >= 0.36ubuntu6, in order to get + update-initramfs. Also update kernel-package build-dep in order to get the + postinst/postrm logic to use update-initramfs. + + Spec: initramfs-updates + + * Added rt2570 driver, 1.1.0-b1 + + * Added rt2400 driver, 1.2.2-b3 + + * Added rt2500 driver, 1.1.0-b3 + + * Remove rt2x00 driver(s), reverting back to stable rt2400/rt2500/rt2570. + + * Rebuild config's + + * Force mbcache as built-in. + + * Added ieee80211softmac driver from softmac.sipsolutions.net + + * Applied patch from mjg59 to allow userspace to disable writes to + framebuffer, for cleaner and more stable suspend/resume. + + * Revert bcm43xx softmac patch (git b0d4ca49c42945251eb77153e60791650c8a2cb7) + + * Set CC=gcc-3.4 for parisc + + * Make ext2=m on all arch's. + + * Sync with 2.6 git. + + * d-i/powerpc: Remove nls_base as a module, since it is built-in + + * configs: Make CONFIG_FW_LOADER=y on all archs. Make CONFIG_FS_MBCACHE=y on + all archs. + + * acpi: Ignore return from acpi_bus_find_driver. (Closes: #20085) + + Changes by Fabio M. Di Nitto: + + * Pull ocfs2 git. + + -- Ben Collins Mon, 28 Nov 2005 21:49:36 -0500 + +linux-source-2.6.15 (2.6.15-4.6) dapper; urgency=low + + Changes by Ben Collins: + + * rtl8187: comment out the float functions for !CONFIG_FORCE_HARD_FLOAT. + + * Remove mbcache from ia64 and ppc module udeb's. + + * parisc: Hardcoded CROSS_COMPILE + + -- Ben Collins Fri, 25 Nov 2005 12:08:09 -0500 + +linux-source-2.6.15 (2.6.15-4.5) dapper; urgency=low + + Changes by Ben Collins: + + * Disable ABI checks for now. + + * Bump kernel-wedge depends to match firmware changes. + + * workqueue: Change hardcoded cpu=0 to cpu=any_online_cpu(). + + * amd64: Fix redecleration of disable_timer_pin_1. + + * tulip: Fix undefined PCI ID define for ULI chips. + + -- Ben Collins Thu, 24 Nov 2005 13:43:22 -0500 + +linux-source-2.6.15 (2.6.15-4.4) dapper; urgency=low + + Changes by Ben Collins: + + * Update ndiswrapper to v1.5 (was v1.4-rc) + + * Added rtl8180 and rtl8187 drivers. + + * Initial hppa(parisc) configs. + + * Git pulls: + - ia64 + - parisc + - acpi + - ieee1394 + + * Add missing patch from breezy: arch-x86_64-kernel-apic-timer-fix + + * post-install: Changed location of firmware from lib/hotplug/firmware to + lib/firmware/$version, as per IRC discussion (Keybuk, infinity, BenC) + posted to -devel-announce. + + * ipw2200: Rename notify_wx_assoc_event to not conflict with softmac patch. + + * Added areca sata driver. + Pulled from 2.6.15-rc1-mm2 as areca-raid-linux-scsi-driver.patch + + * softmac patch: Pulled from bcm430x project (pulled from ieee80211.git) + + * kernel/workqueue.c: create_workqueue() was not checking return of + alloc_percpu(). + + * Include all Makefile's in kernel-headers package (Makefile*). Fixes i386 + module builds against linux-headers (missing Makefile.cpu). + + * Add firmware list. + + * Update rt2x00 drivers, 2005/11/17 16:28:34 + + * Update bcm430x driver to r694. Still untested, probably still broken. + + * Added ppc_defconfig to allow for "prepare" target in k-p to work. + + * Delete postinst.powerpc. Seems there's no more default coff target, and + other assorted needed things in order to support mkvmlinuz bootloader. + From what I gather, we only support NewWorld Macs anyway. + + * Merge devmem patch, which disallows certain access to /proc/kmem and + /proc/kcore. Disables writing to /proc/kcore. Certain areas of /proc/kmem + are still read/write in order for things like X to still work. + - Pulled from fedora patch: linux-2.6-devmem.patch + - Modified for ppc -> powerpc merge + + * Created i386-server config. Currently unbuilt. + - Disabled sound. + - Disabled graphics (fb, drm, agp). + - Disabled all laptop options. + - Disabled unrelated ACPI/APM options. + - Enabled NUMA/BIGSMP, set max CPUS to 64, max ram to 64Gig. + - Currently targetted for generic 686. + - Disabled SMP2UP. + - Disable preempt. + - Set HZ=100 (HZ=250 for desktop). + + * Resync with Linus' git tree (-rc2). + - Enable new driver CONFIG_USB_SERIAL_ANYDATA for all architectures. + - More ppc64 merges, regen config. + - Obsoleted commit 4bd609829470632192ac22aca22cf74c16e605ff for + ide/pci/via82cxxx.c. + - Merged commit 5848b480ab2ef9e9f9bcbdc8c119467f51635282 from + asm-ppc64/io.h to asm-powerpc/io.h. + + * Disable Local APIC by default on UP machines. Enable with (l)apic command + line argument. PATCH IS NOT ENABLED! + - Pulled from fedora patch: linux-2.6-x86-apic-off-by-default.patch + + * Set CONFIG_ACPI_BLACKLIST_YEAR=2000 for all arch's that support it. + + * acpi_blacklist: Make message quieter + - Pulled from fedora patch: linux-2.6-acpi-silence-cutoff.patch + + * Push kernel-package build-dep to get ppc changes. + + * Enable CONFIG_EDD=m for i386 and amd64 + + * Update ppc64 config, removing drivers that do not compile cleanly. + + * macintosh/via-pmu.c: Fix ppc64 compile by making sure sleep_in_progress is + wrapped with PPC32 and PM config checks. + + * Update sparc64 config's. + + * Update ia64 config's. + + * video/controlfb,platinumfb,valkyriefb: Wrap use of nvram_read_byte with + CONFIG_NVRAM checks. Was causing build failures. + + Changes by Chuck Short: + + * mv643xx: Add pci_device table for auto module loading. + + * i8042: Add OQO device to noloop dmi blacklist. + + * tulip: Fix for Uli5261 chipsets (Closes: #18673) + + -- Ben Collins Wed, 23 Nov 2005 15:28:13 -0500 + +linux-source-2.6.15 (2.6.15-3.3) dapper; urgency=low + + Changes by Ben Collins: + + * Add Atmel USB Wireless driver (from breezy). + + * Upadate bcm43xx driver to latest SVN (r687). + + * Resync with Linus' git tree. + + * Bump ABI (routine for almost all uploads). + + * Enable CONFIG_IRQ_ALL_CPUS for powerpc. Fixes FTBFS. + + * Update rt2x00 driver from CVS. + + * Update ipw2200 firmware to 2.4 version. + + * Unpack firmware.tar.gz.uu into debian directory so it doesn't have to be + unpacked during build (not have a .diff.gz helps us out a lot). + + * Updated amd64 configs. + + * Fix kconfig/conf to check stdin for feof() on error, and abort if so. + Keeps the automated builds from filling log files when the config's aren't + updated. + + * Add asm/pc_serial.h to arch/ppc/boot/common/ns16550.c, to get proper + serial defines. + + -- Ben Collins Tue, 15 Nov 2005 19:52:06 -0500 + +linux-source-2.6.15 (2.6.15-2.2) dapper; urgency=low + + Changes by Ben Collins: + + * Cleanup powerpc config's. Mainly to make frambuffer section match + breezy. 2.6.15-2-powerpc is running on my G4 perfectly now. + + * Cleanup powerpc IDE config section. + + * Merge fs-blockdev_evms-db-claim patch from breezy. This was needed atleast + for me to use my G4 (not ppc specific though). The extra partition that I + had mounted on /org showed the partition as busy. + + * Git-Pull from torvalds/linux-2.6.git + + * Build-Dep on gawk. The zd1211 driver needs it since mawk can't process the + zddevlist.awk script. Fixes FTBFS. + + * Bump build-dep on kernel-package to make sure powerpc gets the right one. + + -- Ben Collins Sun, 13 Nov 2005 10:41:10 -0500 + +linux-source-2.6.15 (2.6.15-1.1) dapper; urgency=low + + The "Dapper meets Kernel" release. + + Changes by Ben Collins: + + * More merging than any one person should ever have to do. + * Gitified the kernel tree. See https://wiki.ubuntu.com/KernelGitGuide + + * NOTES: This is the first release. It is broken. I know it compiles on + amd64, i386 and ppc (well, it would, except that we need updated + kernel-package to do the right thing with ARCH=powerpc). + + For normal rants, please email the kernel team mailing list. Please don't + clog my already full bugzilla list with random FTBFS, and cruddy things. + + YES! I know there are no i386 SMP packages. The 686 and k7 packages are + SMP enabled. In fact, they are also UP enabled "WHAT!?!? HUH!?!". Yes, SMP + on i386 now has the added benefit of killing lock ops dynamically on boot. + This is still in testing phase. I also need to fix a few things to get it + working for modules. + + * External drivers added: + - OCFS2 + - acerhk + - acpi_panasonic + - acx100 + - adm8211 + - asfs + - at76c50x + - bcm430x + - btsco + - cloop + - cluster + - cpad + - eagle-usb + - em8300 + - fsam7400 + - ieee80211 + - linux-wlan-ng + - mppe + - ndiswrapper + - pwc + - quickcam + - rfswitch + - rt2x00 + - sony_acpi + - spca5xx + - squashfs + - tc1100 + - unionfs + - wacom_acpi + - zd1211 + + * UBUNTU Related patches: + - [Documentation] Update location of ll_rw_blk.c in docs + - [acpi/hotkey] Allow generic hotkey to work even if specific is compiled + - [acpi] Add some Thinkpads to proc idle blacklist + - [acpi] Allow loading of DSDT from initrd + - [acpi] Provide /dev/acpi device for ACPI manipulation + - [acpi] Provides an i2c driver for the ACPI ec bus + - [apci] Fix extraneous EXPORT_SYMBOL + - [char/agp] Add suspend/resume callbacks for nvidia and ati AGP bridges + - [char/sonypi] Enable ACPI interpreter for Sony + - [debian] Add support for split config files + - [debian] Enable DMA on CDROM's always + - [docs] Add post-halloween.txt document. + - [drivers] Cleanup unresolved symbols + - [fs/coda] Better sanity check on userdata passed data + - [fs] Revert bd_claim change. + - [general] Quiet noisy printk's + - [i386] Add code to replace lock's with nop's on SMP for UP boots + - [i386] Add config option to enable/disable hyperthreading + - [i386] Reboot HP laptops correctly + - [i386] Workaround for P4 N60 Errata + - [ide/ide-pnp] Make ide-pnp module + - [ide/via82cxxx] Enable via6410 + - [ide] Add "TOSHIBA CD-ROM XM-1702BC" to ide-dma blacklist + - [ide] Call ACPI _GTM and _STM methods on suspend/resume + - [ide] Export ide_scan_direction + - [input/cpad] Fix usb_driver struct + - [input/cpad] Update usb_driver struct to match newer convention + - [input/i8042] Fix USB keyboard init + - [input/mouse/alps] Do not call psmouse_reset() for alps + - [net/8139too] Fix deadlock on shutdown + - [net/sunhme] Fix Sun Happy Meal ethernet lockups on Ultra 1E + - [net/wireless/ipw2200] Quiesce ipw2200 before rebooting + - [net/wireless/rt2x00] Fix usage of struct pci_driver + - [pcmcia] Add missing device releases + - [pcmcia] Do not insert pcmcia cards on resume + - [ppc] Changes for ppc/ppc64 build + - [ppc] Disable pmac_tweak_clock_spreading() on POWER4 + - [ppc] Disable serial 8250 initialization on PMAC + - [ppc] PPC32 fixups for ARCH=powerpc + - [scsi/BusLogic] Add MODULE_DEVICE_TABLE + - [scsi/megaraid] Support megaraid legacy and megraid newgen, side-by-side + - [scsi/sata] Basic suspend/resume support for SATA devices + - [scsi/sata] Enable PATA on SATA + - [scsi] Add Matshita DMC-LC33 to devlist + - [scsi] Add basic hotplug support to some drivers + - [scsi] Restore generic SCSI proc_info function + - [serio/i8042] Quiet printk when no i8042 is detected + - [sound/pci] Make the headphone jack on HP laptops work + - [usb/input] Fix a quirk in PowerBook FN button usage + - [video/vesafb] Fixup vesafb modular code to merge with platform driver changes + - [video/vesafb] Modularize vesafb + + -- Ben Collins Sat, 12 Nov 2005 23:34:38 -0500 + +linux-source-2.6.12 (2.6.12-9.24) breezy-updates; urgency=low + + Changes by Ben Collins: + + * external-arch-i386-kernel-reboot_reboot-thru-bios: Remove + + * fs-inotify-fix-idr-memleak: Security related. Memleak can be induced by + normal user, consuming all memory by kernel. + + Changes by David Miller: + + * [SPARC64]: Consolidate common PCI IOMMU init code. + + All the PCI controller drivers were doing the same thing + setting up the IOMMU software state, put it all in one spot. + + * [SPARC64]: Eliminate PCI IOMMU dma mapping size limit. + + The hairy fast allocator in the sparc64 PCI IOMMU code + has a hard limit of 256 pages. Certain devices can + exceed this when performing very large I/Os. + + So replace with a more simple allocator, based largely + upon the arch/ppc64/kernel/iommu.c code. + + This also fix a potential local DoS that a user could trigger doing heavy + I/O and that would make the machine hang forever. + + Add patch sparc64-pci-iommu_do-not-dos-on-heavy-io.dpatch. + + -- Ben Collins Thu, 27 Oct 2005 09:36:08 -0400 + +linux-source-2.6.12 (2.6.12-9.23) breezy; urgency=low + + Changes by Fabio M. Di Nitto: + + * [SECURITY]: Add missing CAN-2005-3053 from 7.11 changelog. + + * [SECURITY]: Fix names_cache memory leak with CONFIG_AUDITSYSCALL: + - Add patch audit-syscall_mem-leak-CAN-2005-XXXX.dpatch. + (CAN-2005-XXXX) + + * [SECURITY]: Fix do_coredump() vs SIGSTOP race in kernel/signals.c: + - Add patch kernel-signal_fix-race-condition-CAN-2005-XXXX.dpatch. + + Changes by David Miller: + + * [SECURITY]: (sparc64) Fix userland FPU state corruption: + - Add patch arch-sparc64-kernel-entrys_more-strict-fpu-memory-barrier.dpatch. + (CAN-2005-XXXX) + + We need to use stricter memory barriers around the block + load and store instructions we use to save and restore the + FPU register file. + + "if you know how to trigger this you can end up with whatever the kernel + most recently memcpy()'d" + + -- Fabio M. Di Nitto Mon, 10 Oct 2005 11:42:09 +0200 + +linux-source-2.6.12 (2.6.12-9.22) breezy; urgency=low + + Changes by Fabio M. Di Nitto: + + [SECURITY]: fix drm sysfs permissions to not be worldwide read/writeable: + - Add patch drivers-char-drm_fix-sysfs-permissions.dpatch. + (CAN-2005-XXXX) + + Changes by David Miller: + + * [sparc64]: + - Fix configs to match reality: + + Disable QLOGIC_FC (deprecated driver). + + Build in USB controllers to allow USB keyboards to work properly. + + -- Fabio M. Di Nitto Wed, 05 Oct 2005 06:26:33 +0200 + +linux-source-2.6.12 (2.6.12-9.21) breezy; urgency=low + + The "never trust a kernel developer" release. + + * [ia64] + - Turn back on CONFIG_IDE_GENERIC, since it's necessary if you want a + working ide subsystem, which, interestingly, most ia64 machines use. + + -- LaMont Jones Tue, 4 Oct 2005 10:52:08 -0600 + +linux-source-2.6.12 (2.6.12-9.20) breezy; urgency=low + + Changes by LaMont Jones: + + * Commit the forgotten d-i modules file for ia64. + + -- LaMont Jones Mon, 3 Oct 2005 12:56:39 -0600 + +linux-source-2.6.12 (2.6.12-9.19) breezy; urgency=low + + Changes by Fabio M. Di Nitto: + + * [SECURITY]: Fix URB early termination OOPS. (CAN-2005-3055) + - DISABLED: This patch is disabled and not active in this upload. Patch + was rejected by Linus. + + Changed by Ben Collins: + + * Fix powerpc CONFIG_ABD_PMU. It needs to be enabled for G5 powerbooks. + + * sound-ppc_support-newer-ibooks: Patch name says it all. + + * drivers-scsi-libata-passthrough: Support for ata passthrough with hdparm + and smartmon tools. (Closes: #14931) + + * drivers-scsi-libata-fix-error-handling: Removed old error handling fix, and + replaced with one-liner fix from 2.6.13. + + * drivers-net-8139cp_quiet-8139too-message: Get rid of scary messages about + 8139too vs 8139cp driver. + + * sound-pci_via82xx-workaround-unhandled-irqs: via686a chipset sometimes + gets unexpected interrupts, leading to IRQ_NONE being returned, and the + IRQ being disabled by the kernel. This works around that by always + returning IRQ_HANDLED (wrong, but it will work for now) + + Changes by Adam Conrad and Matthew Garrett: + + * Make ide probe quite: + - Add patch drivers-ide_quiet_probe_failures.dpatch. + + Changes by LaMont Jones: + + * Fix driver panic in hppa in led driver. + - Add arch-hppa_led. + - And stop including it, since it is included in arch-hppa_pa2 + + * ia64 config cleanup. Turn off IDE_GENERIC on all ia64 flavors, since it + pokes registers that don't exist. + + * have hppa and ia64 use initrd instead of initramfs, since initramfs + doesn't work there. + + -- Ben Collins Fri, 30 Sep 2005 17:00:33 -0400 + +linux-source-2.6.12 (2.6.12-9.18) breezy; urgency=low + + * Fix sk98lin patch + + * Rediff ndiswrapper 1.1 patch. The old patch had all the generated + files pregenerated, which wasn't very good for x86_64. Also, x86_64_stub + wasn't being compiled in. This should finally get things working on amd64. + + * Set default ramdisk size to 64Megs for all arch's. This should fix sparc + mainly. Amd64 was already 64Megs. Almost every installer/loader was + increasing this manually anyway, and we have several bugs which complain + about too small of a ramdisk size. + + * Update spca5xx driver and fix compilation so that it creates the correct + module. The spca5xx.c file was not actually getting compiled. + + * Disable CONFIG_IEEE1394_SBP2_PHYS_DMA, since it is not meant for general + use, and plus it breaks non-amd64 64-bit architectures (ppc64, sparc64). + + -- Ben Collins Mon, 26 Sep 2005 16:58:05 -0400 + +linux-source-2.6.12 (2.6.12-9.17) breezy; urgency=low + + * Use Matt's sk98lin patch + + -- Ben Collins Fri, 23 Sep 2005 11:12:02 -0400 + +linux-source-2.6.12 (2.6.12-9.16) breezy; urgency=low + + * Fix typo in sk98lin driver. + + -- Ben Collins Fri, 23 Sep 2005 10:29:26 -0400 + +linux-source-2.6.12 (2.6.12-9.15) breezy; urgency=low + + The "Quickest re-release ever" Release + + * Fix linux-source tree. Bad patch had gotten in. + + * Actually enable sk98lin driver. + + * Enable ndiswrapper driver on amd64 + + * Updated PowerBook Fn-Key patch. + + -- Ben Collins Fri, 23 Sep 2005 09:11:31 -0400 + +linux-source-2.6.12 (2.6.12-9.14) breezy; urgency=low + + The "My momma wont let me play in the street" release + + Changes by Ben Collins: + + * Bump ABI + + * external-drivers-acpi-ec_disable-burst: Disable, things should be ok now + + * fs-inotify-in-mask-add: Handle IN_MASK_ADD (Closes: #14458) + + * sth-fs_inotify: Added DCACHE_DELETED, so as to get rid of spurious delete + events. (Closes: #14967) + + * external-drivers-usb-input-appletouch: Support Apple touchpad. + + * drivers-scsi-buslogic-device-table: Add MODULE_DEVICE_TABLE for BusLogic + driver. (Closes: #11237) + + * arch-i386-kernel-hp-laptop-reboot-fix: Special case hp laptop reboot (bios + reboot) + + * Install ABI files with kernel .deb as /boot/abi-x.x.x-y-p + + SECURITY: + + * arch-x86_64-ia32-fix-tiocgdev-CAN-2005-XXXX: + - Maxim Giryaev discovered a Denial of Service vulnerability in the + "tiocgdev" ioctl call. By calling fget() and fput() in special ways, + a local attacker could exploit this to destroy file descriptor + structures and crash the kernel. This vulnerability only affects the + amd64 platform. + + * fs-compat_ioctl-CAN-2005-XXXX: + - Vasiliy Averin discovered a Denial of Service vulnerability in the + "routing_ioctl" function. By calling fget() and fput() in special + ways, a local attacker could exploit this to destroy file descriptor + structures and crash the kernel. + + Changes by Matthew Garrett: + + * drivers-pcmcia-fix-ti-bridges: Support recent TI chipsets (notably, HP + laptops). (Closes: #15083) + + * drivers-input-mouse_alps-fixes: Fixes for alps mouse. + + * drivers-acpi-hotkey-generic-fix: Allow generic hotkey to work. + + * sound-pci-ac97-hp-laptop-headphone-fix: Make headphone jack on HP laptops + work. + + * drivers-input-mouse_synaptics-pad-polling-fix-dynabook: Add dynabook to + list of pads that need polling rate limit. + + * drivers-pcmcia_fix-hybernation: Fix lockup caused by hybernation when + PCMCIA cards were present. + + * drivers-net-wireless-ipw2200-shutdown-fix: Properly shutdown ipw2200 + cards. + + * arch-x86_64-kernel-apic-timer-fix: Disable APIC pin 1 on ATI AMD64 systems + + * drivers-net-ndiswrapper-rtlzeromemory: Add RtlZeroMemory support. + + * drivers-acpi-tc1100-wmi: WMI driver to enable wireless on HP tablets. + + Changes by Fabio M. Di Nitto: + + * Update net-socket-sendmsg-fix.dpatch to actually build on sparc. + + * Change Recommends: gcc to Recommends: gcc-3.4 for linux-source-2.6.12 + package. + (Closes: #15488) + + * Make sure that we build against the kernel-package ubuntu4 since + the ubuntu3 was a wrong fix for 15488. + + * Add nls_utf8 to powerpc fs-common-modules udeb. + (Closes: #14736) + + * Add ahci modules to sata-modules udeb. + (Closes: #13506) + + Changes by Tollef Fog Heen: + * Remove some speeds from p4-clockmod, since it seems some P4s can't + handle those speed and shuts down. Ubuntu #8587, for real this time. + + Changes by Chuck Short: + + * Removed sky2 driver to be replaced by Matthew's sk98lin driver. + - Added external-drivers-net-sk98lin.dpatch + (Closes: #13421, #15854, #15849) + + * Added makefile fix to compile ndiswrapper on am64. + - Added drivers-net-ndiswrapper-Makefile_x86-64-fix.dpatch + - Added CONFIG_NDISWRAPPER=m config/amd64/* + (Closes: #13834) + + -- Ben Collins Thu, 22 Sep 2005 15:32:49 -0400 + +linux-source-2.6.12 (2.6.12-8.13) breezy; urgency=low + + Changes by Ben Collins: + + * drivers-acpi-noexecute: Entirely disable executable ACPI module code. + Patch obtained from acpi-devel@lists.sourceforge.net. + + * sth-2.6.12.6: Latest patch for 2.6.12 + Obsoletes: + - sth-CAN-2005-2555 + - drivers-scsi-sg-fix-memory-leak + + * kernel-power-swsusp_fix-error-handling: Fixes some error handling in + swsusp, and also print's information about the specific problem. + + * drivers-usb-input-powerbook-fn-quirk: Fix usage of FN key on PowerBook's. + + * drivers-net-r8169-usr997902: Support USR997902. + + * external-drivers-net-sky2: Added to support Yukon 2 cards. + + * external-fs_ocfs2: Added upstream bugfix: + + Set sk_allocation and use non-waiting gfp masks in other fs messaging. At + some point in the past we lost the setting of sk_allocation so fs messages, + including keep alives, were blocking under memory pressure. + + * drivers-scsi-libata-fix-error-handling: Fixes libata error handling. Back + ported patch from 2.6.13. (Closes: #13370) + + * drivers-net-forcedeth-0.42-upgrade: Upgraded forcedeth driver to 0.42. + (Closes: #14672) + + * external-drivers-net-wireless_prism2-and-wlan-ng: Updated to 0.2.2. + (Closes: #14103) + + * external-drivers-usb-media_pwc: Updated USB PWC driver (10.0.8). + (Closes: #14964) + + [SECURITY] + + - drivers-scsi-sg-fix-memory-leak: Fix for memory leak in sg.c. CAN security + related vulnerability (CAN id not yet known). + + - net-socket-sendmsg-fix: Fix for CAN-2005-2490, vuln with sendmsg user data + validation. + + - net-ipv4-raw-sendmsg-stack-overflow: Fix for CAN-2005-2492, vuln with + sendmsg stack overflow. + + - ht: Disable hyperthreading by default, to avoid ht hw bug. + + * all-reduce-chatty-startup: Quiets some noisy printk's. (Closes: #14500) + + -- Ben Collins Thu, 15 Sep 2005 14:05:17 -0400 + +linux-source-2.6.12 (2.6.12-8.12) breezy; urgency=low + + The "Oh crap, what did I get myself into?" Release. + + Changes by Ben Collins: + + * Added drivers-macintosh_disable-adb-on-ppc64: + - Disables selection of ADB based config options for PPC64. + (Closes: #13826) + + * Remove all traces of unionfs. It broke in the last release, and Matt has + since converted the LTSP stuff to bind fs (we're going to re-add this, but + start from scratch with some initial testing). + + * Change maintainer to myself + + * drivers-acpi-inotfy-off-by-one-fix: Patch from bug report, by Ryan Lortie. + (Closes: #14364) + + Changes by Fabio M. Di Nitto: + + * Import cman-kernel iovec fix from STABLE branch: + - Update external-cluster_cman.dpatch. + + * Import gfs ACL fix from RHEL4 branch: + - Update external-fs_gfs.dpatch. + + * Update OCFS2 to 1.1.2: + - Update patch external-fs_ocfs2.dpatch. + - Split bits required to port OCFS2 to 2.6.12 out of + external-fs_ocfs2.dpatch into patch external-fs_ocfs2-2.6.12.dpatch. + + * Bump ABI. + + * Fix drivers-macintosh_disable-adb-on-ppc64.dpatch rejected hunk. + + Changes by Chuck Short: + + * Add sata-pata bridge fix. + - Added patch drivers-scsi-libata-core_fix-sata-bridge-lockup.dpatch. + (Closes: #12303) + + Changes by Matthew Garrett + + * drivers-acpi-ec-burst: adds an optional (only enabled with kernel + parameter) mode that allows the embedded controller to be read without + polling. This seems to be necessary for a small number of machines. + + * drivers-acpi-owner_id-fix: fixes faulty logic for tracking owner_ids in + ACPI objects + (Closes: #14004) + + * drivers-char-sonypi-type3-support: Adds support for type3 sonypi. + + * drivers-acpi-add-devacpi: provides a device node that allows ACPI method + execution. Needed for decent docking/undocking support + + -- Ben Collins Tue, 30 Aug 2005 16:04:52 -0400 + +linux-source-2.6.12 (2.6.12-7.11) breezy; urgency=low + + The "Welcome Ben!" Release. + + Changes by Fabio M. Di Nitto: + + * Add unionfs-modules udeb: + - Add unionfs-modules to shared/. + - Make unionfs-modules points to shared on all arches. + - Bump Build-Deps on kernel-wedge (>= 2.05ubuntu3). + + * Stabilization process: + - Update to 2.6.12.4: + + Add patch sth-2.6.12.4.dpatch: + . Fix qla2xxx: Correct handling of fc_remote_port_add() failure case. + . Fix kbuild: build TAGS problem with O=. + . Fix ldisc ref count handling in rocket.c. + . Fix x86_64 memleak from malicious 32bit elf program. + (CAN-2005-2617) + . Fix signedness issues in net/core/filter.c. + . Fix deadlock in ip6_queue. + . Fix potential memory corruption in NAT code (aka memory NAT). + . Fix ip_conntrack_untracked to wait until all references are dropped on + unload. + . Fix possible overflow of sock->sk_policy. + (CAN-2005-2456) + . Fix bio_clone. + . sys_get_thread_area does not clear the returned argument. + . Fix early vlan adding leads to not functional device. + . Fix powernow oops on dual-core athlon. + (Closes: #13385) + - Update to 2.6.12.5: + + Add patch sth-2.6.12.5.dpatch: + . Fix per-cpu module alignment. + . Fix destruction of failed keyring oopses. + (CAN-2005-2099) + . Fix error during attempt to join key management session can leave + semaphore pinned. + (CAN-2005-2098) + . Fix check input buffer size in zisofs. + (CAN-2005-2457) + . Update in-kernel zlib routines. + (CAN-2005-2458, CAN-2005-2459) + . Fix x86_64 smpboot timing problem. + . Fix SRAT for non dual core AMD systems. + . Fix sys_set_mempolicy() check if mode < 0. + (CAN-2005-3053) + + * [SECURITY]: Add capability check for non-root user to XFRM policy manager: + - Add patch sth-CAN-2005-2555.dpatch. + + * Import RedHat Cluster Suite latest fixes from CVS STABLE branch (sync with + redhat-cluster-suite at 20050816). + + * Update OCFS2 to stable branch version 1.1.0: + - Update patch external-fs_ocfs2.dpatch. + + * Add commits r2518 and r2521 from OCFS2 SVN HEAD to fix endian netrual key + calculation (and maintain compatibility with versions prior 1.1.0 on + little-endian) and a problem with lvb recovery: + - Update patch external-fs_ocfs2.dpatch. + + * Bump ABI. + + * Add inotify syscalls for ppc and ppc64. + + * Import a bunch of inotify bug fixes from upstream. Mainly race conditions + fixes and cleanup. + + * Update configs on all arches. + + * Add patch to restore PATA ports on SATA controllers: + - Add patch external-drivers-scsi_pata-on-sata.dpatch. + (Closes: #13298) + + * Add Thinkpad blacklist to ACPI processor idle: + - Add patch external-drivers-acpi-processoridle_blacklist-thinkpad.dpatch. + (Closes: #11813) + + * Add experimental sata suspend remove support (it clearly cannot be worst + than it is now): + - Add patch external-experimental-sata_suspend-resume.dpatch. + + Changes by Matthew Garrett: + + * Update the overall ACPI subsystem: + - Update the kernel to current ACPI code: + + Add patch external-global-acpi_update-20050729.dpatch. + - Reverts the change that required individual drivers to switch interrupts + back on, as it broke stuff: + + Add patches external-drivers-acpi-pcilink_revert-interrupt-resume.dpatch + and external-drivers-acpi-pcilink_disable-reference-counting.dpatch. + - ACPI must make atomic allocation because resume runs while interrupts + are disabled: + + Add patch external-drivers-acpi_atomic-allocation.dpatch. + - Disable ec burst mode that seems to interact badly with some hardware: + + Add patch external-drivers-acpi-ec_disable-burst.dpatch. + - Make the generic hotkey driver not to override the specific ones: + + Add patch external-drivers-acpi-osl_fix-hotkeys.dpatch. + - Add /proc/acpi/button support back to the kernel: + + Add patch external-drivers-acpi-button_restore-proc.dpatch. + - Reenable GPE's before _WAK methods are called: + + Add patch external-drivers-acpi-hardware-hwsleep_gpe-specs.dpatch. + - acpi_leave_sleep_state should be called before devices are resumed: + + Add patch external-global-acpi_make-system-ready-to-resume.dpatch. + - Provide support for suspend/resume for ATI/Nvidia AGP bridges: + + Add patch external-drivers-chars-agp_pm.dpatch. + - Provide /dev/toshiba device node so that toshset can be run on newer + Toshibas, required for enabling/disabling Bluetooth: + + Add patch external-drivers-acpi-toshiba_update.dpatch. + - Add ACPI driver for i2c bus: + + Add patch external-drivers-acpi_i2c-acpi-ec.dpatch. + - Make the kernel default to rebooting by calling the BIOS: + + Add patch external-arch-i386-kernel-reboot_reboot-thru-bios.dpatch. + - Update ASUS ACPI driver: + + Add patch external-drivers-acpi-asusacpi_update.dpatch. + - Fix resume on some Intel AGP bridges: + + Add patch external-drivers-chars-agp-intel_fix-resume.dpatch. + + Changes by Chuck Short: + + * Re-add acer hotkeys support: + - Add patch external-drivers-input-misc_acerhk.dpatch. + - Add CONFIG_INPUT_ACERHK=m. + + * Fix 3c59x suspend/resume support: + - Add patch drivers-net-3c59x_pm-fixes.dpatch. + (Closes: #5228) + + Changes by Jeff Bailey: + + * (NOTE from Fabio: this cool guy did push me something that updates + drivers-acpi-osl_attach-dsdt-to-initrd.dpatch, but i guess he falled + over his keyboard before giving me the data for this entry... duh!) + (Closes: #13535) + + -- Fabio M. Di Nitto Fri, 19 Aug 2005 06:32:51 +0200 + +linux-source-2.6.12 (2.6.12-6.10) breezy; urgency=low + + * Update hardcoded initrd-tools dependencies to initramfs-tools + + -- Matt Zimmerman Wed, 10 Aug 2005 13:04:48 -0700 + +linux-source-2.6.12 (2.6.12-6.9) breezy; urgency=low + + Changes by Jeff Bailey: + + * Build-dep on kernel-package 9.001-1ubuntu2 + + -- Jeff Bailey Wed, 10 Aug 2005 11:01:14 -0400 + +linux-source-2.6.12 (2.6.12-6.8) breezy; urgency=low + + Changes by LaMont Jones: + + * Actually add arch-hppa_cross.dpatch to the right place. sigh. + + Changes by Matt Zimmerman: + + * Updated unionfs patch. + - modifies external-fs_unionfs.dpatch. + + -- LaMont Jones Fri, 5 Aug 2005 11:55:56 -0600 + +linux-source-2.6.12 (2.6.12-6.7) breezy; urgency=low + + Changes by LaMont Jones: + + * synaptics cpad driver: CPAD depends on USB + * Drop CONFIG_PRINTK_TIME from ia64 configs, since it's fatal. + * Fix CROSS_COMPILE setting for 64-bit hppa + - Add arch-hppa_cross.dpatch + + -- Fabio M. Di Nitto Thu, 04 Aug 2005 07:21:32 +0200 + +linux-source-2.6.12 (2.6.12-6.6) breezy; urgency=low + + The "Scintilating Sesame" release. + + Changes by Fabio M. Di Nitto: + + * Update OCFS2 to 0.99.17: + - Rediff external-fs_unionfs.dpatch. + + * Bump the abi ... again ... + + * Add inotify syscalls for ia64/sparc. + + * Update redhat cluster suite to 20050729. + + * Update squashfs to 2.2: + - CONFIG_SQUASHFS_EMBEDDED=n + + * Update unionfs to 1.3: + - CONFIG_UNIONFS=m and CONFIG_UNIONFS_XATTR=y on ppc. + + * Update rt2400/rt2500 drivers to CVS snapshot 20050728. + + -- Fabio M. Di Nitto Fri, 29 Jul 2005 12:09:23 +0200 + +linux-source-2.6.12 (2.6.12-5.5) breezy; urgency=low + + The "JaneW is not around" release. + + Changes by Fabio M. Di Nitto: + + * Merge patching per flavour support from an old experimental now dead + branch. + NOTE: patches applied by this method can't be reflected into + linux-patch-ubuntu. + + * Add xen info to debian/config/archmap. + + * Update inotify from 2.6.13-rc3-git8: + - Reallign syscall NR with upstream. + (Closes: #12987) + + * Add fix to restore C2/C3: + - Update patch external-global-acpi_update-fixups.dpatch. + (Closes: #12900) + + * CONFIG_USB_BANDWIDTH=n. + (Closes: #12963) + + * Update the ipw2*00 drivers: + - Update ieee80211 to 1.0.3. + - Update ipw2100 to 1.1.2. + - Update ipw2200 to 1.0.6. + - Update firmwares to the latest versions. + - Update d-i/shared/firmware/nic-firmware. + + * Bump the abi. + + * Update debian/rules bumpabi target to use baz in mv operations. + + -- Fabio M. Di Nitto Thu, 28 Jul 2005 09:07:02 +0200 + +linux-source-2.6.12 (2.6.12-4.4) breezy; urgency=low + + The "Whooping Wholewheat" release. + + Changes by Fabio M. Di Nitto: + + * Stabilization process: + - Update to 2.6.12.3: + + Add patch sth-2.6.12.3.dpatch: + . Fix semaphore handling in __unregister_chrdev_region. + . [UML] Fix TT mode by reverting "use fork instead of clone". + . Fix tty_ldisc_ref return null check. + . Fix cx88 hue offset. + . Fix tpm breaking 8139cp. + . Fix SMP 6pack driver. + . Fix shaper driver lossage in 2.6.12. + . Stop misusing ntps time_offset value on ppc32. + . Revert nf_reset change. + . Fix ACPI to not accept irq 0 as valid PCI irq. + + * Bump the ABI. + + * Update megaraid split up patch to deal with a controller corner case that + is marked as MEGARAID3, but needs the old driver to work properly. + + * Update redhat cluster suite to CVS20050721: + - Make all the images Provides: rhcs-modules-1 for the redhat-cluster-suite + and make sure the user land have a proper set of modules installed. + - Include dm-cmirror. + - Import all the latest bug fixes. + + * Downgrade ipw2200/ieee80211 drivers to 1.0.1. + (Closes: #11601, #12417, #10627, #11696) + + * Update ocfs2 to 0.99.16. + + * Update spca5xx to 20050701. + + * Update tpm driver: + - Add patch sth-drivers-char-tpm_global-fixups.dpatch. + (Closes: #12065, #12583) + + * Unset CONFIG_IEEE1394_SBP2_PHYS_DMA on sparc. + + * CONFIG_VIDEO_CX88_DVB=m on i386. + + * Update hppa patch to 2.6.12-pa2. + + * Bump build-deps on kernel-wedge (>= 2.05ubuntu1): + + * Add PCI-E suspend/resume support: + - Add patch drivers-pci-pcie_resume-pcie.dpatch. + + * Unset CONFIG_EDD. + (Closes: 8899) + + * Add bluetooth alsa driver: + - Add patch external-drivers-bluetooth_alsa.dpatch. + - CONFIG_BT_ALSA=m. + + * Update inotify from 2.6.13-rcX: + - Obsolete patch external-fs_inotify.dpatch. + - Add patch sth-fs_inotify.dpatch. + + * Fix linux-headers-*: + - scripts/ should be per flavour. + - Update debian/post-install and debian/header-install. + - dh_shlibdeps is now executed per flavour. + - Update debian/control and debian/control.stub to reflect + ${shlibs:Depends} changes. + + * Second (and hopefully last) round of d-i udebs creation cleanup: + - Switch shared/modules/* to kernel-wedge 2 format. + - Switch $arch/modules/$arch/*-modules to kernel-wedge 2 format. + - Rename s/\.lnk// and switch to kernel-wedge 2 format. + - Add crc-modules to d-i/shared/ (from kernel-wedge): + . Remove crc-ccitt from nic-shared-modules. + . Make crc-ccitt optional. + - Add scsi-modules to d-i/shares/ as merge from all scsi-modules + scsi-common-modules and scsi-extra-modules. + - Make scsi-modules point to shared/. + - Remove scsi-common-modules and scsi-extra-modules from all arches. + - Add parport-modules to sparc64 as link to shared/parport-modules. + - Add optional parport_sunbpp to shared/parport-modules. + - Make dm-emc optional in shared/md-modules. + - Add nic-shared-modules to hppa. + - Add nic-modules to d-i/shares/ as merge from all nic-modules and + nic-extra-modules. + - Make nic-modules point to shared/. + - Add nic-usb-modules to d-i/shares/ as merge from all nic-usb-modules. + - Make nic-usb-modules point to shared/. + - Add nic-pcmcia-modules to d-i/shares/ as merge from all nic-pcmcia-modules. + - Make nic-pcmcia-modules point to shared/. + - Kill nic-extra-modules from everywhere. + - Make nic-pcmcia-modules Depends: nic-modules and firmware-modules on + i386 and amd64. + - Make nic-modules Depends: firewire-core-modules, crc-modules on ia64. + - Make nic-modules Depends: crc-modules on ppc and amd64. + (Closes: #12392, #7808) + + * Update all configs. + + * Add fix for ntfs lockup: + - Add patch sth-fs-inode_fix-ntfs-lockup.dpatch. + (Closes: #12748) + + * Update skge driver from 2.6.13-rc3: + - Rename external-drivers-net_skge.dpatch to sth-drivers-net_skge.dpatch. + + * Reenable abi checker for sparc and hppa. + + * Add FUSE support: + - Add patch external-fs_fuse.dpatch. + - CONFIG_FUSE=m on all arches. + - linux-image-* Provides: fuse-module. + + -- Fabio M. Di Nitto Fri, 22 Jul 2005 09:41:28 +0200 + +linux-source-2.6.12 (2.6.12-3.3) breezy; urgency=low + + The "Obtuse Oats" release. + + Changes by Fabio M. Di Nitto: + + * Keep always around a 00list generated by clean: and monotith: targets in + order to make the new dpatch-edit-patch work. + NOTE for devels: + - Never munge 00list manually or commit it to the repository. Keep + updating the 00list-x.y as you always did. + + * Fix script/mod/modpost.c interaction with new glibc: + - Add patch scripts-mod-modpost_deal-with-new-glibc.dpatch. + - Fix tons of ghosts warning building on sparc64. + (Thanks to Ben Collins for debugging the problem and figuring the change + in /usr/include/elf.h between 2.3.2 and 2.3.4) + + * Stabilization process: + - Update to 2.6.12.2: + + Add patch sth-2.6.12.2.dpatch: + . Fix typo in drivers/pci/pci-driver.c + . qla2xxx: Pull-down scsi-host-addition to follow board initialization. + . fix remap_pte_range BUG. + . e1000: fix spinlock bug. + . Add "memory" clobbers to the x86 inline asm of strncmp and friends. + . Fix two socket hashing bugs. + + * Fix ppc64 header package by moving the include/asm symlink to point to the + proper asm-$kernelarch: + - Modify debian/post-install to detect and cope with $kernelarch + - Cleanup debian/config/archmap to add KPKG_ARCH to kernel headers arch + mapping. + + * Update redhat cluster suite modules to CVS20050704. + + -- Fabio M. Di Nitto Mon, 04 Jul 2005 15:39:29 +0200 + +linux-source-2.6.12 (2.6.12-3.2) breezy; urgency=low + + The "Rascal Rye" release. + + Changes by Fabio M. Di Nitto: + + * Remove power3/power4 abi files. + + * Ignore abi check on sparc until the build is fixed with new glibc. + + * Start stabilization process: + - Update to 2.6.12.1: + + Add patch sth-2.6.12.1.dpatch: + . [SECURITY] Fix ia64 ptrace + sigrestore_context. + (CAN-2005-1761) + . [SECURITY] Clean up subthread exec. + (CAN-2005-1913) + + * Update ocfs2 to 0.99.13 release. + + * Update inotify to 2.6.12-13 release. + + * Update alsa to 1.0.9+: + - Add patch sth-alsa-1.0.9.dpatch and sth-alsa-1.0.9-fixups.dpatch. + The latter fix a wrong macro declaration that breaks docbook generation. + - CONFIG_SND_HDSPM=m. + - Bump ABI. + + * Cleanup all ppc power3/power4 specific patches: + - Remove arch-ppc-boot-simple-miscprep_disable-6xx-mmu.dpatch, + arch-ppc-platforms-pmaccache_fix-cache-handling.dpatch, + arch-ppc-kernel_g4-l2-flush-errata.dpatch and + arch-ppc-kernel-l2cr_complete-renaming.dpatch. + + * Drop Provides: linux and move it to linux-meta package. + + * Add skge to d-i and remove sk98lin references: + - *** TEMPORARY HACK ALLERT (part2) ***: + . Move orinoco and hermes to nic-modules. + . Make nic-extra-modules Depends on nic-modules. + . Move crc-ccitt to nic-shared-modules. + + * Fix scsi changer backport from 2.6.12-gitX: + - Update sth-drivers-scsi_changer.dpatch. + + * Fix zd1211 Makefile and linking. + + * Update Depends: on latest initrd-tools to ensure that the megaraid + splitting will work properly in newly created initrd. + + Changes by Chuck Short: + + * Add support for zd1211. + - CONFIG_USB_ZD1211=m. + - Add external-drivers-net-usb_zd1211.dpatch. + (Closes: #11833) + + -- Fabio M. Di Nitto Tue, 28 Jun 2005 14:33:25 +0200 + +linux-source-2.6.12 (2.6.12-2.1) breezy; urgency=low + + The "Flying Spaghetti Monster" release. + + Changes by Fabio M. Di Nitto: + + * Re-enable abi check again. + + * Fix debian/rules sparc64 special case to handle d-i/shared properly. + + * New upstream release (2.6.12 final): + - Add full ChangeLog-2.6.12. + - Drop arch-ppc-include-io_define-isa.dpatch. The patch is wrong and bad. + Drivers need fix from upstream. + - Rename external-drivers-scsi_changer.dpatch to sth-drivers-scsi_changer.dpatch + and update the driver to version 0.25 (from 2.6.12-git1). + - Update acx100 to 0.2.0pre8+fixes57. + - Update afsf to 1.0beta10. + - Update unionfs to 1.0.12a. + - Update inotify to 0.23-rml-2.6.12-rc6-13. + - Update em8300 to 2.6.12. + - Update atmel firmware to 1.3. + - Update spca5xx to 20050601. + - Update adm8211 to 20050620. + - Update cpad to 1.2. + - Update eagle-usb to 2.3.2. + - Update hostap to 0.4.1. + - Bump ABI. + + * Sync from Debian: + - Update arch-ia64_generic-no-smp.dpatch (Dann Frazier): + . Drop arch-ia64-include-asmia64-sn-arch_include-numa.dpatch and + arch-ia64_generic-no-smp-1-to-2.dpatch now included in the main patch. + - Add arch-ia64_irq-affinity-upfix.dpatch (Dann Frazier). + - Update drivers-video-vesafb_make-driver-as-module.dpatch (Andres Salomon). + + * Start using debian/uscan-extmod|passed.kwatch to monitor external drivers + status: + - Update passed.kwatch to a more human readable format. + - Remove all kwatch'ed drivers from external-drivers. + (Thanks to Charles for the overall implementation that missed proper + credits in the previous uploads) + - Rename passed.kwatch to external-drivers. + - Fine tune uscan-extmod to sane defaults. + - Add checkextdrivers and downloadextdrivers targets to debian/rules. + + * RedHat Cluster Suite update to the STABLE branch: + - Rename gndb to gnbd as it should be :) + - Remove all -fixups patches that are already included upstream but were + missing from previous branch. + - Import all shiny bugfixes. + + * Kill power3, power3-smp, power4 and power4-smp flavours. These flavours + should be fully supported by powerpc64-smp. + + -- Fabio M. Di Nitto Wed, 22 Jun 2005 16:30:55 +0200 + +linux-source-2.6.12 (2.6.11.94-1.2) breezy; urgency=low + + The "Caramel Cashew" release. + + Changes by Fabio M. Di Nitto: + + * Update a few bits in the RedHat cluster suite to import the latest fixes + from CVS. + + * Update OCFS2 to 0.99.12. + + * Global udeb creation rework: + - Remove dependency on kernel-wedge modules lists. This change will allow + the kernel build to be fully indipendent from kernel-wedge uploads and + module lists changes. It also makes easier to keep the lists in sync, + since they are all in one package. We still use kernel-wedge to do the + right thing with the modules lists. + . Create debian/d-i/shared/ with the same meaning of common/. + . Modify debian/rules to copy debian/d-i/shared/ as appropriate. + . Add firmware/nic-firmware to d-i/shared/ (from kernel-wedge): + + Update shared/firmware/nic-firmware to include all the latest + versions. + + Make nic-firmware.lnk point to shared/. + . Add modules/firmware-modules to d-i/shared/ (from kernel-wedge): + + Make firmware-modules.lnk point to shared/. + + Add optional efivars required for ia64. + + Remove lib/firmware_class. + . Add modules/firewire-core-modules to d-i/shared/ (from kernel-wedge): + + Remove eth1394 (in nic-modules for amd64/ppc/i386). + + Make firewire-core-modules.lnk point to shared/. + . Add modules/acpi-modules to d-i/shared/ (from kernel-wedge): + + Make acpi-modules.lnk point to shared/. + . Make affs-modules.lnk a non link since it is used only by powerpc. + . Add modules/cdrom-core-modules to d-i/shared/ (from kernel-wedge): + + Make cdrom-core-modules.lnk point to shared/. + . Remove mcd from cdrom-modules. + . Add modules/ext2-modules to d-i/shared/ (from kernel-wedge): + + Make ext2-modules.lnk point to shared/. + . Add modules/ext3-modules to d-i/shared/ (from kernel-wedge): + + Make ext3-modules.lnk point to shared/. + . Add modules/fat-modules to d-i/shared/ (from kernel-wedge): + + Update fat-modules to force all modules inclusion. + + Make fat-modules.lnk point to shared/. + . Add modules/floppy-modules to d-i/shared/ (from kernel-wedge): + + Make floppy-modules.lnk point to shared/. + . Make hfs-modules.lnk a non link since it is used only by powerpc. + . Update powerpc/fs-common-modules: + + Add mbcache. + . Update powerpc/package-list: + + Make ext2 and ext3-modules Depends: fs-common-modules. + . Add modules/ide-core-modules to d-i/shared/ (from kernel-wedge): + + Make ide-core-modules.lnk point to shared/. + . Add modules/ide-modules to d-i/shared/ (from i386/ide-modules): + + Make ide-modules a link to shared/ for i386, amd64 and ia64. + + Add ide-tape and ide-floppy to ide-modules. + + Make amd74xx, atiixp, rz1000, sgiioc4 and sis5513 optional to share + ide-modules with ia64. + + Add ide-tape, ide-floppy, serverworks and isofs to ide-modules for sparc64. + . Add modules/ipv6-modules to d-i/shared/ (from kernel-wedge): + + Make ipv6-modules.lnk point to shared/. + . Add modules/input-modules to d-i/shared/ as a merge from all input-modules: + + Make input-modules a link to shared/. + . Add modules/irda-modules to d-i/shared/ as a merge from i386/amd64 irda-modules: + + Make irda-modules a link to shared/ for i386/amd64. + + Add ali-ircc, nsc-ircc, smsc-ircc2, via-ircc and w83977af_ir to powerpc irda-modules. + . Add modules/jfs-modules to d-i/shared/ (from kernel-wedge): + + Make jfs-modules.lnk point to shared/. + . Remove d-i/ia64/modules/ia64/kernel-image and cleanup crc-ccitt status + around. The module is properly pulled in ppp-modules on all arches as + dependency. + . Add modules/loop-modules to d-i/shared/ (from kernel-wedge): + + Make loop-modules.lnk point to shared/. + + cloop is now required. + . Add modules/md-modules to d-i/shared/ (regenerated from images): + + Make md-modules.lnk point to shared/. + + Remove lvm-mod, dm-zero and faulty. + . Add modules/nfs-modules to d-i/shared/ (from kernel-wedge): + + Make nfs-modules.lnk point to shared/. + . Add modules/ntfs-modules to d-i/shared/ (from i386/ntfs-modules): + + Add ntfs-modules.lnk to i386/ia64/amd64. + + Remove ntfs-modules from i386/ia64/amd64. + . Add modules/nic-shared-modules to d-i/shared/ (from i386/nic-shared-modules): + + Add nic-shared-modules.lnk to i386/ia64/amd64/powerpc/sparc64. + Note: it will add nic-shared-modules udeb to sparc64. + + Make mii conditional since powerpc has it compiled in. + + Remove mii and 8390 from sparc64/nic-modules. + + Remove obsolete nic-modules entry from d-i/sparc/package-list. + + Move airo, hermes and orinoco from nic-shared-modules to + nic-extra-modules on powerpc. + . Add modules/parport-modules to d-i/shared/ (from kernel-wedge): + + Make parport-modules.lnk point to shared/. + . Add modules/pcmcia-modules to d-i/shared/ (merge from our lists): + + Make pcmcia-modules a link to shared/. + + Make i82365 optional. + + Add explicitly rsrc_nonstatic. + . Add modules/pcmcia-storage-modules to d-i/shared/ (from kernel-wedge): + + Make pcmcia-storage-modules a link to shared/ for i386/amd64. + + Make pcmcia-storage-modules.lnk point to shared/ on powerpc. + . Add modules/plip-modules to d-i/shared/ (from kernel-wedge): + + Make plip-modules.lnk point to shared/. + . Add modules/ppp-modules to d-i/shared/ (from kernel-wedge): + + Rename ppp_mppe to ppp_mppe_mppc and make it mandatory. + + Make ppp-modules.lnk point to shared/. + . Add modules/reiserfs-modules to d-i/shared/ (from kernel-wedge): + + Make reiserfs-modules.lnk point to shared/. + . Add modules/rtc-modules to d-i/shared/ (from kernel-wedge): + + Make rtc-modules.lnk point to shared/. + + Both modules are now mandatory. + . Add modules/sata-modules to d-i/shared/ (merge from our lists): + + Full list update of sata drivers. + + Make sata-modules.lnk point to shared/. + . Add modules/scsi-core-modules to d-i/shared/ (from kernel-wedge): + + Make scsi_mod optional (for hppa). + + Make scsi-core-modules.lnk point to shared/. + + Add hppa/scsi-core-modules.lnk. + (This will add scsi-core-modules to hppa) + + Remove sd_mod from scsi-modules on hppa. + . Add modules/serial-modules to d-i/shared/ (merge from our lists): + + Make serial-modules a link to point to shared/. + . Add modules/socket-modules to d-i/shared/ (from kernel-wedge): + + Make socket-modules.lnk point to shared/. + . Add modules/usb-modules to d-i/shared/ (merge from our lists): + + Add sl811-hcd to usb-modules. + + Make usb-modules a link to shared/ for all arches. + (This will add usb-modules to sparc64). + . Add modules/usb-storage-modules to d-i/shared/ (from kernel-wedge): + + Make usb-storage-modules.lnk point to shared/. + + Add usb-storage-modules.lnk to sparc64. + . Add modules/ufs-modules to d-i/shared/ (from kernel-wedge): + + Make ufs-modules.lnk point to shared/. + . Add modules/xfs-modules to d-i/shared/ (from kernel-wedge): + + Make xfs-modules.lnk point to shared/. + + xfs is now mandatory. + . *** TEMPORARY HACK ALLERT ***: + + Make nic-pcmcia-modules Depends: nic-modules on powerpc. + + * Tight gcc-3.4 Build-Deps on i386. + + * Bump Build-Dep on latest kernel-package to import a bunch of bug fixes. + + * Add ARCH override support when building linux-headers. This is required + only for powerpc builds when building on powerpc64 kernels at the moment: + - Modify debian/rules to gather headers arch (HARCH) from + debian/config/archmap in build target. + - Add headers-$debian_arch $kernel_arch mapping to debian/config/archmap. + Note that the arch "ppc" is a kernel arch and not a Debian arch. When this + opertaion is taking place we have no mapping yet between Debian and kernel + arches. + + * CONFIG_DVB_AV7110_OSD=y on all arches. + (Thanks Andreas Mueller for reporting). + + Changes by Chuck Short: + + * CONFIG_IEEE1394_SBP2_PHYS_DMA=y on i386/*. + (Closes: #11271) + + * Add configs debugging/686-smp-dbg, debugging/k7-dbg, debugging/k7-smp-dbg. + + * Update inotify to 0.23-2.6.12-rc6-9. + + Changes by LaMont Jones: + + * Change build-depends to be more lenient on non-ppc architectures. + * hppa rc6-pa1 patch: arch-hppa_rc6-pa1.dpatch. + * Update hppa configs. + + -- Fabio M. Di Nitto Fri, 17 Jun 2005 12:01:38 +0200 + +linux-source-2.6.12 (2.6.11.94-1.1) breezy; urgency=low + + The "Morose Mungbean" Release. + + Changes by Fabio M. Di Nitto: + + * New upstream released based on 2.6.12-rc6: + - Obsolete patches sth-drivers-char-ipmi-ipmidevintf_fix-ftbfs.dpatch, + arch-ppc_fix-resume.dpatch and drivers-net-hamradio-baycomepp_gcc4-fixes.dpatch. + - Rediff kernel-irq_handle-misrouted-irq.dpatch, kernel-irq_handle-misrouted-irq.dpatch and + external-global-acpi_update.dpatch + - Update all configs. + + * Bump Build-Deps on kernel-package 0.135ubuntu4 to include new postinst + script to support ramfs. + + -- Fabio M. Di Nitto Wed, 08 Jun 2005 06:31:29 +0200 + +linux-source-2.6.12 (2.6.11.93-1.3) breezy; urgency=low + + The "Laughing Lentil" Release. + + Changes by Fabio M. Di Nitto: + + * Update powerpc64-smp/iseries-smp configs to actually create a kernel + that can boot. + + * Do not build -dbg flavours automatically since images are huges, but still + provide configs in debian/config/debugging/$flavour for the users. + + -- Fabio M. Di Nitto Tue, 07 Jun 2005 14:43:56 +0200 + +linux-source-2.6.12 (2.6.11.93-1.2) breezy; urgency=low + + The "Bashful Brazil" Release. + + Changes by Fabio M. Di Nitto: + + * Switch to proper patch to fix ipmi FTBFS: + - Update and rename drivers-char-ipmi-ipmidevintf_fix-ftbfs.dpatch to + sth-drivers-char-ipmi-ipmidevintf_fix-ftbfs.dpatch. + + * Fix resume on some ppc notebook: + - Add patch arch-ppc_fix-resume.dpatch. + (Thanks to Benjamin Herrenschmidt ) + + * Update the overall Red Hat cluster suite to RHEL4U1 branch that seems to + be the most reliable one. + + * Add dc395x module to appropriate scsi udebs. + (Closes: #11385) + + * First attempt of powerpc64 kernel support: + - Add support for KPKG_ARCH override required for powerpc64 kernels: + . Modify debian/rules to export KPKG_ARCH at build/install time. + . Add debian/config/archmap file to map configfile name and KPKG_ARCH. + . Make installation of postinstall.$(arch) KPKG_ARCH aware. + - Bump build-dep on gcc-3.4 (>= 3.4.4-0ubuntu4) and kernel-package + (>= 8.135ubuntu2)for ppc biarch support. + - Generate powerpc64-smp udebs. iseries-smp udebs are problematic at the + moment. + - Extend kernel-irq_handle-misrouted-irq.dpatch to include arch/ppc64. + - Add powerpc64-smp and iseries-smp to debian/control*. + - Add debian/config/powerpc/powerpc64-smp and iseries-smp. + + * Update 386-dbg 686-dbg configs. + + Changes by Matthew Garrett: + + * Update generic acpi hotkey driver: + - Add patch external-global-acpi_update-fixups.dpatch. + - CONFIG_ACPI_HOTKEY=m + + Changes by Chuck Short: + + * Add more gcc-4.0 build fixes: + - Add patch drivers-net-hamradio-baycom_epp_gcc4-fixes.dpatch. + + * Drop acerhk support. It is no longer supported upstream: + - Drop external-drivers-input-misc_acerhk.dpatch. + - Remove entry from external-drivers. + + * Add support for debug kernels: + - Add config/i386/386-dbg config/i386/686-dbg. + - Add linux-headers-2.6.12-1-686-dbg linux-image-2.6.12-1-686-dbg. + - Add linux-headers-2.6.12-1-386-dbg linux-image-2.6.12-1-386-dbg. + + Changes by LaMont Jones: + + * Incorporate the latest hppa source delta. + + -- Fabio M. Di Nitto Mon, 06 Jun 2005 10:06:49 +0200 + +linux-source-2.6.12 (2.6.11.93-1.1) breezy; urgency=low + + The "Perky Pecan" Release + + Changes by LaMont Jones: + + * latest hppa kernel patches. + + Changes by Fabio M. Di Nitto: + + * New upstream release (2.6.12rc5): + - Add patch drivers-char-ipmi-ipmidevintf_fix-ftbfs.dpatch. + - Update configs. + + * Cleanup debian/rules: + - Remove debnum: and abinum: targets. + - Add printenv: target. + - Add printenv and startnewrelease to .PHONY. + - Fix revisions calculation per release. + + -- Fabio M. Di Nitto Wed, 25 May 2005 17:38:28 +0200 + +linux-source-2.6.12 (2.6.11.92-1.3) breezy; urgency=low + + The "Wacky Walnut" Release. + + Changes by Fabio M. Di Nitto: + + * Fix FTBFS because dpatch sucks: + - Remove debian/ bits from external-drivers-net-wireless_ipw2100.dpatch. + + * Fix startnewrelease: target in debian/rules. + + Changes by Matthew Garrett: + + * Global acpi update: + - Add patches external-global-acpi_update.dpatch and + external-drivers-ide_sleep.dpatch. + - CONFIG_ACPI_SLEEP_PROC_SLEEP=y and CONFIG_ACPI_HOTKEY=n where applies. + + -- Fabio M. Di Nitto Tue, 24 May 2005 13:57:32 +0200 + +linux-source-2.6.12 (2.6.11.92-1.2) breezy; urgency=low + + The "Merry Macadamia" Release. + + Changes by LaMont Jones: + + * hppa patches from cvs.parisc-linux.org + + Changes by Fabio M. Di Nitto: + + * Update cluster support from Red Hat (CVS snapshot 20050511 FC4 branch): + . Update patches external-drivers-block_gndb.dpatch, + external-cluster_cman.dpatch, external-cluster_dlm.dpatch and + external-fs_gfs.dpatch. + . Add patch external-fs_gfs-fixups.dpatch to include some CVS HEAD fixes + that are not in FC4 branch yet. + . Obsolete patches external-drivers-block_gndb-fixups.dpatch, + external-cluster_cman-fixups.dpatch and + external-cluster_dlm-fixups.dpatch that are now included upstream. + + * Fix bumpabi target in debian/rules to reflect the new version schema. + + * Make sure to include capability.ko in our initrd images. + + * Update inotify to 0.23-2.6.12-rc4-8. + + * Add OCFS2 0.99.9 BETA support: + - Add patch external-fs_ocfs2.dpatch. + - CONFIG_OCFS2_FS=m and CONFIG_CONFIGFS_FS=m on i386/amd64/ppc/sparc/hppa. + + * Bump Build-Deps on kernel-package (>= 8.132ubuntu2) to cope with the new + dpkg-architecture vars. + + * Update ipw2200 driver to 1.0.4: + - Update firware to version 2.3. + - Update ieee80211 to 1.0.4. + - CONFIG_IPW2200_MONITOR=y and CONFIG_IPW2200_QOS=y on i386/ppc/ia64/amd64. + + * Fix ipw2100 driver compilation options. + + Changes by Thom May: + + * Add external skge driver: + - Add patch external-drivers-net_skge.dpatch. + - CONFIG_SK98LIN=n and CONFIG_SKGE=m on all arches. + + * Itaglish translation for the notification message + + Changes by Chuck Short: + + * Add USB Atmel driver: + - Add patch external-drivers-usb-net_atmel-wifi.dpatch. + + * Update USB quickcam driver: + - Add patch external-drivers-usb-media_quickcam.dpatch. + - Obsolete patch external-drivers-usb-media_qcusb-cvs-20050426.dpatch. + + * Add USB spca5xx driver: + - Add patch external-drivers-usb-media_spca5xx.dpatch. + + * Make audit and swsusp a bit more quite at boot: + - Add patch kernel-audit_shaddup.dpatch and + kernel-power-swsusp_shaddup.dpatch. + + -- Fabio M. Di Nitto Tue, 24 May 2005 07:22:30 +0200 + +linux-source-2.6.12 (2.6.11.92-1.1) breezy; urgency=low + + The "Cheerful Chestnut" Release. + + Changes by Fabio M. Di Nitto: + + * New upstream release (based on 2.6.12rc4): + - Remove patches stolen from head. + - Rediff: + . drivers-ide_make-drivers-as-modules.dpatch. + . drivers-video-vesafb_make-driver-as-module.dpatch. + - CONFIG_PRINTK=y and CONFIG_BUG=y on i386/amd64. + - CONFIG_USB_SERIAL_AIRPRIME=m and CONFIG_USB_SERIAL_HP4X on all arches. + - CONFIG_X86_REBOOTFIXUPS=y on i386. + - CONFIG_SGI_TIOCX=y, CONFIG_SGI_MBCS=m, HANGCHECK_TIMER=m on ia64. + - Fix ia64 FTBFS: + . Add patch arch-ia64-include-asmia64-sn-arch_include-numa.dpatch. + - Fix ppc FTBFS: + . Add patch drivers-macintosh-viapmu_add-ifdef.dpatch. + + * Disable rt2500 on ppc (FTBFS). + + * General config update due to the new drivers. + + * Enable CONFIG_BSD_PROCESS_ACCT_V3=y on all arches. + + * Add xmlto as Build-Dep due to recent Documentation changes. + + Changes by Chuck Short: + + * Add Hollywood+/dxr3 support: + - Add patch external-drivers-media_em8300.dpatch. + (Closes: #10543) + + * Add support sound support for via vt17020/24: + - Add patch sound-pci-ide1712_enable-via-envy24pt.dpatch. + (Closes: #9734) + + * Add squashfs support: + - Add patch external-fs-squashfs.dpatch. + + * Update rt2500 driver from cvs. + + * Add rt2400 support: + - Add patch external-drivers-net-wireless_rt2400.dpatch. + + -- Fabio M. Di Nitto Tue, 10 May 2005 11:03:34 +0200 + +linux-source-2.6.12 (2.6.11.91-1.1) breezy; urgency=low + + The "Happy Hazel" Release. + + Welcome to JaneW as our new name release manager that kindly offered + volunteer to find nuts names for our kernel. + + Changes by Fabio M. Di Nitto: + + * New upstream release (based on 2.6.12rc3): + - Update debian/control.stub. + - Modify debian/rules in several sections to cope with a version different + from the one specified in the package name. + - Add empty ChangeLog-2.6.11.91. + - Remove ChangeLog-2.6.10. + - Clean up debian/patches/00list*. 00list-1{,.hppa} are pristine copies + from the previous release. + - Kill all debian/patches/stolen-from-head* and update 00list-1. + - Update d-i kernel versions. + - Update debian/official. + - Update debian/rules bumpabi to use $(pkgversion). + - Kill more patches that were already upstream. + - Remove old unused patches from debian/patches. + - First round of global rename of patches to comply with the new schema, + as agreed on kernel-team mailing list. + - Mark all external- drivers/patches as such and update + debian/external-drivers. + - Apply all external drivers as last and sort them. + - Rediff all non external patches and drop (they are upstream): + . drivers-net-sk98lin-skge_update.dpatch. + . kernel-power-disk_thaw-processes.dpatch. + . drivers-net-mv643xx_update.dpatch. + . arch-ppc-platforms_chrppegasoseth.dpatch. + . external-drivers-usb-media_pwc.dpatch. + - Sort non external patches in debian/patches/00list-1. + - Update external modules: + . adm8211 to version 20050323. + . ieee80211 to version 1.0.3. + . ipw2100 to version 1.1.0. + (Closes: #4820, #7374) + . ipw2200 to version 1.0.3. + (Closes: #7135, #7782) + . ndiswrapper to version 1.1. + (Closes: #6318) + . prism2 and wlan-ng to version 0.2.1-pre26. + . scsi-changes to version 0.24. + . acpi_sony to version 0.2. + . atmel firmwares to version 1.2. + . asfs to version 1.0beta9: + + update amd64/i386/ia64/powerpc configs for NLS support. + . mppe to version 1.3/20041123: + + update all configs for s/CONFIG_PPP_MPPE/CONFIG_PPP_MPPE_MPPC/g. + . synaptic-cpad to version 1.1. + - Fix FTBFS on ppc: + . Add patch arch-ppc-boot-simple-miscprep_disable-6xx-mmu.dpatch. + . Add patch arch-ppc-kernel-l2cr_complete-renaming.dpatch. + - Update configs for i386/amd64/sparc/powerpc/ia64. + (Closes: #6629, #7220, #9068, #9903) + - Fix a few drivers FTBFS: + . Add patch sth-drivers-scsi-ultrastor_fix-ftbfs.dpatch. + . Add patch sth-drivers-usb-image-microteck_fix-ftbfs.dpatch. + . Add patch arch-ppc-platforms-pmac-cpufreq_update-cpufreq-table.dpatch. + + * Add cluster support from Red Hat (CVS snapshot 20050416): + - Add Global Network Block Device (GNDB) support: + . Add patches external-drivers-block_gndb.dpatch and + external-drivers-block_gndb-fixups.dpatch. + . CONFIG_BLK_DEV_GNBD=m for all arches. + - Add Connection Manager (CMAN) support: + . Add patches external-cluster_cman.dpatch and + external-cluster_cman-fixups.dpatch. + . CONFIG_CLUSTER=m for all arches. + - Add Distributed Lock Manager (DLM) support: + . Add patches external-cluster_dlm.dpatch and + external-cluster_dlm-fixups.dpatch. + . CONFIG_CLUSTER_DLM=m and CONFIG_CLUSTER_DLM_PROCLOCKS=y on all arches. + - Add Global FileSystem (GFS) and GFS locking methods: + . Add patch external-fs_gfs.dpatch. + . CONFIG_LOCK_HARNESS=m, CONFIG_LOCK_NOLOCK=m, CONFIG_LOCK_DLM=m, + CONFIG_LOCK_GULM=m and CONFIG_GFS_FS=m on all arches. + + * Force the kernel to use gcc-3.4: + - Add patchmakefile_force-gcc3.4.dpatch. + - Add Build-Dep: gcc-3.4. + + * Add unionfs support: + - Add patches external-fs_unionfs.dpatch and + external-fs_unionfs-fixups.dpatch. + - CONFIG_UNIONFS=m and CONFIG_UNIONFS_XATTR=y on all arches (except ppc). + (Closes: #9757) + + * CONFIG_SECURITY_NET=y on all arches. + (Closes: #7155) + + * Provides ndiswrapper-modules-1.1. + (Closes: #9756) + + * CONFIG_ZORAN=m, CONFIG_VIDEO_ZORAN_BUZ=m, CONFIG_VIDEO_ZORAN_DC10=m, + CONFIG_VIDEO_ZORAN_DC30=m, CONFIG_VIDEO_ZORAN_LML33=m and + CONFIG_VIDEO_ZORAN_LML33R10=m on i386. + (Closes: #8817) + + * Force Depends on initrd-tools (>= 0.1.78ubuntu1) to deal with ldd output + format changes. + + * Add notification system that will tell the user to reboot on each upgrade. + + * Provides linux for 386, sparc64, itanium-smp, amd64-generic. + + * Readd qla2xxx drivers: + CONFIG_QLA2XXX=m, CONFIG_SCSI_QLA21XX=m, CONFIG_SCSI_QLA22XX=m, + CONFIG_SCSI_QLA2300=m, CONFIG_SCSI_QLA2322=m and CONFIG_SCSI_QLA6312=m on + all arches. + + * Enable HIGHMEM support on 386 flavour. + + * IMPORTANT! Debian version change meaning to: + -. so that this release will look + like: 2.6.11.91-1.1. + This is NOT an NMU. + + * Add a debian/TODO list only in the source. + + * Add isa_ definition to asm-ppc/io.h. + + Changes by LaMont Jones: + + * New hppa crack from PARISC CVS: + - Add patches arch-hppa_pa[123].dpatch. + - Obsolete patches parisc-pa.dpatch, parisc-irq.dpatch and + parisc-ext3-perf.dpatch. + - Update hppa configs. + + Changes by Chuck Short: + + * Fix acpi build with gcc-4.0: + - Add patch drivers-acpi-ec_gcc4-ftbs.dpatch. + + * Update external drivers: + - inotify to version 0.23-2.6.12-rc3-4. + (Closes: #5431) + - acx100 to 0.2.0pre8+fixes52. + (Closes: #7160) + + * Remove CONFIG_ACX100 from external-drivers-net-wireless_adm8211.dpatch. + + * Add rt2500 driver: + - external-drivers-net-wireless_rt2500.dpatch. + (Closes: #2570) + + * Add HP TC1100 pen driver: + - drivers-acpi-makefile_wacom-future-usage.dpatch. + - external-drivers-serial_hptc1100.dpatch. + (Closes #6842). + + * Turn on Wacom tablet support: + - CONFIG_SERIAL_WACOM_ACPI=m for i386/ppc/ia64/amd64. + (Closes: #2396) + + * CONFIG_USB_ZD1201=m for i386/ppc/ia64/amd64. + (Closes: #2652) + + * Add support for via6410 motherboard: + - drivers-ide-pci-via82cxx_enable-via6410.dpatch. + + * Add qc-usb driver: + - external-drivers-usb-media_qcusb-cvs-20050426.dpatch. + (Closes: #6415) + + * Add acer hotkeys support: + - external-drivers-input-misc_acerhk.dpatch. + (Closes: #8628) + + * Add rfswitch support: + - external-drivers-misc_rfswitch.dpatch. + (Closes: #6276) + + * Add hostap support: + - external-drivers-net-wireless_hostap.dpatch. + (Closes: #5356) + + Changes by Fabio M. Di Nitto and Chuck Short: + + * The megaraid legacy driver is around only to support AMI megaraid 1 and 2. + All the other controllers are supported (according to the code) by the + new megaraid driver: + - Add patch drivers-scsi-megaraid_spiltup.dpatch: + . Split PCI ID's properly between the 2 drivers. + . Allow compilation of both drivers at the same time. + . Update Kconfig.megaraid to reflect the new changes in the help. + . Rename a few things in the old megaraid driver to avoid possible + conflicts with the new drivers (NOTE: there might be more that needs + to be changed given that now the 2 modules can be loaded at the same + time). + - CONFIG_MEGARAID_NEWGEN=y, CONFIG_MEGARAID_MM=m and + CONFIG_MEGARAID_MAILBOX=m on all arches. + (Closes: #7759) + + -- Fabio M. Di Nitto Mon, 09 May 2005 11:30:44 +0200 + +linux-source-2.6.10 (2.6.10-34) hoary; urgency=low + + The "Succulent Strawberries" Release. + + Changes by LaMont Jones: + + * If $arch.ignore exists, but there are abi files, still do the + diff, just don't FTBFS if it fails. + + * hppa: + - add xfs module, and udeb. + - deliver jfs-modules udeb. + - other udeb cleanup. + - CONFIG_DISCONTIGMEM=y (and ignore the fact that this should cause + an ABI event.) + . Add debian/abi/hppa.ignore - should be removed when -34's ABI + files are added. + - ext3 fix in asm-parisc/bitops.h: + . Add patch parisc-ext3-perf.dpatch. + + Changes by Fabio M. Di Nitto: + + * Update debian/changelog to add CAN assigned to old security fixes that + already part of this kernel tree. + + * Fix journal_unmap_buffer race in ext3: + - Add patch stolen-from-head_ext3-jdb-race.dpatch. + + * Fix ext3/jbd race releasing in-use journal_heads: + - Add patch stolen-from-head_ext3-jdb-race-part2.dpatch. + + -- Fabio M. Di Nitto Tue, 05 Apr 2005 13:05:17 +0200 + +linux-source-2.6.10 (2.6.10-33) hoary; urgency=low + + The "Big Banana" Release. + + Changes by Fabio M. Di Nitto: + + * [SECURITY] Fix possible futex mmap_sem deadlock: + - Add patch stolen-from-head_futex.dpatch. + (CAN-2005-0937) + + * [SECURITY] Fix drm ioctl boundary check: + - Add patch stolen-from-head_fix-drm-ioctl.dpatch. + + * Update debian/changelog to add CAN assigned to old security fixes that + already part of this kernel tree. + + -- Fabio M. Di Nitto Wed, 30 Mar 2005 20:10:57 +0200 + +linux-source-2.6.10 (2.6.10-32) hoary; urgency=low + + The "Radioactive Radish" Release. + + Changes by Fabio M. Di Nitto: + + * [SECURITY] Fix a local root exploit by integer underflow in the bluetooth + handling: + - Add patch stolen-from-head_bluetooth-sign.dpatch. + (CAN-2005-0750) + + * Make debian/rules clean target to really clean all the extra junk. + + * Update debian/changelog to add CAN assigned to old security fixes that + already part of this kernel tree. + + Changes by Matthew Garrett: + + * Make hardware sleep sequence more compliant to ACPI specifications: + - Add patch acpi_gpe_spec.dpatch. + + -- Fabio M. Di Nitto Fri, 25 Mar 2005 06:37:19 +0100 + +linux-source-2.6.10 (2.6.10-31) hoary; urgency=low + + The "Atomic Artichoke" Release. + + * [SECURITY] Fix potential DoS in load_elf_library: + - Add patch stolen-from-head_load_elf_library-kfree-fix.dpatch. + (CAN-2005-0749) + + * Apply uninorth-agp-ppc-suspend.dpatch for real. + + -- Fabio M. Di Nitto Thu, 24 Mar 2005 10:42:07 +0100 + +linux-source-2.6.10 (2.6.10-30) hoary; urgency=low + + The "Crunchy Corn" Release. + + Changes by Fabio M. Di Nitto: + + * [SECURITY] Fix information leak in ext2 directory creation: + - Add patch stolen-from-head_ext2-noinfoleak.dpatch. + (CAN-2005-0400) + + * [SECURITY] Fix a bunch of range checks in ISO9660 fs: + - Add patch stolen-from-head_iso9660-flaws.dpatch. + (CAN-2005-0815) + + * [SECURITY] Fix a possible local dos in tmpfs: + - Add patch stolen-from-head_tmpfs-nolocaldos.dpatch. + + * [SECURITY] Only root should be allowed to set N_MOUSE line discipline: + - Add patch stolen-from-head_serio-is-only-for-root.dpatch. + (CAN-2005-0839) + + * Make scsi_ioctl.c more silent: + - Add patch scsi-stfu.dpatch. + (Closes: #7280) + + * Ship i2o modules in scsi*.udeb. + (Closes: #7800) + + Changes by Chuck Short: + + * Fix ahc_dv_0 CPU usage: + - Add patch aic7xx-sleep.dpatch. + (Closes: #7592) + + -- Fabio M. Di Nitto Tue, 22 Mar 2005 17:05:57 +0100 + +linux-source-2.6.10 (2.6.10-29) hoary; urgency=low + + The "Crispy Chicken" Release. + + Changes by Fabio M. Di Nitto: + + * Remove 2.6.10-27 abi files. + + * Add 2.6.10-28 abi files for i386/amd64/powerpc/ia64/sparc. + + * Comment msleep calles in sound/pci/es1968.c snd_es1968_ac97_{read,write}: + - Add patch es1968_msleep.dpatch. + (Closes: 7651) + + * Fix abi checker override detection. + + * Add bumpabi: target in debian/rules to update all files involved in ABI + changes. + + * Add startnewrelease: target in debian/rules to be executed only once after + each release and create the proper changelong/00-list files. + + * Fix missed interrupts causing HP laptops to not correctly set the initial + number of fans after boot: + - revert IPMI fix stolen from Debian. + - obsolete patch stolen-from-head_053-ipmi_unhandled_message_counting.dpatch. + + * Update sparc64 config files. + + * s/CONFIG_pm/CONFIG_PM/g : + Update uninorth-agp-ppc-suspend.dpatch + + * Fix snd-nm256 module load: + - Add patch stolen-from-head_snd-nm256.dpatch. + (Closes: #7939) + + Changes by Sven Luther: + + * Fix mv643xx driver for powerpc: + - Add patches powerpc-mv643xx-enet.dpatch and powerpc-mv643xx-eth-pegasos.dpatch. + - Obsolete patch marvell-pegasos-2.dpatch. + + * Add support files for mkvmlinuz. + + Changes by Matthew Garrett: + + * Fix acpi on HP laptops: + - Add patch acpi_ec_burst_mode.dpatch. + + * More snd_i8x0m ids: + - Add patch stolen-from-head_i8x0modem.dpatch. + + * Add more suspend for i810 video cards: + - Add patch intel-video-suspend.dpatch. + + * Add more i915gm pci ids: + - Add patch stolen-from-head_i915gm-support.dpatch. + - Add patch stolen-from-head_i915gm-support-typo.dpatch. + + * Add more i915drm pci ids: + - Add patch i915drm-pcids.dpatch + + * Add suspend support for uninorth agp on ppc: + - Add patch uninorth-agp-ppc-suspend.dpatch. + + * Sync i915drm driver version number to make 3D survive to suspend/resume: + - Add patch i915drm-sync-ver.dpatch. + + Changes by LaMont Jones: + + * Add 2.6.10-28 abi files for hppa. + + Changes by Chuck Short: + + * Add support for USB bus reset. Possible fix for 6924: + - Add patch stolen-from-head_usb-hub-speed-reset.dpatch. + + * Add fix to release irq for via-rhine ethernet cards: + - Add patch stolen-from-head_via-rhine-irq.dpatch. + + * Remember to spin down the disks in swsusp mode: + - Add patch disk_power_shutdown.dpatch. + + -- Fabio M. Di Nitto Tue, 22 Mar 2005 16:14:44 +0100 + +linux-source-2.6.10 (2.6.10-28) hoary; urgency=low + + Changes by Fabio M. Di Nitto: + + * Bump kernel ABI. + + * [SECURITY] fix a sign comparison problem in the atm layer: + - Add patch stolen-from-head_CAN-2005-0531.dpatch + (CAN-2005-0531) + + * [SECURITY] fix a possible DoS in ppp: + - Add patch stolen-from-head_ppp-no-dos.dpatch. + (CAN-2005-0384) + + * [SECURITY] fix remote crash with bad IP packet fragments: + - Add patch stolen-from-head_reset-checksum.dpatch. + (CAN-2005-0209) + + * [SECURITY] Do not leak dst entries: + - Add patch stolen-from-head_no-dst-leak.dpatch. + (CAN-2005-0210) + + * [SECURITY] drm: fix race condition in radeon driver: + - Add patch stolen-from-head_radeon-race-fix.dpatch. + (CAN-2005-0767) + + * [SECURITY] fix possible overflow in epoll: + - Add patch stolen-from-head_epoll-return-on-overflow.dpatch. + (CAN-2005-0736) + + * [SECURITY] AMD64, allows local users to write to privileged IO ports via + OUTS instruction (Simon Horman): + - Add patch outs.dpatch. + (CAN-2005-0204) + + * Update debian/changelog to add CAN assigned to old security fixes that + already part of this kernel tree. + + * Fix hppa FTBFS: + - Remove debian/d-i/hppa/modules/hppa/nfs-modules.lnk since all nfs is + compiled in. + - Make kernel-image Provides: nfs-modules. + + * Merge Andres Solomon abichecker patch. + + * Enanche abicheker patch: + - Make the abi checker use a per arch dir structure to avoid possible name + clashing. + - Change the use of debnum into abinum to simplify abiname creation. + - Add per arch abicheck override to help unofficial arch porters and + allow them to be desynced. + - Export LC_ALL=C before calling sort to ensure that the sorting algo is + the same all over. + + * Stolen from Debian (up to 2.6.10-6): + - Fix oops in md driver; when calling sync_page_io, correctly initialize a + bio, ensuring bi_max_vecs is set. (Andres Salomon): + . Add patch stolen-from-head_051-md_sync_page_io_max_vecs.dpatch. + - Return proper error values from vfat_valid_longname(), and pass them + back to calling functions (vfat_mkdir, vfat_create). (Andres Salomon): + . Add patch stolen-from-head_052-vfat_valid_longname_proper_return.dpatch. + - This fixes some IPMI issues (Andres Salomon): + . fix counting of handled and unhandled messages + . decode_dmi should've been handling 16 byte boundaries instead of 16 + bit boundaries + . Add patch stolen-from-head_053-ipmi_unhandled_message_counting.dpatch. + - When an error occurs in ext3, if we're going to panic, do it *after* + aborting the journal (Andres Salomon): + . Add patch stolen-from-head_054-ext3_journal_abort_before_panic.dpatch. + - [UML] When creating a new thread, fix potential signal race that could + cause stack corruption (Andres Salomon): + . Add patch stolen-from-head_055-uml_new_thread_race.dpatch. + - [IA64] Returning early from ia64_elf32_init in the case of failures + could be problematic. Instead of doing that, call BUG() (Andres + Salomon): + . Add patch stolen-from-head_058-ia64_binfmt_elf_bug_out.dpatch. + - [ALSA] Return -EBADFD when a usbaudio device is disconnected + (Andres Salomon): + . Add patch stolen-from-head_064-alsa_usbaudio_disconnect.dpatch. + - The ibmvscsi driver's probe function could potentially exit the delay + loop before the adapter has finished initializing + (hostdata->request_limit == 0), and thus end up not scanning for drives + (Andres Salomon): + . Add patch stolen-from-head_066-ibmvscsi_probe_delay_loop_fix.dpatch. + - [USB] Inside gs_free_ports: don't deref memory that's already been freed + (Andres Salomon): + . Add patch stolen-from-head_073-usb_gadget_serial_free_ports.dpatch. + - [USB] Update makefile for sl811(-hcd) and dc2xx drivers (Andres + Salomon): + . Add patch stolen-from-head_074-usb_makefile_fixes.dpatch. + - Fix permissions passed to module_param() in IBM pci hotplug driver + (Andres Salomon): + . Add patch stolen-from-head_075-acpiphp_ibm_module_parm_perm.dpatch. + - For aborted transaction, only spew errors the first time to avoid a + flood of errors (Andres Salomon): + . Add patch stolen-from-head_077-ext3_journal_abort_handle_silence.dpatch. + - [JBD] journal_revoke may try to delete a metadata block twice; this + patch allows a graceful recovery, instead of a BUG() (Andres Salomon): + . Add patch stolen-from-head_078-jbd_journal_revoke_graceful_double_delete.dpatch. + - This patch makes ext3 handle instances of corruption more gracefully. It + also changes __ext3_journal_forget (which 078-jbd_journal_revoke*.dpatch + needs) (Andres Salomon): + . Add patch stolen-from-head_087-ext3_graceful_corruption_fixes.dpatch. + - Fix post-2.6.10 atyfb breakage on SPARC32/64 (Joshua Kwan): + . Add patch atyfb-sparc.dpatch. + - Fix some compatibility functions that (as a side effect) caused NIS to + flatten a sparc64 machine (Joshua Kwan): + . Add patch sparc64-nis-killer.dpatch. + - Enable recognition of the clock chip on SunBlade 1500, it won't boot + otherwise (Jurij Smakov): + . Add patch stolen-from-head_sparc64-sb1500-clock-2.6.dpatch. + - The ibmvscsi driver has paths that free evt_struct, and then proceed to + use it. That's clearly a no-no in SMP/threaded contexts; once an + evt_struct is free, something else may grab it. So, this patch: + . moves the free_event_struct() to after usage of the evt_struct + . creates a single path for cleanup + . calls evt_struct->done during cleanup, which is something that + should've been happening. + (Andres Salomon): + + Add patch stolen-from-head_088-ibmvscsi_event_struct_use_after_free.dpatch + - [NET] Some sanity checks are needed to ensure payloads are the same size + as the structures they're being copied into. AFAICT, there's no way for + a malicious user to inject a payload in here (it looks like + police_locate stuff is called during routing changes by root); however, + I can't say that I'm too familiar w/ tcf stuff (Andres Salomon): + . Add patch stolen-from-head_092-net_sched_police_locate_sanity_check_input.dpatch. + - The e1000 driver's read_eeprom and write_eeprom functions allowed a bit + to much data to be read/written; an extra word. Fix that (Andres Salomon): + . Add patch stolen-from-head_093-e1000_eeprom_read_off_by_one.dpatch. + - [SCSI] scsi_device_set_state() might be setting a device offline, w/ an + oldstate of BLOCK; that shouldn't be considered an error. Add the + missing state transition (Andres Salomon): + . Add patch stolen-from-head_094-scsi_device_set_state_missing_oldstate.dpatch. + - [JFFS2] Fix memory leak in jffs2_build_filesystem(), if + jffs2_scan_medium fails (Andres Salomon): + . Add patch stolen-from-head_095-jffs2_build_filesystem_memory_leak.dpatch. + - [MTD] Inside NFTL_formatblock and INFTL_formatblock, the code was + previously assigning values to instr, then zero'ing out the values. + Instead, move the assignment to after the memset (Andres Salomon): + . Add patch stolen-from-head_096-mtd_formatblock_zero_before_assignment.dpatch. + - [MTD] s3c2410_nand_inithw() was pulling timing information from the + wrong place, making the timing incorrect. This patch makes it pull the + info from the right place (Andres Salomon): + . Add patch stolen-from-head_097-mtd_s3c2410_nand_inithw_calc_rate_fix.dpatch. + - [JFFS2] Initialize each eraseblock's bad_count to 0 in jffs2_do_mount_fs(). + Unitialized memory sure is fun, eh? (Andres Salomon): + . Add patch stolen-from-head_098-jffs2_do_mount_fs_init_bad_count.dpatch. + - [JFS] Fix race in jfs_commit_inode(); before actually doing the commit, + retest to ensure that the inode is both dirty and linked (Andres Salomon): + . Add patch stolen-from-head_099-jfs_commit_inode_commit_race.dpatch. + - Fix buglet in cosa's sppp_channel_init(); do not call sppp_attach() + until the netdev contains info that sppp_attach needs (Andres Salomon): + . Add patch stolen-from-head_102-cosa_sppp_channel_init_delay_attach.dpatch. + - [SECURITY] The SDLA driver only checked CAP_NET_ADMIN when doing + firmware uploads. This patch adds an additional check for + CAP_SYS_RAWIO, as well (Andres Salomon): + . Add patch stolen-from-head_104-wan_sdla_firmware_cap_sys_rawio_addition.dpatch. + - [XFS] In xfs_finish_reclaim(), xfs_ireclaim() should always be called + (unless there's some sort of locking problem) before returning (Andres Salomon): + . Add patch stolen-from-head_107-xfs_finish_reclaim_always_inode.dpatch. + - [SECURITY] xfs_ioctl(XFS_IOC_ATTRMULTI_BY_HANDLE) calls xfs_attrmulti_by_handle, + which allocates memory based on user input. This patch adds a check for + a max size of memory to alloc; otherwise, a user can potentially DoS the + system by exhausting memory. Not sure whether root is required to open + the vnode device, but to be on the safe side... (Andres Salomon): + . Add patch stolen-from-head_108-xfs_attrmulti_by_handle_limit_mem_alloc.dpatch. + - [SECURITY] Fix from Solar Designer; the binfmt_elf load routines are + returning incorrect values, and are not strict enough in checking the + number of program headers (Andres Salomon): + . Add patch stolen-from-head_109-binfmt_elf_loader_solar_designer_fixes.dpatch. + - If the parsing of module args failed, the module could still be loaded + successfully. Fix that (Andres Salomon): + . Add patch stolen-from-head_110-load_module_arg_checking.dpatch. + - audit_receive_skb negates the err it receives from audit_receive_msg. + It shouldn't do that (Andres Salomon): + . Add patch stolen-from-head_112-audit_receive_skb_double_negative_return_val.dpatch. + - [I2C] The i2c-sis5595 was forward ported from 2.4, but the calls to read + the pci config registers were never updated for 2.6. As such, they are + incorrectly handling the results of the function calls (Andres Salomon): + . Add patch stolen-from-head_118-i2c_sis5595_setup_pci_config_return_checks.dpatch. + - [SECURITY] Fix a very hard to exploit buffer overflow in the i2c-viapro + driver (Andres Salomon): + . Add patch stolen-from-head_119-i2c_viapro_i2cdump_overflow.dpatch. + - Fix an oopsable condition in Openpromfs's property_read() (Andres Salomon): + . Add patch stolen-from-head_120-openpromfs_property_read_fix.dpatch. + - [SCSI] cciss_scsi_detect() calls scsi_add_host(), which bumps the + refcount (even in the event of an error). Thus, if scsi_add_host fails, + the scsi host refcount needs to be decremented; so, call scsi_host_put + upon error (Andres Salomon): + . Add patch stolen-from-head_134-cciss_scsi_detect_put_host_on_error.dpatch. + - 64bit archs that offer 32bit compat wrappers for sys_shmget were mostly + passing the second arg as a 32bit signed int; what would happen then is, it + would be casted to a size_t (64bit unsigned), and the sign would cause it to + overflow. Instead, we need to cast to a 32bit unsigned value first, and then + cast to 64bit unsigned (Andres Salomon): + . Add patch stolen-from-head_135-64bit_sys_shmget_compat_size_t_overflow.dpatch. + - More of the same as 135*.dpatch, except for stuff like sys_ipc, + sys_semget, sys_msgsnd, etc (Andres Salomon): + . Add patch stolen-from-head_136-64bit_sys_compat_overflows.dpatch. + - [I386] dma_free_coherent() was calling kmalloc with its args reversed; + clearly incorrect (Andres Salomon): + . Add patch stolen-from-head_139-pci_dma_free_coherent.dpatch. + - For various pci devices, if pci_request_regions fails (because resources + are already in use), don't disable the pci device (someone else is using it) + (Andres Salomon): + . Add patch stolen-from-head_141-pci_devices_dont_disable_dev_if_busy.dpatch. + - The r8169 driver wasn't alloc'ing enough memory for skbs; the size + should be padded by NET_IP_ALIGN (Andres Salomon): + . Add patch stolen-from-head_142-r8169_dev_alloc_skb_alignment_fix.dpatch. + - [SYSFS] sysfs_write_file assigns the result of fill_write_buffer (which + is signed and returns negative upon error) to an unsigned int. + Clearly, bad and wrong.. (Andres Salomon): + . Add patch stolen-from-head_143-sysfs_write_file_signedness_problem.dpatch. + (CAN-2005-0867) + + * Use "getconf _NPROCESSORS_ONLN" instead of parsing /proc/cpuinfo to + gather the number of CPU on the system. (From Matt Zimmerman) + + * Add version to linux-doc description. + + * Update inotify again to 2.6.11-3 since we are bumping the ABI for other + reasons anyway and mainly due to the better code in disabling it by + default with proper checks in the 5 keys function. This should avoid + possible memory leaks or oops. + + Changes by Chuck Short: + + * Fix via-thine oops on shutdown: + - Add patch stolen-from-head_via-rhine-oops.dpatch. + + * Not all USB ports detected on nForce4 SLI chipset boards: + - Add patch nforce4-usb-broken.dpatch. + (Closes: #7214) + + * No keyboard with 2.6.10-4-386-SMP: + - Add patch keyboard-i8042-fix.dpatch. + (Possibly close: #7167) + + * Add emu10k1x driver: + - Add patch stolen-from-head_em10k1x-alsa.dpatch. + - CONFIG_SND_EMU10K1X=m. + (Closes: #6492) + + Changes by Matthew Garrett: + + * b44 should not accept ioctls if the interface is down: + - Add patch fix-b44.dpatch. + (Closes: #7490) + + Changes by Daniel T. Chen: + + * Fix sis900 kernel oops: + - Add patch stolen-from-head_sis900-oops.patch. + + -- Fabio M. Di Nitto Sat, 12 Mar 2005 12:18:02 +0100 + +linux-source-2.6.10 (2.6.10-27) hoary; urgency=low + + Changes by Fabio M. Di Nitto: + + * Revert the inotify update to unbreak the ABI. + + -- Fabio M. Di Nitto Fri, 11 Mar 2005 17:13:58 +0100 + +linux-source-2.6.10 (2.6.10-26) hoary; urgency=low + + Changes by Fabio M. Di Nitto: + + * Fix debian/rules to handle builds from some revision control systems + that hides files as .* + + * Add export of CONCURRENCY_LEVEL in build target when building on ubuntu's + buildd and respect possible override from user. + + * Remove old hack from debian/rules when calling kernel-wedge: + - Update Build-Dep on newer kernel-wedge. + - CONFIG_CRC32=y on all arches. + - IA64 specific changes: + . Add fs-common-modules to include mbcache.o used by ext2/ext3 extended + attributes. + . Update package-list to reflect proper udeb dependencies. + + * Major build system rework to kill the patch madness: + - Modify make-kernel-patch-pkgs to build only linux-patch-ubuntu. + - Build linux-tree from debian/rules. + - Modify debian/rules to consider the actual version as always the first + to ship one patch. + - Kill the loop call to stamp-monolith and build only the last version. + - On the way of reorganizing linux-patch-ubuntu: + . Make linux-patch-ubuntu arch: any, since we apply patches that arch + specific and distributed to the other arches. + . Move make-kernel-patch-pkgs to binary-arch target. + . Make apply/unpatch aware of the arch and + + * Kill unpack-kernels target and incorporate it directly in binary-udebs. + This fixes a small corner case to avoid manual builds to fail. + + * Update inotify driver to 0.20-2.6.11-3: + - Obsolete patches: + . inotify-0.18-rml-2.6.10-16.dpatch. + . inotify-0.18-rml-2.6.10-15-optional.dpatch. + . enable-inotify.dpatch. + - Add patchs: + . inotify-0.20-rml-2.6.11-3.dpatch. + . inotify-0.20-rml-2.6.11-3-optional.dpatch. + + * Renable enable_atapi_ata-2.dpatch. + + * CONFIG_LOGO=n on all arches (per Jeff Bailey). + + Changes by Thibaut VARENE: + + * Unset CONFIG_BLK_DEV_IDE_PMAC_BLINK on powerpc and powerpc-smp. + + * Update patch stolen-from-head_ia64-ia32_signal.dpatch to fix a wrong call + to mempcy. + + -- Fabio M. Di Nitto Mon, 07 Mar 2005 19:33:38 +0100 + +linux-source-2.6.10 (2.6.10-25.2) hoary; urgency=low + + * Disable enable_atapi_ata-2.dpatch + + -- Matt Zimmerman Wed, 9 Mar 2005 18:29:50 -0800 + +linux-source-2.6.10 (2.6.10-25.1) hoary; urgency=low + + * The "Welcome back fabbione"'s release. + + * Partially revert the changes introduced by enable_atapi_ata.dpatch to + avoid CDROM read corruption on piix chipsets: + - Add patch enable_atapi_ata-2.dpatch. + - Obsolete patch enable_atapi_ata.dpatch. + + Hopefully 1440 will stay closed otherwise: gub KTG a eb tsum ti! + + -- Fabio M. Di Nitto Wed, 09 Mar 2005 20:59:26 +0100 + +linux-source-2.6.10 (2.6.10-25) hoary; urgency=low + + * d-i [Colin Watson ] + - Add nfs-modules udebs, needed for some applications of Kickstart + * ppc + - Enable pmac laptop led support in powerpc* configs + [Thibaut Varene ] + * ia64 + - SFH: Fix a serious bug in ia32 signal (wrong zeroing size, use + copy_from_user instead of memcpy). [Thibaut Varene ] + Patch: stolen-from-head_ia64-ia32_signal.dpatch + * Enable ATAPI support in libata [Chuck Short ] + Patch: enable_atapi_ata.dpatch + Closes: #1440 + + -- Thibaut VARENE Tue, 01 Feb 2005 19:56:33 +0100 + +linux-source-2.6.10 (2.6.10-24) hoary; urgency=low + + * hibernate [Matthew Garrett ] + Patch: stolen-from-head_cpufreq-resume.dpatch + Closes: #6302 + * ppc [Matthew Garrett ] + Enable suspend-to-disk. + Patch: powerpc-pmdisk.dpatch + * disable inotify unless specifically enabled [zulcss@gmail.com] + Patch: enable-inotify.dpatch + * Version 0.19a of toshiba_acpi.c + [Daniel Silverstone ] + Patch: tosh_acpi2.dpatch + + -- LaMont Jones Thu, 24 Feb 2005 05:28:47 -0700 + +linux-source-2.6.10 (2.6.10-23) hoary; urgency=low + + * powerpc fixes [Colin Watson ] + + -- LaMont Jones Tue, 22 Feb 2005 14:52:55 -0700 + +linux-source-2.6.10 (2.6.10-22) hoary; urgency=low + + * Add missing patch lists. + + -- Colin Watson Tue, 22 Feb 2005 11:25:33 +0000 + +linux-source-2.6.10 (2.6.10-21) hoary; urgency=low + + * Fix package names for 2.6.10-4 ABI. + * Update udebs to 2.6.10-4. + + -- Colin Watson Tue, 22 Feb 2005 09:36:24 +0000 + +linux-source-2.6.10 (2.6.10-20) hoary; urgency=low + + * 2.6.10-4 ABI creation. + * [SECURITY] fix some sign comparison problems in the filesystem layer. + - Add patch stolen-from-head_fix-sign.dpatch again. + (CAN-2005-0529, CAN-2005-0530, CAN-2005-0532) + * Hotplug [Colin Watson < cjwatson@ubuntu.com>] + - support for scsi modules. Closes: #6681. + Patch: scsi-hotplug.dpatch + - mptscsih glue. Closes: #6786 + Patch: mptscsih-hotplug.dpatch + * Update inotify driver: + - Add patch inotify-0.18-rml-2.6.10-16.dpatch, replacing + inotify-0.18-rml-2.6.10-15.dpatch. + * ACPI updates [Matthew Garrett ] + Patch: stolen-from-head_acpi-bk-snapshot.dpatch (replaces + ..._acpi-20050125.dpatch) + * Fix release-bug in hd64465 PCMCIA driver. Closes #2092. [zulcss@gmail.com] + Patch: hd64465_ss-missing-release.dpatch + * make touchpads seem less sticky [zulcss@gmail.com] + Patch: stolen-from-head_mousedev_unstickyness.dpatch + * tulip driver fix from BK. [zulcss@gmail.com] + Patch: stolen-from-head_de214-pci-enable-fix.dpatch + * USB + - add support for some flash card readers [zulcss@gmail.com] + Patches: usbat_01_unification.dpatch usbat_02_usbat02.dpatch usbat_03_flash.dpatch + * i386 + - New toshiba_acpi from Daniel Silverstone + Patch: tosh_acpi2.dpatch (replaces tosh_acpi.dpatch) + * ia64 + - Revert MPT Fusion changes. To be used with pci.handmap. + [Thibaut VARENE ] + * ppc + - sleep patches [Matthew Garrett ] + Patches: + stolen-from-head_atyfb_update.dpatch + stolen-from-head_console_sem.dpatch + stolen-from-head_ppc_save_restore.dpatch + stolen-from-head_ppc_sleep.dpatch + stolen-from-head_radeonfb_fix_x86_regression.dpatch + stolen-from-head_radeonfb_update.dpatch + - Fix cpu clock freq overflow. [Thibaut VARENE ] + Patch: powerpc-fix-proc-clock + + -- LaMont Jones Mon, 21 Feb 2005 22:02:13 -0700 + +linux-source-2.6.10 (2.6.10-19) hoary; urgency=low + + * Build drm as module: + - DRM=m. + + * Add drivers/input/mouse/psmouse.ko drivers/input/mousedev.ko to + input-modules udebs. + + -- Fabio M. Di Nitto Tue, 15 Feb 2005 20:13:59 +0100 + +linux-source-2.6.10 (2.6.10-18) hoary; urgency=low + + * Fix clean target: + - Update patch stolen-from-head_fix-sign.dpatch. + + * General package cleanup: + - Remove unused patch stolen-from-head_xfs.dpatch that slept in for a + mistake. + - Rename stolen-from-head_ia64-ptrace to + stolen-from-head_ia64-ptrace.dpatch. + + * TEMPORARY revert SECURITY fix and inotify update from -17 since they + break the kernel ABI. + + -- Fabio M. Di Nitto Tue, 15 Feb 2005 07:51:45 +0100 + +linux-source-2.6.10 (2.6.10-17) hoary; urgency=low + + * [SECURITY] fix some sign comparison problems in the filesystem layer. + - Add patch stolen-from-head_fix-sign.dpatch + * ia64 + - clean up ptrace corner cases + Add patch stolen-from-head_ia64-ptrace.dpatch + http://lia64.bkbits.net:8080/linux-ia64-release-2.6.11/cset@41f2d1eePludGYyb1yOmGaW6Iois8Q + (CAN-2005-0136) + - Make Fusion drivers builtin and remove them from scsi-modules + * powerpc + - Enable Altivec support in power4* configs + * evdev: + - Add evdev to *-di kernels, to get multiseat-udeb working. Not added to + debian/d-i/sparc/modules/sparc*, as it didn't already have an + input-modules. + * power management for 3c59x: + - Add patch stolen-from-head_3c59x-power-management.dpatch Closes #5228 + * sony hotkey management: + - Add patch sonypi.dpatch + * Update inotify driver: + - Add patch inotify-0.18-rml-2.6.10-16.dpatch, replacing + inotify-0.18-rml-2.6.10-15.dpatch. + * hppa: + - include irq.c patch for accounting bug. + + -- LaMont Jones Mon, 14 Feb 2005 09:46:59 -0700 + +linux-source-2.6.10 (2.6.10-16) hoary; urgency=low + + * ia64 + - Remove amd74xx from debian/d-i/ia64/modules/ia64/ide-modules + - Really drop ext2-modules from kernel-image. + + -- LaMont Jones Wed, 9 Feb 2005 20:13:35 -0700 + +linux-source-2.6.10 (2.6.10-15) hoary; urgency=low + + * [SECURITY] Update debian/changelog to include some security references + that were missing at release time: + - 2.6.10-6: + . Add patch stolen-from-head_overflow-in-nls.dpatch. (CAN-2005-0177) + - 2.6.10-4: + . Add patch 031-sg_scsi_ioctl_int_overflows.dpatch. (CAN-2005-0180) + . Add patch fix-rlimit-memlock-dos.dpatch. (CAN-2005-0179) + + * [SECURITY] First cut at setsid/tty locking: + - Add patch stolen-from-head_tty_setsid_race.dpatch. (CAN-2005-0178) + + * Update inotify driver: + - Add patch inotify-0.18-rml-2.6.10-15.dpatch. + - Obsolete patches inotify-0.18-rml-2.6.10-9.dpatch and + sparc64-inotify-0.18-rml-2.6.10-9.dpatch. + sparc64 bits have been included upstream. Thanks Robert! + + * Add boot option 'noinotify' to disable inotify at boot time: + - Add patch inotify-0.18-rml-2.6.10-15-optional.dpatch. + + * General acpi update: + - Add patch stolen-from-head_acpi-20050125.dpatch. + - Obsolete patches stolen-from-head_acpi-20041210.dpatch, + stolen-from-head_acpi-video-device-enumeration.dpatch and + stolen-from-head_acpi_fix_regression.dpatch. + (Closes: #5807, #6103 and probably more) + + * Stolen from upstream: + - Sanity check unw_unwind_to_user: + . Add patch stolen-from-head_059-ia64_unwind_stack_check.dpatch. + (CAN-2005-0135) + - DRM at 20050201: + . Add patch stolen-from-head_drm2.dpatch. + - Keep fragment queues private to each user: + . Add patch stolen-from-head_keep-fragments-pvt.dpatch. + (CAN-2005-0449) + + * Bump kernel ABI. + + * Update sk98lin driver from 20050207 bk netdev: + - Add patches stolen-from-head_sk98lin.dpatch and sk98lin-update-3.dpatch. + - Obsolete sk98lin-update-2.dpatch. + + * Add Panasonic DMC-LC33 device info: + - Add patch drivers-add-DMC-LC33.dpatch. + (Closes: #6150) + + * Update parisc patch up to 2.6.10-pa12 to fix the infamous disk I/O + bottleneck: + - Add patch parisc-pa-2.dpatch. + - Obsolete parisc-pa.dpatch. + + * Stop providing ext2-modules from kernel-image on ia64. + + * Update libata from bk: + - Add patch stolen-from-head_libata-updates.dpatch. + - SCSI_ATA_ADMA=m + - SCSI_PATA_PDC2027X=m + + -- Fabio M. Di Nitto Mon, 07 Feb 2005 15:55:21 +0100 + +linux-source-2.6.10 (2.6.10-14) hoary; urgency=low + + * Add ext2 modules udeb for ia64. + + * Unset CONFIG_BLK_DEV_AMD74XX on ia64. + + * Fix noexec parse option on x86_64: + Add patch amd64_parse_noexec.dpatch. + + -- Fabio M. Di Nitto Fri, 04 Feb 2005 08:57:33 +0100 + +linux-source-2.6.10 (2.6.10-13) hoary; urgency=low + + * Fix crash in 32bit emulation. Backport from 2.6.11-rc2 (Frederik Schüler): + - Add patch stolen-from-head_amd64-ia32-vsyscall-fix.dpatch. + + -- Fabio M. Di Nitto Mon, 31 Jan 2005 07:04:58 +0100 + +linux-source-2.6.10 (2.6.10-12) hoary; urgency=low + + * Update inotify driver to 0.18: + - Add patches inotify-0.18-rml-2.6.10-9.dpatch and + sparc64-inotify-0.18-rml-2.6.10-9.dpatch. + - Obsolete patches inotify-0.17-rml-2.6.10-2.dpatch and + sparc64-inotify-0.17-rml-2.6.10-2.dpatch. + (Closes: #5431) + + * Update debian/d-i/hppa/kernel-versions to fix FTBFS. + + * Update bluetooh protocol stack up to -mh2: + - Add patch stolen-from-head_bluez.dpatch. + - Add bluez-firmware-1.0. + (Closes: #3668) + + -- Fabio M. Di Nitto Thu, 27 Jan 2005 12:30:03 +0100 + +linux-source-2.6.10 (2.6.10-11) hoary; urgency=low + + * Missing entry from previous release changelog: + - Fix the "My load is always 2" problem: + . Add patch thaw_processes.dpatch. + (Closes: #5548) + + * Backport drm from 2.6.11rc1: + - Add patch stolen-from-head_drm.dpatch. + - Enable matrox drm on x86_64: + . DRM_MGA=m + + * Update debian/external-drivers information. + + * Rename hppa kernels from $bits to hppa$bits: + - Update control.stub. + - Rename debian/config/hppa/$bits. + + * Update wlan-ng-prism2-usb driver up to 0.2.1-pre25: + - Update patch wlan-ng-prism2-usb.dpatch. + (Closes: #5688) + + * Update configs to make selinux guys a bit more happy: + - AUDIT=y + - AUDITSYSCALL=n + - TMPFS_XATTR=y + - TMPFS_SECURITY=y + (Closes: #5659) + + * Update powernow-k8 from bk: + - Add patch stolen-from-head_powernow-k8.dpatch. + (Closes: #5358) + + * Fix missing firmware loader bits for the acx100 pci driver: + - Update patch acx100-fw-3.dpatch. + (Closes: #5739) + + * More Matthew Garrett crack: + - Add patch stolen-from-head_acpi_fix_regression.dpatch. + (Closes: #5807) + + * Stolen from upstream: + - scsi_ioctl: only warn about unknown opcodes if they are truly unknown: + . Add patch stolen-from-head_scsi_ioctl_warns.dpatch. + + * Sync with Debian kernel-source-2.6.10 (2.6.10-4): + - Fix compat cmsg_len checks (Christoph Hellwig): + . Add patch cmsg-compat-signedness-fix-fix.dpatch. + - In case of an error, sk never gets set; thus, sock_put(sk) messes up + (Andres Salomon): + . Add patch stolen-from-head_037-sctp_err_lookup_oops.dpatch. + - Make ftdi_sio driver output debug message instead of error if attempting + to write 0 bytes (Andres Salomon): + . Add patch stolen-from-head_038-ftdi_sio_debug_output.dpatch. + - Don't assume a port has a tty associated w/ it when resuming + (Andres Salomon): + . Add patch stolen-from-head_039-serial_console_resume.dpatch. + - Do not underflow sk_forward_alloc from tcp_sendpage (Andres Salomon): + . Add patch stolen-from-head_040-sk_forward_alloc_underflow.dpatch. + - While probing ide interfaces, supress error messages for non-existent + ones (Andres Salomon): + . Add patch stolen-from-head_041-ide_hwif_supress_busy.dpatch. + - gx_get_cpuspeed was returning the wrong value; this fixes it + (Andres Salomon): + . Add patch stolen-from-head_042-gx_get_cpuspeed_return_value.dpatch. + - Pentium M (Dothan) model is 0x0d, not 0x13 (Andres Salomon): + . Add patch stolen-from-head_043-dothan_p4_get_frequency.dpatch. + - elevator_noop_add_request() ignored the 'where' arg, which specified + where the request should be added (front, back..) (Andres Salomon): + . Add patch stolen-from-head_044-elevator_noop_add_request.dpatch. + - [SPARC64] Incorrect register values are used inside + __psycho_check_one_stc if PBM type is B (Andres Salomon): + . Add patch stolen-from-head_045-pci_psycho_brainfart.dpatch. + - Fix locking issue inside ipip6_tunnel_link() (Andres Salomon): + . Add patch stolen-from-head_046-ipv6_sit_lock.dpatch. + - do_tcp_sendpages() didn't track skb->truesize correctly; this causes + partially ACK'd TSO frames to potentially corrupt stuff as skb->truesize + is too small (Andres Salomon): + . Add patch stolen-from-head_047-do_tcp_sendpages_tso_assertion.dpatch. + - The mtrr stuff in the matroxfb driver needs to be wrapped w/ CONFIG_MTRR + ifdefs (Andres Salomon): + . Add patch stolen-from-head_048-matroxfb_mtrr_ifdef.dpatch. + - cfq_requeue_request can potentially decrement a counter past 0; we want + to only decrement it if it's > 0 (Andres Salomon): + . Add patch stolen-from-head_050-cfq_requeue_request_accounting.dpatch. + + -- Fabio M. Di Nitto Mon, 24 Jan 2005 12:30:12 +0100 + +linux-source-2.6.10 (2.6.10-10) hoary; urgency=low + + * Compile USB keyboard inline for ia64. + + * Unset CONFIG_ACORN_PARTITION_CUMANA. + (Closes: #5603) + + * Stolen from upstream: + - USB: ehci "hc died" on startup (chip bug workaround): + . Add patch stolen-from-head_ehci-dies-on-startup.dpatch. + (Closes: #5153) + - driver core: Fix up vesafb failure probing: + . Add patch stolen-from-head_vesafb_failure_probing.dpatch. + (Closes: #5162) + + * Update inotify patch: + - Add patches inotify-0.17-rml-2.6.10-2.dpatch and + sparc64-inotify-0.17-rml-2.6.10-2.dpatch. + - Obsolete patches inotify-0.17-wip-rml-2.6.10-rc2-12.dpatch and + sparc64-inotify-0.17-wip-rml-2.6.10-rc2-12.dpatch. + (Closes: #5472) + + * Remove support for IBM ThinkPad TrackPoint devices: + - Obsolete patch ibm-trackpoint-support.dpatch. + The driver is too buggy and breaks normal ps2 mouses in certain cases. + (Closes: #5611, #5050, #5117) + + * mISDN upstream seems dead: + - Obsolete patch misdn.dpatch. + (Closes: #5193) + + * Fully integrated hppa support thanks to Lamont: + - Update patch pa-parisc.dpatch + - Update debian/control.stub build-deps + - Update debian/config/hppa/* + + -- Fabio M. Di Nitto Mon, 17 Jan 2005 17:37:32 +0100 + +linux-source-2.6.10 (2.6.10-9) hoary; urgency=low + + * More Matthew Garrett's crack: + - Fix b44 driver DMA mask: + . Add patch b44.dpatch. + - Revert kernel ibm_acpi code to upstream: + . Add patch ibm_acpi.dpatch. + - Fix "Interrupts are not routed correctly after suspend to disk": + . Add patch route-irq-again.dpatch. + (Close: #5567) + + * Fix acx100 firmware load sequence: + - Add patch acx100-fw-3.dpatch. + - Obsolete patch acx100-fw-2.dpatch. + (Closes: #5329) + + * Fix sound card modules load order: + - Add patch alsa-order-cards.dpatch. + (Closes: #1293) + + * Update Maintainer fiels in debian/control.stub. + + -- Fabio M. Di Nitto Mon, 17 Jan 2005 12:02:06 +0100 + +linux-source-2.6.10 (2.6.10-8) hoary; urgency=low + + * Fix emu10k DSP loader: + - Update patch stolen-from-head_alsa-emu10k1-ioctl-fix.dpatch. + (Closes: #5479) + + -- Fabio M. Di Nitto Fri, 14 Jan 2005 14:17:01 +0100 + +linux-source-2.6.10 (2.6.10-7) hoary; urgency=low + + * Fix ipw2100 and ipw2200 suspend and resume: + - Add patch ipw2100-fix-suspend-resume.dpatch. + - Add patch ipw2200-fix-suspend-resume.dpatch. + Thanks to Matthew Garrett. + + * Allow root to expand the stack: + - Add patch stolen-from-head_acct_stack_growth_nitpicks.dpatch. + (Closes: #5496) + + * Stolen from upstream: + - Make mm writelock testing less intrusive: + . Add patch stolen-from-head_verify_mm_writelocked.dpatch + + -- Fabio M. Di Nitto Fri, 14 Jan 2005 06:26:47 +0100 + +linux-source-2.6.10 (2.6.10-6) hoary; urgency=low + + * [SECURITY] NFS client O_DIRECT error case fix: + - Add patch stolen-from-head_nfs-client-odirect.dpatch. + (CAN-2005-0207) + + The NFS direct-io error return path for request sizes greater than + MAX_DIRECTIO_SIZE fails to initialize the returned page struct array + pointer to NULL. + + Discovered using AKPM's ext3-tools: odwrite -ko 0 16385 foo + + * [SECURITY] Fix SMP race condition: + - Add patch stolen-from-head_fix-smp-race-condition.dpatch. (CAN-2005-0001) + - Add patch stolen-from-head_fix-rlimit-memlock-dos.dpatch + as a patch dependency to include part of the mm reorganization required + to apply Linus' fix. + - Obsolete fix-rlimit-memlock-dos.dpatch. + + * [SECURITY] Fix race condition in do_brk: + - Update stolen-from-head_brk-locked.dpatch. (CAN-2004-1235) + + * Reapply all the -4 crack and bump the ABI. + + * Update debian/d-i//kernel-versions due to ABI change. + + * Fixes emu10k1_fx8010_code_t structure using indirect pointers to be less + than 8192 bytes to follow the ioctl semantics and thus not break powerpc + builds. Userland ioctl value is still changed. (Sven Luther) + - Add patch stolen-from-head_alsa-emu10k1-ioctl-fix.dpatch. + + * Reenable build of EMU10K1 on powerpc: + - SND_EMU10K1=m. + + * Fix asm-x86_64/io.h missing include: + - Add patch amd64-memset.dpatch. + + * Stolen from upstream (up to bk14): + - Use skb_padto() in drivers/net/8390.c: + . Add patch stolen-from-head_8390-skb_padto.dpatch. + - NFS: incorrect "df" results: + . Add patch stolen-from-head_nfs-df-result.dpatch. + - udf: simplify udf_iget, fix race: + . Add patch stolen-from-head_fix-udf-race.dpatch. + - remove CRD-8480C from the DMA blacklist: + . Add patch stolen-from-head_turn-on-CRD-8480C-dma.dpatch. + (Closes: #5186) + - fix erroneous rq->buffer = NULL in ide-io.c:ide_dma_timeout_retry(): + . Add patch stolen-from-head_ide-wrong-buffer.dpatch. + - SATA support for Intel ICH7: + . Add patch stolen-from-head_intel-ich7-sata.dpatch. + - PCI quirk for ICH3-M IDE: + . Add patch stolen-from-head_ich3m-quirks.dpatch. + - fix cdrom autoclose: + . Add patch stolen-from-head_fix-cdrom-autoclose.dpatch. + - NLS: Fix overflow of nls_ascii: + . Add patch stolen-from-head_overflow-in-nls.dpatch. (CAN-2005-0177) + + -- Fabio M. Di Nitto Tue, 11 Jan 2005 06:53:32 +0100 + +linux-source-2.6.10 (2.6.10-5) hoary; urgency=low + + * Disable all patches from 2.6.10-4 except security patches + (Closes: Ubuntu#5410) + + -- Matt Zimmerman Mon, 10 Jan 2005 15:33:46 -0800 + +linux-source-2.6.10 (2.6.10-4) hoary; urgency=low + + * [SECURITY] Fix race condition in do_brk: + - Add patch: stolen-from-head_brk-locked.dpatch. (CAN-2004-1235) + + Due to a missing down() call for the semaphore 'current->mm->mmap_sem' + it is possible to create two over-lapping VMAs and exploit behaviour in + mremap that allows you to map kernel memory into userland address ranges. + This can be exploited by an attacker in many ways. + + * [SECURITY] Import capability module fix from upstream: + - Add patch: stolen-from-head_fix_cap_mod.dpatch. (CAN-2004-1337) + - Obsolete patch: no-cap-mod.dpatch. + - Rebuild capability as module again. + + * [SECURITY] Update smbfs overflow fixes to a version that actually + work: + - Add patch smbfs-overflow-fixes-2.dpatch. + - Obsolete smbfs-overflow-fixes.dpatch. + + * [SECURITY] http://seclists.org/lists/fulldisclosure/2005/Jan/0270.html: + - Add patch 029-random_poolsize_overflow.dpatch. + + drivers/char/random allows you to set the poolsize; its sanity checking + on that input isn's very good. We fix that here. + This fixes #3 on that list (Andres Salomon). + + - Add patch 030-moxa_user_copy_checking.dpatch. (CAN-2005-0504) + + The moxa driver does some ugly things w/ signed integers. This fixes + #4 on Brad Spengler's advisory (Andres Salomon). + + - Add patch 031-sg_scsi_ioctl_int_overflows.dpatch. (CAN-2005-0180) + + SG ioctl stuff doesn't actually check whether the scsi command length + is positive. #5 on the above advisory (Andres Salomon). + + - Add patch fix-rlimit-memlock-dos.dpatch. (CAN-2005-0179) + + 2.6 RLIMIT_MEMLOCK bypass and (2.6) unprivileged user DoS: + Taken from the mail from the PaX team to Linus and Andrew Morton: + + the 'culprit' patch is how the default RLIM_MEMLOCK and the privilege + to call mlockall have changed in 2.6.9. namely, the former has been + reduced to 32 pages while the latter has been relaxed to allow it for + otherwise unprivileged users if their RLIM_MEMLOCK is bigger than the + currently allocated vm. which is normally good enough, except as you + now know there's a path that can increase the allocated vm without + checking for RLIM_MEMLOCK. #6 on the above advisory. + + * [SECURITY] Check untrusted user data: + - Add patch untrusted-user-data.dpatch. + + * Fix target make gconfig: + - Add patch stolen-from-head_fix-gconfig.dpatch. + (Closes: #5029) + - Also thanks to Sebastian Bacher for his preliminary patch. + + * Update debian/rules to support per arch patching. This is done by checking + debian/patches/00list-$ver.$arch and the contents added at the END of + 00list. So rememeber that arch specific changes will always come last and + they need to be synced on top of the standard/common patched tree. + + * Add hppa support per lamont: + - Import default configs from kernel-image-2.6.8-hppa-2.6.8 (2.6.8-5). + - Import debian/d-i/hppa from linux-kernel-di-hppa-2.6 (0.4). + - Update debian/control.stub to include hppa 4 kernel flavours. + - Add debian/patches/00list-4.hppa and parisc-pa.dpatch taken from + http://cvs.parisc-linux.org/download/linux-2.6/ (-pa10) + NOTE: this will not build! new config files are required! + + * Update fs-asfs.dpatch to add a missing page_unlink. + + * Use md-modules.lnk on powerpc. + (Closes: #5372) + + * Ship rtc-modules udeb: + - update debian/d-i//package-list + + * Stolen from upstream (up to bk9): + - make microcode text less confusing: + . Add patch stolen-from-head_microcode-less-confusing.dpatch. + - quiet scsi ioctls warnings: + . Add patch stolen-from-head_quite-scsi-ioctl.dpatch. + - early ali watchdog support: + . Add patch stolen-from-head_early-ali-watchdog-support.dpatch. + - ibmvscsi: replace schedule_timeout() with msleep(): + . Add patch stolen-from-head_fix-ibmvscsi-timeout.dpatch. + - drivers/acpi/ibm_acpi.o .init.text refers to .exit.text: + . Add patch stolen-from-head_ibm-acpi-exit.dpatch. + - several libata updates: + . use PIO mode for request sense: + + Add patch stolen-from-head_libata-pio-1.dpatch. + . PIO error handling improvement: + + Add patch stolen-from-head_libata-pio-2.dpatch. + . verify ATAPI DMA for a given request is OK: + + Add patch stolen-from-head_libata-dma-1.dpatch. + . add #include (fixes 2.4 alpha build): + + Add patch stolen-from-head_libata-fixftbs.dpatch. + - stop referencing i_sock directly: + . Add patch stolen-from-head_sparc64-stop-referencing-isock.dpatch. + - use prefetching in skb_queue_walk(): + . Add patch stolen-from-head_prefetching-skb-queue-walk.dpatch. + - dsmark should ignore ECN bits: + . Add patch stolen-from-head_dsmark-ignore-ecn.dpatch. + - serverworks: add support for CSB6 RAID: + . Add patch stolen-from-head_serverworks-CSB6-raid-support.dpatch. + - zatm fix: + . Add patch stolen-from-head_zatm-fix.dpatch. + - mxser annotations and compile fixes: + . Add patch stolen-from-head_mxser-several-fixes.dpatch. + - cinergy __user annotations: + . Add patch stolen-from-head_cinergy-user-annotation.dpatch. + - av7110_hw __user annotations fix: + . Add patch stolen-from-head_av7110_hw-user-annotation.dpatch. + - ide-proc: kill destroy_proc_ide_interfaces(): + . Add patch stolen-from-head_fix-redundant-ide-proc-entry.dpatch. + - fix cleanup_module() in ide.c: + . Add patch stolen-from-head_fix-ide-cleanup-module.dpatch. + - i386 uaccess annotations: + . Add patch stolen-from-head_uaccess-annotation.dpatch. + - Intel ICH7 DID's, PIRQ and PATA support: + . Add patch stolen-from-head_intel-ich7-support.dpatch. + - fix net/core/sock.o build failure: + . Add patch stolen-from-head_fix-build-with-no-ipv6.dpatch. + - fix the fake anti-optimizer cast macro to use the right address space: + . Add patch stolen-from-head_fix-fake-anti-optimizer-macro.dpatch. + - common send_sigtrap helper for debug event SIGTRAP's: + . Add patch stolen-from-head_send_sigtrap.dpatch. + - be a lot more careful about TF handling: + . Add patch stolen-from-head_tf-handling.dpatch. + - single-step over "popf" without corrupting state: + . Add patch stolen-from-head_single-step-popf.dpatch. + - ipt_ECN corrupt checksum fix: + . Add patch stolen-from-head_ipt_ECN-corrupt-checksum-fix.dpatch. + - fix inet6_sk for non IPV6 builds again: + . Add patch stolen-from-head_fix-inet6_sk.dpatch. + - fix proc removal in ip_conntrack_standalone: + . Add patch stolen-from-head_fix-proc-ip_conntrack_standalone.dpatch. + - fix cleanup path when sysctl registration fails: + . Add patch stolen-from-head_fix-cleanup-path.dpatch. + - ppc uaccess annotations: + . Add patch stolen-from-head_uaccess-annotation-ppc.dpatch. + - acpi video device enumeration: fix incorrect device list allocation: + . Add patch stolen-from-head_acpi-video-device-enumeration.dpatch. + - x86 ptrace: remove long stale (and bitrotted) test for PT_DTRACE without + PT_PTRACED: + . Add patch stolen-from-head_fix-PT_DTRACE-test.dpatch. + - x86 single-step: fix up comments and cleanup: + . Add patch stolen-from-head_fix-single-step-x86.dpatch. + - support for another Rockwell PNP modem: + . Add patch stolen-from-head_more-rockwell-pnp-modems.dpatch. + - vmscan: total_scanned fix: + . Add patch stolen-from-head_vmscan-total_scanned-fix.dpatch. + - CS461x gameport code isn't being included in build: + . Add patch stolen-from-head_CS461x-gameport-build-for-real.dpatch. + - mm: keep count of free areas: + . Add patch stolen-from-head_mm-keep-count-of-free-areas.dpatch. + - simplified readahead: + . Add patch stolen-from-head_simplified-readahead.dpatch. + - simplified readahead congestion control: + . Add patch stolen-from-head_simplified-readahead-congestion-control.dpatch. + - mempolicy optimisation: + . Add patch stolen-from-head_mempolicy-optimisation.dpatch. + - mm: overcommit updates: + . Add patch stolen-from-head_mm-overcommit-updates.dpatch. + - mark_page_accessed() for read()s on non-page boundaries: + . Add patch stolen-from-head_mark_page_accessed.dpatch. + - do_anonymous_page() use SetPageReferenced: + . Add patch stolen-from-head_do_anonymous_page.dpatch. + - collect page_states only from online cpus: + . Add patch stolen-from-head_do-not-collect-page_states.dpatch. + - netfilter: fix return values of ipt_recent checkentry: + . Add patch stolen-from-head_fix-ipt_recent-checkentry.dpatch. + - netfilter: Fix ip_conntrack_proto_sctp exit on sysctl fail: + . Add patch stolen-from-head_fix-ip_conntrack_proto_sctp-exit.dpatch. + - netfilter: Fix ip_ct_selective_cleanup(), and rename + ip_ct_iterate_cleanup(): + . Add patch stolen-from-head_fix-ip_ct_selective_cleanup.dpatch. + - netfilter: Remove IPCHAINS and IPFWADM compatibility: + . Add patch stolen-from-head_ipchains_and_ipfwadm_must_die.dpatch. + - netfilter: Remove copy_to_user Warnings in Netfilter: + . Add patch stolen-from-head_remove-copy-to-user-warnings.dpatch. + - netfilter: Fix cleanup in ipt_recent should ipt_registrater_match error: + . Add patch stolen-from-head_ipt_recent-should-ipt_registrater_match.dpatch. + - fix broken RST handling in ip_conntrack: + . Add patch stolen-from-head_fix-broken-rst-handling-in-ip_conntrack.dpatch. + - fix IDE_ARCH_OBSOLETE_INIT: + . Add patch stolen-from-head_fix-ide-arch-obsolete-init.dpatch. + - assign PKMAP_BASE dynamically: + . Add patch stolen-from-head_assign-pkmap-base-dinamically.dpatch. + - x86: remove data-header and code overlap in boot/setup.S: + . Add patch stolen-from-head_fix-data-code-overlap.dpatch. + - Cyrix MII cpuid returns stale %ecx: + . Add patch stolen-from-head_cyrix-mii-cpuid.dpatch. + - NX: Triple fault with 4k kernel mappings and PAE: + . Add patch stolen-from-head_triple-fault-with-4k-mapping-and-pae.dpatch. + - /proc/sys/kernel/bootloader_type: + . Add patch stolen-from-head_bootloader-type.dpatch. + - Intel thermal monitor for x86_64: + . Add patch stolen-from-head_amd64-thermal-monitor.dpatch. + . Add X86_MCE_INTEL=y for supported arches. + - x86_64: Fix bugs in the AMD K8 CMP support code: + . Add patch stolen-from-head_amd64-k8-cmp-fix.dpatch. + - x86_64: numa_add_cpu() fix: + . Add patch stolen-from-head_amd64-numa-add-cpu-fix.dpatch. + - x86_64: Remove duplicated FAKE_STACK_FRAME macro: + . Add patch stolen-from-head_amd64-remove-duplicate-macro.dpatch. + - x86_64: Remove debug information for vsyscalls: + . Add patch stolen-from-head_amd64-no-vsyscalls-debug.dpatch. + - x86_64: Rename HTVALID to CMP_LEGACY: + . Add patch stolen-from-head_amd64-rename-HTVALID2CMP_LEGACY.dpatch. + - x86_64: Scheduler support for AMD CMP: + . Add patch stolen-from-head_amd64-cmp-add-scheduler-support.dpatch. + - x86_64: Add a missing __iomem pointed out by Linus: + . Add patch stolen-from-head_amd64-add-missing-iomem.dpatch. + - x86_64: Add a missing newline in /proc/cpuinfo: + . Add patch stolen-from-head_amd64-missing-newline.dpatch. + - x86_64: Always print segfaults for init: + . Add patch stolen-from-head_amd64-print-segfaults.dpatch. + - x86_64: Export phys_proc_id: + . Add patch stolen-from-head_amd64-export-phys-proc-id.dpatch. + - swsusp: kill one-line helpers, handle read errors: + . Add patch stolen-from-head_swsusp-handle-errors.dpatch. + - swsusp: Kill O(n^2) algorithm in swsusp: + . Add patch stolen-from-head_kill-On2-in-swsusp.dpatch. + - NX: Fix noexec kernel parameter: + . Add patch stolen-from-head_fix-noexec-param.dpatch. + - ipt_REJECT Target nonlinear fixes: + . Add patch stolen-from-head_ipt_REJECT.dpatch. + - When ipt_ECN needs TCP, check it is not inverted: + . Add patch stolen-from-head_ipt_ECN-needs-tcp.dpatch. + - capset returns -EPERM when pid==current->pid: + . Add patch stolen-from-head_fix-capset-wrong-returns.dpatch. + - time runx too fast after S3: + . Add patch stolen-from-head_s3-time-too-fast.dpatch. + - fix ptracer death race yielding bogus BUG_ON: + . Add patch stolen-from-head_ptracer-death-race.dpatch. + - Fix megaraid oops on unload: + . Add patch stolen-from-head_modular-megaraid.dpatch. + - parport_pc: don't mix module parameter styles: + . Add patch stolen-from-head_parport_pc_module_parm_mixing.dpatch. + + -- Fabio M. Di Nitto Mon, 10 Jan 2005 13:47:26 +0100 + +linux-source-2.6.10 (2.6.10-3) hoary; urgency=low + + * Bump build-dep on kernel-wedge (>= 1.25.1ubuntu2) and revert nic-firmware + hack. + + * Revert ax25 to 2.6.9 to fix a regression spotted by Alan Cox: + - Add patch fix-ax25.dpatch. + + * Enforce security/Kconfig to exclude SECURITY_CAPABILITIES built as module: + - Add patch no-cap-mod.dpatch. + + * Add patch from Alan Cox to handle misrouted IRQ recovery: + - Add patch misrouted-irq.dpatch. + Note: the feature is NOT enabled by default as it might have a certain + impact on system performance. + To enable you need to boot with the option irqpoll. + + * More pcmcia udebs cleanup. Add pcmcia.o to pcmcia-modules since it is + common to several packages. + + -- Fabio M. Di Nitto Sun, 02 Jan 2005 07:42:25 +0100 + +linux-source-2.6.10 (2.6.10-2) hoary; urgency=low + + * Fix pcmcia udeb creation: + - Change PCCARD=y to PCCARD=m to generate pcmcia_core.ko again. + - Update debian/d-i//modules//pcmcia-modules to remove + reference to ds.ko that is not built as module anymore. + + * Fix nic-firmware udeb creation due to all firmware updates: + - Convert debian/d-i//firmware//nic-firmware.lnk to + nic-firmware so that kernel-wedge can still compile 2.6.9 as default + kernel. Note that this change has to move from 2.6.10 to kernel-wedge if + 2.6.10 will become the default kernel. + + * Update toshiba acpi support: + - Add patch tosh_acpi.dpatch. + + Daniel also notes: + + "It won't enable my changes by default. You pass hotkeys_over_acpi=1 as a + module parameter to enable it. + I have a set of acpid files for enabling the brightness buttons, sleep + and hibernate buttons; the lock button too." + + -- Fabio M. Di Nitto Fri, 31 Dec 2004 18:05:27 +0100 + +linux-source-2.6.10 (2.6.10-1) hoary; urgency=low + + * ATTENTION/WARNING/SOS/THE IF YOU OPEN A BUG ON THIS YOU WILL BURN ALIVE + ->>>>>> Disable emu10k1 build on ppc because it is broken <<<<<<- + + * New upstream release. + + * Readd scripts/package/Makefile fix to avoid removal of debian/, in clean + target, as patch that sneaked into 2.6.9 orig.tar.gz for a mistake. + + * Remove the following patches: + - fix-ip-conntrack-ftp.dpatch. + - fix-ip-options-leak.dpatch. + - vt-of-death.dpatch. + - scm_send-dos-fix.dpatch. + - binfmt-huge-vma-dos.dpatch. + - fix-igmp.dpatch. + - unix-sem.dpatch. + - amd64-fix-overrun.dpatch. + - fix-gpe.dpatch. + - selinux-fixes.dpatch. + - vmio.dpatch. + - s390-sacf-fix.dpatch. + - aout-loader-fixes.dpatch. + - dm_io-ENOMEM-goof.dpatch. + - ata_piix-combinde-mode-fix-2.dpatch. + - elf-loader-fixes.dpatch. + - elf-loader-fixes-the-return.dpatch. + - fs-tmpfs-free_inode-leak.dpatch. + - SG_IO-safe-commands-1.dpatch. + - drivers-scsi-core.dpatch. + - 3w-xxxx-hotplug.dpatch. + - acpi-early-init-check-disable.dpatch. + - aic79xx-nodev.dpatch. + - alpha-writeq-fix.dpatch. + - disable-lapic-in-acpi-power-off.dpatch. + - disable-lapic-in-acpi-power-off-2.dpatch. + - drivers-ide-dma-ricoh.dpatch. + - drivers-pci-quirks-via8233a.dpatch. + - drivers-serial-8250-ioremap-fix.dpatch. + - drivers-serial-sn_console-up-buildfix.dpatch. + - drivers-usb-storage-transport-1.dpatch. + - drivers-usb-storage-transport-2.dpatch. + - fs-ext3-directio-leak-fix.dpatch. + - ia64_cyclone_nosmp.dpatch. + - ia64-hp-sba_iommu-fix.dpatch. + - ia64-sn-move-irq-noop.dpatch. + - ip6t-log-doff.dpatch. + - mlock-as-user.dpatch. + - mm-vmscan.dpatch. + - parport_pc-via8231.dpatch. + - ppc64-iSeries-build-fix.dpatch. + - sata-nv-no-reset.dpatch. + - scsi-blacklist.dpatch. + - drivers-net-tg3-readd.dpatch. + - tg3-update.dpatch. + - vlan-update-1.dpatch. + - sparc-cg14-init.dpatch. + - sparc64-sunsab-break-fix.dpatch. + - wakeup_addr.dpatch. + - acx100-amd64.dpatch. + + * Rediff the following patches: + - modular-ide.dpatch. + - modular-vesafb.dpatch. + - remove-references-to-removed-drivers.dpatch. + - powerpc-g4-l2-flush-errata.dpatch. + - ia64-generic-no-smp.dpatch. + - ia64-generic-no-smp-1-to-2.dpatch. + - eagle-usb.dpatch. + - sparc32-initrd-memcpy.dpatch. + - smbfs-overflow-fixes.dpatch. + - wakeup_gdt.dpatch. + + * Add debian/external-drivers to document URL/versions of drivers that are + not part of the vanilla kernel. + + * Update ipw2100 and ipw2200 firmwares. + + * Update ieee80211 driver: + - Update patch ieee80211.dpatch. + - Obsolete patches: ieee80211-*.dpatch. + + * Update ipw2100 driver: + - Update patch ipw2100.dpatch. + - Obsolete patches: ipw2100-*.dpatch. + + * Update ipw2200 driver: + - Update patch ipw2200.dpatch. + - Obsolete patches: ipw2200-*.dpatch. + + * Update adm8211 driver: + - Update patch adm8211.dpatch. + + * Update ndiswrapper driver: + - Update patch ndiswrapper-2.dpatch. + + * Update eagle-usb driver: + - Update patch eagle-usb.dpatch. + + * Update inotify driver: + - Add patches inotify-0.17-wip-rml-2.6.10-rc2-12.dpatch and + sparc64-inotify-0.17-wip-rml-2.6.10-rc2-12.dpatch. + - Obsolete patches inotify-0.16-wip-rml-2.6.10-rc2-9.dpatch and + sparc64-inotify-0.16-wip-rml-2.6.10-rc2-9.dpatch. + + * Update debian/d-i//kernel-versions. + + * Overall acpi update that didn't make it in time for 2.6.10: + - Add patch stolen-from-head_acpi-20041210.dpatch. + + * Add Matthew Garrett's usual crack: + - Add patches: + . resume-finish-split.dpatch. + . panasonic_acpi.dpatch. + . sony_acpi.dpatch. + - ACPI_PCC=m + - ACPI_SONY=m + + * Fix one of multiple cx88 FTBFS: + - Add patch stolen-from-head_fix-cx88-build.dpatch. + + * Fix powerpc FTBFS: + - Add patch powerpc-fix-ftbfs.dpatch. + + * Fix (partially) ia64 FTBFS: + - Add patch ia64-fix-ftbfs.dpatch. + + * New and hot (or not so hot when they rename CONFIG options): + + - KOBJECT_UEVENT=y + - MODULE_SRCVERSION_ALL=y + - BLK_DEV_RAM_COUNT=16 + - INITRAMFS_SOURCE="" + - CDROM_PKTCDVD=m + - CDROM_PKTCDVD_BUFFERS=8 + - CDROM_PKTCDVD_WCACHE=n + - SCSI_INITIO=m + - MD_FAULTY=m + - IP_TCPDIAG=m + - IP_NF_CONNTRACK_MARK=y + - IP_NF_MATCH_CONNMARK=m + - IP_NF_MATCH_HASHLIMIT=m + - IP_NF_TARGET_CONNMARK=m + - IP_NF_TARGET_CLUSTERIP=m + - I2C_STUB=m + - SENSORS_ADM1026=m + - SENSORS_LM63=m + - SENSORS_LM87=m + - SENSORS_PC87360=m + - FB_TILEBLITTING=y + - FB_ATY_GENERIC_LCD=y + - FB_SAVAGE=m + - FB_SAVAGE_I2C=m + - FB_SAVAGE_ACCEL=m + - USB_SL811_HCD=m + - USB_KC2190=y + - TMPFS_XATTR=n + - CIFS_EXPERIMENTAL=n + - KEYS=n + - CRYPTO_ANUBIS=m + - PCCARD=y + - PCMCIA_DEBUG=n + - PCMCIA_OBSOLETE=n + - PCMCIA=m + - CARDBUS=y + - YENTA=m + - PD6729=m + - I82092=m + - I82365=m + - TCIC=m + - BLK_DEV_IDECS=m + - SCSI_SATA_AHCI=m + - SCSI_SATA_ULI=m + - SCSI_QLOGIC_1280_1040=y + - PCMCIA_FDOMAIN=m + - PCMCIA_QLOGIC=m + - PCMCIA_SYM53C500=m + - BT_HCIDTL1=m + - BT_HCIBT3C=m + - BT_HCIBLUECARD=m + - BT_HCIBTUART=m + - PCMCIA_XIRCOM=m + - PCMCIA_XIRTULIP=m + - PCMCIA_WAVELAN=m + - PCMCIA_NETWAVE=m + - PCMCIA_RAYCS=m + - PCMCIA_HERMES=m + - AIRO_CS=m + - PCMCIA_ATMEL=m + - PCMCIA_WL3501=m + - NET_PCMCIA=y + - PCMCIA_3C589=m + - PCMCIA_3C574=m + - PCMCIA_FMVJ18X=m + - PCMCIA_PCNET=m + - PCMCIA_NMCLAN=m + - PCMCIA_SMC91C92=m + - PCMCIA_XIRC2PS=m + - PCMCIA_AXNET=m + - ARCNET_COM20020_CS=m + - PHONE_IXJ_PCMCIA=m + - SERIAL_8250_CS=m + - SYNCLINK_CS=m + - I2C_AMD756_S4882=m + - W1_DS9490_BRIDGE=m + - DVB_DIBUSB=m + - DVB_DIBCOM_DEBUG=n + - DVB_CINERGYT2=m + - DVB_CINERGYT2_TUNING=y + - DVB_CINERGYT2_STREAM_URB_COUNT=32 + - DVB_CINERGYT2_STREAM_BUF_SIZE=512 + - DVB_CINERGYT2_QUERY_INTERVAL=250 + - DVB_CINERGYT2_ENABLE_RC_INPUT_DEVICE=y + - DVB_CINERGYT2_RC_QUERY_INTERVAL=100 + - DVB_TDA80XX=m + - DVB_CX22702=m + - SND_BT87X_OVERCLOCK=n + - USB_SERIAL_CYPRESS_M8=m + - USB_SERIAL_IPW=m + - USB_PHIDGETKIT=m + - VIDEO_SAA7134_DVB=m + - VIDEO_CX88_DVB=n (it breaks compilation on i386 at least) + - FB_INTEL=m + - FB_INTEL_DEBUG=n + - SND_VXPOCKET=m + - SND_VXP440=m + - SND_PDAUDIOCF=m + - ISDN_DRV_AVMB1_AVM_CS=m + - USB_GADGET_DEBUG_FILES=n + - PCMCIA_AHA152X=m + - PCMCIA_NINJA_SCSI=m + - PCMCIA_IBMTR=m + - DEBUG_KOBJECT=n + - PNP=y + - PNP_DEBUG=n + - BLK_DEV_IDEPNP=m + - NET_SB1000=m + - PNPACPI=y + - SECURITY_SECLVL=m + - PARPORT_PC_PCMCIA=m + - SCHEDSTATS=n + - CC_ALIGN_FUNCTIONS=0 + - CC_ALIGN_LABELS=0 + - CC_ALIGN_LOOPS=0 + - CC_ALIGN_JUMPS=0 + - ACPI_VIDEO=m + - ACPI_IBM=m + - CPU_FREQ_DEBUG=n + - X86_CPUFREQ_NFORCE2=m + - MTD_TS5500=m + - PARPORT_PC_PCMCIA=m + - HISAX_SEDLBAUER_CS=m + - HISAX_ELSA_CS=m + - HISAX_AVM_A1_CS=m + - HISAX_TELES_CS=m + - DNOTIFY=y + - ISDN_DIVERSION=m + - USB_ATM=m + - FB_ATY_GENERIC_LCD=y + - FB_SAVAGE=m + - FB_SAVAGE_I2C=m + - FB_SAVAGE_ACCEL=m + - X86_P4_CLOCKMOD=m + - ACPI_CONTAINER=m + - IPW2100_DEBUG=n + - IPW2200_DEBUG=n + - DVB_DIBUSB_MISDESIGNED_DEVICES=n + - DVB_B2C2_USB=m + - MMC=m + - MMC_DEBUG=n + - MMC_BLOCK=m + - MMC_WBSD=m + - NUMA_EMU=n + - ISDN_DRV_AVMB1_B1PCI0=m + - ISDN_DRV_AVMB1_B1PCIV4=y + - ISDN_DRV_AVMB1_B1PCMCIA=m + - ISDN_DRV_AVMB1_AVM_CS=m + - ISDN_DRV_AVMB1_T1PCI=m + - ISDN_DRV_AVMB1_C4=m + - MOXA_SMARTIO=m + - ACPI_HOTPLUG_CPU=y + + * Rename Debian references to Ubuntu in debian/control.stub and update + debian/make-kernel-patch-pkgs. + (Closes: #4982) + + * Update debian/official. + + * Enable reiserfs extended attributes: + - REISERFS_FS_XATTR=y + - REISERFS_FS_POSIX_ACL=y + - REISERFS_FS_SECURITY=y + (Closes: #4472/#4475) + + * [SECURITY] Compile capabilities inside the kernel and not as module. + - SECURITY_CAPABILITIES=y + + -- Fabio M. Di Nitto Thu, 23 Dec 2004 07:09:58 +0100 + +linux-source-2.6.9 (2.6.9-10) hoary; urgency=low + + * [SECURITY] vc_resize fix. + . Add patch: vt-of-death.dpatch. (CAN-2004-1333) + + * [SECURITY] Do not leak IP options fix. + . Add patch: fix-ip-options-leak.dpatch. (CAN not available yet) + + * Xmas present for our PPC users. Ship (but don't compile yet) BenH patch to + put powerbook g4 to sleep. + . Add patch: ibookg4-sleep-7.dpatch + + -- Fabio M. Di Nitto Tue, 21 Dec 2004 13:42:28 +0100 + +linux-source-2.6.9 (2.6.9-9) hoary; urgency=low + + * Update debian/changelog for 2.6.9-2 to include CAN-2004-1151 number + that at release time was not available. + + * [SECURITY] additional x86_64 buffer overflow fix; this time, + sys32_quotactl (Andres Salomon). + Update patch: amd64-fix-overrun.dpatch. + + * [SECURITY] scm_send local DoS fix (advisory: + http://www.isec.pl/vulnerabilities/isec-0019-scm.txt) (Andres Salomon). + Add patch: scm_send-dos-fix.dpatch. (CAN-2004-1016) + + -- Fabio M. Di Nitto Mon, 20 Dec 2004 09:01:20 +0100 + +linux-source-2.6.9 (2.6.9-8) hoary; urgency=low + + * Add missing bits to CAN-2005-0003 patch: + . Update patch aout-loader-fixes.dpatch. + . Add patch binfmt-huge-vma-dos.dpatch. + + * Compile SELINUX support, but disabled by default. A special boot parameter + needs to be added in orderd for SELINUX to be enabled at boot time. + + * Update debian/control.stub maintainer section. + + -- Fabio M. Di Nitto Thu, 16 Dec 2004 09:25:09 +0100 + +linux-source-2.6.9 (2.6.9-7) hoary; urgency=low + + * Brown paper bag upload to really fix CAN-2004-1137. + + * Add Matt Zimmerman patch to fix device mapper on top of cloop devices. + + -- Fabio M. Di Nitto Wed, 15 Dec 2004 19:01:27 +0100 + +linux-source-2.6.9 (2.6.9-6) hoary; urgency=low + + * [SECURITY] Fix multiple IGMP handling vulnerabilities. + . Add patch fix-igmp.dpatch. (CAN-2004-1137) + + There are multiple serious issues with the igmp.c code in recent kernel + versions. Here an incomplete list of bugs: + + 1) ip_mc_source suffers from a serious kernel deadlock & kernel memory + overwrite problem. It is possible to decrement the psl->sl_count counter + to be 0xffffffff == -1 with the consequence that: + + - a repeated call will start a loop counting from 0 to UINT_MAX causing a + kernel hang for minutes (depending on the machine speed), then the + whole kernel memory following the kmalloc'ated buffer will be shifted + by 4 bytes causing an immediate reboot. + + - If properly exploited this will lead to elevated privileges. + + 2) because of the bug 1) it is possible to read huge portions of kernel + memory through ip_mc_msfget() + + 3) igmp_marksources() function is called in the context of an IGMP group + query and suffers from an out of bound access to kernel memory. This is + remotely exploitable if applications have bound a multicast socket. + + This bug allows in the best case to remotely DoS a Linux machine with just + a moderate flow of prepared IGMP packets. + + In the worst case (the socket buffer allocated for the packet is at the + end of kernel accessible memory), the Linux machine may be crashed + remotely. + + * Ship cloop as modules on sparc: + . Fix FTBFS. + . Update config file: + - CONFIG_BLK_DEV_CLOOP=m. + . Add debian/d-i/sparc/modules/sparc64/loop-modules to include cloop.o. + Note: loop-modules for sparc is not a lnk to the one shipped by + kernel-wedge since loop.o is compiled in. + + * Update the cloop help text specifing that the code cannot be compiled in. + It must be a module. + + -- Fabio M. Di Nitto Mon, 13 Dec 2004 09:53:24 +0100 + +linux-source-2.6.9 (2.6.9-5) hoary; urgency=low + + * Add cloop (compressed loop) support from cloop-src 2.01.5-1: + . Add patch: cloop.dpatch. + . Rename compressed_loop.{c,h} to cloop.{c,h} and update the code + accordingly. + . Add new CONFIG_BLK_DEV_CLOOP. + . Update i386/amd64/ia64/powerpc config: + - CONFIG_BLK_DEV_CLOOP=m. + . Update sparc config: + - CONFIG_BLK_DEV_CLOOP=y. + . Bump Build-Dep on kernel-wedge 1.25ubuntu6 to ensure the cloop module + into loop*.udeb + + -- Fabio M. Di Nitto Thu, 09 Dec 2004 18:52:39 +0100 + +linux-source-2.6.9 (2.6.9-4) hoary; urgency=low + + * Renable mv643xx driver for powerpc that got lost due to driver rename: + . Update marvell-pegasos-2.patch. + . Readd marvell-pegasos-2.patch to 00list-4. + . Update debian/d-i/powerpc/modules/powerpc/nic-modules. + . Update powerpc config files: + - CONFIG_MV643XX_ETH=m + - CONFIG_MV643XX_ETH_0=y + - CONFIG_MV643XX_ETH_1=y + - CONFIG_MV643XX_ETH_2=y + + * Backport scsi_lib patch from 2.6.10-rc3 to fix a scsi layer regression introduced + in 2.6.9: + . Add patch drivers-scsi-core.dpatch. + (Closes: #4332) + + -- Fabio M. Di Nitto Wed, 08 Dec 2004 18:49:17 +0100 + +linux-source-2.6.9 (2.6.9-3) hoary; urgency=low + + * The "I love Matthew Garrett" upload: + . Add DSDT support: + - Add patch dsdt-initrd.dpatch. + - Update i386/amd64/ia64 config files: + + ACPI_INITRD=y + . Add userspace swsusp resume support: + - Add patch swsusp-userspace.dpatch. + - Update i386/amd64 config files: + + CONFIG_SOFTWARE_SUSPEND=y + + PM_STD_PARTITION="" + . Fix a bug in ACPI to help suspend on some machine: + - Add patches: wakeup_addr.dpatch and wakeup_gdt.dpatch. + . Bump dependcy on initrd-tools to >= 0.1.75ubuntu2 to ensure that the + newly generated initrd images will contain the proper init script for + swsusp. + + * Add support for Philips USB cameras from + http://www.saillard.org/linux/pwc/ at version 10.0.6 (for kernel 2.6.9). + . Add patch drivers-usb-pwc.dpatch. + . Update all config files: + + USB_PWC=m + + * Fix typo in debian/control.stub file to fix FTBFS on ia64. + + * Allign ia64 package descriptions with the others. + + -- Fabio M. Di Nitto Wed, 08 Dec 2004 07:49:31 +0100 + +linux-source-2.6.9 (2.6.9-2) hoary; urgency=low + + Changes by Fabio M. Di Nitto: + + * [SECURITY] Fix Buffer overrun in arch/x86_64/sys_ia32.c:sys32_ni_syscall() + . Add patch: amd64-fix-overrun.dpatch. (CAN-2004-1151). + + With Chris Wright + + struct task_struct.comm is defined to be 16 chars, but + arch/x86_64/sys_ia32.c:sys32_ni_syscall() and sys32_vm86_warning() copy it + into a static 8 byte buffer, which will surely cause problems. This patch + makes lastcomm[] the right size, and makes sure it can't be overrun. Since + the code also goes to the effort of getting a local copy of current in "me", + we may as well use it for printing the message. + + NOTE: This problem affects only amd64. + + * Unset CONFIG_BLK_DEV_UB on all archs. This is supposed to fix some + problems recently introduced in the usb mass storage support. + + * Fix sk98lin pci table and device MODULE_DEVICE_TABLE in orfer to restore + driver hotplug capabilities. + Add patch sk98lin-update-2.dpatch. + (Closes: #4379) + + * Apply patch to Disable wakeup GPEs before power off. + Thanks to Matthew Garrett for the patch. + Add patch fix-gpe.dpatch. + + * Add drivers/usb/input/usbhid.o to + debian/d-i/amd64/modules/amd64/input-modules in order to enable USB + keyboard support in d-i for amd64. + (Closes: #4400) + + * Update acx100 driver up to 0.2.0pre8_plus_fixes_43: + Add patches: + . acx100-2.dpatch + . acx100-kill-float-2.dpatch + . acx100-fw-2.dpatch + Drop acx100-amd64 from 00list-2 + (Closes: #2348) + + * Add support for Synaptics cPad devices: + . Add patch synaptics-cpad-support.dpatch. + Original patch by Daniel Stone. + . Update i386/amd64/powerpc/sparc config files: + + INPUT_CPAD=m + (Closes: #2026) + + * Add support for FSAM7400 radios on Centrino devices: + . Add patch ipw2100-fsam7400.dpatch. + Original patch by Daniel Stone. + . Update i386/amd64 config files: + IPW2100_FS_AMILO_M7400=m + . Update powerpc config files: + IPW2100_FS_AMILO_M7400=n + (Closes: #3242) + + * Add ia64 support: + . Update debian/control.stub. + . Add debian/d-i/ia64 importing files from linux-kernel-di-ia64-2.6-1.0 + . Add debian/config/ia64/ from kernel-image-2.6.8-ia64 (2.6.8-9) + + * Update ia64 config files (new entries): + . LOCALVERSION="" + . IA64_MCA_RECOVERY=m + . ACPI_BLACKLIST_YEAR=0 + . HOTPLUG_PCI_ACPI_IBM=m + . BLK_DEV_UB=n + . MEGARAID_NEWGEN=n + . MEGARAID_LEGACY=m + . MD_RAID10=m + . INET_TUNNEL=m + . IP_NF_CT_ACCT=y + . IP_NF_CT_PROTO_SCTP=m + . IP_NF_MATCH_SCTP=m + . IP_NF_MATCH_COMMENT=m + . IP6_NF_MATCH_PHYSDEV=m + . R8169_NAPI=n + . IEEE80211=m + . IEEE80211_DEBUG=n + . IEEE80211_CRYPT=m + . IEEE80211_WPA=y + . IEEE80211_CRYPT_CCMP=m + . IEEE80211_CRYPT_TKIP=m + . IPW2100=m + . IPW2100_PROMISC=y + . IPW2100_LEGACY_FW_LOAD=n + . IPW2100_NOWEP=n + . IPW2100_DEBUG=n + . IPW2100_FS_AMILO_M7400=n + . IPW2200=m + . IPW2200_NOWEP=n + . PRISM2_USB=m + . ACX100=m + . ADM8211=m + . PPP_MPPE=m + . NDISWRAPPER=n + . SERIO_RAW=m + . JOYSTICK_JOYDUMP=m + . INPUT_CPAD=m + . INOTIFY=y + . DIGIEPCA=m + . SGI_SNSC=y + . IPMI_POWEROFF=m + . MMTIMER=n + . I2C_ALGOPCA=m + . I2C_PCA_ISA=m + . SENSORS_SMSC47M1=m + . W1_DS9490=m + . W1_DS9490R_BRIDGE=m + . W1_SMEM=m + . SND_ATIIXP_MODEM=m + . SND_USB_USX2Y=m + . USB_SUSPEND=n + . USB_EAGLE=m + . RPCSEC_GSS_SPKM3=m + . CRYPTO_WP512=m + + * Disable CONFIG_DIGIEPCA and CONFIG_DIGI on ia64 since the driver compiles + only on 32bit archs. + + * Update debian/d-i/ia64/kernelversions to reflect the new upstream. + + * Add acx100-ia64.dpatch and ia64-prism2.dpatch to associate ia64 cpu as i386 + for wlan header cpu checks. + According to some investigations the 2 should be similar enough to work + without extra specific code or declarations. + + * Update disable-lapic-in-acpi-power-off.dpatch with a portable fix from + http://bugzilla.kernel.org/show_bug.cgi?id=3643. + Add patch disable-lapic-in-acpi-power-off-2.dpatch. + + Changes by Daniel Stone: + + * Modify debian/header-install and debian/post-install in order to ship all + the asm headers in the linux-header package and produce proper symlinks + from the specific flavour. This circumnvent a problem on powerpc (mainly) + that uses a bunch of m68k asm includes. + This fix will also allow the new linux-restricted-modules to build on + powerpc. + + -- Fabio M. Di Nitto Tue, 07 Dec 2004 18:43:02 +0100 + +linux-source-2.6.9 (2.6.9-1) hoary; urgency=low + + Changes by Fabio M. Di Nitto: + + * [SECURITY] Serialize dgram read using semaphore just like stream. + + Add the following patches: + . unix-sem.dpatch (CAN-2004-1068) + + * [SECURITY] Fix insufficient locking checks in DRM code. + + Add the following patches: + . drm-fixes.dpatch (CAN-2004-1056) + + * [SECURITY] Fix SELinux crashes with SOCK_SEQPACKET; see + http://marc.theaimsgroup.com/?l=linux-kernel&m=110045613004761 + for reference: + + Add the following patches: + . selinux-fixes.dpatch (CAN-2004-1069) + + * [SECURITY] Fix problems in VM_IO refcount: + + Add the following patches: + . vmio.dpatch (CAN has not been assigned yet) + + * [SECURITY] Fix problems in binfmt_elf loader; see + http://isec.pl/vulnerabilities/isec-0017-binfmt_elf.txt for more + details (Andres Salomon): + + Add the following patches: + . elf-loader-fixes.dpatch (CAN-2004-1070/1/2/3) + + Several flaws have been found in the Linux ELF binary loader's + handling of setuid binaries. Nowadays ELF is the standard format for + Linux executables and libraries. setuid binaries are programs that + have the "setuid" file permission bit set; they allow to execute a + program under a user id different from the calling user and are + mostly used to allow executing a program with root privileges to + normal users. + + The vulnerabilities that were fixed in these updated kernel packages + could lead Denial of Service attacks. They also might lead to + execution of arbitrary code and privilege escalation on some + platforms if an attacker is able to run setuid programs under some + special system conditions (like very little remaining memory). + + Another flaw could allow an attacker to read supposedly unreadable, + but executable suid binaries. The attacker can then use this to seek + faults within the executable. + + * [SECURITY] Further binfmt_elf fixes, and binfmt_aout fixes as well + (Andres Salomon). + + Add the following patches: + . elf-loader-fixes-the-return.dpatch (CAN-2004-1070/1/2/3) + . aout-loader-fixes.dpatch (CAN-2004-1074) + + http://marc.theaimsgroup.com/?l=linux-kernel&m=109776571411003&w=2: + + Bernard Gagnon discovered a memory leak in the mmap raw packet + socket implementation. When a client application (in ELF format) + core dumps, a region of memory stays allocated as a ring buffer. + This could be exploited by a malicious user who repeatedly crashes + certain types of applications until the memory is exhausted, thus + causing a Denial of Service. + + * [SECURITY] s390: sacf local root exploit (Andres Salomon). + + Add the following patches: + . s390-sacf-fix.dpatch (CAN-2004-0887) + + * [SECURITY] Further smbfs overflow fixes, stolen from -ac tree + (Andres Salomon). + + Add the following patches: + . smbfs-overflow-fixes.dpatch (CAN-2004-0883 CAN-2004-0949) + + During an audit of the smb file system implementation within Linux, + several vulnerabilities were discovered ranging from out of bounds + read accesses to kernel level buffer overflows. + + To exploit any of these vulnerabilities, an attacker needs control + over the answers of the connected Samba server. This could be + achieved by man-in-the-middle attacks or by taking over the + Samba server with e. g. the recently disclosed vulnerability in + Samba 3.x (see CAN-2004-0882). + + While any of these vulnerabilities can be easily used as remote denial + of service exploits against Linux systems, it is unclear if it is + possible for a skilled local or remote attacker to use any of the + possible buffer overflows for arbitrary code execution in kernel + space. So these bugs may theoretically lead to privilege escalation + and total compromise of the whole system. + + * [SECURITY] reverted 486 emulation patch: + + Delete the following patches: + . x86-i486_emu.dpatch + + Ubuntu kernels for the i386 platforms are compiled using the i486 + instruction set for performance reasons. Former Ubuntu kernels + contained code which emulated the missing instructions on real 386 + processors. However, several actual and potential security flaws + have been discovered in the code, and it was found to be + unsupportable. It might be possible to exploit these + vulnerabilities also on i486 and higher processors. + + Therefore support for real i386 processors has ceased. This updated + kernel will only run on i486 and newer processors. + + Other architectures supported by Ubuntu (amd64, powerpc) + are not affected. + + * Resync with Debian (debian/patches/*) up to 2.6.9-3. + + * New upstream release: + + Update debian/control.stub. + + Update debian/d-i/*/kernel-versions + + Delete the following patches: + . acpi-20040826.dpatch + . acpi-early.dpatch + . acpi-osname.dpatch + . acpi-speedstep-fix.dpatch + . alpha-epoch-comment.dpatch + . bio-mem-leak.dpatch + . capi-skb-free.dpatch + . cbq-leak.dpatch + . cciss-update.dpatch + . drivers-ftape.dpatch + . drivers-input-hiddev-HIDIOCGUCODE.dpatch + . drivers-macintosh-adb-trackpad.dpatch + . drivers-scsi-sym_2-dv-hang.dpatch + . fix-sn_console-for-config_smp.dpatch + . include-missing-includes.dpatch + . marvell-mm.dpatch + . minix-block-accounting-fix.dpatch + . nfsd-subtreecheck-nostale.dpatch + . openpromfs-loop.dpatch + . pmac-no-of-stdout.dpatch + . powerpc-g4-errata.dpatch + . ptmx-fix.dpatch + . qdisc-cache-align.dpatch + . SG_IO-safe-commands-2.dpatch + . shm-segment-count-fix.dpatch + . skge-hotplug.dpatch + . skge-hotplug-2.dpatch + . sparc32-export-more-ksyms.dpatch + . sparc64-sunsab-fix.dpatch + . sparc64-syslog-register.dpatch + . sparc64-update.dpatch + . tcp-win-scale.dpatch + . therm_adt746x-schedule.dpatch + . usb-storage-vendor-count.dpatch + . via-velocity.dpatch + . via-velocity-2.dpatch + . xfs-ioctl32.dpatch + + Update the following patches: + . ia64-generic-no-smp.dpatch + . ia64-generic-no-smp-1-to-2.dpatch + . modular-ide.dpatch + . modular-vesafb.dpatch + . drivers-net-tg3-readd.dpatch + . tg3-update.dpatch + . sata-nv-no-reset.dpatch + . wlan-ng-prism2-usb.dpatch + + Add the following patches + . ext3-directio-leak-fix.dpatch + . ppc64-iSeries-build-fix.dpatch + . ia64-sn-move-irq-noop.dpatch + . mm-vmscan.dpatch + . alpha-writeq-fix.dpatch + . drivers-serial-sn_console-up-buildfix.dpatch + . ia64-hp-sba_iommu-fix.dpatch + . SG_IO-safe-commands-1.dpatch + . parport_pc-via8231.dpatch + . drivers-pci-quirks-via8233a.dpatch + . fs-tmpfs-free_inode-leak.dpatch + . drivers-ide-dma-ricoh.dpatch + . vlan-update-1.dpatch + . ata_piix-combinde-mode-fix-2.dpatch + . drivers-serial-8250-ioremap-fix.dpatch + . tty-locking-fixes9.dpatch + . dm_io-ENOMEM-goof.dpatch + + Temporary disable the following patches that seems to be applied + upstream with a different implementation: + . mlock-as-user.dpatch + . sk98lin-update.dpatch + . marvell-pegasos-2.dpatch + + * Update i386 config files (new entries): + . LOCALVERSION="" + . SHMEM=y + . PM_DEBUG=n + . ACPI_BLACKLIST_YEAR=0 + . CPU_FREQ_GOV_ONDEMAND=m + . HOTPLUG_PCI_ACPI_IBM=m + . BLK_DEV_UB=m + . MEGARAID_NEWGEN=n (try to avoid regressions) + . MEGARAID_LEGACY=m + . MD_RAID10=m + . INET_TUNNEL=m + . IP_NF_CT_ACCT=y + . IP_NF_CT_PROTO_SCTP=m + . IP_NF_MATCH_SCTP=m + . IP_NF_MATCH_COMMENT=m + . IP6_NF_MATCH_PHYSDEV=m + . R8169_NAPI=n + . SERIO_RAW=m + . JOYSTICK_JOYDUMP=m + . IPMI_POWEROFF=m + . DRM Intel 830M, 845G, 852GM, 855GM, 865G=m + . DRM_I915=m + . I2C_ALGOPCA=m + . I2C_PCA_ISA=m + . SENSORS_SMSC47M1=m + . W1_DS9490=m + . W1_DS9490R_BRIDGE=m + . W1_SMEM=m + . SND_ATIIXP_MODEM=m + . SND_USB_USX2Y=m + . USB_SUSPEND=n + . RPCSEC_GSS_SPKM3=m + . KPROBES=n + . SCHEDSTATS=n + . CRYPTO_WP512=m + + * Update ppc config files (new entries): + . LOCALVERSION="" + . BLK_DEV_UB=m + . MEGARAID_NEWGEN=n + . MEGARAID_LEGACY=m + . MD_RAID10=m + . INET_TUNNEL=m + . IP_NF_CT_ACCT=y + . IP_NF_CT_PROTO_SCTP=m + . IP_NF_MATCH_SCTP=m + . IP_NF_MATCH_COMMENT=m + . R8169_NAPI=n + . SERIO_RAW=m + . JOYSTICK_JOYDUMP=m + . INPUT_PCSPKR=m + . IPMI_POWEROFF=m + . I2C_ALGOPCA=m + . I2C_PCA_ISA=m + . SENSORS_SMSC47M1=m + . W1_DS9490=m + . W1_DS9490R_BRIDGE=m + . W1_SMEM=m + . SND_ATIIXP_MODEM=m + . SND_USB_USX2Y=m + . USB_SUSPEND=n + . RPCSEC_GSS_SPKM3=m + . SCHEDSTATS=n + . CRYPTO_WP512=m + + * Update amd64 config files (new entries): + . LOCALVERSION="" + . SHMEM=y + . PM_DEBUG=n + . ACPI_BLACKLIST_YEAR=0 + . CPU_FREQ_GOV_ONDEMAND=m + . X86_SPEEDSTEP_CENTRINO=m + . X86_SPEEDSTEP_CENTRINO_ACPI=y + . X86_ACPI_CPUFREQ=m + . X86_ACPI_CPUFREQ_PROC_INTF=y + . UNORDERED_IO=n + . HOTPLUG_PCI_ACPI_IBM=m + . BLK_DEV_UB=m + . MEGARAID_NEWGEN=n + . MEGARAID_LEGACY=m + . MD_RAID10=m + . INET_TUNNEL=m + . IP_NF_CT_ACCT=y + . IP_NF_CT_PROTO_SCTP=m + . IP_NF_MATCH_SCTP=m + . IP_NF_MATCH_COMMENT=m + . IP6_NF_MATCH_PHYSDEV=m + . R8169_NAPI=n + . SERIO_RAW=m + . JOYSTICK_JOYDUMP=m + . IPMI_POWEROFF=m + . I2C_ALGOPCA=m + . I2C_PCA_ISA=m + . SENSORS_SMSC47M1=m + . W1_DS9490=m + . W1_DS9490R_BRIDGE=m + . W1_SMEM=m + . SND_ATIIXP_MODEM=m + . SND_USB_USX2Y=m + . USB_SUSPEND=n + . RPCSEC_GSS_SPKM3=m + . CRYPTO_WP512=m + + * Update sparc config files (new entries): + . LOCALVERSION="" + . BLK_DEV_UB=m + . MEGARAID_NEWGEN=n + . MEGARAID_LEGACY=m + . MD_RAID10=m + . INET_TUNNEL=m + . IP_NF_CT_ACCT=y + . IP_NF_CT_PROTO_SCTP=m + . IP_NF_MATCH_SCTP=m + . IP_NF_MATCH_COMMENT=m + . IP6_NF_MATCH_PHYSDEV=m + . SERIO_RAW=m + . I2C_ALGOPCA=m + . I2C_PCA_ISA=m + . SENSORS_SMSC47M1=m + . RPCSEC_GSS_SPKM3=m + . SND_ATIIXP_MODEM=m + . SND_USB_USX2Y=m + . CRYPTO_WP512=m + + * Disable CONFIG_DRM_GAMMA. The driver is broken. + + * Add inotify-0.16-wip-rml-2.6.10-rc2-9.dpatch and enables it in the + configurations (CONFIG_INOTIFY=y) + + * Add patch sparc64-inotify-0.16-wip-rml-2.6.10-rc2-9.dpatch. The patch + doesn't modify the inotify code, but it makes it visible to Kconfig. + In the specific sparc64 has a special way to handle drivers/char + compared to other archs and it drivers need to be added on a case + by case base. + + Changes by Daniel Stone: + + * Add sysfs support to ndiswrapper: + + Add the following patches: + . ndiswrapper-2.dpatch + + Obsolete the following patches: + . ndiswrapper.dpatch + (Closes: Ubuntu #3279) + + * Add support for IBM ThinkPad TrackPoint devices: + + Add the following patches: + . ibm-trackpoint-support.dpatch + (Closes: Ubuntu #2124) + + -- Fabio M. Di Nitto Mon, 29 Nov 2004 10:07:36 +0100 + +linux-source-2.6.8.1 (2.6.8.1-19) hoary; urgency=low + + * The "gibb0r m3 3v3n m0r3 cr4ck" upload. + + * kill sparc32 packages for real. + + -- Fabio M. Di Nitto Fri, 26 Nov 2004 22:36:16 +0100 + +linux-source-2.6.8.1 (2.6.8.1-18) hoary; urgency=low + + * The "gibb0r m3 4 l0t 0f cr5ck" upload. + + * Create kernel udebs: + - Add build-deps on kernel-wedge. + - Create debian/control.stub for udeb list generation via kernel-wedge. + - Create debian/d-i/ tree with pristine copy of + linux-kernel-di- at the following versions: + linux-kernel-di-i386-2.6_0.67ubuntu3 + linux-kernel-di-amd64-2.6_0.16ubuntu2 + linux-kernel-di-powerpc-2.6_0.73ubuntu3 + linux-kernel-di-sparc-2.6-0.02 + - Remove build-dep field from debian/d-i//kernel-version since it's + not required anymore. + - Update debian/rules: + + Add kernel-wedge/udeb section at the bottom of the file. + + Add debian/control target. + + Update clean target to call debian/control. + + Update build_prereq to call debian/control. + + Add binary-udebs and unpack-kernels targets. + + Split binary-arch in binary-debs and binary-arch. The former will + create the debs (as before) using make-kpkg, the latter will move + them to ../. + + Update binary-arch to depend on binary-debs and binary-udebs. + + Make kernel-wedge check a warning and not a failure (|| true) + otherwise it will stomp on unrelated problems. + + * sparc port love: + + Add debian/config/sparc/ from kernel-image-2.6.8-sparc (2.6.8-3) + + Import patches: + - tg3-update.dpatch + - openpromfs-loop.dpatch + - sparc-cg14-init.dpatch + - sparc-sunzilog-timeout.dpatch + - sparc32-export-more-ksyms.dpatch + - sparc32-initrd-memcpy.dpatch + - sparc64-hme-lockup.dpatch + - sparc64-sunsab-break-fix.dpatch + - sparc64-sunsab-fix.dpatch + - sparc64-syslog-register.dpatch + + Update config/sparc/* + + Do not build sparc32 kernels for now. I have no way to test them atm. + + Update debian/control and debian/control.stub + + -- Fabio M. Di Nitto Fri, 26 Nov 2004 22:24:51 +0100 + +linux-source-2.6.8.1 (2.6.8.1-17) hoary; urgency=low + + * Revert pre-Warty regressions + * [debian/config/i386/*] Disable CONFIG_PCI_MSI, enable + CONFIG_IDEDMA_ONLYDISK + + -- Matt Zimmerman Tue, 2 Nov 2004 13:16:09 -0800 + +linux-source-2.6.8.1 (2.6.8.1-16) warty; urgency=low + + * Enabled MAGIC_SYSRQ on i386. + * Fixed name of acpi_ps_parse_aml patch. + + -- Herbert Xu Tue, 12 Oct 2004 21:07:07 +1000 + +linux-source-2.6.8.1 (2.6.8.1-15) warty; urgency=low + + * Fix method_desc crash in acpi_ps_parse_aml in drivers/acpi/parser/psparse.c + (me). + + -- Herbert Xu Sun, 10 Oct 2004 20:21:43 +1000 + +linux-source-2.6.8.1 (2.6.8.1-14) warty; urgency=low + + * Skip SATA reset in drivers/scsi/sata_nv.c (unknown). + * Properly recognise PowerMac7,3 in arch/ppc/platforms/pmac_feature.c + (Andreas Schwab). + + -- Herbert Xu Sat, 9 Oct 2004 22:13:41 +1000 + +linux-source-2.6.8.1 (2.6.8.1-13) warty; urgency=low + + * Load firmware from standard locations (me): + . drivers/net/wireless/acx/acx100_helper.c + . drivers/net/wireless/acx/acx100_usb.c + + -- Herbert Xu Thu, 7 Oct 2004 22:28:30 +1000 + +linux-source-2.6.8.1 (2.6.8.1-12) warty; urgency=low + + * Disable acpi_early_init when acpi=off is set in drivers/acpi/bus.c (me). + + -- Herbert Xu Tue, 5 Oct 2004 21:50:16 +1000 + +linux-source-2.6.8.1 (2.6.8.1-11) warty; urgency=low + + * Added PCI table for 3w-xxxx in drivers/scsi/3w-xxxx.c (me). + * Reverted via-velocity update: + . include/linux/pci_ids.h + . drivers/net/via-velocity.c + . drivers/net/via-velocity.h + * Fixed notifier oopses in via-velocity (Francois Romieu): + . drivers/net/via-velocity.c + . drivers/net/via-velocity.h + * Updated ipw2200 driver to 0.11: + . Documentation/networking/README.ipw2100 + . drivers/net/wireless/Kconfig + . drivers/net/wireless/ieee80211/* + . drivers/net/wireless/ipw2200/* + + -- Herbert Xu Mon, 4 Oct 2004 11:22:33 +1000 + +linux-source-2.6.8.1 (2.6.8.1-10) warty; urgency=low + + * Disable local APIC in acpi_power_off in drivers/acpi/sleep/poweroff.c + (unknown). + * Sleep interruptibly in therm_adt746x thread in + drivers/macintosh/therm_adt746x.c (me). + * Removed meta packages. + * Updated via-velocity from bk (Linux): + . include/linux/pci_ids.h + . drivers/net/via-velocity.c + . drivers/net/via-velocity.h + * Help vendors count to 1 in usb-storage in drivers/usb/storage/transport.c + (Alan Stern). + * Enabled IDEDMA_ONLYDISK. + * Updated ipw2200 driver to 0.10. + + -- Herbert Xu Thu, 30 Sep 2004 21:19:45 +1000 + +linux-source-2.6.8.1 (2.6.8.1-9) warty; urgency=low + + * Disabled CONFIG_PCI_MSI. + * Updated ipw2200 driver to 0.8. + + -- Herbert Xu Mon, 27 Sep 2004 20:07:28 +1000 + +linux-source-2.6.8.1 (2.6.8.1-8) warty; urgency=low + + * Disabled NDIS wrapper on amd64/powerpc. + * Added eagle-usb driver (Frederick Ros): + . drivers/usb/misc/Kconfig + . drivers/usb/misc/Makefile + . drivers/usb/misc/eagle-usb/* + + -- Herbert Xu Sun, 26 Sep 2004 20:25:11 +1000 + +linux-source-2.6.8.1 (2.6.8.1-7) warty; urgency=low + + * Enabled SCSI_CONSTANTS/SCSI_MULTI_LUN on powerpc. + * Added adm8211 driver (Michael Wu): + . drivers/net/wireless/Kconfig + . drivers/net/wireless/Makefile + . drivers/net/wireless/adm8211/* + * Added prism54 firmware 1.0.4.3. + * Moved wireless firmware to /lib. + * Added ACPI patch 20040826 (Intel). + * Added NDIS wrapper (Pontus Fuchs): + . drivers/net/Kconfig + . drivers/net/Makefile + . drivers/net/ndiswrapper/* + * Increment ABI due to ACPI patch. + * Unregister properly if no devices are found in + drivers/scsi/aic7xxx/aic79xx_osm.c (me). + * Updated sk98lin driver in drivers/net/sk98lin/* (Marvell). + * Fixed TCP header length check in net/ipv6/netfilter/ip6t_LOG.c + (Olaf Kirch). + * Updated build-dependency on kernel-package. + + -- Herbert Xu Fri, 24 Sep 2004 23:50:59 +1000 + +linux-source-2.6.8.1 (2.6.8.1-6) warty; urgency=low + + * Updated sk98lin PCI table based on skge_probe() in + drivers/net/sk98lin/skge.c (Herbert Xu). + + -- Herbert Xu Sat, 18 Sep 2004 13:28:04 +1000 + +linux-source-2.6.8.1 (2.6.8.1-5) warty; urgency=low + + * Revert changes which somehow got applied directly in the diff, which were + then duplicated by the dpatch, causing build failures + + -- Matt Zimmerman Mon, 13 Sep 2004 23:03:43 -0700 + +linux-source-2.6.8.1 (2.6.8.1-4) warty; urgency=low + + * Add "unpatch" target to debian/rules (for dpatch-edit-patch) + * debian/patches/skge-hotplug.dpatch: Add PCI table for hotplug + so that the sk98lin driver is automatically loaded (Warty #1141) + + -- Matt Zimmerman Mon, 13 Sep 2004 14:44:58 -0700 + +linux-source-2.6.8.1 (2.6.8.1-3) warty; urgency=low + + * Set subarch to pmac on powerpc. + * Added atmel firmware 1.1. + * Updated ipw2200 driver to 0.7. + * Commented out debian purge rule in scripts/package/Makefile. + + -- Herbert Xu Thu, 9 Sep 2004 19:21:35 +1000 + +linux-source-2.6.8.1 (2.6.8.1-2) unstable; urgency=low + + * Fixed low-level ISDN CAPI drivers skb free + (Carsten Paeth, Armin Schindler): + . drivers/isdn/capi/capidrv.c + . drivers/isdn/hardware/avm/b1.c + . drivers/isdn/hardware/avm/b1dma.c + . drivers/isdn/hardware/avm/c4.c + . drivers/isdn/hardware/avm/t1isa.c + . drivers/isdn/hardware/eicon/capifunc.c + * Merged powerpc patches from Debian: + . drivers/serial/8250.c + . drivers/ide/pci/via82cxxx.c + * Added build-dependency on sharutils for uudecode. + * Added misdn driver (Karsten Keil): + . drivers/isdn/hardware/Kconfig + . drivers/isdn/hardware/Makefile + . drivers/isdn/hardware/misdn/* + * Added TI ACX100 support (ACX100 Open Source Project): + . drivers/net/wireless/Kconfig + . drivers/net/wireless/Makefile + . drivers/net/wireless/acx/* + * Kill floating-point operations in acx100 in drivers/net/wireless/acx/idma.c + (me). + * Corrected typo in description of SMP packages. + * Fixed ipw2100 build problem on powerpc in + drivers/net/wireless/ipw2100/ipw2100_fw.c (me). + * Added PowerPC packages. + * Added AMD64 packages. + * Fixed acx100 build problem on amd64 in + drivers/net/wireless/acx/wlan_compat.h (me). + * Updated kernel-package dependency for ubuntu. + + -- Herbert Xu Sat, 4 Sep 2004 20:06:07 +1000 + +linux-source-2.6.8.1 (2.6.8.1-1) unstable; urgency=low + + * Initial release based on Debian 2.6.8-2. + * Fixed bio memory leak in fs/bio.c (bk). + * Reverted bd_claim check on partition/device in fs/block_dev.c (unknown). + * Added mppe support (unknown): + . drivers/net/Kconfig + . drivers/net/Makefile + . drivers/net/arcfour.c + . drivers/net/arcfour.h + . drivers/net/ppp_generic.c + . drivers/net/ppp_mppe_compress.c + . drivers/net/sha1.c + . drivers/net/sha1.h + . include/linux/ppp-comp.h + * Allow mlock as user (Chris Wright): + . fs/hugetlbfs/inode.c + . include/asm-alpha/resource.h + . include/asm-arm/resource.h + . include/asm-arm26/resource.h + . include/asm-cris/resource.h + . include/asm-h8300/resource.h + . include/asm-i386/resource.h + . include/asm-ia64/resource.h + . include/asm-m68k/resource.h + . include/asm-parisc/resource.h + . include/asm-ppc/resource.h + . include/asm-ppc64/resource.h + . include/asm-s390/resource.h + . include/asm-sh/resource.h + . include/asm-sparc/resource.h + . include/asm-sparc64/resource.h + . include/asm-v850/resource.h + . include/asm-x86_64/resource.h + . include/linux/mm.h + . include/linux/sched.h + . include/linux/shm.h + . ipc/shm.c + . kernel/user.c + . mm/mlock.c + . mm/mmap.c + . mm/mremap.c + . mm/shmem.c + * Automatically compute tcp_default_win_scale (Stephen Hemminger): + . include/net/tcp.h + . net/ipv4/sysctl_net_ipv4.c + . net/ipv4/tcp.c + . net/ipv4/tcp_output.c + * Added generic IEEE 80211 layer (Intel): + . drivers/net/wireless/Kconfig + . drivers/net/wireless/Makefile + . drivers/net/wireless/ieee80211/* + * Added ipw2100 driver (Intel): + . Documentation/networking/README.ipw2100 + . drivers/net/wireless/Kconfig + . drivers/net/wireless/Makefile + . drivers/net/wireless/ipw2100/* + * Added ipw2200 driver (Intel): + . drivers/net/wireless/Kconfig + . drivers/net/wireless/Makefile + . drivers/net/wireless/ipw2200/* + * Added prism2_usb driver (AbsoluteValue Systems): + . drivers/net/wireless/Kconfig + . drivers/net/wireless/Makefile + . drivers/net/wireless/prism2/* + . drivers/net/wireless/wlan-ng/* + . include/wlan/* + . include/prism2/* + * Cacheline-align qdisc data in qdisc_create() in net/sched/sch_api.c + (Patrick McHardy). + * Fix class leak in CBQ scheduler in net/sched/sch_cbq.c (Patrick McHardy). + * Updated kernel-patch-debian description (Debian 2.6.8-3). + * Add a comment about the Adaptec firmware rebuild situation to README.Debian + (Debian 2.6.8-3). + * Suggest libqt3-dev for xconfig (Debian 2.6.8-3). + * Added patches from Debian 2.6.8-4: + . Added patch by Alex Clausen to stop spurious mouse button events + on older ADB using pmac notebooks (Sven Luther). + . Added g4-errata followup patch that clears the BTIC bit, instead of + just not setting it (Sven Luther). + . Update list of safe SCSI commands for SG_IO to match 2.6.9-rc1 + (Christoph Hellwig). + . Added two SCSI commands, namely VERIFY_16 and GPCMD_SEND_CUE_SHEET, + that were mentioned in the list from 2.6.9-rc1 but missing from the + corresponding header files (Jens Schmalzing). + . Replace the drivers-scsi-sym53c8xx_revert workaround with + drivers-scsi-sym_2-dv-hang, which is a proper fix for the hang + (dann frazier). + . Update scsi blacklist for USB multi card readers (Christoph Hellwig). + . Claim we're Windows (TM) to ACPI to work around broken BIOSes + (Christoph Hellwig). + . Enter ACPI mode earlier (Christoph Hellwig). + . Add small ACPI fix that makes speedstep work on some Centrino Laptops + (Christoph Hellwig). + . Fix oldworld pmacs that don't have an OF stdout. + . Update CCISS driver (Christoph Hellwig). + . Add minix block accounting fix (Christoph Hellwig). + . Fix nfsd to not errornously return ESTALE on failed permission check + (Christoph Hellwig). + . Fix SHM segment count limit off by one (Christoph Hellwig). + . Add some Sparc64 backports to make Josh happy (Christoph Hellwig). + + -- Herbert Xu Sat, 21 Aug 2004 15:04:28 +1000 + +kernel-source-2.6.8 (2.6.8-2) unstable; urgency=high + + * Add updated fix for generic UP kernel builds on IA64 (dann frazier). + * Added g4 l2 flush and MSR patch from Jacob Pan (Sven Luther). + * Added marvell gigabit ethernet driver errata patch from Nicolas Det + (Sven Luther). + * Added UP build fixes for sn_console & cyclone on ia64 (dann frazier). + + -- Sven Luther Tue, 17 Aug 2004 15:34:59 +0200 + +kernel-source-2.6.8 (2.6.8-1) unstable; urgency=high + + * New upstream release. + + * Nuke tg3.c properly in prune-non-free; rely on patch to supply driver + (Andres Salomon). + + * The following patches have been merged upstream (Andres Salomon): + . acpi-typo + . chown-gid-check + . chown-procfs + . dont-dereference-netdev.name-before-register_netdev + (partially applied; this is a broken patch) + . drivers-atkbd-quiten + . drivers-dpt_i2o-fixup + . drivers-isdn-io_funcs-fixup + . drivers-net-irda-dma_api + . drivers-net-via_rhine-avoid_bitfield + . drivers-sb-pnp_unregister + . drivers-scsi-advansys-dma_api + . drivers-scsi-sd-NO_SENSE + . drivers-usb-net-pegasus-startstop_queue + . envp + . fs-isofs-acorn + . fs-isofs-dont-check-period + . fs-jfs-compile + . include-linux-mca.h-fixups + . netfilter-signedcharbug + . netlink-macro-fixups + . powerpc-g4-errata + . xfs-update + + * The following patches have been modified (Andres Salomon): + . drivers-input-hiddev-HIDIOCGUCODE + (sparse fixes; s/(void *) arg/user_arg/g) + . remove-references-to-removed-drivers + (upstream now considers SMCTR a broken and legacy driver) + . drivers-net-tg3-readd + (forward port firmware changes to new tg3; from version 3.3 + of driver to version 3.8) + + * Stop the kernel distclean from nuking the debian directory by + having the clean rule check for debian/official (Andres Salomon). + + * Fix typo in alpha-termbits patch naming (Christoph Hellwig). + + * Drop two unneeded patches (Christoph Hellwig): + . fs-cramfs-constify + . include-thread_info-ifdefs + + * Remove -2 postfixes from patches, this is a new upstream release + (Christoph Hellwig). + + * Add NFS OOPS fix (Christoph Hellwig). + + * Add SG_IO WRITE_BUFFER capability check (Christoph Hellwig). + + * Fix IA64 generic kernel compile on UP (Christoph Hellwig). + + * Add pty leak fix from Al Viro (Christoph Hellwig). + + * Add patch from Gustavo Barbier to support IBM RS/6000 7043-240 and -E30 + (Christoph Hellwig). + + * Add 32bit ioctl translation support to XFS (closes: Bug#257265) + (Christoph Hellwig). + + * Revert sym53c8xx driver (dann frazier). + + -- Andres Salomon Sat, 14 Aug 2004 02:40:50 -0400 + +kernel-source-2.6.7 (2.6.7-4) unstable; urgency=high + + * Migrated pegasos patch from the powerpc package, as it will be accepted + upstream (Sven Luther). + + * Added a errata fix for some recent G4 processors (Sven Luther). + + * Fixed the Powerpc/Pegasos marvell discovery II builtin gigabit ethernet + driver to use the MAC address set by the firmware, instead of reading the + value from the prom in a way specific to the mips board (Sven Luther). + + -- Jens Schmalzing Thu, 5 Aug 2004 18:32:00 +0200 + +kernel-source-2.6.7 (2.6.7-3) unstable; urgency=low + + * Upgraded the fs-asfs patch to 1.0beta7 (Jens Schmalzing). + + * Updated README.NMU to explain the new build process based on split + patches and dpatch (Jens Schmalzing). + + * Added chown security fixes (closes: Bug#257504) (Christoph Hellwig). + + * Dropped modular-swsusp, doesn't work and unmaintained (Christoph Hellwig). + + * Added 3ware SATA-RAID driver, backported from mainline (Christoph Hellwig). + + * Update XFS to most current upstream BK version (Christoph Hellwig). + + * Added Marvell Ethernet driver (closes: Bug#256064) (Christoph Hellwig). + + * Added a backport of the netfilter signed char fix (Christoph Hellwig). + + -- Sven Luther Wed, 7 Jul 2004 18:12:20 +0200 + +kernel-source-2.6.7 (2.6.7-2) unstable; urgency=low + + * Removed another tainted driver (closes: Bug#242895), and amended + remove-references-to-removed-drivers.dpatch accordingly. Actually, + this was done in the previous revision, but we forgot the changelog + entry (Christoph Hellwig, Jens Schmalzing). + + * Renamed debian/revision back to version.Debian. Having it outside the + debian/ directory is mandatory for kernel-tree to work (Jens Schmalzing). + + * Added the drivers-net-tg3 patch. It only adds firmware loading + support, contrary to the drivers-net-tg3-readd patch which re-adds the + whole driver. As a consequence, the Debian patch also applies to the + vanilla kernel again. Note that this patch is only kept here for + reference for the time being and will not be activated until the next + upstream release (Jens Schmalzing). + + * Added the fs-asfs patch by Marek Szyprowski, containing support for + the Amiga Smart Filesystem. Actually, the patch was already part of + the kernel-patch-powerpc package and has been moved over from there + (Jens Schmalzing). + + -- Jens Schmalzing Thu, 24 Jun 2004 09:56:13 +0200 + +kernel-source-2.6.7 (2.6.7-1) unstable; urgency=low + + * New upstream release. + + * Added split patches in dpatch format (Christoph Hellwig and Sven Luther). + + * Lots of patches merged upstream: + . acpi-link + . console-refcounting + . doc-sound + . drivers-hotplug-acpi-unregister + . drivers-i810-update + . drivers-ide-CONFIG_IDE_STROKE-at-runtime (slight changes, allows drops + the config option completely) + . drivers-mca_53c9x-needs_mca_legacy + . drivers-mtd-sharp-missing-includes + . drivers-mtd-uclinux-rootfs + . drivers-neomagic-ids + . drivers-neomagic-oss-ids + . drivers-paride-epat (with minor updates) + . drivers-pnp-needs-x86 + . drivers-scsi-aic7xxx-fixes (slightly different) + . drivers-usb-storage-new-sony-device + . drivers-video-tgafb-needs-selection.h + . drivers-watchdog-missing-includes + . fs-isofs-remove-unused + . include-linux-mca.h-fixups (only partially) + . makefile-wc-fixup + . sparc64-NR_CPUS + . x86-dma-mapping.h-fixups + + * Dropped some patches (Christoph Hellwig): + . alpha_cia_window - incorrect (closes: #253787) + . doc-initrd_devfs - incorrect, devfs names for initrd are okay + . drivers-mwave_paper_over_sysfs_crap - buggy driver model integration + removed completely upstream + . drivers-net-ns83820-needs-FW_LOADER - incorrect, ns83820 doesn't + load firmware at all + . drivers-scsi-3w-xxxx-no_unregister - incorrect + . export-proc_get_inode - the symbol is internal for a reason. buggy + drivers using it removed in 2.6.7 + . fs-msdos-dontbug - rejected upstream + . fs-umsdosfs-crapola - umdos is disconnected from the build in 2.6 + . ppc-higher-binutils-requirement - upstream disagrees, Debian uses + dpkg build depencies anyway + . 00_doc-README.Debian - now handled differently by the packaging + + * Renamed version.Debian to debian/revision, in order to have all Debian + specific bits in the debian directory (Jens Schmalzing). + + * Added the prune target to debian/rules. It unpacks the vanilla + kernel, removes the tainted bits, and creates a free .orig.tar.gz + (Jens Schmalzing). + + * Added the monolith target to debian/rules. It saves a copy of the + original kernel tree, then for each revision applies the split patches + via dpatch and creates a monolithic patch (Jens Schmalzing). + + * Add fs-jfs-compile to fix JFS compilation (Christoph Hellwig). + + * Package the upstream changelog file, taken from ChangeLog-, + into kernel-tree. The rationale of this being that we should + distribute the upstream changelog in the usual location, but it is + enough to do this once (Jens Schmalzing). + + -- Jens Schmalzing Mon, 21 Jun 2004 12:55:48 +0200 + +kernel-source-2.6.6 (2.6.6-2) unstable; urgency=low + + * Fix i386 FPU bug. + * Transfer control of package to debian kernel team. + + -- William Lee Irwin III Tue, 15 Jun 2004 11:06:35 -0700 + +kernel-source-2.6.6 (2.6.6-1) unstable; urgency=low + + * New upstream release (closes: #243084, #244728, #245959, #247486). + * Deleted unused exit prototype in drivers/scsi/aic7xxx/aic7xxx_osm.c. + * Unregister properly if no devices are found in + drivers/scsi/aic7xxx/aic79xx_osm.c (closes: #246277, #247298). + * Fixed GUCODE type check in drivers/usb/input/hiddev.c (Sergey Vlasov). + * Added basic highmem support in drivers/scsi/advansys.c (closes: #245238). + * Changed all occurrences herbert@debian.org: + . arch/i386/power/swsusp_syms.c + . arch/x86_64/kernel/swsusp_syms.c + . kernel/power/swsusp-core.c + . kernel/power/swsusp.h + * Reverted broken "VIA KT400-8235" change in arch/i386/kernel/dmi_scan.c. + * Fixed IRQ assignment in drivers/acpi/pci_link.c (Len Brown). + * Fixed resume device check (Sau Dan Lee): + . kernel/power/swsusp-core.c + . kernel/power/swsusp.c + . kernel/power/swsusp.h + * Restored driver without firmware: + . drivers/net/Kconfig + . drivers/net/Makefile + . drivers/net/tg3.c + * Added firmware loading support (Nathaneal Nerode): + . drivers/net/Kconfig + . drivers/net/tg3.c + + -- Herbert Xu Tue, 11 May 2004 19:42:16 +1000 + +kernel-source-2.6.5 (2.6.5-4) unstable; urgency=high + + * Unregister PCI driver in drivers/pci/hotplug/acpiphp_glue.c. + * Fixed print_pirt NULL deref in drivers/pci/hotplug/shpchprm_acpi.c + (closes: #246149). + * Reverted radeon/r128 firmware changes (closes: #246587, #246594, #246627): + . drivers/char/drm/Kconfig + . drivers/char/drm/Makefile + . drivers/char/drm/r128_cce.c + . drivers/char/drm/r128_drv.h + . drivers/char/drm/r128_firmware_loader.c + . drivers/char/drm/radeon_cp.c + . drivers/char/drm/radeon_drv.h + . drivers/char/drm/radeon_firmware_loader.c + + -- Herbert Xu Fri, 30 Apr 2004 09:05:39 +1000 + +kernel-source-2.6.5 (2.6.5-3) unstable; urgency=medium + + * Added firmware loading support (Nathaneal Nerode): + . drivers/char/drm/Kconfig + . drivers/char/drm/Makefile + . drivers/char/drm/r128_cce.c + . drivers/char/drm/r128_drv.h + . drivers/char/drm/r128_firmware_loader.c + . drivers/char/drm/radeon_cp.c + . drivers/char/drm/radeon_drv.h + . drivers/char/drm/radeon_firmware_loader.c + * Removed non-free firmware: + . R128 firmware: drivers/char/drm/r128_cce.c + . Radeon firmware: drivers/char/drm/radeon_cp.c + * Read .extraversion if it exists in Makefile. + * Added support for removal in drivers/ide/ide-generic.c. + * Set GPL license in arch/i386/kernel/cpu/mcheck/non-fatal.c. + * Copy pages in reverse (closes: #234976): + . arch/i386/power/pmdisk.S + . arch/i386/power/swsusp.S + * Lowered maximum NR_CPUS to 32 in arch/sparc64/Kconfig (closes: #245971). + + -- Herbert Xu Tue, 27 Apr 2004 20:31:41 +1000 + +kernel-source-2.6.5 (2.6.5-2) unstable; urgency=low + + * Reverted pid == 1 change in kernel/fork.c. + * Allow PCI IDE drivers to be unloaded if probing fails in + drivers/ide/pci/atiixp.c. + * Fixed single word src misalign > dest misalign case in + arch/alpha/lib/stxncpy.S (glibc). + * Removed obsolete gcc workaround in sound/core/oss/Makefile. + * Fixed boundary checks for GUSAGE/SUSAGE in drivers/usb/input/hiddev.c. + * Fake inquiry for Sony Clie PEG-TJ25 in drivers/usb/storage/unusual_devs.h + (closes: #243650). + * Strip quotes from parameters in kernel/params.c (bk, closes: #243588). + * Added device release function in drivers/char/mwave/mwavedd.c + (closes: #244207). + * Set __exit tags on module_exit in drivers/ide/pci/*. + * Partially modularised software suspend: + . arch/i386/power/Makefile + . arch/i386/power/swsusp_syms.c + . arch/x86_64/kernel/Makefile + . arch/x86_64/kernel/swsusp_syms.c + . drivers/acpi/sleep/proc.c + . fs/buffer.c + . include/linux/suspend.h + . kernel/sys.c + . kernel/power/Kconfig + . kernel/power/Makefile + . kernel/power/console.c + . kernel/power/process.c + . kernel/power/swsusp-core.c + . kernel/power/swsusp.c + . kernel/power/swsusp.h + . mm/vmscan.c + * Fixed illegal __exit reference: + . drivers/scsi/aic7xxx/aic7xxx_osm.c + . drivers/scsi/aic7xxx/aic7xxx_osm.h + * Fixed local root exploit in fs/isofs/rock.c (Ernie Petrides). + * Clear b_data in journal_get_descriptor_buffer in fs/jbd/journal.c + (Ted Ts'o). + * Added module option parsing in drivers/video/vesafb.c (closes: #244031). + * Fixed vesafb_exit leaks in drivers/video/vesafb.c. + + -- Herbert Xu Fri, 23 Apr 2004 21:50:18 +1000 + +kernel-source-2.6.5 (2.6.5-1) unstable; urgency=low + + * New upstream release (closes: #235419, #238569). + * Applied SCSI Media Changer patch (closes: #238476). + * Fixed strcmp in sysfs store (closes: #234446): + . kernel/power/main.c + . kernel/power/disk.c + * Do not unshare files for pid == 1 in kernel/fork.c (closes: #239029). + * Removed ide-detect in favour of ide-generic: + . drivers/ide/Makefile + . drivers/ide/ide-default.c + . drivers/ide/ide-generic.c + . drivers/ide/ide-io.c + . drivers/ide/ide-probe.c + . drivers/ide/ide-probe-mini.c + * Check __HAVE_THREAD_FUNCTIONS in include/linux/thread_info.h (m68k). + * Unregister properly if no devices are found (closes: #237477): + . drivers/scsi/aic7xxx/aic7770_osm.c + . drivers/scsi/aic7xxx/aic7xxx_osm.c + . drivers/scsi/aic7xxx/aic7xxx_osm.h + * Fixed X86_PM_TIMER description in drivers/acpi/Kconfig (Jochen Voss, + closes: #241941). + * Removed non-free firmware and disabled their drivers (see #239952): + . QLA2XXX: drivers/scsi/qla2xxx/*_fw.c + . TIGON3: drivers/net/tg3.c + . Unused: sound/oss/724hwmcode.h + . Unused: sound/oss/Hwmcode.h + * Lowered priority of "too many keys" message in + drivers/input/keyboard/atkbd.c (closes: #239036). + * Made %docs depend on scripts_basic instead of scripts in Makefile. + * Fixed syntax error in Documentation/DocBook/parportbook.tmpl. + * Include linux/init.h for __init in sound/pcmcia/pdaudiocf/pdaudiocf.c + * Fixed bashism in Makefile. + + -- Herbert Xu Tue, 6 Apr 2004 20:42:02 +1000 + +kernel-source-2.6.4 (2.6.4-1) unstable; urgency=low + + * New upstream release (closes: #234631, #234754, #236570). + * Added vmlinux.syms: + . scripts/Makefile.modpost + . scripts/modpost.c + * Allow X86_MCE_NONFATAL to be a module: + . arch/i386/Kconfig + . arch/i386/kernel/cpu/mcheck/mce.c (Andrew Morton) + * Black listed "TOSHIBA CD-ROM XM-1702BC" in drivers/ide/ide-dma.c. + * Black listed "VIA KT400-8235" for broken_pirq in + arch/i386/kernel/dmi_scan.c (closes: #235188). + * Handle NO_SENSE in sd_rw_intr in drivers/scsi/sd.c (Alan Stern, + closes: #232494). + * Reverted tasklet change in drivers/usb/host/uhci-hcd.*. + * Fixed ThinkPad lock up problem in drivers/usb/host/uhci-hcd.c (Alan Stern). + * Put __modpost under MODVERDIR in scripts/Makefile.modpost. + * Provide *-2.6 instead of *-2.4 (closes: #236779). + * Fixed IDE CD capacity detection in drivers/ide/ide-cd.c (Jens Axboe, + closes: #216581). + * Removed dev->name lookups before register_netdev (closes: #234817): + . drivers/net/3c501.c + . drivers/net/3c503.c + . drivers/net/8390.c + . drivers/net/8390.h + . drivers/net/ac3200.c + . drivers/net/apne.c + . drivers/net/e2100.c + . drivers/net/es3210.c + . drivers/net/hp-plus.c + . drivers/net/hp.c + . drivers/net/hydra.c + . drivers/net/lne390.c + . drivers/net/mac8390.c + . drivers/net/ne.c + . drivers/net/ne2.c + . drivers/net/ne2k-pci.c + . drivers/net/ne2k_cbus.c + . drivers/net/ne3210.c + . drivers/net/oaknet.c + . drivers/net/smc-mca.c + . drivers/net/smc-ultra.c + . drivers/net/smc-ultra32.c + . drivers/net/stnic.c + . drivers/net/wd.c + . drivers/net/zorro8390.c + * Set MODVERDIR based on SUBDIRS in Makefile (Andreas Gruenbacher, + closes: #236626). + * Remove reference to drivers/parport/init.c in + Documentation/DocBook/parportbook.tmp. + + -- Herbert Xu Sat, 13 Mar 2004 14:13:45 +1100 + +kernel-source-2.6.3 (2.6.3-2) unstable; urgency=low + + * Rebuilt to fix tarball in kernel-source package. + * Really added the Post-Halloween document. + + -- Herbert Xu Mon, 23 Feb 2004 08:01:24 +1100 + +kernel-source-2.6.3 (2.6.3-1) unstable; urgency=low + + * New upstream release. + * Replaced irq_resource usage: + . drivers/isdn/hardware/avm/b1isa.c + . drivers/isdn/hardware/avm/t1isa.c + . drivers/isdn/hisax/hisax_fcclassic.c + * Added Post-Halloween document. + * Allow PCI IDE drivers to be unloaded if probing fails (closes: #202828): + . drivers/ide/arm/*.c + . drivers/ide/pci/*.c + + -- Herbert Xu Fri, 20 Feb 2004 20:48:48 +1100 + +kernel-source-2.6.2 (2.6.2-2) unstable; urgency=high + + * Added build-dependency on gs (closes: #232631). + * Restored generic SCSI proc_info function in drivers/scsi/scsi_proc.c + (closes: #232533). + * Fixed early chip programming in tg3_setup_copper_phy() in drivers/net/tg3.c + (David Miller). + * Fixed dev timer SMP deadlock in drivers/scsi/aic7xxx/aic7xxx_osm.c + (Andrew Morton). + * Check return value of do_munmap in do_mremap in mm/mremap.c (2.6.3). + + -- Herbert Xu Wed, 18 Feb 2004 21:29:09 +1100 + +kernel-source-2.6.2 (2.6.2-1) unstable; urgency=low + + * New upstream release (closes: #227071, #229745, #227240, #231466). + * Made PDC202XX_{BURST,FORCE} available even if it is a module in + drivers/ide/Kconfig. + * Fixed dead lock in drain_dac in sound/oss/i810_audio.c. + * Added drivers/ide/ide-probe-mini.c (2.4, closes: #224082, #227317, #228906, + #230195, #230755). + * Updated kernel-source description from kernel-package (closes: #226816). + * Added upstream changelog (closes: #230183). + * Added build-dependency on docbook-utils and transfig. + * Put kernel_thread_helper in right segment in arch/i386/kernel/process.c + (bk). + + -- Herbert Xu Sat, 7 Feb 2004 10:36:58 +1100 + +kernel-source-2.6.0 (2.6.0-2) unstable; urgency=low + + * Don't allow mremap of zero-sized areas in mm/mremap.c (2.6.1, + closes: #226542). + + -- Herbert Xu Sun, 11 Jan 2004 16:34:27 +1100 + +kernel-source-2.6.0 (2.6.0-1) unstable; urgency=low + + * New upstream release. + * Documented psmouse/mousedev in README.Debian (closes: #223596). + + -- Herbert Xu Sun, 21 Dec 2003 16:16:02 +1100 + +kernel-source-2.6.0-test11 (2.6.0-test11-1) unstable; urgency=low + + * New upstream release (closes: #212831, #215530, #217908, #218749, #218768, + #219239, #219944, #220432). + * Reverted set_blocksize change in fs/block_dev.c (closes: #214131). + * Removed libqt-dev suggestion in kernel-source. + * Added Freecom FX-5/FX-50 in drivers/usb/storage/unusual_devs.h + (Luke Kenneth Casson Leighton, closes: #218781). + * Unregister driver if probing fails in sound/oss/sb_card.c + (closes: #218845). + * Work around gcc bug in sound/core/oss/Makefile (closes: #203195). + * Use page cache for cramfs_read in fs/cramfs/inode.c (Al Viro). + * Fixed DMA overruns/bugs in sound/oss/i810_audio.c. + * Include asm/io.h and asm/scatterlist.h in include/asm-i386/dma-mapping.h. + * Removed uses of isa_vir_to_bus (closes: #218878): + . drivers/net/irda/ali-ircc.c + . drivers/net/irda/nsc-ircc.c + . drivers/net/irda/smsc-ircc2.c + . drivers/net/irda/via-ircc.c + . drivers/net/irda/via-ircc.h + . drivers/net/irda/w83977af_ir.c + . include/net/irda/ali-ircc.h + . include/net/irda/irda_device.h + . include/net/irda/nsc-ircc.h + . include/net/irda/w83977af_ir.h + . net/irda/irda_device.c + * Fixed Tekram DC390 driver (Guennadi Liakhovetski, closes: #221865): + . drivers/scsi/Kconfig + . drivers/scsi/dc390.h + . drivers/scsi/scsiiom.c + . drivers/scsi/tmscsim.c + . drivers/scsi/tmscsim.h + * Flush bundles when devices go down: + . include/net/xfrm.h + . net/xfrm/xfrm_policy.c + . net/xfrm/xfrm_state.c + * Fixed inclusion loop with include/net/sctp/sm.h: + . include/net/sctp/sctp.h + . net/sctp/associola.c + . net/sctp/outqueue.c + . net/sctp/socket.c + . net/sctp/transport.c + * Fixed connect/disconnect race in drivers/usb/core/hub.c (2.4, + closes: #218670). + * Initialise state for /proc/net/tcp in net/ipv4/tcp_ipv4.c (bk). + * Cleaned up debian/rules a little. + * Schedule tasklets for async removal in drivers/usb/host/uhci-hcd.*. + + -- Herbert Xu Mon, 8 Dec 2003 20:23:22 +1100 + +kernel-source-2.6.0-test9 (2.6.0-test9-1) unstable; urgency=low + + * New upstream release (closes: #216972). + * Applied x86/64bit fix in drivers/char/ftape/lowlevel/ftape-calibr.c (2.4). + * Include linux/fs.h for struct file: + . drivers/char/watchdog/scx200_wdt.c + . drivers/char/watchdog/wdt_pci.c + . drivers/char/watchdog/i810-tco.c + . drivers/char/watchdog/alim7101_wdt.c + . drivers/char/watchdog/alim1535_wdt.c + . drivers/char/watchdog/sc1200wdt.c + . drivers/char/watchdog/amd7xx_tco.c + . drivers/char/applicom.c + * Include linux/init.h for __init: + . drivers/char/moxa.c + . drivers/char/mxser.c + . drivers/mtd/chips/jedec_probe.c + . drivers/mtd/chips/sharp.c + . drivers/net/sb1000.c + . drivers/net/wan/sealevel.c + . drivers/net/wan/cosa.c + * Removed unnecessary asm/setup.h in drivers/mtd/cmdlinepart.c. + * Support architectures without asm/mca.h: + . include/linux/mca.h + . include/linux/mca-legacy.h + * Made PNPBIOS X86 only in drivers/pnp/Kconfig. + * Added CIBAUD/CMSPAR in include/asm-alpha/termbits.h. + * Include linux/selection.h for color_table in drivers/video/tgafb.c. + * Added optimise by size option: + . Makefile + . init/Kconfig + * Fixed reference count bug in net/xfrm/xfrm_policy.c. + + -- Herbert Xu Sun, 26 Oct 2003 16:16:43 +1100 + +kernel-source-2.6.0-test7 (2.6.0-test7-1) unstable; urgency=low + + * Fixed NLMSG_OK and RTA_OK: + . include/linux/netlink.h + . include/linux/rtnetlink.h + * Reverted process group accessor change (bk): + . arch/ia64/kernel/unaligned.c + . arch/sparc64/solaris/misc.c + . drivers/char/n_tty.c + . drivers/char/rocket.c + . drivers/char/tty_io.c + . drivers/char/vt.c + . drivers/char/vt_ioctl.c + . drivers/net/slip.c + . fs/binfmt_elf.c + . fs/compat_ioctl.c + . fs/dquot.c + . fs/exec.c + . fs/open.c + . fs/proc/array.c + . include/linux/sched.h + . kernel/acct.c + . kernel/exit.c + . kernel/fork.c + . kernel/pid.c + . kernel/signal.c + . kernel/sys.c + . net/ipv4/netfilter/ipt_owner.c + . net/ipv6/netfilter/ip6t_owner.c + * Export blk_queue_activity_fn for ide-probe in drivers/block/ll_rw_blk.c. + This change did not make it into the package (closes: #215223). + * Include mca-legacy.h for MCA_NOTFOUND in drivers/isdn/eicon/eicon_mod.c. + * Use gcc-2.95 compatible variadic macro in + drivers/media/video/saa7134/saa7134-core.c. + + -- Herbert Xu Sun, 12 Oct 2003 09:51:18 +1000 + +kernel-source-2.6.0-test6 (2.6.0-test6-2) unstable; urgency=low + + * Export blk_queue_activity_fn for ide-probe in drivers/block/ll_rw_blk.c. + + -- Herbert Xu Sat, 4 Oct 2003 13:45:40 +1000 + +kernel-source-2.6.0-test6 (2.6.0-test6-1) unstable; urgency=low + + * New upstream release (closes: #209307). + * Use mac_len for move ll headers: + . include/linux/skbuff.h + . net/core/dev.c + . net/ipv4/xfrm4_input.c + . net/ipv6/xfrm6_input.c + * Removed ACENIC/DGRS/DABUSB in arch/*/defconfig (closes: #211852). + * Fixed double request_region: + . drivers/net/arcnet/com20020.c + . drivers/net/arcnet/com20020-isa.c + . drivers/net/arcnet/com20020-pci.c + * Forbid unspecified tunnel mode SAs in net/xfrm/xfrm_policy.c. + * Removed duplicate policy checks for ipip tunnels: + . net/ipv4/ipip.c + . net/ipv4/xfrm4_tunnel.c + * Restored err_tty_modem label in drivers/isdn/i4l/isdn_common.c. + * Added probe declaration in drivers/net/wireless/arlan-main.c. + * Include linux/termios.h for TCGETS in fs/intermezzo/dir.c + (Kalle Olavi Niemitalo, closes: #208966). + + -- Herbert Xu Fri, 3 Oct 2003 19:38:37 +1000 + +kernel-source-2.6.0-test4 (2.6.0-test4-3) unstable; urgency=low + + * Fixed fatal bug in xfrm ll header patch: + . net/ipv4/xfrm4_input.c + . net/ipv6/xfrm6_input.c + + -- Herbert Xu Thu, 4 Sep 2003 20:51:57 +1000 + +kernel-source-2.6.0-test4 (2.6.0-test4-2) unstable; urgency=low + + * Added MODULE_LICENSE to net/xfrm/xfrm_user.c. + * Export idedefault_driver in drivers/ide/ide-default.c. + + -- Herbert Xu Mon, 1 Sep 2003 21:16:07 +1000 + +kernel-source-2.6.0-test4 (2.6.0-test4-1) unstable; urgency=low + + * New upstream release (closes: #206656). + * Fixed ll header of tunnel packets: + . include/linux/skbuff.h + . net/ipv4/xfrm4_input.c + . net/ipv6/xfrm6_input.c + * Fixed gcc 3 declaration in drivers/net/sis190.c. + * Fixed synchronize_irq() call in drivers/net/sis190.c. + * Fixed freenet_devtypo in drivers/net/wan/cosa.c. + * Fixed device name setting in drivers/net/3c509.c. + * Removed release timer in sound/pcmcia/vx/vx_entry.c. + * Always define cmpxchg in include/asm-i386/system.h (closes: #206956). + + -- Herbert Xu Sun, 31 Aug 2003 13:41:55 +1000 + +kernel-source-2.6.0-test2 (2.6.0-test2-1) unstable; urgency=low + + * Cope with exit status 2 from md5sum in drivers/isdn/hisax/cert.c. + * Fixed binutils test in scripts/ver_linux. + * Wrapped long line in kernel-source description. + * Marked IDE PCI proc entries as __devinitdata (closes: #202412): + . drivers/ide/pci/*.h + * Fixed binutils version recommendation in arch/ppc/Makefile. + * Added per-SA ECN flag: + . include/linux/pfkeyv2.h + . include/linux/xfrm.h + . include/net/inet_ecn.h + . include/net/xfrm.h + . net/ipv4/ah4.c + . net/ipv4/esp4.c + . net/ipv4/ipcomp.c + . net/ipv4/xfrm4_input.c + . net/ipv6/ah6.c + . net/ipv6/esp6.c + . net/ipv6/ipcomp.c + . net/ipv6/xfrm6_input.c + . net/key/af_key.c + . net/xfrm/xfrm_user.c + * Fixed secpath xfrm state leak: + . include/net/xfrm.h + . net/ipv4/xfrm4_input.c + . net/ipv4/xfrm4_policy.c + . net/ipv6/xfrm6_input.c + . net/ipv6/xfrm6_policy.c + . net/netsyms.c + . net/xfrm/xfrm_input.c + . net/xfrm/xfrm_policy.c + * Fixed owner setting in drivers/net/arcnet/com20020-isa.c. + * Fixed module refcounting in drivers/net/pcmcia/com20020_cs.c. + * Fixed hdlc proto type: + . drivers/net/wan/dscc4.c + . drivers/net/wan/pc300_drv.c + * Use gcc-2.95 compatible variadic macro in drivers/net/wireless/wl3501_cs.c. + * Applied 486 emulation patch (Willy Tarreau): + . arch/i386/Kconfig + . arch/i386/kernel/Makefile + . arch/i386/kernel/emu.c + . arch/i386/kernel/entry.S + + -- Herbert Xu Thu, 31 Jul 2003 20:01:30 +1000 + +kernel-source-2.6.0-test1 (2.6.0-test1-1) unstable; urgency=low + + * New upstream release (closes: #194242, #199893). + * Fixed size of default_port in drivers/net/via-rhine.c. + * Added general notes from 2.4 README.Debian file. + * Removed cmd640 from drivers/ide/pci/Makefile (closes: #195286). + * Made MCA_53C9X depend on MCA_LEGACY in drivers/scsi/Kconfig. + * Setup two 1G mappings if cia_rev == 1 in arch/alpha/kernel/core_cia.c. + * Added inclusion of linux/stddef.h due to NULL in linux/timer.h. + * Fixed multiline string literals in drivers/net/wan/sdla_chdlc.c. + * Suggest libqt-dev in kernel-source package (closes: #196296). + * Fixed IDE PCI proc entries for modules in drivers/ide/ide-proc.c. + * Fixed assembly specification in drivers/net/wan/sbni.c. + * Enable hw_resend_irq if io_apic is on (ac): + . include/asm-i386/hw_irq.h + . arch/i386/kernel/io_apic.c + * Include linux/skbuff.h for skb_put in include/linux/netlink.h. + * Include linux/spinlock.h for rwlock_t in include/net/ip6_fib.h. + * Include linux/ipv6.h for inet6_sk in include/net/ip6_route.h. + * Include net/sock.h for struct sock in include/net/ip6_route.h. + * Include linux/netdevice.h for MAX_ADDR_LEN in include/net/neighbour.h. + * Added forward declaration for struct neighbour in include/net/neighbour.h. + * Include linux/types.h for __u32 in include/linux/watchdog.h. + * Added forward declaration for struct net_device in include/linux/skbuff.h. + * Wake up km_waitq after policy changes in net/xfrm/xfrm_policy.c. + * Restored mdio_sem that replaced rtnl_lock in drivers/net/8139too.c. + * Include linux/root_dev.h for ROOT_DEV in drivers/mtd/maps/uclinux.c. + * Removed bogus devfs references in Documentation/initrd.txt (Nikolaus Rath). + * Kill temp addresses and regen timer on shutdown in net/ipv6/addrconf.c. + * Fixed optional choice setting in scripts/kconfig/confdata.c. + * Made CONFIG_IDEDISK_STROKE a runtime option (Joerg Platte): + . include/linux/ide.h + . drivers/ide/ide.c + . drivers/ide/ide-disk.c + * Export blk_rq_prep_restart for ide-disk in drivers/block/ll_rw_blk.c. + * Fixed IDE modularisation: + . drivers/ide/Kconfig + . drivers/ide/Makefile + . drivers/ide/ide.c + . drivers/ide/ide-io.c + . drivers/ide/ide-pnp.c + . drivers/ide/ide-probe.c + . drivers/ide/pci/* + . drivers/ide/setup-pci.c + . include/linux/ide.h + + -- Herbert Xu Tue, 15 Jul 2003 21:36:05 +1000 + +kernel-source-2.5.69 (2.5.69-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Wed, 7 May 2003 20:54:36 +1000 + +kernel-source-2.4.20 (2.4.20-6) unstable; urgency=low + + * Documented mem= change in README.Debian. + * Fixed printk warnings in init/do_mounts.c. + * Fixed printk warnings in fs/fat/file.c (closes: #178355). + * Commented out non-TeX heading in Documentation/smp.tex (Daniel van Eeden, + closes: #174554). + * Fixed dupliate detection problem in drivers/net/tokenring/ibmtr.c + (closes: #178874). + * Close old_fd and root_fd in init/do_mounts.c (Brian May, closes: #180934). + * Ignore errors from tw_setfeature in drivers/scsi/3w-xxxx.c + (closes: #181581). + * Changed all occurances of infobox+sleep to msgbox in scripts/Menuconfig + (closes: #181640). + * Use rq->special instead of rq->buffer in drivers/scsi/ide-scsi.c + (closes: #180125). + * Fixed precedence bug in drivers/sound/trident.c (John Levon). + * Documented AMD 768 erratum (closes: #177139). + * Fixed initialisation error handling in drivers/block/cciss.c. + * Fixed initialisation error handling in drivers/block/cpqarray.c. + * Fixed ptrace security hole (closes: #185375). + * Work around broken Toshiba keyboards (2.4.21pre, closes: #121335). + * Fixed sock address length check (2.4.21pre, closes: #171983). + + -- Herbert Xu Sat, 22 Mar 2003 10:05:53 +1100 + +kernel-source-2.4.20 (2.4.20-5) unstable; urgency=high + + * Fixed ethernet packet padding information leak (2.4ac, see #176178): + . via-rhine + * Added sk_padto function (closes: #176487). + + -- Herbert Xu Mon, 13 Jan 2003 19:17:48 +1100 + +kernel-source-2.4.20 (2.4.20-4) unstable; urgency=high + + * Added missing printk newlines in net/sched/sch_htb.c + (Alexandra N. Kossovsky, closes: #174152). + * Removed bogus VIA KT266 IO-APIC check. It is a useful warning. + * Removed bogus ip_conntrack_{ftp,irc} check. + * Fixed a typo in Documentation/sound/Introduction (Daniel van Eeden, + closes: #174944). + * Reverted CONFIG_VIDEO_VESA change (closes: #175614). + * Fixed ethernet packet padding information leak (2.4ac, see #176178): + . 3c501 + . 3c505 + . 3c507 + . 3c523 + . 3c527 + . 7990 + . 8139too + . 82596 + . 8390 + . a2065 + . am79c961a + . ariadne + . at1700 + . atarilance + . atp + . bagetlance + . de600 + . de620 + . declance + . depca + . eepro + . eexpress + . epic100 + . eth16i + . fmv18x + . hp100 + . lance + . lasi_82596 + . lp486e + . ni5010 + . ni52 + . ni65 + . axnet_cs + . fmvj18x_cs + . ray_cs + . xirc2ps_cs + . xircom_tulip_cb + . seeq8005 + . sgiseeq + . sk_g16 + . smc9194 + . sun3_82586 + . sun3lance + . wavelan + . yellowfin + . znet + + -- Herbert Xu Sat, 11 Jan 2003 17:31:43 +1100 + +kernel-source-2.4.20 (2.4.20-3) unstable; urgency=low + + * Fixed ext3 remount deadlock added in 2.4.20-2 (Andrew Morton). + * Fixed ext3 use-after-free bug (Andrew Morton). + * Fixed i845G AGP Gart initialisation (Michael Milligan, closes: #172724). + * Updated i810_audio driver (2.4.21pre1, closes: #172194). + + -- Herbert Xu Sat, 21 Dec 2002 13:49:15 +1100 + +kernel-source-2.4.20 (2.4.20-2) unstable; urgency=low + + * Include acpidrv.o in the kernel (Mario Holbe, closes: #168439). + * Removed CONFIG_INET_ECN_DISABLED option. + * Removed CONFIG_INET_ECN check in net/ipv4/tcp_diag.c. + * Fixed stxncpy on alpha (2.4.21pre). + * Fixed ext3 data=journal umount problem (2.4.21pre1, closes: #171632). + * Added dependency on MTD_CONCAT for sc520cdp (closes: #173045). + + -- Herbert Xu Sun, 15 Dec 2002 14:53:05 +1100 + +kernel-source-2.4.20 (2.4.20-1) unstable; urgency=low + + * New upstream release (closes: #164065, #164204, #165478, #166312, #168141, + #168190, #170962). + * Disable CONFIG_VIDEO_VESA unless VESA FB support is turned on. + * Mention Debian changes in kernel-source package description. + * Fixed a bug where ACPI is always compiled as a module (closes: #168439). + * CONFIG_VIDEO_SELECT is always on again. + * Modularised VESA FB. + * Added coreutils as an alternative to fileutils (closes: #170459). + * Replaced BUG() with printk() in fs/fat/file.c (closes: #168886). + * Fixed circular dependency in include/linux/netfilter_ipv4/ip_conntrack.h. + * Do not get seqno if we will not use it in fs/isofs/inode.c. + * Fixed HID name fix so that produce id is actually read. + * Added missing semicolons in drivers/scsi/aic7xxx/aicasm/aicasm_gram.y + (Michael Osamu Shiobara, closes: #165375). + * Made CONFIG_PARIDE_EPATC8 into a runtime option. + * Fixed double PCI unregistration in drivers/char/joystick/pcigame.c. + * Include linux/init.h in drivers/char/amd76x_pm.c. + * Include linux/init.h in drivers/scsi/cpqfcTSinit.c. + + -- Herbert Xu Sat, 30 Nov 2002 16:39:30 +1100 + +kernel-source-2.4.19 (2.4.19-5) unstable; urgency=high + + * Fixed i386 lcall DoS (Petr Vandrovec). + + -- Herbert Xu Mon, 18 Nov 2002 21:22:02 +1100 + +kernel-source-2.4.19 (2.4.19-4) unstable; urgency=low + + * Added missing headers in drivers/isdn/hisax/avma1_cs.c. + * Added missing headers in drivers/net/wan/comx-hw-munich.c. + + -- Herbert Xu Wed, 16 Oct 2002 22:42:01 +1000 + +kernel-source-2.4.19 (2.4.19-3) unstable; urgency=low + + * Fixed more ACPI module building problems. + * Fixed initialisation oops in drivers/scsi/aic7xxx/aic7770.c + (closes: #162347). + * Made CONFIG_VIDEO_SELECT conditional in drivers/video. + + -- Herbert Xu Sun, 6 Oct 2002 16:33:04 +1000 + +kernel-source-2.4.19 (2.4.19-2) unstable; urgency=low + + * Inlucde pagemap.h for unlock_page in drivers/char/drm/i810_dma.c + (closes: #144971). + * Set ?time to zero in fs/cramfs/inode.c. + * Allow ACPI to be compiled as a module. + * Fixed umsdos_solve_hlink oops in fs/umsdos/dir.c (closes: #159772). + * Honour ide?=dma in drivers/ide/via82cxxx.c (Arne Nordmark, + closes: #157925). + * Restored priority of invalidate messages in fs/buffer.c. The submitter of + #131419 did a badblocks -f. + * Wait before flushing in drivers/char/drm/mga_dma.c (ac, closes: #161100). + * Applied SCSI Media Changer patch (closes: #144850). + * Applied Big Physical Area Reservation patch (closes: #144849). + * Removed period check for executables in fs/isofs/inode.c (closes: #162190). + + -- Herbert Xu Sat, 28 Sep 2002 16:53:27 +1000 + +kernel-source-2.4.19 (2.4.19-1) unstable; urgency=low + + * New upstream release (closes: #139617, #146349). + * ip_nat_{ftp,irc} cannot be m if ip_conntrack_{ftp,irc} is y, respectively + (closes: #142532). + * Removed volume checks in fs/isofs/inode.c (closes: #138384). + * Removed gsem from drivers/usb/pegasus.c. + * Always call complete after unlinking an urb in drivers/usb/usb-ohci.c. + * Set hardsect size to 512 in drivers/scsi/sr.c (closes: #154510). + * Removed non-free firmware and disabled their drivers (closes: #150052): + . SMC Token Ring + . ACENIC + . DGRS + . DABUSB + * Lowed invalidate messages to priority DEBUG in fs/buffer.c + (closes: #131349). + + -- Herbert Xu Wed, 7 Aug 2002 21:12:03 +1000 + +kernel-source-2.4.18 (2.4.18-5) unstable; urgency=low + + * Corrected AdvWriteDWordLramNoSwap in drivers/scsi/advansys.c + (Jerome L. Quinn, closes: #128080). + * Added check for VIA KT266 IO-APIC, version == 2 (closes: #136163). + * Updated pegasus driver (2.4.19pre6). + * Added ATARAID device names to main.c (Eduard Bloch, closes: #139604). + * Updated uhci driver (Johannes Erdfelt, closes: #135785). + * Translate slashes in broken Acorn ISO9660 file systems (Darren Salt, + closes: #141660). + * Added newline to printk in drivers/sound/i810_audio.c + (handler-case@gmx.net, closes: #142214). + * Updated parport driver (2.4.19pre6). + + -- Herbert Xu Sat, 13 Apr 2002 22:07:22 +1000 + +kernel-source-2.4.18 (2.4.18-4) unstable; urgency=high + + * Fixed remaining double free in + drivers/net/zlib.c + fs/jffs2/zlib.c + + -- Herbert Xu Wed, 20 Mar 2002 20:02:18 +1100 + +kernel-source-2.4.18 (2.4.18-3) unstable; urgency=high + + * Fixed double free in + drivers/net/zlib.c + fs/jffs2/zlib.c + + -- Herbert Xu Wed, 13 Mar 2002 20:24:09 +1100 + +kernel-source-2.4.18 (2.4.18-2) unstable; urgency=low + + * Removed -g from driviers/atm/Makefile. + * Added missing personality patch to fs/binfmt_elf.c. + * Export est_cycle_freq (needed for removing CONFIG_FT_ALPHA_CLOCK). + * Extern inline -> static inline in + drivers/char/specialx.c + drivers/net/hamradio/soundmodem + * Added asm/io.h for in*/out* to + drivers/isdn/hisax/hisax_fcpcipnp.c + drivers/net/wan/farsync.c + + -- Herbert Xu Wed, 6 Mar 2002 19:53:30 +1100 + +kernel-source-2.4.18 (2.4.18-1) unstable; urgency=low + + * New upstream release (closes: #126391, #135156). + * Reverted tulip BMCR_FULLDPLX patch. + * Moved mkcramfs to the cramfs source package. + * CONFIG_SERIAL_ACPI now depends on CONFIG_SERIAL == y (closes: #132038). + * Fixed negative inodes in /proc/net (Arnaud Giersch, closes: #134704). + * pcnet32_purge_tx_ring may be called from IRQ context (Darren Salt, + closes: #134930). + * Check old_bbpnt in drivers/scsi/sr.c (2.5). + * Removed CONFIG_FT_ALPHA_CLOCK. + * Fixed the use of return values from mem*_io in drivers/isdn/sc. + * Added missing headers in drivers/pcmcia/i82092.c. + * Fixed compile error in drivers/scsi/dpt_i2o.c on alpha. + + -- Herbert Xu Thu, 28 Feb 2002 19:40:29 +1100 + +kernel-source-2.4.17 (2.4.17-1) unstable; urgency=low + + * New upstream release (closes: #122168, #123471). + * Only set startup to 0 for 21143 (rev 65) in tulip. + * Don't clear BMCR_FULLDPLX bit in tulip_find_mii as it breaks some cards + (closes: #100624). + * Fixed atyfb compilation problem (Tobias Ringstrom). + * Removed obsolete vfat patch. + * Fixed double cache allocation in mount_devfs_fs. + + -- Herbert Xu Sat, 22 Dec 2001 13:41:46 +1100 + +kernel-source-2.4.16 (2.4.16-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Wed, 28 Nov 2001 07:30:44 +1100 + +kernel-source-2.4.15 (2.4.15-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Sat, 24 Nov 2001 13:34:51 +1100 + +kernel-source-2.4.14 (2.4.14-1) unstable; urgency=low + + * New upstream release (closes: #117368, #118111). + * Made mkcramfs more verbose about write errors. + * Fixed compilation problem in loopback driver. + * Fixed compilation problem in ps2esdi.c. + * Fixed compilation problem in i2c-core.c. + + -- Herbert Xu Fri, 9 Nov 2001 20:15:49 +1100 + +kernel-source-2.4.13 (2.4.13-1) unstable; urgency=low + + * New upstream release. + * Updated kernel-source suggests (closes: #115716). + * Added support for nm256xl+ (Mattia Monga, closes: #116378). + * Fixed comment about epochs in arch/alpha/kernel/time.c. + * Fixed symlink size bug on tmpfs. + * Fixed handling of HIDs with product strings bug no manufacturer. + * Work around tmpfs symlink size bug in mkcramfs. + + -- Herbert Xu Sat, 27 Oct 2001 17:39:07 +1000 + +kernel-source-2.4.12 (2.4.12-1) unstable; urgency=low + + * New upstream release. + * Fixed typo in debian/rules (closes: #114065). + * Fixed ECN compilation problem (closes: #114192). + * Fixed typo in Documentation/sound/OPL3-SA + (Marius Gedminas, closes: #114760). + * Fixed typo in drivers/parport/ieee1284_ops.c (Tim Waugh). + * Don't kill page cache entries in set_blocksize. + + -- Herbert Xu Sat, 13 Oct 2001 11:41:03 +1000 + +kernel-source-2.4.10 (2.4.10-1) unstable; urgency=low + + * New upstream release. + * Added support for EPAT C7/C8 chips. + * Fixed dead lock on shutdown in 8139too (closes: #107779). + * Removed const from drivers/net/irda/smc-ircc.c + (Keith Owens, closes: #110193). + * Allow ECN to be compiled in but disabled. + * Removed non-free Keyspan firmware. We're no longer pristine. + * Fixed list_del bug in usb-uhci (ac patches). + * Fixed apm argument processing (ac patches). + * Added ioctl defines for cpq (ac patches). + * Included linux/init.h in drivers/net/aironet4500_card.c. + + -- Herbert Xu Sat, 29 Sep 2001 16:05:20 +1000 + +kernel-source-2.4.9 (2.4.9-1) unstable; urgency=low + + * New upstream release (closes: #63393). + * Fixed highmem CramFS bug (closes: #108893). + * Added missing include in fs/ntfs/unistr.c. + * Reverted startup==1 patch from drivers/net/tulip/21142.c. + * Fixed obsolete use of min: drivers/net/rrunner.c. + * Exported snprintf/vsnprintf (ac patches). + + -- Herbert Xu Sat, 18 Aug 2001 21:23:07 +1000 + +kernel-source-2.4.8 (2.4.8-1) unstable; urgency=low + + * New upstream release. + * Menuconfig now exits with 1 if screen is too small (closes: #106510). + * Applied NFS client seekdir patch (closes: #63063, #107045). + * Build-depend on kernel-package >= 7.48 (closes: #107545). + * Applied emu10k fixes (ac patches). + * Fixed ldm macros (ac patches). + + -- Herbert Xu Sun, 12 Aug 2001 09:04:44 +1000 + +kernel-source-2.4.7 (2.4.7-1) unstable; urgency=low + + * New upstream release (closes: #97516, #104141, #104267). + * Applied ReiserFS umount patch (closes: #100740). + * Applied DAC960 completion patch (Jens Axboe). + * Restricted CONFIG_FB_PVR2 to SH (ac patches). + + -- Herbert Xu Sun, 22 Jul 2001 11:52:29 +1000 + +kernel-source-2.4.6 (2.4.6-1) unstable; urgency=low + + * New upstream release (closes: #102864). + * Fixed pegasus_set_multicast lockup. + * Reverted sysinfo patch. + + -- Herbert Xu Thu, 5 Jul 2001 19:24:12 +1000 + +kernel-source-2.4.5 (2.4.5-1) unstable; urgency=low + + * New upstream release (closes: #78761, #96443). + * Fixed set_blocksize() on RAMDISKs. + * Removed flavour patch from Makefile as it is now obsolete. + * Fixed typo in drivers/usb/ov511.c (ac patches). + * Fixed race in fs/super.c (Alexander Viro). + + -- Herbert Xu Sun, 27 May 2001 10:25:42 +1000 + +kernel-source-2.4.4 (2.4.4-2) unstable; urgency=low + + * Hacked ide_xlate_1024 to work when IDE is modularised (closes: #94853). + * Fixed typo in pci2220i.c (ac patches). + * Treat files that begin with FD_FILL_BYTE correctly in vfat + (closes: #75413). + + -- Herbert Xu Sun, 13 May 2001 09:33:09 +1000 + +kernel-source-2.4.4 (2.4.4-1) unstable; urgency=low + + * New upstream release. + * Fixed a typo in Documentation/sound/OPL3-SA (Carlos Valdivia Yague, + closes: #95255). + + -- Herbert Xu Sun, 29 Apr 2001 10:32:51 +1000 + +kernel-source-2.4.3 (2.4.3-4) unstable; urgency=low + + * ip_conntrack_ftp fix (netfilter, closes: #94216). + + -- Herbert Xu Sun, 22 Apr 2001 11:15:02 +1000 + +kernel-source-2.4.3 (2.4.3-3) unstable; urgency=low + + * Added missing SIEMENS PCI ID (ac patches). + * Exported proc_get_inode (ac patches). + + -- Herbert Xu Mon, 16 Apr 2001 08:42:17 +1000 + +kernel-source-2.4.3 (2.4.3-2) unstable; urgency=low + + * Correct devfs path name in scsi-generic.txt (closes: #93405). + * Fixed negative padding in struct sysinfo. + + -- Herbert Xu Fri, 13 Apr 2001 19:42:42 +1000 + +kernel-source-2.4.3 (2.4.3-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Sun, 8 Apr 2001 16:50:40 +1000 + +kernel-source-2.4.2 (2.4.2-3) unstable; urgency=low + + * Added build-time dependency on libz-dev (closes: #89722). + * Compilation fixes in 6pack.c and genhd.h (closes: #90646). + + -- Herbert Xu Fri, 23 Mar 2001 20:30:03 +1100 + +kernel-source-2.4.2 (2.4.2-2) unstable; urgency=low + + * Added initrd support for cramfs. + * Fixed bug that prevented initrd from being freed (ac patches). + * Fixed a typo in Documentation/sound/VIBRA16 (Carlos Valdivia, + closes: #88018). + * Removed misleading securetty note in devfs README files (closes: #89148). + + -- Herbert Xu Sun, 11 Mar 2001 08:56:27 +1100 + +kernel-source-2.4.2 (2.4.2-1) unstable; urgency=low + + * New upstream release. + * Created mkcramfs package. + * Accomodate option change in binutils (closes: #87009). + * Applied loopback patch by Jens Axobe. + + -- Herbert Xu Fri, 23 Feb 2001 20:19:31 +1100 + +kernel-source-2.4.1 (2.4.1-3) unstable; urgency=low + + * Applied tmpfs patch by Christoph Rohland. + * Fixed incorrect conditional check in struct sysinfo (closes: #85603). + + -- Herbert Xu Sun, 11 Feb 2001 21:08:05 +1100 + +kernel-source-2.4.1 (2.4.1-2) unstable; urgency=low + + * Fixed the struct sysinfo warning properly (closes: #84234). + + -- Herbert Xu Sat, 10 Feb 2001 23:10:44 +1100 + +kernel-source-2.4.1 (2.4.1-1) unstable; urgency=low + + * New upstream release. + * Added support for flavours to Makefile. + * Only include asm/bitops.h if __KERNEL__ is defined in linux/fs.h + (closes: #84238). + * Added padding to struct sysinfo so that it's identical to 2.2 (#84234). + * Fixed typos in asm/socket.h (closes: #39168). + * Updated IrDA URL in asm/termios.h (closes: #42222). + + -- Herbert Xu Sun, 4 Feb 2001 10:11:47 +1100 + +kernel-source-2.4.0 (2.4.0-1) unstable; urgency=low + + * New upstream release (closes: #71874, #79490). + * Added missing build-time dependencies (closes: #81728). + + -- Herbert Xu Tue, 16 Jan 2001 11:14:16 +1100 + +kernel-source-2.4.0-test11 (2.4.0-test11-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Sat, 9 Dec 2000 11:34:37 +1100 + +kernel-source-2.4.0-test5 (2.4.0-test5-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Sat, 29 Jul 2000 17:55:37 +1000 + +kernel-source-2.4.0-test4 (2.4.0-test4-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Wed, 19 Jul 2000 18:37:17 +1000 + +kernel-source-2.4.0-test3 (2.4.0-test3-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Wed, 12 Jul 2000 09:49:57 +1000 + +kernel-source-2.4.0-test2 (2.4.0-test2-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Mon, 10 Jul 2000 19:24:59 +1000 + +kernel-source-2.2.17 (2.2.17pre6-1) frozen unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Sat, 24 Jun 2000 21:53:40 +1000 + +kernel-source-2.2.16 (2.2.16-1) frozen unstable; urgency=high + + * New upstream release (closes: #65745). + + -- Herbert Xu Sun, 18 Jun 2000 12:42:37 +1000 + +kernel-source-2.2.15 (1:2.2.15-3) frozen unstable; urgency=low + + * Bring capabilities closer to POSIX spec (Andrew Morgan) + | Note. This subtly changes cap_bset behaviour. + + -- Herbert Xu Thu, 1 Jun 2000 09:32:11 +1000 + +kernel-source-2.2.15 (1:2.2.15-2) frozen unstable; urgency=low + + * AIC7XXX 5.1.29 (closes: #63946). + + -- Herbert Xu Sat, 13 May 2000 09:29:50 +1000 + +kernel-source-2.2.15 (1:2.2.15-1) frozen unstable; urgency=low + + * New upstream release (closes: #63675). + * Built with kernel-package 7.04.potato.1 (closes: #63290). + + -- Herbert Xu Tue, 9 May 2000 12:54:09 +1000 + +kernel-source-2.2.15pre19 (2.2.15pre19-2) frozen unstable; urgency=low + + * New upstream release (pre20). + + -- Herbert Xu Tue, 25 Apr 2000 15:31:03 +1000 + +kernel-source-2.2.15pre19 (2.2.15pre19-1) frozen unstable; urgency=low + + * New upstream release (closes: #55383). + * Applied patch from Chris Evans. + * Applied patch from David Miller. + + -- Herbert Xu Fri, 21 Apr 2000 12:15:30 +1000 + +kernel-source-2.2.14 (2.2.14-5) frozen unstable; urgency=low + + * Delete my copy of the control file before calling make-kpkg + (closes: #62269). + + -- Herbert Xu Thu, 13 Apr 2000 08:33:18 +1000 + +kernel-source-2.2.14 (2.2.14-4) frozen unstable; urgency=medium + + * Applied patch from Alexey Kuznetsov that fixes the AF_UNIX socket crash + (closes: #61335). + * Rebuilt with new kernel-package (closes: #61261). + + -- Herbert Xu Fri, 31 Mar 2000 14:12:43 +1000 + +kernel-source-2.2.14 (2.2.14-3) frozen unstable; urgency=low + + * Rebuilt with new kernel-package (closes: #60001). + * Included a patch from Eric Delaunay that + fixes a couple of argument parsing bugs in main.c (closes: #58566). + + -- Herbert Xu Thu, 23 Mar 2000 19:05:11 +1100 + +kernel-source-2.2.14 (2.2.14-2) unstable; urgency=low + + * Fixed incorrect assembly code for i386. + + -- Herbert Xu Sun, 16 Jan 2000 12:36:59 +1100 + +kernel-source-2.2.14 (2.2.14-1) unstable; urgency=low + + * New upstream release. + * Fixed a typo in aha152x.c (closes: #12636). + + -- Herbert Xu Thu, 13 Jan 2000 12:09:06 +1100 + +kernel-source-2.2.13 (2.2.13-2) unstable; urgency=low + + * Updated version number in README.Debian (closes: #49033). + * Removed kernel-image as it will be generated by the kernel-image source + package. + + -- Herbert Xu Fri, 19 Nov 1999 19:41:45 +1100 + +kernel-source-2.2.13 (2.2.13-1) unstable; urgency=low + + * New upstream release. + * Enabled ServeRAID (closes: #47653). + + -- Herbert Xu Sun, 24 Oct 1999 14:22:49 +1000 + +kernel-source-2.2.12 (2.2.12-4) unstable; urgency=low + + * Fixed a typo in tgafb.c. + * Added CONFIG_APM_DISABLE_BY_DEFAULT. + * Call make-kpkg to clean up (closes: #45603). + + -- Herbert Xu Thu, 14 Oct 1999 09:06:57 +1000 + +kernel-source-2.2.12 (2.2.12-3) unstable; urgency=low + + * Compiled with stacks aligned on dwords. + * Enabled serial consoles (closes: #46152). + + -- Herbert Xu Tue, 28 Sep 1999 17:39:34 +1000 + +kernel-source-2.2.12 (2.2.12-2) unstable; urgency=low + + * Rewrote the kmod patch to only bail out when the other side is our parent. + * Use the VFS patch rather than the autofs patch. + * Enabled Joliet extensions (fixes #42006). + * Enabled APM (fixes #42258). + + -- Herbert Xu Sat, 11 Sep 1999 23:51:00 +1000 + +kernel-source-2.2.12 (2.2.12-1) unstable; urgency=low + + * New upstream release (fixes #43865). + * Fixed an nlink update problem in nfs. + * New rules file from Hartmut Koptein. + * Fixed an overflow bug in the stallion driver. + * Fixed an autofs deadlock. + * Don't load a module that we're already trying to load (Chris Butler) (fixes + #39910). + + -- Herbert Xu Wed, 1 Sep 1999 09:12:15 +1000 + +kernel-source-2.2.10 (2.2.10-1) unstable; urgency=low + + * New upsream release. + * Moved default.config to new kernel-patch for i386. + + -- Herbert Xu Tue, 15 Jun 1999 21:59:48 +1000 + +kernel-source-2.2.9 (2.2.9-2) unstable; urgency=high + + * Fixed a network DoS attack. + + -- Herbert Xu Fri, 4 Jun 1999 21:06:28 +1000 + +kernel-source-2.2.9 (2.2.9-1) unstable; urgency=low + + * New upstream relesae. + + -- Herbert Xu Tue, 18 May 1999 10:20:08 +1000 + +kernel-source-2.2.7 (2.2.7-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Fri, 7 May 1999 22:19:56 +1000 + +kernel-source-2.2.5 (1:2.2.5-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Fri, 16 Apr 1999 13:56:45 +1000 + +kernel-source-2.0.36 (2.0.36-3) frozen unstable; urgency=low + + * Upgraded AIC7XXX to 5.1.11 which should make some owners of Adaptec cards + able to install Debian. + + -- Herbert Xu Sun, 21 Feb 1999 14:56:42 +1100 + +kernel-source-2.0.36 (2.0.36-2) frozen unstable; urgency=low + + * Applied ISDN patch from Paul Slootman that enables idle timeouts in the + manual dialmode and allows callback syncPPP connections to be made + (fixes #31516). + * Enlarged kernel message buffer so that all messages are caught by klogd. + * Included module for TLAN based network cards (fixes #31623). + * Include EtherExpressPro and FMV0181/182/183/184 as modules. + + -- Herbert Xu Sat, 16 Jan 1999 16:39:01 +1100 + +kernel-source-2.0.36 (2.0.36-1) unstable; urgency=low + + * New upstream release. + * Enabled ETH16I. + + -- Herbert Xu Sat, 28 Nov 1998 17:40:21 +1100 + +kernel-source-2.0.35 (2.0.35-3) frozen; urgency=low + + * Upgraded to aic7xxx 5.1.4 (fixes #29480, #27859, #28946). + + -- Herbert Xu Sun, 22 Nov 1998 15:41:44 +1100 + +kernel-source-2.0.35 (2.0.35-2) unstable; urgency=low + + * Upgraded to aic7xxx 5.1.0. + * Removed spurious definition in 3c523.c (fixes #25370). + * Built with kernel-package 5.11 (fixes #25623). + * Enabled autofs (fixes #22338, #27860). + + -- Herbert Xu Sat, 24 Oct 1998 17:32:06 +1000 + +kernel-source-2.0.35 (2.0.35-1) unstable; urgency=low + + * New upstream release. + + -- Herbert Xu Sun, 19 Jul 1998 08:59:44 +1000 + +kernel-source-2.0.34 (2.0.34-4) frozen unstable; urgency=high + + * Updated to aic7xxx 5.0.19 (fixes #24252). + + -- Herbert Xu Wed, 8 Jul 1998 20:06:08 +1000 + +kernel-source-2.0.34 (2.0.34-3) frozen unstable; urgency=high + + * Reversed euid test in fs/fcntl.c. + + -- Herbert Xu Tue, 30 Jun 1998 16:27:49 +1000 + +kernel-source-2.0.34 (2.0.34-2) frozen unstable; urgency=low + + * Upload to hamm as well. + + -- Herbert Xu Sun, 21 Jun 1998 16:48:13 +1000 + +kernel-source-2.0.34 (2.0.34-1) unstable; urgency=low + + * New upstream release (fixes #17651, #18788, #21231, #22330). + + -- Herbert Xu Sun, 7 Jun 1998 12:29:27 +1000 + +kernel-source-2.0.33 (2.0.33-9) frozen unstable; urgency=low + + * Disabled certain MCA NIC drivers (fixes #22254). + + -- Herbert Xu Sun, 10 May 1998 15:59:32 +1000 + +kernel-source-2.0.33 (2.0.33-8) frozen unstable; urgency=low + + * Disabled experimental drivers. + * Reapplied joliet patch (fixes #19160, #21537). + * Built with kernel-package 4.07 (fixes #21229). + * Replaced NO_PCI with !CONFIG_PCI in 3c59x.c (fixes #21916). + + -- Herbert Xu Fri, 1 May 1998 18:29:03 +1000 + +kernel-source-2.0.33 (2.0.33-7) frozen unstable; urgency=high + + * Applied IP fragmentation patch from Alan Cox. + + -- Herbert Xu Sat, 18 Apr 1998 12:57:56 +1000 + +kernel-source-2.0.33 (2.0.33-6) frozen unstable; urgency=low + + * Disabled scc since we don't support ax25 by default (fixes #20307). + + -- Herbert Xu Wed, 1 Apr 1998 19:21:05 +1000 + +kernel-source-2.0.33 (2.0.33-5) unstable; urgency=low + + * Turned rst cookies off. + + -- Herbert Xu Wed, 18 Mar 1998 20:41:27 +1100 + +kernel-source-2.0.33 (2.0.33-4) unstable; urgency=low + + * Applied patch from Paul Slootman (fixes #18787). + + -- Herbert Xu Fri, 6 Mar 1998 11:30:44 +1100 + +kernel-source-2.0.33 (2.0.33-3) stable unstable; urgency=low + + * Built with new kernel-package (3.61). + * Added support for fat32 (fixes #14042). + + -- Herbert Xu Fri, 20 Feb 1998 16:33:40 +1100 + +kernel-source-2.0.33 (2.0.33-2) stable unstable; urgency=low + + * built with new kernel-package (3.57) + + -- Herbert Xu Mon, 16 Feb 1998 08:59:11 +1100 + +kernel-source-2.0.33 (2.0.33-1) stable unstable; urgency=high + + * New upstream release (fixes #15736). + + -- Herbert Xu Sat, 7 Feb 1998 15:06:57 +1100 + +kernel-source-2.0.32 (2.0.32-3) stable unstable; urgency=low + + * Built with new kernel-package (3.49). + + -- Herbert Xu Mon, 15 Dec 1997 12:22:45 +1100 + +kernel-source-2.0.32 (2.0.32-2) stable unstable; urgency=low + + * Removed teles driver which was accidentally left in. + * Applied patch from Andreas Jaeger. + * Built with new kernel-package (3.48) for use by libc6. + + -- Herbert Xu Sun, 14 Dec 1997 09:29:26 +1100 + +kernel-source-2.0.32 (2.0.32-1) unstable; urgency=low + + * New upstream release. + * Pristine source. + * Bugs fixed (#6132, #6133, #8647, #11823, #13705). + + -- Herbert Xu Sun, 23 Nov 1997 18:34:38 +1100 + +kernel-source-2.0.29 (1:2.0.29-10) unstable; urgency=low + + * NCR53C8XX driver updates. + * Installed 3c59x 0.46C (#10902). + * Modified scc.c to compile with libc6 (#14367). + + -- Herbert Xu Mon, 17 Nov 1997 20:46:57 +1100 + +kernel-source-2.0.29 (1:2.0.29-9) unstable; urgency=low + + * Slight mod to pci.c to ignore bridges that the kernel can't handle (#11865). + * Removed sound module support. + + -- Herbert Xu Fri, 3 Oct 1997 11:17:02 +1000 + +kernel-source-2.0.29 (1:2.0.29-8) unstable; urgency=low + + * Used epoch numbers to deal with old kernel-source releases. + * Enabled support for NCPFS. + * Added sound support. + * Enabled IP firewalls, forwarding, and aliasing. + * Applied ne2000 patch from Paul Gortmaker. + + -- Herbert Xu Fri, 4 Jul 1997 22:01:16 +1000 + +kernel-source-2.0.29 (2.0.29-7) frozen unstable; urgency=high + + * Applied security patch from Alan Cox. + * Applied patch from Andreas Jellinghaus. + + -- Herbert Xu Sat, 31 May 1997 11:59:56 +1000 + +kernel-source-2.0.29 (2.0.29-6) frozen unstable; urgency=medium + + * Merged Debian changes from 2.0.30. + + -- Herbert Xu Sun, 25 May 1997 22:26:30 +1000 --- linux-source-2.6.17-2.6.17.1.orig/debian/bin/splitconfig.pl +++ linux-source-2.6.17-2.6.17.1/debian/bin/splitconfig.pl @@ -0,0 +1,110 @@ +#!/usr/bin/perl -w + +%configs = (); +%common = (); + +print "Reading config's ...\n"; + +opendir(DIR, "."); + +while (defined($config = readdir(DIR))) { + # Only config.* + next if $config !~ /^config\..*/; + # Nothing that is disabled, or remnant + next if $config =~ /.*\.(default|disabled|stub)$/; + # Server config's are standalone + #next if $config =~ /config.server-.*/; + + %{$configs{$config}} = (); + + print " processing $config ... "; + + open(CONFIG, "< $config"); + + while () { + /^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next; + + ${$configs{$config}}{$1} = $2; + + $common{$1} = $2; + } + + close(CONFIG); + + print "done.\n"; +} + +closedir(DIR); + +print "\n"; + +print "Merging lists ... \n"; + +for $config (keys(%configs)) { + my %options = %{$configs{$config}}; + + print " processing $config ... "; + + for $key (keys(%common)) { + next if not defined $common{$key}; + + # If we don't have the common option, then it isn't + # common. If we do have that option, it must have the same + # value (this is where the old split.py was broken). It + # also did the common check while it was parsing files, so + # that there were cases where a non-common option was in + # common anyway (ordering). + if (not defined($options{$key})) { + undef $common{$key}; + } elsif ($common{$key} ne $options{$key}) { + undef $common{$key}; + } + } + + print "done.\n"; +} + +print "\n"; + +print "Creating common config ... "; + +open(COMMON, "> config"); +print COMMON "#\n# Common config options automatically generated by splitconf.pl\n#\n"; + +for $key (sort(keys(%common))) { + next if not defined $common{$key}; + + if ($common{$key} eq "is not set") { + print COMMON "# CONFIG_$key is not set\n"; + } else { + print COMMON "CONFIG_$key=$common{$key}\n"; + } +} +close(COMMON); + +print "done.\n\n"; + +print "Creating stub configs ...\n"; + +for $config (keys(%configs)) { + my %options = %{$configs{$config}}; + + print " processing $config ... "; + + open(STUB, "> $config"); + print STUB "#\n# Config options for $config automatically generated by splitconf.pl\n#\n"; + + for $key (sort(keys(%options))) { + next if defined $common{$key}; + + if ($options{$key} eq "is not set") { + print STUB "# CONFIG_$key is not set\n"; + } else { + print STUB "CONFIG_$key=$options{$key}\n"; + } + } + + close(STUB); + + print "done.\n"; +} --- linux-source-2.6.17-2.6.17.1.orig/debian/bin/control-create +++ linux-source-2.6.17-2.6.17.1/debian/bin/control-create @@ -0,0 +1,21 @@ +#!/bin/bash + +stub=debian/config/flavour-control.stub +vars=$1 + +. $vars + + +if [ "$arch" = "" ]; then + arch=$(basename `dirname $vars`) +fi +flavour=$(basename $vars | sed 's/.*\.//') + +cat $stub | grep -v '^#' | sed \ + -e "s#FLAVOUR#$flavour#g" \ + -e "s#DESC#$desc#g" \ + -e "s#ARCH#$arch#g" \ + -e "s#SUPPORTED#$supported#g" \ + -e "s#TARGET#$target#g" \ + -e "s#BOOTLOADER#$bootloader#g" \ + -e "s#=PROVIDES=#$provides#g" --- linux-source-2.6.17-2.6.17.1.orig/debian/bin/oldconfig +++ linux-source-2.6.17-2.6.17.1/debian/bin/oldconfig @@ -0,0 +1,73 @@ +#!/bin/bash + +# We have to be in the top level kernel source directory +if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then + echo "This does not appear to be the kernel source directory." 1>&2 + exit 1 +fi + + +# One arg, and that's it. Just pass an architecture +if [ $# -ne 1 ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +arch="$1" + +case "$arch" in + sparc) + kernarch="sparc64" + ;; + amd64) + kernarch="x86_64" + ;; + hppa) + kernarch="parisc" + ;; + *) + kernarch="$arch" + ;; +esac + +confdir="`pwd`/debian/config/$arch" +bindir="`pwd`/debian/bin" + +# Make sure the architecture exists +if [ ! -d $confdir ]; then + echo "Could not find config directory for $arch" 1>&2 + exit 1 +fi + +echo "Processing $arch ($kernarch) ... " + +configs=$(cd $confdir && ls config.*) + +if [ -f $confdir/config ]; then + for config in $configs; do + case $config in + *) + cat $confdir/config >> $confdir/$config + ;; + esac + done + rm -f $confdir/config +fi + +test -d build || mkdir build +cd build +for config in $configs; do + echo "Running silentoldconfig for $config ... " + + cat $confdir/$config > .config + + make -C ../ O=`pwd` silentoldconfig ARCH=$kernarch + + cat .config > $confdir/$config +done +cd .. + +echo "Running splitconfig.pl ... " +echo + +(cd $confdir ; $bindir/splitconfig.pl) --- linux-source-2.6.17-2.6.17.1.orig/debian/bin/getabis +++ linux-source-2.6.17-2.6.17.1/debian/bin/getabis @@ -0,0 +1,79 @@ +#!/bin/bash + +if [ "$#" != "2" ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +ver=$1 +revision=$2 +abi=$(echo $revision | awk -F. '{print $1}') + +verabi=$ver-$abi +verfull=$ver-$revision + +repo="http://archive.ubuntu.com/ubuntu/pool/main/l" +repo_ports="http://ports.ubuntu.com/ubuntu-ports/pool/main/l" + +WGET="wget --quiet -c" + +abidir="`pwd`/debian/abi/$verfull" +tmpdir="`pwd`/abi-tmp-$verfull" +origdir="`pwd`" + +test -d $tmpdir || mkdir $tmpdir + +getall() { + arch=$1 + shift + + mkdir -p $abidir/$arch + + for sub in $@; do + if [ -f $abidir/$arch/$sub ]; then + echo "Exists: $sub" + continue + fi + echo -n "Fetching $sub..." + filename=linux-image-${verabi}-${sub}_${verfull}_${arch}.deb + cd $tmpdir + if ! [ -f $filename ]; then + $WGET $repo/linux-source-$ver/$filename + fi + if ! [ -f $filename ]; then + $WGET $repo_ports/linux-source-$ver/$filename + fi + if [ "$?" = "0" ]; then + echo -n "extracting..." + dpkg-deb --extract $filename tmp + if [ -f tmp/boot/abi-* ]; then + mv tmp/boot/abi-* $abidir/$arch/$sub + else + echo -n "NO ABI FILE..." + fi + rm -rf tmp $filename + echo "done." + else + echo "FAILED." + fi + cd $origdir + done +} + +# MAIN + +# Setup abi directory +mkdir -p $abidir +echo $abi > $abidir/abiname + +# NOTE: The flavours are hardcoded, because they may have changed from the +# current build. + +getall powerpc powerpc{,-smp,64-smp} +getall amd64 amd64-{generic,k8,xeon,server} +getall i386 386 686 k7 server{,-bigiron} +getall sparc sparc64{,-smp} +getall ia64 {itanium,mckinley}{,-smp} +getall hppa hppa{32,64}{,-smp} + +rmdir $tmpdir --- linux-source-2.6.17-2.6.17.1.orig/debian/commit-templates/external-driver +++ linux-source-2.6.17-2.6.17.1/debian/commit-templates/external-driver @@ -0,0 +1,16 @@ +# Name is the shortname of the driver (e.g. sk98lin). Description is +# basically the same as the one-line summary in Kconfig. URL is the +# location where the file can be downloaded from. Mask is +EXTERNAL DRIVER: +Description: +# These are used to check for newer versions. URL is the location where +# the file can be downloaded from. Mask is regex used to look for the +# filename (tarball), and version is the version being committed. +# Example: +# +# Url: http://www.foo.com/files/ +# Mask: foobar-(.*).tar.gz +# Version: 1.0.002 +Url: +Mask: +Version: --- linux-source-2.6.17-2.6.17.1.orig/debian/commit-templates/bumpabi +++ linux-source-2.6.17-2.6.17.1/debian/commit-templates/bumpabi @@ -0,0 +1 @@ +[UBUNTU:debian] Bump ABI --- linux-source-2.6.17-2.6.17.1.orig/debian/commit-templates/update-configs +++ linux-source-2.6.17-2.6.17.1/debian/commit-templates/update-configs @@ -0,0 +1 @@ +[UBUNTU:debian] Update configs --- linux-source-2.6.17-2.6.17.1.orig/debian/commit-templates/newrelease +++ linux-source-2.6.17-2.6.17.1/debian/commit-templates/newrelease @@ -0,0 +1 @@ +[UBUNTU:debian] Start next release --- linux-source-2.6.17-2.6.17.1.orig/debian/commit-templates/patch +++ linux-source-2.6.17-2.6.17.1/debian/commit-templates/patch @@ -0,0 +1,16 @@ +# Examples: +# +# [UBUNTU:usb/media/spca5xx] Fix compile warnings +# +# [UBUNTU:debian] Update changelog +# +[UBUNTU:] + +# Only include PatchAuthor if it is not included in the Signed-off-by +# lines at the bottom +PatchAuthor: +# One of Submitted, Unsubmitted, Unknown, Rejected, "Ubuntu only" or "Merged in X.X.X" +UpstreamStatus: +# Reference a bug or mailing list URL +#Reference: +# Put detailed description here --- linux-source-2.6.17-2.6.17.1.orig/debian/copyright +++ linux-source-2.6.17-2.6.17.1/debian/copyright @@ -0,0 +1,37 @@ +This is the Debian GNU/Linux prepackaged version of the Linux kernel. +Linux was written by Linus Torvalds +and others. + +This package was put together by Simon Shapiro , from +sources retrieved from directories under +ftp.cs.helsinki.fi:/pub/Software/Linux/Kernel/ +The sources may be found at most Linux ftp sites, including +ftp://ftp.kernel.org/pub/linux/kernel/ + +This package was maintained by Herbert Xu +from March 1997 to Oct 2004. + +This package was then maintained by Fabio M. Di Nitto +with contribution from several people from Oct 2004 to Aug 2005. + +This package is currently maintained by the +Ubuntu Kernel Team + +Linux is copyrighted by Linus Torvalds and others. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; version 2 dated June, 1991. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA + 02111-1307, USA. + +On Debian GNU/Linux systems, the complete text of the GNU General +Public License can be found in `/usr/share/common-licenses/GPL'. --- linux-source-2.6.17-2.6.17.1.orig/debian/official +++ linux-source-2.6.17-2.6.17.1/debian/official @@ -0,0 +1 @@ +This is the Ubuntu version of Linux 2.6.17 --- linux-source-2.6.17-2.6.17.1.orig/debian/control.stub +++ linux-source-2.6.17-2.6.17.1/debian/control.stub @@ -0,0 +1,773 @@ +Source: linux-source-2.6.17 +Section: devel +Priority: optional +Maintainer: Ben Collins +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 3), kernel-package (>= 10.049ubuntu2), module-init-tools, kernel-wedge (>= 2.24ubuntu1), gcc-3.4-hppa64 [hppa], binutils-hppa64 [hppa], gcc-3.4 [hppa], m4, unifdef +Build-Depends-Indep: xmlto, docbook-utils, gs, transfig, bzip2, sharutils + +Package: linux-kernel-devel +Architecture: all +Section: devel +Priority: optional +Depends: build-essential, git-core, gitk, rsync, curl, openssh-client, debhelper, kernel-package, kernel-wedge +Description: Linux kernel hacking dependencies + This is a dummy package that will install all possible packages + required to hack comfortably on the kernel. + +Package: linux-source-2.6.17 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.17 with Ubuntu patches + This package provides the source code for the Linux kernel version 2.6.17. + . + You may configure the kernel to your setup by typing "make config" and + following instructions, but you could get ncursesX.X-dev and try "make + menuconfig" for a jazzier, and easier to use interface. There are options + to use QT or GNOME based configuration interfaces, but they need + additional packages to be installed. Also, please read the detailed + documentation in the file + /usr/share/doc/linux-source-2.6.17/README.headers.gz. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc-2.6.17 +Architecture: all +Section: doc +Priority: optional +Provides: linux-doc-2.6 +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Depends: coreutils | fileutils (>= 4.0) +Description: Linux kernel specific documentation for version 2.6.17 + This package provides the various readme's in the 2.6.17 kernel + Documentation/ subdirectory: these typically contain kernel-specific + installation notes for some drivers for example. See + /usr/share/doc/linux-doc-2.6.17/Documentation/00-INDEX for a list of what + is contained in each file. Please read the Changes file, as it contains + information about the problems, which may result by upgrading your + kernel. + +Package: linux-headers-2.6.17-50 +Architecture: amd64 i386 powerpc sparc ia64 hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.17 + This package provides kernel header files for version 2.6.17, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details + +Package: linux-libc-dev +Architecture: amd64 i386 powerpc sparc ia64 hppa +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1) +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6) +Provides: linux-kernel-headers +Conflicts: linux-kernel-headers +Replaces: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. + +Package: linux-image-kdump +Architecture: i386 +Depends: kexec-tools (>= 1.101-2ubuntu1) +Description: Linux Kernel Crash Dump Image. + This package provides a kernel suitable for use as a crash dump kernel. + It's main purpose is to be booted after the main kernel has crashed, in + order to capture crash information. + . + Kernel Crash Dump is only available on i386, x86_64(amd64) and PowerPC64 + systems. + . + Please read the information in /usr/share/doc/linux-image-kdump/ + for how to setup this kernel. + +Package: linux-image-2.6.17-50-hppa32 +Architecture: hppa +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 32-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.17 on + 32-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa32 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-hppa32 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 32-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.17 on + 32-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-hppa32 +Architecture: hppa +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 32-bit HP PA-RISC SMP + This package provides a kernel debug image for version 2.6.17 on + 32-bit HP PA-RISC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-hppa64 +Architecture: hppa +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.17 on + 64-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-hppa64 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.17 on + 64-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-hppa64 +Architecture: hppa +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit HP PA-RISC SMP + This package provides a kernel debug image for version 2.6.17 on + 64-bit HP PA-RISC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-386 +Architecture: i386 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on i386 + This package contains the Linux kernel image for version 2.6.17 on + i386. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Alternate x86 (486 and better) processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-386 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-386 +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on i386 + This package provides kernel header files for version 2.6.17 on + i386. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-386 +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on i386 + This package provides a kernel debug image for version 2.6.17 on + i386. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-server-bigiron +Architecture: i386 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on BigIron Server Equipment + This package contains the Linux kernel image for version 2.6.17 on + BigIron Server Equipment. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports high end x86 processors. + . + Geared toward large server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server-bigiron meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-server-bigiron +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on BigIron Server Equipment + This package provides kernel header files for version 2.6.17 on + BigIron Server Equipment. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-server-bigiron +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on BigIron Server Equipment + This package provides a kernel debug image for version 2.6.17 on + BigIron Server Equipment. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-itanium +Architecture: ia64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on Itanium SMP + This package contains the Linux kernel image for version 2.6.17 on + Itanium SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-itanium meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-itanium +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on Itanium SMP + This package provides kernel header files for version 2.6.17 on + Itanium SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-itanium +Architecture: ia64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on Itanium SMP + This package provides a kernel debug image for version 2.6.17 on + Itanium SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-mckinley +Architecture: ia64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on Itanium II SMP + This package contains the Linux kernel image for version 2.6.17 on + Itanium II SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium II SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-mckinley meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-mckinley +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on Itanium II SMP + This package provides kernel header files for version 2.6.17 on + Itanium II SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-mckinley +Architecture: ia64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on Itanium II SMP + This package provides a kernel debug image for version 2.6.17 on + Itanium II SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-powerpc +Architecture: powerpc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.17 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 32-bit PowerPC + This package provides kernel header files for version 2.6.17 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.17 on + 32-bit PowerPC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-powerpc-smp +Architecture: powerpc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.17 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.17 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.17 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-powerpc64-smp +Architecture: powerpc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.17 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.17 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.17 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-sparc64 +Architecture: sparc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit UltraSPARC + This package contains the Linux kernel image for version 2.6.17 on + 64-bit UltraSPARC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-sparc64 +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit UltraSPARC + This package provides kernel header files for version 2.6.17 on + 64-bit UltraSPARC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-sparc64 +Architecture: sparc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit UltraSPARC + This package provides a kernel debug image for version 2.6.17 on + 64-bit UltraSPARC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-sparc64-smp +Architecture: sparc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit UltraSPARC SMP + This package contains the Linux kernel image for version 2.6.17 on + 64-bit UltraSPARC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-sparc64-smp +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit UltraSPARC SMP + This package provides kernel header files for version 2.6.17 on + 64-bit UltraSPARC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-sparc64-smp +Architecture: sparc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit UltraSPARC SMP + This package provides a kernel debug image for version 2.6.17 on + 64-bit UltraSPARC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-generic +Architecture: i386 amd64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.17 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on x86/x86_64 + This package provides kernel header files for version 2.6.17 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on x86/x86_64 + This package provides a kernel debug image for version 2.6.17 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-server +Architecture: i386 amd64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.17 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on x86/x86_64 + This package provides kernel header files for version 2.6.17 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on x86/x86_64 + This package provides a kernel debug image for version 2.6.17 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. --- linux-source-2.6.17-2.6.17.1.orig/debian/ChangeLog-2.6.17 +++ linux-source-2.6.17-2.6.17.1/debian/ChangeLog-2.6.17 @@ -0,0 +1,89867 @@ +commit 11410daeb1edff4e433dd920053428e3614d29da +Author: Greg Kroah-Hartman +Date: Fri Sep 8 20:23:25 2006 -0700 + + Linux 2.6.17.13 + +commit 722cc750d76f384c5b881a1dad7e1e12c5d7fb79 +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:19 2006 -0700 + + [PATCH] lib: add idr_replace + + This patch adds idr_replace() to replace an existing pointer in a single + operation. + + Device-mapper will use this to update the pointer it stored against a given + id. + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + Signed-off-by: Greg Kroah-Hartman + +commit 386986a5c2f0d5bd4a9b184f9093391a581bf601 +Author: Alan Cox +Date: Thu Sep 7 01:33:03 2006 +0200 + + [PATCH] pci_ids.h: add some VIA IDE identifiers + + pci_ids.h: add some VIA IDE identifiers + + Signed-off-by: Alan Cox + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman +commit 9e1c66a905bb1712c9ecb9659339b99a11c01ee6 +Author: Greg Kroah-Hartman +Date: Fri Sep 8 14:58:33 2006 -0700 + + Linux 2.6.17.12 + +commit b3c725e4a9a403d86770d43d57eb0f016f055fac +Author: Stephen Hemminger +Date: Wed Sep 6 10:17:58 2006 -0700 + + sky2: version 1.6.1 + + Since this code incorporates some of the fixes from 2.6.18, change + the version number. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit 983e6379274534e80c1bcf9ba8ed7ddb50e4eb17 +Author: Stephen Hemminger +Date: Wed Sep 6 10:17:57 2006 -0700 + + sky2: fix fiber support + + Fix support for fiber based devices. Needed to keep track of PMD type to + add workaround in setup. Add support for gigabit half duplex fiber. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit 3489a9e868343cb4c49a8bea541c324ae50366bc +Author: Stephen Hemminger +Date: Wed Sep 6 10:17:56 2006 -0700 + + sky2: MSI test timing + + The test for MSI IRQ could have timing issues. The PCI write needs to be + pushed out before waiting, and the wait queue should be initialized before + the IRQ. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit f117ca328f2de3ca2db90d5775031152fe0c2496 +Author: Stephen Hemminger +Date: Wed Sep 6 10:17:55 2006 -0700 + + sky2: use dev_alloc_skb for receive buffers + + Several code paths assume an additional 16 bytes of header padding + on the receive path. Use dev_alloc_skb to get that padding. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit 15d658cb2010ec52e74920cfa64ef0427191ec3e +Author: Stephen Hemminger +Date: Wed Sep 6 10:17:54 2006 -0700 + + sky2: clear status IRQ after empty + + Don't clear status IRQ until list has been read to avoid causing + status list wraparound. Clearing IRQ forces a Transmit Status update + if it is pending. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit 669763679043a814febae9ac1501bd2c9f848559 +Author: Stephen Hemminger +Date: Wed Sep 6 10:17:53 2006 -0700 + + sky2: accept flow control + + Don't program the GMAC to reject flow control packets. + This maybe the cause of some of the transmit hangs. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit e2b53b19856422ad050fadb5f30424c53698eb36 +Author: Daniel Kobras +Date: Sun Aug 27 01:23:24 2006 -0700 + + dm: Fix deadlock under high i/o load in raid1 setup. + + On an nForce4-equipped machine with two SATA disk in raid1 setup using dmraid, + we experienced frequent deadlock of the system under high i/o load. 'cat + /dev/zero > ~/zero' was the most reliable way to reproduce them: Randomly + after a few GB, 'cp' would be left in 'D' state along with kjournald and + kmirrord. The functions cp and kjournald were blocked in did vary, but + kmirrord's wchan always pointed to 'mempool_alloc()'. We've seen this pattern + on 2.6.15 and 2.6.17 kernels. http://lkml.org/lkml/2005/4/20/142 indicates + that this problem has been around even before. + + So much for the facts, here's my interpretation: mempool_alloc() first tries + to atomically allocate the requested memory, or falls back to hand out + preallocated chunks from the mempool. If both fail, it puts the calling + process (kmirrord in this case) on a private waitqueue until somebody refills + the pool. Where the only 'somebody' is kmirrord itself, so we have a + deadlock. + + I worked around this problem by falling back to a (blocking) kmalloc when + before kmirrord would have ended up on the waitqueue. This defeats part of + the benefits of using the mempool, but at least keeps the system running. And + it could be done with a two-line change. Note that mempool_alloc() clears the + GFP_NOIO flag internally, and only uses it to decide whether to wait or return + an error if immediate allocation fails, so the attached patch doesn't change + behaviour in the non-deadlocking case. Path is against current git + (2.6.18-rc4), but should apply to earlier versions as well. I've tested on + 2.6.15, where this patch makes the difference between random lockup and a + stable system. + + Signed-off-by: Daniel Kobras + Acked-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit eeae03f8f7842d4a981e54b5a2a76b5dbacee82e +Author: Yingchao Zhou +Date: Sun Aug 27 01:23:46 2006 -0700 + + Remove redundant up() in stop_machine() + + An up() is called in kernel/stop_machine.c on failure, and also in the + caller (unconditionally). + + Signed-off-by: Zhou Yingchao + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 1a9546a59f5792d2baeedb6b290a9449e3c43f9e +Author: Alan Cox +Date: Wed Aug 30 11:35:49 2006 -0700 + + Missing PCI id update for VIA IDE + + The following change from -mm is important to 2.6.18 (actually to 2.6.17 + but its too late for that). This was contributed over three months ago + by VIA to Bartlomiej and nothing happened. As a result the new chipset + is now out and Linux won't run on it. By the time 2.6.18 is finalised + this will be the defacto standard VIA chipset so support would be a good + plan. + + Tested in -mm for a while, its essentially a PCI ident update but for + the bridge chip because VIA do things in weird ways. + + + Signed-off-by: Greg Kroah-Hartman + +commit f3658cfac5012abbb8bed0bb027983e1cdf168bc +Author: Chen-Li Tien +Date: Tue Sep 5 22:15:08 2006 +0200 + + PKTGEN: Fix oops when used with balance-tlb bonding + + Signed-off-by: Chen-Li Tien + Signed-off-by: David S. Miller + Signed-off-by: Adrian Bunk + +commit ee2abb104a850954eb54b2bf6579463fad146634 +Author: David S. Miller +Date: Wed Sep 6 06:42:02 2006 -0700 + + PKTGEN: Make sure skb->{nh,h} are initialized in fill_packet_ipv6() too. + + [PKTGEN]: Make sure skb->{nh,h} are initialized in fill_packet_ipv6() too. + + Mirror the bug fix from fill_packet_ipv4() + + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit d6b7fe9e1d58514758c6dfe54f949333e830485e +Author: Robin Holt +Date: Fri Sep 1 10:41:39 2006 -0500 + + Silent data corruption caused by XPC + + Jack Steiner identified a problem where XPC can cause a silent + data corruption. On module load, the placement may cause the + xpc_remote_copy_buffer to span two physical pages. DMA transfers are + done to the start virtual address translated to physical. + + This patch changes the buffer from a statically allocated buffer to a + kmalloc'd buffer. Dean Nelson reviewed this before posting. I have + tested it in the configuration that was showing the memory corruption + and verified it works. I also added a BUG_ON statement to help catch + this if a similar situation is encountered. + + Signed-off-by: Robin Holt + Signed-off-by: Dean Nelson + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + Signed-off-by: Greg Kroah-Hartman + +commit 4ccc9a4b06b170b88d25bfd2d50fce487ed1471c +Author: Alan Stern +Date: Thu Aug 31 14:18:39 2006 -0400 + + uhci-hcd: fix list access bug + + When skipping to the last TD of an URB, go to the _last_ entry in the + list instead of the _first_ entry (as780). This fixes Bugzilla #6747 and + possibly others. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 4be6107d35a5b5f8eac9b92eef1e243a033a3f39 +Author: Ernie Petrides +Date: Sat Aug 26 10:20:45 2006 -0400 + + binfmt_elf: fix checks for bad address + + Fix check for bad address; use macro instead of open-coding two checks. + + Taken from RHEL4 kernel update. + + For background, the BAD_ADDR() macro should return TRUE if the address is + TASK_SIZE, because that's the lowest address that is *not* valid for + user-space mappings. The macro was correct in binfmt_aout.c but was wrong + for the "equal to" case in binfmt_elf.c. There were two in-line validations + of user-space addresses in binfmt_elf.c, which have been appropriately + converted to use the corrected BAD_ADDR() macro in the patch you posted + yesterday. Note that the size checks against TASK_SIZE are okay as coded. + + The additional changes that I propose are below. These are in the error + paths for bad ELF entry addresses once load_elf_binary() has already + committed to exec'ing the new image (following the tearing down of the + task's original address space). + + The 1st hunk deals with the interp-side of the outer "if". There were two + problems here. The printk() should be removed because this path can be + triggered at will by a bogus interpreter image created and used by a + malicious user. Further, the error code should not be ENOEXEC, because that + causes the loop in search_binary_handler() to continue trying other exec + handlers (twice, in fact). But it's too late for this to work correctly, + because the user address space has already been torn down, and an exec() + failure cannot be returned to the user code because the code no longer + exists. The only recovery is to force a SIGSEGV, but it's best to terminate + the search loop immediately. I somewhat arbitrarily chose EINVAL as a + fallback error code, but any error returned by load_elf_interp() will + override that (but this value will never be seen by user-space). + + The 2nd hunk deals with the non-interp-side of the outer "if". There were + two problems here as well. The SIGSEGV needs to be forced, because a prior + sigaction() syscall might have set the associated disposition to SIG_IGN. + And the ENOEXEC should be changed to EINVAL as described above. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Greg Kroah-Hartman + +commit 2cd6b01ad38d34b805a0a052725ec3f37e387ecd +Author: Christian Borntraeger +Date: Wed Aug 30 07:38:11 2006 +0200 + + bug in futex unqueue_me + + This patch adds a barrier() in futex unqueue_me to avoid aliasing of two + pointers. + + On my s390x system I saw the following oops: + + Unable to handle kernel pointer dereference at virtual kernel address + 0000000000000000 + Oops: 0004 [#1] + CPU: 0 Not tainted + Process mytool (pid: 13613, task: 000000003ecb6ac0, ksp: 00000000366bdbd8) + Krnl PSW : 0704d00180000000 00000000003c9ac2 (_spin_lock+0xe/0x30) + Krnl GPRS: 00000000ffffffff 000000003ecb6ac0 0000000000000000 0700000000000000 + 0000000000000000 0000000000000000 000001fe00002028 00000000000c091f + 000001fe00002054 000001fe00002054 0000000000000000 00000000366bddc0 + 00000000005ef8c0 00000000003d00e8 0000000000144f91 00000000366bdcb8 + Krnl Code: ba 4e 20 00 12 44 b9 16 00 3e a7 84 00 08 e3 e0 f0 88 00 04 + Call Trace: + ([<0000000000144f90>] unqueue_me+0x40/0xe4) + [<0000000000145a0c>] do_futex+0x33c/0xc40 + [<000000000014643e>] sys_futex+0x12e/0x144 + [<000000000010bb00>] sysc_noemu+0x10/0x16 + [<000002000003741c>] 0x2000003741c + + The code in question is: + + static int unqueue_me(struct futex_q *q) + { + int ret = 0; + spinlock_t *lock_ptr; + + /* In the common case we don't take the spinlock, which is nice. */ + retry: + lock_ptr = q->lock_ptr; + if (lock_ptr != 0) { + spin_lock(lock_ptr); + /* + * q->lock_ptr can change between reading it and + * spin_lock(), causing us to take the wrong lock. This + * corrects the race condition. + [...] + + and my compiler (gcc 4.1.0) makes the following out of it: + + 00000000000003c8 : + 3c8: eb bf f0 70 00 24 stmg %r11,%r15,112(%r15) + 3ce: c0 d0 00 00 00 00 larl %r13,3ce + 3d0: R_390_PC32DBL .rodata+0x2a + 3d4: a7 f1 1e 00 tml %r15,7680 + 3d8: a7 84 00 01 je 3da + 3dc: b9 04 00 ef lgr %r14,%r15 + 3e0: a7 fb ff d0 aghi %r15,-48 + 3e4: b9 04 00 b2 lgr %r11,%r2 + 3e8: e3 e0 f0 98 00 24 stg %r14,152(%r15) + 3ee: e3 c0 b0 28 00 04 lg %r12,40(%r11) + /* write q->lock_ptr in r12 */ + 3f4: b9 02 00 cc ltgr %r12,%r12 + 3f8: a7 84 00 4b je 48e + /* if r12 is zero then jump over the code.... */ + 3fc: e3 20 b0 28 00 04 lg %r2,40(%r11) + /* write q->lock_ptr in r2 */ + 402: c0 e5 00 00 00 00 brasl %r14,402 + 404: R_390_PC32DBL _spin_lock+0x2 + /* use r2 as parameter for spin_lock */ + + So the code becomes more or less: + if (q->lock_ptr != 0) spin_lock(q->lock_ptr) + instead of + if (lock_ptr != 0) spin_lock(lock_ptr) + + Which caused the oops from above. + After adding a barrier gcc creates code without this problem: + [...] (the same) + 3ee: e3 c0 b0 28 00 04 lg %r12,40(%r11) + 3f4: b9 02 00 cc ltgr %r12,%r12 + 3f8: b9 04 00 2c lgr %r2,%r12 + 3fc: a7 84 00 48 je 48c + 400: c0 e5 00 00 00 00 brasl %r14,400 + 402: R_390_PC32DBL _spin_lock+0x2 + + As a general note, this code of unqueue_me seems a bit fishy. The retry logic + of unqueue_me only works if we can guarantee, that the original value of + q->lock_ptr is always a spinlock (Otherwise we overwrite kernel memory). We + know that q->lock_ptr can change. I dont know what happens with the original + spinlock, as I am not an expert with the futex code. + + Cc: Martin Schwidefsky + Cc: Rusty Russell + Acked-by: Ingo Molnar + Cc: Thomas Gleixner + Signed-off-by: Christian Borntraeger + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit f4eb9f37abad092ac27fabc7d451d6980fff8fb1 +Author: Trond Myklebust +Date: Tue Aug 29 02:15:54 2006 -0400 + + fcntl(F_SETSIG) fix + + fcntl(F_SETSIG) no longer works on leases because + lease_release_private_callback() gets called as the lease is copied in + order to initialise it. + + The problem is that lease_alloc() performs an unnecessary initialisation, + which sets the lease_manager_ops. Avoid the problem by allocating the + target lease structure using locks_alloc_lock(). + + Signed-off-by: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit a13aeb6eb26f3457e47f0c604104e30ed8262ca9 +Author: YOSHIFUJI Hideaki +Date: Thu Aug 31 16:06:16 2006 -0700 + + IPV6 OOPS'er triggerable by any user + + [IPV6]: Fix kernel OOPs when setting sticky socket options. + + Bug noticed by Remi Denis-Courmont . + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit e564f8a9cc64ebc06794d716e3240538b4a61f28 +Author: Sridhar Samudrala +Date: Mon Aug 28 13:55:32 2006 -0700 + + SCTP: Fix sctp_primitive_ABORT() call in sctp_close(). + + With the recent fix, the callers of sctp_primitive_ABORT() + need to create an ABORT chunk and pass it as an argument rather + than msghdr that was passed earlier. + + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + +commit 24e2c32c847ab496bd79d417265534ff3da7b009 +Author: David S. Miller +Date: Mon Aug 28 00:40:40 2006 -0700 + + SPARC64: Fix X server crashes on sparc64 + + [SPARC64]: Fix X server hangs due to large pages. + + This problem was introduced by changeset + 14778d9072e53d2171f66ffd9657daff41acfaed + + Unlike the hugetlb code paths, the normal fault code is not setup to + propagate PTE changes for large page sizes correctly like the ones we + make for I/O mappings in io_remap_pfn_range(). + + It is absolutely necessary to update all sub-ptes of a largepage + mapping on a fault. Adding special handling for this would add + considerably complexity to tlb_batch_add(). So let's just side-step + the issue and forcefully dirty any writable PTEs created by + io_remap_pfn_range(). + + The only other real option would be to disable to large PTE code of + io_remap_pfn_range() and we really don't want to do that. + + Much thanks to Mikael Pettersson for tracking down this problem and + testing debug patches. + + Signed-off-by: David S. Miller + +commit 88704f0be8a67a1676b3a00b7e25d718ae2f4957 +Author: Michael Chan +Date: Fri Aug 25 14:54:13 2006 -0700 + + TG3: Disable TSO by default + + Disable TSO by default on some chips due to hardware errata. + + Enabling TSO can lead to tx timeouts in some cases when the TSO + header size exceeds 80 bytes on the affected chips. This limit + can be exceeded when the TCP header contains the timestamp option + plus 2 SACK blocks, for example. A more complete workaround is + available in the next 2.6.18 kernel. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 8135c5c1b9f88c5e1147a5275cd07782c3a54761 +Author: Neil Brown +Date: Mon Jun 26 00:27:26 2006 -0700 + + dm: mirror sector offset fix + + The device-mapper core does not perform any remapping of bios before passing + them to the targets. If a particular mapping begins part-way into a device, + targets obtain the sector relative to the start of the mapping by subtracting + ti->begin. + + The dm-raid1 target didn't do this everywhere: this patch fixes it, taking + care to subtract ti->begin exactly once for each bio. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Neil Brown + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 16470822339528fff62338f8cd87a7c48ef2cfa2 +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:25 2006 -0700 + + dm: fix block device initialisation + + In alloc_dev(), we register the device with the block layer and then continue + to initialize the device. But register_disk() makes the device available to + be opened before we have completed initialising it. + + This patch moves the final bits of the initialization above the disk + registration. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 659a8ced33c4e01ff0807ba42ca6697a81fd26eb +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:25 2006 -0700 + + dm: add module ref counting + + The reference counting on dm-mod is zero if no mapped devices are open. This + is incorrect, and can lead to an oops if the module is unloaded while mapped + devices exist. + + This patch claims a reference to the module whenever a device is created, and + drops it again when the device is freed. + + Devices must be removed before dm-mod is unloaded. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 6731637067000c92d8957ddec764f31720c89c15 +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:24 2006 -0700 + + dm: fix mapped device ref counting + + To avoid races, _minor_lock must be held while changing mapped device + reference counts. + + There are a few paths where a mapped_device pointer is returned before a + reference is taken. This patch fixes them. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 1d62e5eb23afbc3a36795a165fe2ffae6268b57f +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:23 2006 -0700 + + dm: add DMF_FREEING + + There is a chicken and egg problem between the block layer and dm in which the + gendisk associated with a mapping keeps a reference-less pointer to the + mapped_device. + + This patch uses a new flag DMF_FREEING to indicate when the mapped_device is + no longer valid. This is checked to prevent any attempt to open the device + from succeeding while the device is being destroyed. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 5fcee2b37b0bcec3862c8a20ad9c260b795f18de +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:22 2006 -0700 + + dm: change minor_lock to spinlock + + While removing a device, another another thread might attempt to resurrect it. + + This patch replaces the _minor_lock mutex with a spinlock and uses + atomic_dec_and_lock() to serialize reference counting in dm_put(). + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit cb352363ced7914a6d7d2c17d86e746c4bd582dc +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:21 2006 -0700 + + dm: move idr_pre_get + + idr_pre_get() can sleep while allocating memory. + + The next patch will change _minor_lock into a spinlock, so this patch moves + idr_pre_get() outside the lock in preparation. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 84d73ab65454d09d4547c8d5357f237902b81189 +Author: Jeff Mahoney +Date: Mon Jun 26 00:27:21 2006 -0700 + + dm: fix idr minor allocation + + One part of the system can attempt to use a mapped device before another has + finished initialising it or while it is being freed. + + This patch introduces a place holder value, MINOR_ALLOCED, to mark the minor + as allocated but in a state where it can't be used, such as mid-allocation or + mid-free. At the end of the initialization, it replaces the place holder with + the pointer to the mapped_device, making it available to the rest of the dm + subsystem. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 208b2761fe4610452ac076630e241a95dcf79725 +Author: Alasdair G Kergon +Date: Mon Jun 26 00:27:18 2006 -0700 + + dm snapshot: unify chunk_size + + Persistent snapshots currently store a private copy of the chunk size. + Userspace also supplies the chunk size when loading a snapshot. Ensure + consistency by only storing the chunk_size in one place instead of two. + + + Currently the two sizes will differ if the chunk size supplied by userspace + does not match the chunk size an existing snapshot actually uses. Amongst + other problems, this causes an incorrect 'percentage full' to be reported. + + The patch ensures consistency by only storing the chunk_size in one place, + removing it from struct pstore. Some initialisation is delayed until the + correct chunk_size is known. If read_header() discovers that the wrong chunk + size was supplied, the 'area' buffer (which the header already got read into) + is reinitialised to the correct size. + + [akpm: too late for 2.6.17 - suitable for 2.6.17.x after it has settled] + + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 2336231e06979e7073132c22b121c34123f295a6 +Author: Neil Brown +Date: Fri Aug 4 10:53:40 2006 +1000 + + Have ext2 reject file handles with bad inode numbers early. + + This prevents bad inode numbers from triggering errors in + ext2_get_inode. + + + Signed-off-by: Neil Brown + Signed-off-by: Greg Kroah-Hartman + +commit 31e8b3a3708f75d9e012e2c2ed2b9d6d69ad0491 +Author: Stephen Hemminger +Date: Tue Aug 22 00:10:07 2006 -0700 + + Allow per-route window scale limiting + + There are black box devices out there, routers and firewalls and + whatnot, that simply cannot grok the TCP window scaling option + correctly. + + People should and do bark at the site running the device causing + the problems, but in the mean time folks do want a way to deal + with the problem. We don't want them to turn off window scaling + completely as that hurts performance of connections that would run + just fine with window scaling enabled. + + So give a way to do this on a per-route basis by limiting the + window scaling by the per-connection window clamp. Stephen's + changelog message explains how to do this using a route metric. + + [TCP]: Limit window scaling if window is clamped. + + This small change allows for easy per-route workarounds for broken hosts or + middleboxes that are not compliant with TCP standards for window scaling. + Rather than having to turn off window scaling globally. This patch allows + reducing or disabling window scaling if window clamp is present. + + Example: Mark Lord reported a problem with 2.6.17 kernel being unable to + access http://www.everymac.com + + # ip route add 216.145.246.23/32 via 10.8.0.1 window 65535 + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 9d3925d7a0eb89385cfef62020578baff230dfce +Author: Stephen Hemminger +Date: Tue Aug 22 17:19:28 2006 -0700 + + bridge-netfilter: don't overwrite memory outside of skb + + The bridge netfilter code needs to check for space at the + front of the skb before overwriting; otherwise if skb from + device doesn't have headroom, then it will cause random + memory corruption. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit 7cadd43d5a72cb042e09fed4816d818615b2ca73 +Author: Fernando Vazquez +Date: Fri Aug 25 17:13:07 2006 +0900 + + fix compilation error on IA64 + + The commit 8833ebaa3f4325820fe3338ccf6fae04f6669254 introduced a change that broke + IA64 compilation as shown below: + + gcc -Wp,-MD,arch/ia64/kernel/.entry.o.d -nostdinc -isystem /usr/lib/gcc/ia64-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -DHAVE_WORKING_TEXT_ALIGN -DHAVE_MODEL_SMALL_ATTRIBUTE -DHAVE_SERIALIZE_DIRECTIVE -D__ASSEMBLY__ -mconstant-gp -c -o arch/ia64/kernel/entry.o arch/ia64/kernel/entry.S + include/asm/mman.h: Assembler messages: + include/asm/mman.h:13: Error: Unknown opcode `int ia64_map_check_rgn(unsigned long addr,unsigned long len,' + include/asm/mman.h:14: Error: Unknown opcode `unsigned long flags)' + make[1]: *** [arch/ia64/kernel/entry.o] Error 1 + make: *** [arch/ia64/kernel] Error 2 + + The reason is that "asm/mman.h" is being included from entry.S indirectly through + "asm/pgtable.h" (see code snips below). + + * arch/ia64/kernel/entry.S: + ... + #include + ... + + * include/asm-ia64/pgtable.h: + ... + #include + ... + + * include/asm-ia64/mman.h + ... + #ifdef __KERNEL__ + #define arch_mmap_check ia64_map_check_rgn + int ia64_map_check_rgn(unsigned long addr, unsigned long len, + unsigned long flags); + #endif + ... + + Signed-off-by: Fernando Vazquez + Signed-off-by: Greg Kroah-Hartman + +commit ea624f5adfb84678011dd39422fe1366440a978b +Author: Herbert Xu +Date: Tue Aug 22 13:41:18 2006 -0700 + + Fix output framentation of paged-skbs + + [INET]: Use pskb_trim_unique when trimming paged unique skbs + + The IPv4/IPv6 datagram output path was using skb_trim to trim paged + packets because they know that the packet has not been cloned yet + (since the packet hasn't been given to anything else in the system). + + This broke because skb_trim no longer allows paged packets to be + trimmed. Paged packets must be given to one of the pskb_trim functions + instead. + + This patch adds a new pskb_trim_unique function to cover the IPv4/IPv6 + datagram output path scenario and replaces the corresponding skb_trim + calls with it. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 35d2f110af2b9415dec490a0f59303ee7b3ba41c +Author: Richard Purdie +Date: Tue Aug 22 17:17:05 2006 -0700 + + spectrum_cs: Fix firmware uploading errors + + This fixes firmware upload failures which prevent the driver from working. + + Signed-off-by: Richard Purdie + Cc: Dominik Brodowski + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 940d7bceb97c8989e700de946b0514acc9b739c5 +Author: Michael Rash +Date: Tue Aug 22 04:07:57 2006 +0200 + + TEXTSEARCH: Fix Boyer Moore initialization bug + + [TEXTSEARCH]: Fix Boyer Moore initialization bug + + The pattern is set after trying to compute the prefix table, which tries + to use it. Initialize it before calling compute_prefix_tbl, make + compute_prefix_tbl consistently use only the data from struct ts_bm + and remove the now unnecessary arguments. + + Signed-off-by: Michael Rash + Signed-off-by: Patrick McHardy + Acked-by: David Miller + Signed-off-by: Greg Kroah-Hartman +commit d2350c2ad1463a973b586cadb49c2fa0c83089b8 +Author: Greg Kroah-Hartman +Date: Wed Aug 23 14:16:33 2006 -0700 + + Linux 2.6.17.11 + +commit 338341c1cea5d13428c242c1f624df644c7fb068 +Author: Danny Tholen +Date: Fri Aug 18 16:10:16 2006 -0700 + + 1394: fix for recently added firewire patch that breaks things on ppc + + Recently a patch was added for preliminary suspend/resume handling on + !PPC_PMAC. However, this broke both suspend and firewire on powerpc + because it saves the pci state after the device has already been disabled. + + This moves the save state to before the pmac specific code. + + Signed-off-by: Danny Tholen + Cc: Stefan Richter + Cc: Benjamin Herrenschmidt + Cc: Ben Collins + Cc: Jody McIntyre + Acked-by: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit dc41bfe271fee237ae41e3cbd8b4789b60da3e53 +Author: NeilBrown +Date: Mon Aug 21 10:05:26 2006 +1000 + + MD: Fix a potential NULL dereference in md/raid1 + + At the point where this 'atomic_add' is, rdev could be NULL, as seen by + the fact that we test for this in the very next statement. + + Further is it is really the wrong place of the add. We could add to the + count of corrected errors once the are sure it was corrected, not before + trying to correct it. + + Signed-off-by: Neil Brown + Signed-off-by: Greg Kroah-Hartman + + + diff .prev/drivers/md/raid1.c ./drivers/md/raid1.c + +commit 49071b9f45d2483dbde395fd6aa11f53974e7665 +Author: Rafael J. Wysocki +Date: Tue Aug 15 17:19:24 2006 -0700 + + swsusp: Fix swap_type_of + + There is a bug in mm/swapfile.c#swap_type_of() that makes swsusp only be + able to use the first active swap partition as the resume device. Fix it. + + Signed-off-by: Rafael J. Wysocki + Cc: Hugh Dickins + Acked-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit f5ce8b3e07e46f4ca1408d5e42f561028cd69719 +Author: Michal Miroslaw +Date: Sun Aug 13 23:24:20 2006 -0700 + + dm: BUG/OOPS fix + + Fix BUG I tripped on while testing failover and multipathing. + + BUG shows up on error path in multipath_ctr() when parse_priority_group() + fails after returning at least once without error. The fix is to + initialize m->ti early - just after alloc()ing it. + + BUG: unable to handle kernel NULL pointer dereference at virtual address 00000000 + printing eip: + c027c3d2 + *pde = 00000000 + Oops: 0000 [#3] + Modules linked in: qla2xxx ext3 jbd mbcache sg ide_cd cdrom floppy + CPU: 0 + EIP: 0060:[] Not tainted VLI + EFLAGS: 00010202 (2.6.17.3 #1) + EIP is at dm_put_device+0xf/0x3b + eax: 00000001 ebx: ee4fcac0 ecx: 00000000 edx: ee4fcac0 + esi: ee4fc4e0 edi: ee4fc4e0 ebp: 00000000 esp: c5db3e78 + ds: 007b es: 007b ss: 0068 + Process multipathd (pid: 15912, threadinfo=c5db2000 task=ef485a90) + Stack: ec4eda40 c02816bd ee4fc4c0 00000000 f7e89498 f883e0bc c02816f6 f7e89480 + f7e8948c c0281801 ffffffea f7e89480 f883e080 c0281ffe 00000001 00000000 + 00000004 dfe9cab8 f7a693c0 f883e080 f883e0c0 ca4b99c0 c027c6ee 01400000 + Call Trace: + free_pgpaths+0x31/0x45 free_priority_group+0x25/0x2e + free_multipath+0x35/0x67 multipath_ctr+0x123/0x12d + dm_table_add_target+0x11e/0x18b populate_table+0x8a/0xaf + table_load+0x52/0xf9 ctl_ioctl+0xca/0xfc + table_load+0x0/0xf9 do_ioctl+0x3e/0x43 + vfs_ioctl+0x16c/0x178 sys_ioctl+0x48/0x60 + syscall_call+0x7/0xb + Code: 97 f0 00 00 00 89 c1 83 c9 01 80 e2 01 0f 44 c1 88 43 14 8b 04 24 59 5b 5e 5f 5d c3 53 89 c1 89 d3 ff 4a 08 0f 94 c0 84 c0 74 2a <8b> 01 8b 10 89 d8 e8 f6 fb ff ff 8b 03 8b 53 04 89 50 04 89 02 + EIP: [] dm_put_device+0xf/0x3b SS:ESP 0068:c5db3e78 + + Signed-off-by: Michal Miroslaw + Acked-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 67ce628f410668c5ddee2f4c7424a1bd8a8fc64b +Author: Alexey Kuznetsov +Date: Thu Aug 17 22:57:22 2006 -0700 + + Fix ipv4 routing locking bug + + [IPV4]: severe locking bug in fib_semantics.c + + Found in 2.4 by Yixin Pan . + + > When I read fib_semantics.c of Linux-2.4.32, write_lock(&fib_info_lock) = + > is used in fib_release_info() instead of write_lock_bh(&fib_info_lock). = + > Is the following case possible: a BH interrupts fib_release_info() while = + > holding the write lock, and calls ip_check_fib_default() which calls = + > read_lock(&fib_info_lock), and spin forever. + + Signed-off-by: Alexey Kuznetsov + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 8833ebaa3f4325820fe3338ccf6fae04f6669254 +Author: Kirill Korotaev +Date: Wed Aug 16 12:58:10 2006 +0400 + + IA64: local DoS with corrupted ELFs + + This patch prevents cross-region mappings + on IA64 and SPARC which could lead to system crash. + + davem@ confirmed: "This looks fine to me." :) + + Signed-Off-By: Pavel Emelianov + Signed-Off-By: Kirill Korotaev + Signed-off-by: Greg Kroah-Hartman + +commit 0872a284963a642ba748cbd75842138dd9a3bd00 +Author: Patrick McHardy +Date: Fri Aug 18 07:52:57 2006 +0200 + + ip_tables: fix table locking in ipt_do_table + + [NETFILTER]: ip_tables: fix table locking in ipt_do_table + + table->private might change because of ruleset changes, don't use it without + holding the lock. + + Signed-off-by: Patrick McHardy + Signed-off-by: Greg Kroah-Hartman + +commit 21fb3eb8606821cc654ee65ee28e18f4c43d47fa +Author: Daniel Ritz +Date: Fri Aug 18 16:50:40 2006 +0200 + + PCI: fix ICH6 quirks + + - add the ICH6(R) LPC to the ICH6 ACPI quirks. currently only the ICH6-M is + handled. [ PCI_DEVICE_ID_INTEL_ICH6_1 is the ICH6-M LPC, ICH6_0 is the ICH6(R) ] + - remove the wrong quirk calling asus_hides_smbus_lpc() for ICH6. the register + modified in asus_hides_smbus_lpc() has a different meaning in ICH6. + + Signed-off-by: Daniel Ritz + Cc: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 9df256a6742e951aef286bd8ffc859dd79509ad7 +Author: Olaf Hering +Date: Wed Aug 16 19:53:50 2006 +0200 + + SERIAL: icom: select FW_LOADER + + The icom driver uses request_firmware() + and thus needs to select FW_LOADER. + + Signed-off-by: maximilian attems + Signed-off-by: Olaf Hering + Signed-off-by: Greg Kroah-Hartman + +commit 024bd8b8e0a55a53422d5f6138974b2c83f0a73e +Author: Kirill Korotaev +Date: Sun Aug 13 23:24:23 2006 -0700 + + sys_getppid oopses on debug kernel + + sys_getppid() optimization can access a freed memory. On kernels with + DEBUG_SLAB turned ON, this results in Oops. As Dave Hansen noted, this + optimization is also unsafe for memory hotplug. + + So this patch always takes the lock to be safe. + + [oleg@tv-sign.ru: simplifications] + + Signed-off-by: Kirill Korotaev + Cc: Dave Hansen + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit bb417c4bad96b07f075b98f874fb28cf258f8065 +Author: Mark Huang +Date: Sat Aug 12 02:45:44 2006 +0200 + + ulog: fix panic on SMP kernels + + [NETFILTER]: ulog: fix panic on SMP kernels + + Fix kernel panic on various SMP machines. The culprit is a null + ub->skb in ulog_send(). If ulog_timer() has already been scheduled on + one CPU and is spinning on the lock, and ipt_ulog_packet() flushes the + queue on another CPU by calling ulog_send() right before it exits, + there will be no skbuff when ulog_timer() acquires the lock and calls + ulog_send(). Cancelling the timer in ulog_send() doesn't help because + it has already been scheduled and is running on the first CPU. + + Similar problem exists in ebt_ulog.c and nfnetlink_log.c. + + Signed-off-by: Mark Huang + Signed-off-by: Patrick McHardy + Signed-off-by: Greg Kroah-Hartman + +commit f60aad27513c78d0c0e5feaeb1013f8ce6c07a7c +Author: Kylene Jo Hall +Date: Thu Jul 13 12:24:36 2006 -0700 + + tpm: interrupt clear fix + + Under stress testing I found that the interrupt is not always cleared. + This is a bug and this patch should go into 2.6.18 and 2.6.17.x. + + Signed-off-by: Kylene Hall + Signed-off-by: Greg Kroah-Hartman + +commit 5a4ceb2adfc3f7d35fa07420582f626c8402e605 +Author: Stephen Hemminger +Date: Mon Aug 7 16:36:02 2006 -0700 + + ipx: header length validation needed + + This patch will linearize and check there is enough data. + It handles the pprop case as well as avoiding a whole audit of + the routing code. + + Signed-off-by: Stephen Hemminger + +commit a80b26d5597e62094c165c26e77fde4d4ab2e37e +Author: Andrew Morton +Date: Sat Aug 5 12:13:47 2006 -0700 + + disable debugging version of write_lock() + + We've confirmed that the debug version of write_lock() can get stuck for long + enough to cause NMI watchdog timeouts and hence a crash. + + We don't know why, yet. Disable it for now. + + Also disable the similar read_lock() code. Just in case. + + Thanks to Dave Olson for reporting and testing. + + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 2fc58b11d73cc8baafa61b70e4c749d466f92b2a +Author: Diego Calleja +Date: Sat Aug 5 12:14:55 2006 -0700 + + Fix BeFS slab corruption + + In bugzilla #6941, Jens Kilian reported: + + "The function befs_utf2nls (in fs/befs/linuxvfs.c) writes a 0 byte past the + end of a block of memory allocated via kmalloc(), leading to memory + corruption. This happens only for filenames which are pure ASCII and a + multiple of 4 bytes in length. [...] + + Without DEBUG_SLAB, this leads to further corruption and hard lockups; I + believe this is the bug which has made kernels later than 2.6.8 unusable + for me. (This must be due to changes in memory management, the bug has + been in the BeFS driver since the time it was introduced (AFAICT).) + + Steps to reproduce: + Create a directory (in BeOS, naturally :-) with files named, e.g., + "1", "22", "333", "4444", ... Mount it in Linux and do an "ls" or "find"" + + This patch implements the suggested fix. Credits to Jens Kilian for + debugging the problem and finding the right fix. + + Signed-off-by: Diego Calleja + Cc: Jens Kilian + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 216cf62f1fd2fba890d43956a8548eb10382b658 +Author: David Miller +Date: Wed Aug 9 02:33:28 2006 -0700 + + Fix IFLA_ADDRESS handling + + [RTNETLINK]: Fix IFLA_ADDRESS handling. + + The ->set_mac_address handlers expect a pointer to a + sockaddr which contains the MAC address, whereas + IFLA_ADDRESS provides just the MAC address itself. + + So whip up a sockaddr to wrap around the netlink + attribute for the ->set_mac_address call. + + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 7e9d4f4ffd29c60abc35d5bf535d3712f662567c +Author: Dmitry Mishin +Date: Wed Aug 9 02:36:33 2006 -0700 + + Fix timer race in dst GC code + + [NET]: add_timer -> mod_timer() in dst_run_gc() + + Patch from Dmitry Mishin : + + Replace add_timer() by mod_timer() in dst_run_gc + in order to avoid BUG message. + + CPU1 CPU2 + dst_run_gc() entered dst_run_gc() entered + spin_lock(&dst_lock) ..... + del_timer(&dst_gc_timer) fail to get lock + .... mod_timer() <--- puts + timer back + to the list + add_timer(&dst_gc_timer) <--- BUG because timer is in list already. + + Found during OpenVZ internal testing. + + At first we thought that it is OpenVZ specific as we + added dst_run_gc(0) call in dst_dev_event(), + but as Alexey pointed to me it is possible to trigger + this condition in mainstream kernel. + + F.e. timer has fired on CPU2, but the handler was preeempted + by an irq before dst_lock is tried. + Meanwhile, someone on CPU1 adds an entry to gc list and + starts the timer. + If CPU2 was preempted long enough, this timer can expire + simultaneously with resuming timer handler on CPU1, arriving + exactly to the situation described. + + Signed-off-by: Dmitry Mishin + Signed-off-by: Kirill Korotaev + Signed-off-by: Alexey Kuznetsov + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit b3b3410f3e2579314adcdd9366b5429ba06b07d7 +Author: Kirill Korotaev +Date: Wed Aug 9 02:35:21 2006 -0700 + + Kill HASH_HIGHMEM from route cache hash sizing + + [IPV4]: Limit rt cache size properly. + + During OpenVZ stress testing we found that UDP traffic with random src + can generate too much excessive rt hash growing leading finally to OOM + and kernel panics. + + It was found that for 4GB i686 system (having 1048576 total pages and + 225280 normal zone pages) kernel allocates the following route hash: + syslog: IP route cache hash table entries: 262144 (order: 8, 1048576 + bytes) => ip_rt_max_size = 4194304 entries, i.e. max rt size is + 4194304 * 256b = 1Gb of RAM > normal_zone + + Attached the patch which removes HASH_HIGHMEM flag from + alloc_large_system_hash() call. + + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 0ce4f0dbc2cb547077cbc903a53b4638ae0cac55 +Author: Stephen Hemminger +Date: Wed Aug 9 14:16:41 2006 -0700 + + sky2: phy power problem on 88e805x + + On the 88E805X chipsets (used in laptops), the PHY was not getting powered + out of shutdown properly. The variable reg1 was getting reused incorrectly. + This is probably the cause of the bug. + http://bugzilla.kernel.org/show_bug.cgi?id=6471 + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit bd2a1e115cf239c708747bae1cf1c0757686af50 +Author: Eric Sandeen +Date: Fri Aug 4 10:35:34 2006 -0500 + + Have ext3 reject file handles with bad inode numbers early + + blatantly ripped off from Neil Brown's ext2 patch. + + + Signed-off-by: Eric Sandeen + Acked-by: "Theodore Ts'o" + Signed-off-by: Greg Kroah-Hartman +commit b7baaa945c7f24984f4829e43a919fa209ac019d +Author: Greg Kroah-Hartman +Date: Tue Aug 22 12:09:35 2006 -0700 + + Linux 2.6.17.10 + +commit 4bf7989b2326fecad1181985f5fa9860d50fb89f +Author: Oleg Nesterov +Date: Tue Aug 22 21:22:13 2006 +0400 + + elv_unregister: fix possible crash on module unload + + An exiting task or process which didn't do I/O yet have no io context, + elv_unregister() should check it is not NULL. + + Signed-off-by: Oleg Nesterov + Acked-by: Jens Axboe + Signed-off-by: Greg Kroah-Hartman + +commit 7127be29378b1230eb8dd8b84f18d6b69c56e959 +Author: Jan Kara +Date: Tue Aug 15 13:56:26 2006 +0200 + + Fix possible UDF deadlock and memory corruption (CVE-2006-4145) + + UDF code is not really ready to handle extents larger that 1GB. This is + the easy way to forbid creating those. + + Also truncation code did not count with the case when there are no + extents in the file and we are extending the file. + + Signed-off-by: Jan Kara + Signed-off-by: Greg Kroah-Hartman + +commit 96ec9da385cf72c5f775e5f163420ea92e66ded2 +Author: Sridhar Samudrala +Date: Tue Aug 22 11:50:39 2006 -0700 + + Fix sctp privilege elevation (CVE-2006-3745) + + sctp_make_abort_user() now takes the msg_len along with the msg + so that we don't have to recalculate the bytes in iovec. + It also uses memcpy_fromiovec() so that we don't go beyond the + length allocated. + + It is good to have this fix even if verify_iovec() is fixed to + return error on overflow. + + Signed-off-by: Sridhar Samudrala + Signed-off-by: Greg Kroah-Hartman +commit 4c4f4930a6d3f5a499025aa751baa0373b3cf777 +Author: Greg Kroah-Hartman +Date: Fri Aug 18 09:26:24 2006 -0700 + + Linux 2.6.17.9 + +commit 35a472de81cfdb37f3cfb49fde4987d99b81f996 +Author: Olof Johansson +Date: Sun Aug 6 20:51:25 2006 -0500 + + [PATCH] powerpc: Clear HID0 attention enable on PPC970 at boot time (CVE-2006-4093) + + Clear HID0[en_attn] at CPU init time on PPC970. Closes CVE-2006-4093. + + Signed-off-by: Olof Johansson + Signed-off-by: Paul Mackerras + Signed-off-by: Greg Kroah-Hartman +commit d246e8b2f241c3b4670dc9779c7494606676210a +Author: Greg Kroah-Hartman +Date: Sun Aug 6 21:18:54 2006 -0700 + + Linux 2.6.17.8 + +commit a2f4638207875fb0a164cd39f16174ef794a1906 +Author: Takashi Iwai +Date: Fri Aug 4 20:37:33 2006 +0200 + + ALSA: Don't reject O_RDWR at opening PCM OSS + + Accept O_RDWR at opening a PCM OSS device that is read- or write-only, + just for the compatibility with the behavior of older versions. + + Signed-off-by: Takashi Iwai + Signed-off-by: Greg Kroah-Hartman + +commit 2181f8c0a96a7b0e29151330c2fae6e18831ed3a +Author: Steven Rostedt +Date: Thu Aug 3 12:28:11 2006 -0400 + + Add stable branch to maintainers file + + While helping someone to submit a patch to the stable branch, I noticed + that the stable branch is not listed in the MAINTAINERS file. This was + after I went there to look for the email addresses for the stable branch + list (stable@kernel.org). + + This patch adds the stable branch to the maintainers file so that people + can find where to send patches when they have a fix for the stable team. + + Signed-off-by: Steven Rostedt + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit e294e7d480581084e0a0a7044f8451023ae1a114 +Author: Paul Fulghum +Date: Wed Jul 26 14:10:29 2006 -0500 + + tty serialize flush_to_ldisc + + Serialize processing of tty buffers in flush_to_ldisc + to fix (very rare) corruption of tty buffer free list + on SMP systems. + + Signed-off-by: Paul Fulghum + Acked-by: Alan Cox + Signed-off-by: Greg Kroah-Hartman + +commit 3b6eaf273f4a41cbba86e0cb164e5d69c84c25a3 +Author: Martin Schwidefsky +Date: Wed Jul 12 16:39:55 2006 +0200 + + S390: fix futex_atomic_cmpxchg_inatomic + + [S390] fix futex_atomic_cmpxchg_inatomic + + futex_atomic_cmpxchg_inatomic has the same bug as the other + atomic futex operations: the operation needs to be done in the + user address space, not the kernel address space. Add the missing + sacf 256 & sacf 0. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Greg Kroah-Hartman + +commit 93257abd22720f4508e134e31c3f172c6c898d68 +Author: Andrew de Quincey +Date: Tue Jul 25 13:07:13 2006 -0400 + + Fix budget-av compile failure + + Currently I am doing lots of refactoring work in the dvb tree. This + bugfix became necessary to fix 2.6.17 whilst I was in the middle of this + work. Unfortunately after I tested the original code for the patch, I + generated the diff against the wrong tree (I accidentally used a tree + with part of the refactoring code in it). This resulted in the reported + compile errors because that tree (a) was incomplete, and (b) used + features which are simply not in the mainline kernel yet. + + Many apologies for the error and problems this has caused. :( + + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Greg Kroah-Hartman + +commit fed0a6b6fb78cd432863f29e83a458c9fd13a308 +Author: Andrew Morton +Date: Fri Jul 28 22:52:09 2006 -0400 + + cond_resched() fix + + Fix a bug identified by Zou Nan hai : + + If the system is in state SYSTEM_BOOTING, and need_resched() is true, + cond_resched() returns true even though it didn't reschedule. Consequently + need_resched() remains true and JBD locks up. + + Fix that by teaching cond_resched() to only return true if it really did call + schedule(). + + cond_resched_lock() and cond_resched_softirq() have a problem too. If we're + in SYSTEM_BOOTING state and need_resched() is true, these functions will drop + the lock and will then try to call schedule(), but the SYSTEM_BOOTING state + will prevent schedule() from being called. So on return, need_resched() will + still be true, but cond_resched_lock() has to return 1 to tell the caller that + the lock was dropped. The caller will probably lock up. + + Bottom line: if these functions dropped the lock, they _must_ call schedule() + to clear need_resched(). Make it so. + + Also, uninline __cond_resched(). It's largeish, and slowpath. + + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + Signed-off-by: Greg Kroah-Hartman + +commit accdd0e1f5080ec98f7bf87c5a8b255539e1ab4b +Author: Auke Kok +Date: Fri Jul 28 15:06:17 2006 -0700 + + e1000: add forgotten PCI ID for supported device + + The Intel(R) PRO/1000 82572EI card is fully supported by 7.0.33-k2 and + onward. Add the device ID so this card works with 2.6.17.y onward. This + device ID was accidentally omitted. + + Signed-off-by: Auke Kok + Signed-off-by: Greg Kroah-Hartman + +commit 9636beeac888673d0c5ae0587acbf5542a6015fb +Author: Neil Brown +Date: Sun Jul 30 03:03:01 2006 -0700 + + ext3: avoid triggering ext3_error on bad NFS file handle + + The inode number out of an NFS file handle gets passed eventually to + ext3_get_inode_block() without any checking. If ext3_get_inode_block() + allows it to trigger an error, then bad filehandles can have unpleasant + effect - ext3_error() will usually cause a forced read-only remount, or a + panic if `errors=panic' was used. + + So remove the call to ext3_error there and put a matching check in + ext3/namei.c where inode numbers are read off storage. + + [akpm@osdl.org: fix off-by-one error] + Signed-off-by: Neil Brown + Signed-off-by: Jan Kara + Cc: Marcel Holtmann + Cc: "Stephen C. Tweedie" + Cc: Eric Sandeen + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit de877c1d977aa0b55952cb7325956e5bd59fc75f +Author: Badari Pulavarty +Date: Sun Jul 30 03:04:14 2006 -0700 + + ext3 -nobh option causes oops + + For files other than IFREG, nobh option doesn't make sense. Modifications + to them are journalled and needs buffer heads to do that. Without this + patch, we get kernel oops in page_buffers(). + + Signed-off-by: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit d267cf77ff0425cd0f3292aa312588baaf304bb5 +Author: Neil Brown +Date: Thu Aug 3 10:20:12 2006 +1000 + + Fix race related problem when adding items to and svcrpc auth cache. + + Fix race related problem when adding items to and svcrpc auth cache. + + If we don't find the item we are lookng for, we allocate a new one, + and then grab the lock again and search to see if it has been added + while we did the alloc. + If it had been added we need to 'cache_put' the newly created item + that we are never going to use. But as it hasn't been initialised + properly, putting it can cause an oops. + + So move the ->init call earlier to that it will always be fully + initilised if we have to put it. + + Thanks to Philipp Matthias Hahn + for reporting the problem. + + Signed-off-by: Neil Brown + Signed-off-by: Greg Kroah-Hartman + +commit c21e358f1136635d6f2bbc6552efef8b01499254 +Author: Stefan Richter +Date: Wed Aug 2 19:40:06 2006 +0200 + + ieee1394: sbp2: enable auto spin-up for Maxtor disks + + At least Maxtor OneTouch III require a "start stop unit" command after + auto spin-down before the next access can proceed. This patch activates + the responsible code in scsi_mod for all Maxtor SBP-2 disks. + https://bugzilla.novell.com/show_bug.cgi?id=183011 + + Maybe that should be done for all SBP-2 disks, but better be cautious. + + Signed-off-by: Stefan Richter + Signed-off-by: Greg Kroah-Hartman + +commit b02ef087a8379fc757b894d6d2e0deff79ccdf20 +Author: Andrew Morton +Date: Sun Jul 30 03:03:28 2006 -0700 + + invalidate_bdev() speedup + + We can immediately bale from invalidate_bdev() if the blockdev has no + pagecache. + + This solves the huge IPI storms which hald is causing on the big ia64 + machines when it polls CDROM drives. + + Acked-by: Jes Sorensen + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit cd62705f099033ea8aeeb47688f4572b3532db93 +Author: David Miller +Date: Thu Jul 27 17:02:36 2006 -0700 + + Sparc64 quad-float emulation fix + + [SPARC64]: Fix quad-float multiply emulation. + + Something is wrong with the 3-multiply (vs. 4-multiply) optimized + version of _FP_MUL_MEAT_2_*(), so just use the slower version + which actually computes correct values. + + Noticed by Rene Rebe + + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit d3a03e82305595317f8d40a8c8154e731c51bb84 +Author: Stefan Rompf +Date: Mon Jul 24 13:54:15 2006 -0700 + + VLAN state handling fix + + [VLAN]: Fix link state propagation + + When the queue of the underlying device is stopped at initialization time + or the device is marked "not present", the state will be propagated to the + vlan device and never change. Based on an analysis by Patrick McHardy. + + Signed-off-by: Stefan Rompf + ACKed-by: Patrick McHardy + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 31d65c2bc7971b07e341d045a7063cfa90866225 +Author: Herbert Xu +Date: Mon Jul 31 08:50:37 2006 +1000 + + Update frag_list in pskb_trim + + [NET]: Update frag_list in pskb_trim + + When pskb_trim has to defer to ___pksb_trim to trim the frag_list part of + the packet, the frag_list is not updated to reflect the trimming. This + will usually work fine until you hit something that uses the packet length + or tail from the frag_list. + + Examples include esp_output and ip_fragment. + + Another problem caused by this is that you can end up with a linear packet + with a frag_list attached. + + It is possible to get away with this if we audit everything to make sure + that they always consult skb->len before going down onto frag_list. In + fact we can do the samething for the paged part as well to avoid copying + the data area of the skb. For now though, let's do the conservative fix + and update frag_list. + + Many thanks to Marco Berizzi for helping me to track down this bug. + + This 4-year old bug took 3 months to track down. Marco was very patient + indeed :) + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit ab96dcd3d043f6169c6c309012b8a6aa28b83e18 +Author: Alan Stern +Date: Mon Jul 24 12:06:55 2006 -0400 + + UHCI: Fix handling of short last packet + + This patch (as753) fixes the way uhci-hcd handles a short packet when it + is the last packet of an URB. Right now the driver handles short packets + the same no matter when they occur. However, the controller stops + transferring packets when the short packet is not the last one (otherwise + it would be reading beyond the end of the device's data) and needs to be + restarted, whereas no such need occurs when the short packet is the last + one. + + The result of the bug is that USB endpoint queues experience intermittent + hangs, a regression in 2.6.17 with respect to earlier kernels. The bug + was raised in Bugzilla #6752 and this patch fixed it. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 1e1f0476535c248fb65ac11e1ae4adee221a2fc3 +Author: Stephen Hemminger +Date: Mon Jul 17 13:51:50 2006 -0400 + + sky2: NAPI bug + + If the sky2 driver decides to defer processing because it's NAPI + packet quota is done, then it won't correctly handle the rest + when it is rescheduled. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + +commit e932b368e48ce2b9caf82c505b938a711ed4e045 +Author: Mark M. Hoffman +Date: Wed Jul 26 21:53:13 2006 +0200 + + i2c: Fix 'ignore' module parameter handling in i2c-core + + This patch fixes a bug in the handling of 'ignore' module parameters of I2C + client drivers. + + Signed-off-by: Mark M. Hoffman + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 73e6c2a4799708d6e4ccdf9b30b47422a969e053 +Author: Jean Delvare +Date: Wed Jul 26 21:50:15 2006 +0200 + + scx200_acb: Fix the block transactions + + The scx200_acb i2c bus driver pretends to support SMBus block + transactions, but in fact it implements the more simple I2C block + transactions. Additionally, it lacks sanity checks on the length + of the block transactions, which could lead to a buffer overrun. + + This fixes an oops reported by Alexander Atanasov: + http://marc.theaimsgroup.com/?l=linux-kernel&m=114970382125094 + + Thanks to Ben Gardner for fixing my bugs :) + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit f1a360dce49a51350f255fcd8d89fb132a9c3b60 +Author: Thomas Andrews +Date: Wed Jul 26 21:47:41 2006 +0200 + + scx200_acb: Fix the state machine + + Fix the scx200_acb state machine: + + * Nack was sent one byte too late on reads >= 2 bytes. + * Stop bit was set one byte too late on reads. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 4f40508af128fc5ead71aab6e9932039d2a07fd4 +Author: Patrick McHardy +Date: Tue Jul 25 02:31:14 2006 +0200 + + H.323 helper: fix possible NULL-ptr dereference + + [NETFILTER]: H.323 helper: fix possible NULL-ptr dereference + + An RCF message containing a timeout results in a NULL-ptr dereference if + no RRQ has been seen before. + + Noticed by the "SATURN tool", reported by Thomas Dillig + and Isil Dillig . + + Signed-off-by: Patrick McHardy + Signed-off-by: Greg Kroah-Hartman + +commit 7e92c4788d4bbc03d00553dda3c3572b33ae0d2b +Author: Marcel Holtmann +Date: Sun Jul 16 02:20:53 2006 +0200 + + Don't allow chmod() on the /proc// files + + Don't allow chmod() on the /proc// files + + This just turns off chmod() on the /proc// files, since there is no + good reason to allow it, and had we disallowed it originally, the nasty + /proc race exploit wouldn't have been possible. + + The other patches already fixed the problem chmod() could cause, so this + is really just some final mop-up.. + + This particular version is based off a patch by Eugene and Marcel which + had much better naming than my original equivalent one. + + Signed-off-by: Eugene Teo + Signed-off-by: Marcel Holtmann + Signed-off-by: Linus Torvalds + Signed-off-by: Greg Kroah-Hartman + +commit ef2a8a41fdd6f0c8079e6fd4cad1eebdce99aa9a +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Jun 15 04:41:52 2006 -0400 + + PCI: fix issues with extended conf space when MMCONFIG disabled because of e820 + + On 15 Jun 2006 03:45:10 +0200, Andi Kleen wrote: + > Anyways I would say that if the BIOS can't get MCFG right then + > it's likely not been validated on that board and shouldn't be used. + + According to Petr Vandrovec: + + ... "What is important (and checked) is address of MMCONFIG reported by MCFG + table... Unfortunately code does not bother with printing that address :-( + + "Another problem is that code has hardcoded that MMCONFIG area is 256MB large. + Unfortunately for the code PCI specification allows any power of two between 2MB + and 256MB if vendor knows that such amount of busses (from 2 to 128) will be + sufficient for system. With notebook it is quite possible that not full 8 bits + are implemented for MMCONFIG bus number." + + So here is a patch. Unfortunately my system still fails the test because + it doesn't reserve any part of the MMCONFIG area, but this may fix others. + + Booted on x86_64, only compiled on i386. x86_64 still remaps the max area + (256MB) even though only 2MB is checked... but 2.6.16 had no check at all + so it is still better. + + PCI: reduce size of x86 MMCONFIG reserved area check + + 1. Print the address of the MMCONFIG area when the test for that area + being reserved fails. + + 2. Only check if the first 2MB is reserved, as that is the minimum. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Acked-by: Arjan van de Ven + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Chris Wright +commit c271180a3da1e5b1fc2c5649281f3592d087ac16 +Author: Greg Kroah-Hartman +Date: Mon Jul 24 20:36:01 2006 -0700 + + Linux 2.6.17.7 + +commit 8456c78dfa94a54d0ac78cf5190b3b8c7ea045cf +Author: Kirill Korotaev +Date: Fri Jul 14 00:23:49 2006 -0700 + + struct file leakage + + 2.6.16 leaks like hell. While testing, I found massive leakage + (reproduced in openvz) in: + + *filp + *size-4096 + + And 1 object leaks in + *size-32 + *size-64 + *size-128 + + It is the fix for the first one. filp leaks in the bowels of namei.c. + + Seems, size-4096 is file table leaking in expand_fdtables. + + I have no idea what are the rest and why they show only accompanying + another leaks. Some debugging structs? + + [akpm@osdl.org, Trond: remove the IS_ERR() check] + Signed-off-by: Alexey Kuznetsov + Cc: Kirill Korotaev + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 44896b17f1c2d8824250e06bd07d7b5a4b7e6be4 +Author: Andrew Morton +Date: Thu Jul 6 23:59:50 2006 -0700 + + serial 8250: sysrq deadlock fix + + Fix http://bugzilla.kernel.org/show_bug.cgi?id=6716 + + Doing a sysrq over a serial line into an SMP machine presently deadlocks. + + Cc: Russell King + Cc: Enrico Scholz + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 7eb990848664564593c96c5d1cf148ce23b34732 +Author: Pavel Machek +Date: Sat Jul 8 17:37:31 2006 +0200 + + pdflush: handle resume wakeups + + 2.6.16 needs this. It was merged into 2.6.18-rc1 in + http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=d616e09ab33aa4d013a93c9b393efd5cebf78521 . + + pdflush is carefully designed to ensure that all wakeups have some + corresponding work to do - if a woken-up pdflush thread discovers that + it hasn't been given any work to do then this is considered an error. + + That all broke when swsusp came along - because a timer-delivered + wakeup to a frozen pdflush thread will just get lost. This causes the + pdflush thread to get lost as well: the writeback timer is supposed to + be re-armed by pdflush in process context, but pdflush doesn't execute + the callout which does this. + + Fix that up by ignoring the return value from try_to_freeze(): jsut + proceed, see if we have any work pending and only go back to sleep if + that is not the case. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + Signed-off-by: Pavel Machek + Signed-off-by: Greg Kroah-Hartman + +commit 3f2ffbcff824e464376eae8e62c4ef92deecdbc4 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Fri Jul 14 18:51:41 2006 -0400 + + ieee80211: TKIP requires CRC32 + + ieee80211_crypt_tkip will not work without CRC32. + + LD .tmp_vmlinux1 + net/built-in.o: In function `ieee80211_tkip_encrypt': + net/ieee80211/ieee80211_crypt_tkip.c:349: undefined reference to `crc32_le' + + Reported by Toralf Foerster + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Greg Kroah-Hartman + +commit 1e8cd841d65774e96f5a52b0faa898b7ffebcece +Author: Patrick McHardy +Date: Sat Jul 8 13:39:35 2006 -0700 + + Fix IPv4/DECnet routing rule dumping + + When more rules are present than fit in a single skb, the remaining + rules are incorrectly skipped. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 1dff316b54b9db4e17f191b4e12f032cde57b921 +Author: Kirill Korotaev +Date: Tue Jul 11 04:37:37 2006 -0700 + + fix fdset leakage + + When found, it is obvious. nfds calculated when allocating fdsets is + rewritten by calculation of size of fdtable, and when we are unlucky, we + try to free fdsets of wrong size. + + Found due to OpenVZ resource management (User Beancounters). + + Signed-off-by: Alexey Kuznetsov + Signed-off-by: Kirill Korotaev + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit b66a64d8fa30e003494040d4a7eb6587fa3fffcc +Author: Takashi Iwai +Date: Fri Jul 14 16:40:35 2006 +0200 + + Suppress irq handler mismatch messages in ALSA ISA drivers + + Suppress 'irq handler mismatch' messages at auto-probing of irqs + in ALSA ISA drivers. + + Signed-off-by: Takashi Iwai + Signed-off-by: Jaroslav Kysela + Signed-off-by: Greg Kroah-Hartman + +commit 7c7b60b196c9fd91425cb801ad3f317961310c12 +Author: Remy Bruno +Date: Thu Jul 13 20:12:41 2006 +0200 + + ALSA: RME HDSP - fixed proc interface (missing {}) + + From: Remy Bruno + Signed-off-by: Jaroslav Kysela + Signed-off-by: Greg Kroah-Hartman + +commit e8967dfa4074fef1a114169b58ba05730165d143 +Author: Takashi Iwai +Date: Thu Jul 13 20:06:54 2006 +0200 + + ALSA: hda-intel - Fix race in remove + + Call iounmap after free_irq to avoid invalid accesses in the + shared irq. The patch is taken from + https://bugzilla.novell.com/show_bug.cgi?id=167869 + + Signed-off-by: Takashi Iwai + Signed-off-by: Greg Kroah-Hartman + +commit 7dd9dac03853e21bcc38f681bf01a890c24e1d15 +Author: Takashi Iwai +Date: Thu Jul 13 20:16:41 2006 +0200 + + ALSA: Fix workaround for AD1988A rev2 codec + + Fix the workaround for AD1988A rev2 codec not to apply to AD1988B codec + chips. + + Signed-off-by: Takashi Iwai + Signed-off-by: Jaroslav Kysela + Signed-off-by: Greg Kroah-Hartman + +commit 5b6aeb44a10c08019f3d53c85de82317658e2ef5 +Author: Takashi Iwai +Date: Thu Jul 13 20:13:30 2006 +0200 + + ALSA: Fix undefined (missing) references in ISA MIRO sound driver + + WARNING: /lib/modules/2.6.18-rc1-mm1/kernel/sound/isa/opti9xx/snd-miro.ko needs unknown symbol snd_cs4231_create + WARNING: /lib/modules/2.6.18-rc1-mm1/kernel/sound/isa/opti9xx/snd-miro.ko needs unknown symbol snd_cs4231_pcm + WARNING: /lib/modules/2.6.18-rc1-mm1/kernel/sound/isa/opti9xx/snd-miro.ko needs unknown symbol snd_cs4231_timer + WARNING: /lib/modules/2.6.18-rc1-mm1/kernel/sound/isa/opti9xx/snd-miro.ko needs unknown symbol snd_cs4231_mixer + WARNING: /lib/modules/2.6.18-rc1-mm1/kernel/fs/reiser4/reiser4.ko needs unknown symbol generic_file_read + + Signed-off-by: Randy Dunlap + Signed-off-by: Takashi Iwai + Signed-off-by: Jaroslav Kysela + Signed-off-by: Greg Kroah-Hartman + +commit 08d60485398b5c66b6084ba210a5a12faa02e2fa +Author: Takashi Iwai +Date: Thu Jul 13 20:09:02 2006 +0200 + + ALSA: fix the SND_FM801_TEA575X dependencies + + CONFIG_SND_FM801=y, CONFIG_SND_FM801_TEA575X=m resulted in the following + compile error: + <-- snip --> + ... + LD vmlinux + sound/built-in.o: In function 'snd_fm801_free': + fm801.c:(.text+0x3c15b): undefined reference to 'snd_tea575x_exit' + sound/built-in.o: In function 'snd_card_fm801_probe': + fm801.c:(.text+0x3cfde): undefined reference to 'snd_tea575x_init' + make: *** [vmlinux] Error 1 + <-- snip --> + This patch fixes kernel Bugzilla #6458. + + Signed-off-by: Adrian Bunk + Signed-off-by: Takashi Iwai + Signed-off-by: Jaroslav Kysela + Signed-off-by: Greg Kroah-Hartman + +commit eca58f40f141b0a209dd487ca0a0886ba8279bea +Author: Takashi Iwai +Date: Thu Jul 13 20:17:52 2006 +0200 + + ALSA: Fix mute switch on VAIO laptops with STAC7661 + + Fixed the master mute switch on VAIO laptops with STAC7661 + codec chip. + + Signed-off-by: Takashi Iwai + Signed-off-by: Greg Kroah-Hartman + +commit 4b5ae6ca7b23f85091be1c17286762e58e2b700f +Author: Takashi Iwai +Date: Thu Jul 13 20:27:55 2006 +0200 + + ALSA: Fix model for HP dc7600 + + Changed the assigned model for HP dc7600 with ALC260 codec + to match better with the actual I/O assignment. + Patch taken from ALSA bug#2157. + + Signed-off-by: Takashi Iwai + Signed-off-by: Greg Kroah-Hartman + +commit 27f1b268d39125a116080a5831c883b6b276a97a +Author: Takashi Iwai +Date: Thu Jul 13 20:15:44 2006 +0200 + + ALSA: Fix missing array terminators in AD1988 codec support + + Fixed the missing array terminators in AD1988 codec support code. + + Signed-off-by: Takashi Iwai + Signed-off-by: Jaroslav Kysela + Signed-off-by: Greg Kroah-Hartman + +commit 62d99ac2aeb0a91d7f5f3a4f1532c686b736b37e +Author: Takashi Iwai +Date: Thu Jul 13 20:08:01 2006 +0200 + + ALSA: Fix a deadlock in snd-rtctimer + + Fix an occasional deadlock occuring with snd-rtctimer driver, + added irqsave to the lock in tasklet (ALSA bug#952). + + Signed-off-by: Takashi Iwai + Signed-off-by: Jaroslav Kysela + Signed-off-by: Greg Kroah-Hartman + +commit 954d53d3ea28bcd12396f7d26b78dd16719246c6 +Author: Takashi Iwai +Date: Thu Jul 13 20:10:13 2006 +0200 + + ALSA: au88x0 - Fix 64bit address of MPU401 MMIO port + + Fix 64bit address of MPU401 MMIO port on au88x0 chip. + + Signed-off-by: Takashi Iwai + Signed-off-by: Greg Kroah-Hartman + +commit cefc30b36a16abd1284425aff1aaf0cc2b51b047 +Author: Herbert Xu +Date: Thu Jul 13 19:11:01 2006 +1000 + + Add missing UFO initialisations + + This bug was unknowingly fixed the GSO patches (or rather, its effect was + unknown at the time). + + Thanks to Marco Berizzi's persistence which is documented in the thread + "ipsec tunnel asymmetrical mtu", we now know that it can have highly + non-obvious symptoms. + + What happens is that uninitialised uso_size fields can cause packets to + be incorrectly identified as UFO, which means that it does not get + fragmented even if it's over the MTU. + + The fix is simple enough. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + Signed-off-by: Greg Kroah-Hartman + +commit 949837a9ea1aba1c9ca19bf1969cd72c7de72d75 +Author: Andrew Morton +Date: Thu Jun 29 02:24:26 2006 -0700 + + generic_file_buffered_write(): handle zero-length iovec segments + + The recent generic_file_write() deadlock fix caused + generic_file_buffered_write() to loop inifinitely when presented with a + zero-length iovec segment. Fix. + + Note that this fix deliberately avoids calling ->prepare_write(), + ->commit_write() etc with a zero-length write. This is because I don't trust + all filesystems to get that right. + + This is a cautious approach, for 2.6.17.x. For 2.6.18 we should just go ahead + and call ->prepare_write() and ->commit_write() with the zero length and fix + any broken filesystems. So I'll make that change once this code is stabilised + and backported into 2.6.17.x. + + The reason for preferring to call ->prepare_write() and ->commit_write() with + the zero-length segment: a zero-length segment _should_ be sufficiently + uncommon that this is the correct way of handling it. We don't want to + optimise for poorly-written userspace at the expense of well-written + userspace. + + Cc: "Vladimir V. Saveliev" + Cc: Neil Brown + Cc: Martin Schwidefsky + Cc: Chris Wright + Cc: Greg KH + Cc: + Cc: walt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + Signed-off-by: Chris Wright + +commit b5e475eb0506f525abd38782e40c4acd0b280f28 +Author: Vladimir V. Saveliev +Date: Tue Jun 27 02:53:57 2006 -0700 + + generic_file_buffered_write(): deadlock on vectored write + + generic_file_buffered_write() prefaults in user pages in order to avoid + deadlock on copying from the same page as write goes to. + + However, it looks like there is a problem when write is vectored: + fault_in_pages_readable brings in current segment or its part (maxlen). + OTOH, filemap_copy_from_user_iovec is called to copy number of bytes + (bytes) which may exceed current segment, so filemap_copy_from_user_iovec + switches to the next segment which is not brought in yet. Pagefault is + generated. That causes the deadlock if pagefault is for the same page + write goes to: page being written is locked and not uptodate, pagefault + will deadlock trying to lock locked page. + + [akpm@osdl.org: somewhat rewritten] + Cc: Neil Brown + Cc: Martin Schwidefsky + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Chris Wright + +commit ba4532fa45b99a866d253877372f086503a944c6 +Author: Ian Abbott +Date: Mon Jun 26 12:59:17 2006 +0100 + + USB serial ftdi_sio: Prevent userspace DoS (CVE-2006-2936) + + This patch limits the amount of outstanding 'write' data that can be + queued up for the ftdi_sio driver, to prevent userspace DoS attacks (or + simple accidents) that use up all the system memory by writing lots of + data to the serial port. + + The original patch was by Guillaume Autran, who in turn based it on the + same mechanism implemented in the 'visor' driver. I (Ian Abbott) + re-targeted the patch to the latest sources, fixed a couple of errors, + renamed his new structure members, and updated the implementations of + the 'write_room' and 'chars_in_buffer' methods to take account of the + number of outstanding 'write' bytes. It seems to work fine, though at + low baud rates it is still possible to queue up an amount of data that + takes an age to shift (a job for another day!). + + Signed-off-by: Ian Abbott + Signed-off-by: Greg Kroah-Hartman + +commit 5bd9689ce4b9ffd657be1462f4b2f5a0d10cd450 +Author: Jens Axboe +Date: Mon Jul 10 11:00:01 2006 +0200 + + splice: fix problems with sys_tee() + + Several issues noticed/fixed: + + - We cannot reliably block in link_pipe() while holding both input and output + mutexes. So do preparatory checks before locking down both mutexes and doing + the link. + + - The ipipe->nrbufs vs i check was bad, because we could have dropped the + ipipe lock in-between. This causes us to potentially look at unknown + buffers if we were racing with someone else reading this pipe. + + Signed-off-by: Jens Axboe + Signed-off-by: Greg Kroah-Hartman + +commit 015b18b4bff96be06c0396c03650be06091dafbc +Author: Jens Axboe +Date: Thu Jul 6 04:19:43 2006 -0700 + + cdrom: fix bad cgc.buflen assignment + + The code really means to mask off the high bits, not assign 0xff. + + Signed-off-by: Jens Axboe + Cc: Marcus Meissner + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 88caad141b0245b150ab24579d5a168c7314fb67 +Author: Randy Dunlap +Date: Fri Jun 23 06:10:01 2006 +0000 + + Fix powernow-k8 SMP kernel on UP hardware bug. + + [CPUFREQ] Fix powernow-k8 SMP kernel on UP hardware bug. + + Fix powernow-k8 doesn't load bug. + Reference: https://launchpad.net/distros/ubuntu/+source/linux-source-2.6.15/+bug/35145 + + Signed-off-by: Ben Collins + Signed-off-by: Dave Jones + Signed-off-by: Greg Kroah-Hartman + +commit 070cc2d0510eaa75f9c580f082bb3031d9c9faeb +Author: Dave Jones +Date: Tue Jun 20 03:11:32 2006 +0000 + + Make powernow-k7 work on SMP kernels. + + [CPUFREQ] Make powernow-k7 work on SMP kernels. + Even though powernow-k7 doesn't work in SMP environments, + it can work on an SMP configured kernel if there's only + one CPU present, however recalibrate_cpu_khz was returning + -EINVAL on such kernels, so we failed to init the cpufreq driver. + + Signed-off-by: Dave Jones + Signed-off-by: Greg Kroah-Hartman + +commit 0fd4fe8a44fbc58608f27d7246927024bbcf934c +Author: Michael Krufky +Date: Thu Jul 6 14:26:45 2006 -0400 + + dvb-bt8xx: fix frontend detection for DViCO FusionHDTV DVB-T Lite rev 1.2 + + This patch adds support for the new revision of the DViCO + FusionHDTV DVB-T Lite, based on the zl10353 demod instead + of mt352. + + Both mt352 and zl10353 revisions of this card have the + same PCI subsystem ID. + + Signed-off-by: Michael Krufky + Acked-by: Chris Pascoe + Acked-by: Manu Abraham + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 54f8bab3f331ee569aad3074d9c81dfb395482c0 +Author: Andrew de Quincey +Date: Thu Jul 6 14:26:44 2006 -0400 + + v4l/dvb: stradis: dont export MODULE_DEVICE_TABLE + + This patch prevents the stradis driver from breaking all + other saa7146 devices by removing the autodetection based + on PCI subsystem ID 0000:0000 (no eeprom). Users that + want to use the stradis driver will have to manually + insert the module, or specify it in modprobe.conf + + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 5bb61972dababe40d58c08de886e5d01f2603163 +Author: Oliver Endriss +Date: Thu Jul 6 14:26:40 2006 -0400 + + v4l/dvb: Backport the budget driver DISEQC instability fix + + Backport the budget driver DISEQC instability fix. + + Signed-off-by: Oliver Endriss + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 3900669ef7b9e732dc5b4a38f72afa0237486dd8 +Author: Andrew de Quincey +Date: Thu Jul 6 14:26:36 2006 -0400 + + v4l/dvb: Backport the DISEQC regression fix to 2.6.17.x + + Backport the DISEQC regression fix to 2.6.17.x + + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit aacc143cb727db86692910ff5cf72bac8afe975b +Author: Andrew de Quincey +Date: Thu Jul 6 14:26:32 2006 -0400 + + v4l/dvb: Backport fix to artec USB DVB devices + + Backport fix to artec USB DVB devices + + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 07d1f3a0037a0e4b1b1aff13d97180189148f4f4 +Author: Thomas Graf +Date: Wed Jul 5 20:58:51 2006 -0700 + + PKT_SCHED: Fix error handling while dumping actions + + "return -err" and blindly inheriting the error code in the netlink + failure exception handler causes errors codes to be returned as + positive value therefore making them being ignored by the caller. + + May lead to sending out incomplete netlink messages. + + Signed-off-by: Thomas Graf + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 0a5bad5657163f8f44f6220929a70acf297d3dd5 +Author: Thomas Graf +Date: Wed Jul 5 20:58:23 2006 -0700 + + PKT_SCHED: Return ENOENT if action module is unavailable + + Return ENOENT if action module is unavailable + + Signed-off-by: Thomas Graf + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 5bf5d453cd5479783020d2cd76138812de947106 +Author: Thomas Graf +Date: Wed Jul 5 20:58:02 2006 -0700 + + PKT_SCHED: Fix illegal memory dereferences when dumping actions + + The TCA_ACT_KIND attribute is used without checking its + availability when dumping actions therefore leading to a + value of 0x4 being dereferenced. + + The use of strcmp() in tc_lookup_action_n() isn't safe + when fed with string from an attribute without enforcing + proper NUL termination. + + Both bugs can be triggered with malformed netlink message + and don't require any privileges. + + Signed-off-by: Thomas Graf + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit d7f69eaa106a0b46474e116216a81f72ff28e507 +Author: Michael Krufky +Date: Thu Jun 29 01:03:46 2006 -0400 + + v4l/dvb: Kconfig: fix description and dependencies for saa7115 module + + This Kconfig description is incorrect, due to a previous merge a while back. + CONFIG_SAA711X builds module saa7115, which is the newer v4l2 module, and is + not obsoleted. + + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 6d4764bead69f0092049fa6fe409d1c989e75af6 +Author: Willy Tarreau +Date: Wed Jul 5 22:34:52 2006 +0200 + + ethtool: oops in ethtool_set_pauseparam() + + The function pointers which were checked were for their get_* counterparts. + Typically a copy-paste typo. + + Signed-off-by: Willy Tarreau + Acked-by: Jeff Garzik + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit a78a731dfd6c060dfb6cbc93a0363defb4727212 +Author: Francois Romieu +Date: Sun Jul 2 11:54:53 2006 +0100 + + via-velocity: the link is not correctly detected when the device starts + + via-velocity: the link is not correctly detected when the device starts + + The patch fixes http://bugzilla.kernel.org/show_bug.cgi?id=6711 + + Signed-off-by: Roy Marples + Signed-off-by: Francois Romieu + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit b5e47cc4d14da20f21c9399eafe6c274ff3317eb +Author: Bob Moore +Date: Sun Jul 2 11:53:01 2006 +0100 + + Reduce ACPI verbosity on null handle condition + + As detailed at http://bugs.gentoo.org/131534 : + + 2.6.16 converted many ACPI debug messages into error or warning + messages. One extraneous message was incorrectly converted, resulting in + logs being flooded by "Handle is NULL and Pathname is relative" messages + on some systems. + + This patch (part of a larger ACPICA commit) converts the message back to + debug level. + + Signed-off-by: Daniel Drake + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit a9eaad8dc41a6a700e3be89f4e13632db5e3184f +Author: Andrew Morton +Date: Sat Jul 1 04:36:37 2006 -0700 + + pnp: suppress request_irq() warning + + Suppress the "setup_irq: irq handler mismatch" coming out of pnp_check_irq(): + failures are expected here. + + Cc: Santiago Garcia Mantinan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 76e89d27432c00b797b8ef6106aaf5b2c393b5e6 +Author: Andrew de Quincey +Date: Fri Jun 30 15:52:07 2006 -0400 + + v4l/dvb: Fix CI interface on PRO KNC1 cards + + The original driver had a restriction that if a card as an saa7113 chip, + then it cannot have a CI interface. This is not the case. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 572b3be58804375d728de9de50cd5716c07b7863 +Author: Andrew de Quincey +Date: Fri Jun 30 15:52:06 2006 -0400 + + v4l/dvb: Fix CI on old KNC1 DVBC cards + + These cards do not need the tda10021 configuration change when data is + streamed through a CAM module. This disables it for these ones. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit bdfb0d8e84cc4feb14509a3e4efeb5e2a48a3a4c +Author: Andrew de Quincey +Date: Fri Jun 30 15:52:04 2006 -0400 + + v4l/dvb: Fix budget-av frontend detection + + The budget-av needs this GPIO set low for most cards to work. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Michael Krufky + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 4b6f4d57b81ba77366c329bd90c76bc0e5c5b20d +Author: Yasunori Goto +Date: Thu Jun 29 02:24:27 2006 -0700 + + memory hotplug: solve config broken: undefined reference to `online_page' + + Memory hotplug code of i386 adds memory to only highmem. So, if + CONFIG_HIGHMEM is not set, CONFIG_MEMORY_HOTPLUG shouldn't be set. + Otherwise, it causes compile error. + + In addition, many architecture can't use memory hotplug feature yet. So, I + introduce CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG. + + Signed-off-by: Yasunori Goto + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 9f24916834aaa1a31d90505c671e4746471200bf +Author: Andi Kleen +Date: Thu Jun 29 20:54:26 2006 +0200 + + BLOCK: Fix bounce limit address check + + This fixes some OOMs on 64bit systems with <4GB of RAM when accessing + the cdrom. + + Do a safer check for when to enable DMA. Currently we enable ISA DMA + for cases that do not need it, resulting in OOM conditions when ZONE_DMA + runs out of space. + + Signed-off-by: Andi Kleen + Signed-off-by: Jens Axboe + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 395e8c5b6b0a3ceaf5e95b79f327028a8a48f481 +Author: Piotr Kaczuba +Date: Mon Jun 26 13:59:38 2006 +0200 + + x86_64: Fix modular pc speaker + + It turned out that the following change is needed when the speaker is + compiled as a module. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 14c620f9a7f2627953d6d52f196a5773d379533d +Author: Michael S. Tsirkin +Date: Wed Jun 28 20:14:28 2006 +0300 + + IB/mthca: restore missing PCI registers after reset + + mthca does not restore the following PCI-X/PCI Express registers after reset: + PCI-X device: PCI-X command register + PCI-X bridge: upstream and downstream split transaction registers + PCI Express : PCI Express device control and link control registers + + This causes instability and/or bad performance on systems where one of + these registers is set to a non-default value by BIOS. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman + +commit 9f67d487c336a68dd025ae99877115c7e016fe86 +Author: Mandy Kirkconnell +Date: Wed Jun 28 08:34:44 2006 +1000 + + XFS: corruption fix + + Fix nused counter. It's currently getting set to -1 rather than getting + decremented by 1. Since nused never reaches 0, the "if (!free->hdr.nused)" + check in xfs_dir2_leafn_remove() fails every time and xfs_dir2_shrink_inode() + doesn't get called when it should. This causes extra blocks to be left on + an empty directory and the directory in unable to be converted back to + inline extent mode. + + Signed-off-by: Mandy Kirkconnell + Signed-off-by: Nathan Scott + Signed-off-by: Chris Wright + Signed-off-by: Greg Kroah-Hartman +commit 245b3c810f1d09ac27f326346cb58451556ecc0b +Author: Greg Kroah-Hartman +Date: Sat Jul 15 12:00:43 2006 -0700 + + Linux 2.6.17.6 + +commit 1d87a98f9db06b6c7fadd20f13ab092875d53801 +Author: Linus Torvalds +Date: Sat Jul 15 05:59:19 2006 +0000 + + [PATCH] Relax /proc fix a bit + + Relax /proc fix a bit + + Clearign all of i_mode was a bit draconian. We only really care about + S_ISUID/ISGID, after all. + + Signed-off-by: Linus Torvalds + Signed-off-by: Greg Kroah-Hartman +commit 79146daf9736143f28e21c76964918e9a1151fe7 +Author: Greg Kroah-Hartman +Date: Fri Jul 14 19:38:43 2006 -0700 + + Linux 2.6.17.5 + +commit 4a7ac3ab06932949d3069c1811f6f2a310f656c4 +Author: Linus Torvalds +Date: Fri Jul 14 23:59:02 2006 +0000 + + [PATCH] Fix nasty /proc vulnerability (CVE-2006-3626) + + Fix nasty /proc vulnerability + + We have a bad interaction with both the kernel and user space being able + to change some of the /proc file status. This fixes the most obvious + part of it, but I expect we'll also make it harder for users to modify + even their "own" files in /proc. + + Signed-off-by: Linus Torvalds + Signed-off-by: Greg Kroah-Hartman +commit 4f9619cdd90ac846fa0ca6e9e8a9d87a0d6b4f57 +Author: Greg Kroah-Hartman +Date: Thu Jul 6 13:02:28 2006 -0700 + + Linux 2.6.17.4 + +commit 0af184bb9f80edfbb94de46cb52e9592e5a547b0 +Author: Greg Kroah-Hartman +Date: Thu Jul 6 13:02:05 2006 -0700 + + fix prctl privilege escalation and suid_dumpable (CVE-2006-2451) + + Based on a patch from Ernie Petrides + + During security research, Red Hat discovered a behavioral flaw in core + dump handling. A local user could create a program that would cause a + core file to be dumped into a directory they would not normally have + permissions to write to. This could lead to a denial of service (disk + consumption), or allow the local user to gain root privileges. + + Signed-off-by: Greg Kroah-Hartman +commit 52cbb7b78994ea3799f1bbb8c03bce1e2f72a271 +Author: Chris Wright +Date: Fri Jun 30 10:37:38 2006 -0700 + + Linux 2.6.17.3 + +commit 9c48e1ea8cf8800cc5e2d39ccbb8b5ff9704f8e9 +Author: Patrick McHardy +Date: Fri Jun 30 05:33:12 2006 +0200 + + [PATCH] NETFILTER: SCTP conntrack: fix crash triggered by packet without chunks [CVE-2006-2934] + + When a packet without any chunks is received, the newconntrack variable + in sctp_packet contains an out of bounds value that is used to look up an + pointer from the array of timeouts, which is then dereferenced, resulting + in a crash. Make sure at least a single chunk is present. + + Problem noticed by George A. Theall + + Signed-off-by: Patrick McHardy + Signed-off-by: Chris Wright +commit 27162bf76c8e1d20f81ba53c356ca8681aa90461 +Author: Chris Wright +Date: Thu Jun 29 17:17:23 2006 -0700 + + Linux 2.6.17.2 + +commit 988bc3337ebc15c7c6078d3263b0599bc744d693 +Author: Richard Purdie +Date: Tue Jun 27 01:25:35 2006 -0400 + + [PATCH] Input: return correct size when reading modalias attribute + + Input: return correct size when reading modalias attribute + + Signed-off-by: Richard Purdie + Signed-off-by: Dmitry Torokhov + Signed-off-by: Chris Wright + +commit 26992852dde78e6acc9a9b2bdc9e734428e34d65 +Author: Sonny Rao +Date: Sun Jun 25 05:49:34 2006 -0700 + + [PATCH] idr: fix race in idr code + + From: Sonny Rao + + I ran into a bug where the kernel died in the idr code: + + cpu 0x1d: Vector: 300 (Data Access) at [c000000b7096f710] + pc: c0000000001f8984: .idr_get_new_above_int+0x140/0x330 + lr: c0000000001f89b4: .idr_get_new_above_int+0x170/0x330 + sp: c000000b7096f990 + msr: 800000000000b032 + dar: 0 + dsisr: 40010000 + current = 0xc000000b70d43830 + paca = 0xc000000000556900 + pid = 2022, comm = hwup + 1d:mon> t + [c000000b7096f990] c0000000000d2ad8 .expand_files+0x2e8/0x364 (unreliable) + [c000000b7096faa0] c0000000001f8bf8 .idr_get_new_above+0x18/0x68 + [c000000b7096fb20] c00000000002a054 .init_new_context+0x5c/0xf0 + [c000000b7096fbc0] c000000000049dc8 .copy_process+0x91c/0x1404 + [c000000b7096fcd0] c00000000004a988 .do_fork+0xd8/0x224 + [c000000b7096fdc0] c00000000000ebdc .sys_clone+0x5c/0x74 + [c000000b7096fe30] c000000000008950 .ppc_clone+0x8/0xc + -- Exception: c00 (System Call) at 000000000fde887c + SP (f8b4e7a0) is in userspace + + Turned out to be a race-condition and NULL ptr deref, here's my fix: + + Users of the idr code are supposed to call idr_pre_get without locking, so the + idr code must serialize itself with respect to layer allocations. However, it + fails to do so in an error path in idr_get_new_above_int(). I added the + missing locking to fix this. + + Signed-off-by: Sonny Rao + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Chris Wright + +commit c4389daed17fb3d6ec54f2759e2705c268828899 +Author: Anton Blanchard +Date: Sun Jun 25 05:48:44 2006 -0700 + + [PATCH] Link error when futexes are disabled on 64bit architectures + + From: Anton Blanchard + + If futexes are disabled we fail to link on ppc64. + + Signed-off-by: Anton Blanchard + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Chris Wright + +commit 6bd6b5c7d81c365b53ff40f9c049e19aa104f6ac +Author: Nickolay +Date: Fri Jun 9 21:24:14 2006 +0400 + + [PATCH] kbuild: bugfix with initramfs + + This patch fix double inclusion of ramfs-input. + + Signed-off-by: Nickolay Vinogradov + Signed-off-by: Sam Ravnborg + Signed-off-by: Chris Wright + +commit 27877d06fea98a4ae485250db523bb5eea27235c +Author: Al Boldi +Date: Mon Jun 26 00:26:13 2006 -0700 + + [PATCH] ide-io: increase timeout value to allow for slave wakeup + + During an STR resume cycle, the ide master disk times-out when there is + also a slave present (especially CD). Increasing the timeout in ide-io + from 10,000 to 100,000 fixes this problem. + + Acked-by: Alan Cox + Cc: Bartlomiej Zolnierkiewicz + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Chris Wright + +commit f92b235f72be34e66357df72794f2baa0221524d +Author: Tejun Heo +Date: Fri Jun 23 12:49:52 2006 +0800 + + [PATCH] libata: minor patch for ATA_DFLAG_PIO + + Problem: + - With 2.6.17 libata, some PIO-only devices are given DMA commands. + + Changes: + - Do not clear the ATA_DFLAG_PIO flag in ata_dev_configure(). + + Signed-off-by: Tejun Heo + Signed-off-by: Albert Lee + Signed-off-by: Chris Wright + +commit 4f75bf81d40d4c5b459343ef34d05478b8bed47d +Author: Robert Hancock +Date: Thu Jun 22 20:33:26 2006 -0600 + + [PATCH] ohci1394: Fix broken suspend/resume in ohci1394 + + I've been experimenting to track down the cause of suspend/resume + problems on my Compaq Presario X1050 laptop: + + http://bugzilla.kernel.org/show_bug.cgi?id=6075 + + Essentially the ACPI Embedded Controller and keyboard controller would + get into a bizarre, confused state after resume. + + I found that unloading the ohci1394 module before suspend and reloading + it after resume made the problem go away. Diffing the dmesg output from + resume, with and without the module loaded, I found that with the module + loaded I was missing these: + + PM: Writing back config space on device 0000:02:00.0 at offset 1. (Was + 2100080, writing 2100007) + PM: Writing back config space on device 0000:02:00.0 at offset 3. (Was + 0, writing 8008) + PM: Writing back config space on device 0000:02:00.0 at offset 4. (Was + 0, writing 90200000) + PM: Writing back config space on device 0000:02:00.0 at offset 5. (Was + 1, writing 2401) + PM: Writing back config space on device 0000:02:00.0 at offset f. (Was + 20000100, writing 2000010a) + + The default PCI driver performs the pci_restore_state when no driver is + loaded for the device. When the ohci1394 driver is loaded, it is + supposed to do this, however it appears not to do so. + + I created the patch below and tested it, and it appears to resolve the + suspend problems I was having with the module loaded. I only added in + the pci_save_state and pci_restore_state - however, though I know little + of this hardware, surely the driver should really be doing more than + this when suspending and resuming? Currently it does almost nothing, + what if there are commands in progress, etc? + + Signed-off-by: Robert Hancock + Signed-off-by: Chris Wright + +commit e778d0ec93ec97fb851b8e0bd5e1488f083baa6a +Author: YOSHIFUJI Hideaki +Date: Thu Jun 22 01:42:13 2006 -0700 + + [PATCH] IPV6 ADDRCONF: Fix default source address selection without CONFIG_IPV6_PRIVACY + + We need to update hiscore.rule even if we don't enable CONFIG_IPV6_PRIVACY, + because we have more less significant rule; longest match. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit ac16ac4c1202baff72f889f3904ca480bea93d76 +Author: Åukasz Stelmach +Date: Thu Jun 22 01:39:05 2006 -0700 + + [PATCH] IPV6: Fix source address selection. + + Two additional labels (RFC 3484, sec. 10.3) for IPv6 addreses + are defined to make a distinction between global unicast + addresses and Unique Local Addresses (fc00::/7, RFC 4193) and + Teredo (2001::/32, RFC 4380). It is necessary to avoid attempts + of connection that would either fail (eg. fec0:: to 2001:feed::) + or be sub-optimal (2001:0:: to 2001:feed::). + + Signed-off-by: Åukasz Stelmach + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit e0072c1bbbdcb819e8df0a67229bb9eed2accec3 +Author: Jeff Dike +Date: Tue Jun 20 18:25:03 2006 -0400 + + [PATCH] UML: fix uptime + + The use of signed instead of unsigned here broke the calculations on + negative numbers that are involved in calculating wall_to_monotonic. + + Signed-off-by: Jeff Dike + Signed-off-by: Chris Wright + +commit e45424909c0a8ffc7afbea6e35da582f782fc618 +Author: Michael Buesch +Date: Sun Jun 18 19:05:10 2006 +0200 + + [PATCH] bcm43xx: init fix for possible Machine Check + + Place the Init-vs-IRQ workaround before any card register + access, because we might not have the wireless core mapped + at all times in init. So this will result in a Machine Check + caused by a bus error. + + Signed-off-by: Michael Buesch + Signed-off-by: Chris Wright + +commit 5cb91c1a730874dd915eba983996b3e45378e39b +Author: Kirill Smelkov +Date: Tue Jun 20 00:32:01 2006 -0700 + + [PATCH] x86: compile fix for asm-i386/alternatives.h + + compile fix: needs for 'u8' -- + just look at struct alt_instr. + + My module includes as the first header, and as of 2.6.17 this + leads to compilation errors. + + Signed-off-by: Kirill Smelkov + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Chris Wright + +commit 323e290abcbdf84afde0fbbd775f3ba4b784655a +Author: Anton Altaparmakov +Date: Tue Jun 20 00:29:41 2006 -0700 + + [PATCH] NTFS: Critical bug fix (affects MIPS and possibly others) + + It fixes a crash in NTFS on architectures where flush_dcache_page() + is a real function. I never noticed this as all my testing is done on + i386 where flush_dcache_page() is NULL. + + http://bugzilla.kernel.org/show_bug.cgi?id=6700 + + Many thanks to Pauline Ng for the detailed bug report and analysis! + + Signed-off-by: Anton Altaparmakov + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Chris Wright + +commit 50cdbb604d8e4f38c30e387ef28433a02b91e6f1 +Author: David Miller +Date: Tue Jun 20 00:44:27 2006 -0700 + + [PATCH] SPARC32: Fix iommu_flush_iotlb end address + + Fix the calculation of the end address when flushing iotlb entries to + ram. This bug has been a cause of esp dma errors, and it affects + HyperSPARC systems much worse than SuperSPARC systems. + + Signed-off-by: Bob Breuer + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit 94f37cf0a304c16dcf86ec542e88b5448b2edfb7 +Author: Herbert Xu +Date: Tue Jun 20 00:09:30 2006 -0700 + + [PATCH] ETHTOOL: Fix UFO typo + + The function ethtool_get_ufo was referring to ETHTOOL_GTSO instead of + ETHTOOL_GUFO. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit c2ba44b229b04cbd57106107d0047e2c666040ce +Author: Neil Horman +Date: Tue Jun 20 00:09:03 2006 -0700 + + [PATCH] SCTP: Fix persistent slowdown in sctp when a gap ack consumes rx buffer. + + In the event that our entire receive buffer is full with a series of + chunks that represent a single gap-ack, and then we accept a chunk + (or chunks) that fill in the gap between the ctsn and the first gap, + we renege chunks from the end of the buffer, which effectively does + nothing but move our gap to the end of our received tsn stream. This + does little but move our missing tsns down stream a little, and, if the + sender is sending sufficiently large retransmit frames, the result is a + perpetual slowdown which can never be recovered from, since the only + chunk that can be accepted to allow progress in the tsn stream necessitates + that a new gap be created to make room for it. This leads to a constant + need for retransmits, and subsequent receiver stalls. The fix I've come up + with is to deliver the frame without reneging if we have a full receive + buffer and the receiving sockets sk_receive_queue is empty(indicating that + the receive buffer is being blocked by a missing tsn). + + Signed-off-by: Neil Horman + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit f0a0819784268d7ca479b4538b07124249137500 +Author: Tsutomu Fujii +Date: Tue Jun 20 00:08:29 2006 -0700 + + [PATCH] SCTP: Send only 1 window update SACK per message. + + Right now, every time we increase our rwnd by more then MTU bytes, we + trigger a SACK. When processing large messages, this will generate a + SACK for almost every other SCTP fragment. However since we are freeing + the entire message at the same time, we might as well collapse the SACK + generation to 1. + + Signed-off-by: Tsutomu Fujii + Signed-off-by: Vlad Yasevich + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit ac3e4adefd766840f20e7cad6aa430f3fb491c4d +Author: David Miller +Date: Tue Jun 20 00:06:27 2006 -0700 + + [PATCH] SCTP: Reset rtt_in_progress for the chunk when processing its sack. + + Signed-off-by: Vlad Yasevich + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit 8cd8533a381af92ff3febeb0ab82b4d145be1257 +Author: Vlad Yasevich +Date: Tue Jun 20 00:04:53 2006 -0700 + + [PATCH] SCTP: Reject sctp packets with broadcast addresses. + + Make SCTP handle broadcast properly + + Signed-off-by: Vlad Yasevich + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit 617495463a301a956990b87913849dd740e58bcf +Author: Vlad Yasevich +Date: Tue Jun 20 00:04:18 2006 -0700 + + [PATCH] SCTP: Limit association max_retrans setting in setsockopt. + + When using ASSOCINFO socket option, we need to limit the number of + maximum association retransmissions to be no greater than the sum + of all the path retransmissions. This is specified in Section 7.1.2 + of the SCTP socket API draft. + However, we only do this if the association has multiple paths. If + there is only one path, the protocol stack will use the + assoc_max_retrans setting when trying to retransmit packets. + + Signed-off-by: Vlad Yasevich + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit f67656ad55536533ebc33e3154184aeb53b379b8 +Author: Tushar Gohad +Date: Tue Jun 20 00:03:34 2006 -0700 + + [PATCH] PFKEYV2: Fix inconsistent typing in struct sadb_x_kmprivate. + + Fixes inconsistent use of "uint32_t" vs. "u_int32_t". + Fix pfkeyv2 userspace builds. + + Signed-off-by: Tushar Gohad + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit 8fbc89242905b7645064d6946ac86d4bd77c55c5 +Author: YOSHIFUJI Hideaki +Date: Tue Jun 20 00:02:51 2006 -0700 + + [PATCH] IPV6: Sum real space for RTAs. + + This patch fixes RTNLGRP_IPV6_IFINFO netlink notifications. Issue + pointed out by Patrick McHardy . + + Signed-off-by: YOSHIFUJI Hideaki + Acked-by: Patrick McHardy + Signed-off-by: David S. Miller + Signed-off-by: Chris Wright + +commit 9baa5f6d7e59d7aecf4c17cc5ac9a162e65e1f72 +Author: Stuart MacDonald +Date: Wed May 31 13:28:40 2006 -0400 + + [PATCH] USB: Whiteheat: fix firmware spurious errors + + Attached patch fixes spurious errors during firmware load. + + Signed-off-by: Stuart MacDonald + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Chris Wright +commit 6bd4ccaef717ade827577eacc9df870fbf5e7c46 +Author: Chris Wright +Date: Tue Jun 20 02:31:55 2006 -0700 + + Linux 2.6.17.1 + +commit b9d3e52e0e0f95ab5198ac20fbc47b3cb1a63407 +Author: Patrick McHardy +Date: Mon Jun 19 19:14:21 2006 +0200 + + [PATCH] xt_sctp: fix endless loop caused by 0 chunk length (CVE-2006-3085) + + Fix endless loop in the SCTP match similar to those already fixed in the + SCTP conntrack helper (was CVE-2006-1527). + + Signed-off-by: Patrick McHardy + Signed-off-by: Chris Wright + +commit 427abfa28afedffadfca9dd8b067eb6d36bac53f +Author: Linus Torvalds +Date: Sat Jun 17 18:49:35 2006 -0700 + + Linux v2.6.17 + + Being named "Crazed Snow-Weasel" instills a lot of confidence in this + release, so I'm sure this will be one of the better ones. + +commit ce221982e0bef039d7047b0f667bb414efece5af +Author: Arnd Bergmann +Date: Thu Jun 15 15:09:16 2006 +0200 + + [PATCH] powerpc: enable CPU_FTR_CI_LARGE_PAGE for cell + + Reflect the fact that the Cell Broadband Engine supports 64k + pages by adding the bit to the CPU features. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Linus Torvalds + +commit 19242b240793ac769f5b91b68a5e43dd39f0c530 +Author: Arnd Bergmann +Date: Thu Jun 15 21:15:44 2006 +1000 + + [PATCH] powerpc: Fix 64k pages on non-partitioned machines + + The page size encoding passed to tlbie is incorrect for new-style + large pages. This fixes it. This doesn't affect anything on older + machines because mmu_psize_defs[psize].penc (the page size encoding) + is 0 for 4k and 16M pages (the two are distinguished by a separate "is + a large page" bit). + + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + Signed-off-by: Linus Torvalds + +commit f53ae1dc3429529a58aa538e0a860d713c7079c3 +Author: Oleg Nesterov +Date: Thu Jun 15 20:12:02 2006 +0400 + + [PATCH] arm_timer: remove a racy and obsolete PF_EXITING check + + arm_timer() checks PF_EXITING to prevent BUG_ON(->exit_state) + in run_posix_cpu_timers(). + + However, for some reason it does so only for CPUCLOCK_PERTHREAD + case (which is imho wrong). + + Also, this check is not reliable, PF_EXITING could be set on + another cpu without any locks/barriers just after the check, + so it can't prevent from attaching the timer to the exiting + task. + + The previous patch makes this check unneeded. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Linus Torvalds + +commit 30f1e3dd8c72abda343bcf415f7d8894a02b4290 +Author: Oleg Nesterov +Date: Thu Jun 15 20:11:43 2006 +0400 + + [PATCH] run_posix_cpu_timers: remove a bogus BUG_ON() + + do_exit() clears ->it_##clock##_expires, but nothing prevents + another cpu to attach the timer to exiting process after that. + arm_timer() tries to protect against this race, but the check + is racy. + + After exit_notify() does 'write_unlock_irq(&tasklist_lock)' and + before do_exit() calls 'schedule() local timer interrupt can find + tsk->exit_state != 0. If that state was EXIT_DEAD (or another cpu + does sys_wait4) interrupted task has ->signal == NULL. + + At this moment exiting task has no pending cpu timers, they were + cleanuped in __exit_signal()->posix_cpu_timers_exit{,_group}(), + so we can just return from irq. + + John Stultz recently confirmed this bug, see + + http://marc.theaimsgroup.com/?l=linux-kernel&m=115015841413687 + + Signed-off-by: Oleg Nesterov + Signed-off-by: Linus Torvalds + +commit 8f17fc20bfb75bcec4cfeda789738979c8338fdc +Author: Oleg Nesterov +Date: Thu Jun 15 20:11:15 2006 +0400 + + [PATCH] check_process_timers: fix possible lockup + + If the local timer interrupt happens just after do_exit() sets PF_EXITING + (and before it clears ->it_xxx_expires) run_posix_cpu_timers() will call + check_process_timers() with tasklist_lock + ->siglock held and + + check_process_timers: + + t = tsk; + do { + .... + + do { + t = next_thread(t); + } while (unlikely(t->flags & PF_EXITING)); + } while (t != tsk); + + the outer loop will never stop. + + Actually, the window is bigger. Another process can attach the timer + after ->it_xxx_expires was cleared (see the next commit) and the 'if + (PF_EXITING)' check in arm_timer() is racy (see the one after that). + + Signed-off-by: Oleg Nesterov + Signed-off-by: Linus Torvalds + +commit 88d113601ca19c82feb038438c8c5db502d146f9 +Author: Stephen Hemminger +Date: Fri Jun 16 12:10:46 2006 -0700 + + [PATCH] sky2: netconsole suspend/resume interaction + + A couple of fixes that should prevent crashes when using netconsole and + suspend/resume. First, netconsole poll routine shouldn't run unless the + device is up; second, the NAPI poll should be disabled during suspend. + + This is only an issue on sky2, because it has to have one NAPI poll + routine for both ports on dual port boards. Normal drivers use + netif_rx_schedule_prep and that checks for netif_running. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Linus Torvalds + +commit 991721572ef2140c6411894aebefd3377e71a9e7 +Author: Jens Axboe +Date: Fri Jun 16 13:02:29 2006 +0200 + + [PATCH] Fix missing ret assignment in __bio_map_user() error path + + If get_user_pages() returns less pages than what we asked for, we jump + to out_unmap which will return ERR_PTR(ret). But ret can contain a + positive number just smaller than local_nr_pages, so be sure to set it + to -EFAULT always. + + Problem found and diagnosed by Damien Le Moal + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 16070428d389ff47aa3476b0911179ad90c640a2 +Author: Jens Axboe +Date: Fri Jun 16 07:46:37 2006 +0200 + + [PATCH] fix cdrom open + + Some time ago the cdrom open routine was changed so that we call the + driver's open routine before checking to see if it is read only. However, + if we discovered that a read write open was not possible and the open + flags required a writable open, we just returned -EROFS without calling + the driver's release routine. This seems to work for most cdrom drivers, + but breaks the Powerpc iSeries virtual cdrom rather badly. + + This just inserts the release call in the error path to balance the call + to "->open()" done by "open_for_data()". + + Signed-off-by: Stephen Rothwell + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 553698f944ed715dfe023b4cef07601f0ce735f0 +Author: Jens Axboe +Date: Wed Jun 14 19:11:57 2006 +0200 + + [PATCH] cfq-iosched: fix crash in do_div() + + We don't clear the seek stat values in cfq_alloc_io_context(), and if + ->seek_mean is unlucky enough to be set to -36 by chance, the first + invocation of cfq_update_io_seektime() will oops with a divide by zero + in do_div(). + + Just memset the entire cic instead of filling invididual values + independently. + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 9cedc194a7735e5d74ad26d3825247dc65a4d98e +Author: Kirill Korotaev +Date: Wed Jun 14 17:59:35 2006 +0400 + + [PATCH] Return error in case flock_lock_file failure + + If flock_lock_file() failed to allocate flock with locks_alloc_lock() + then "error = 0" is returned. Need to return some non-zero. + + Signed-off-by: Pavel Emelianov + Signed-off-by: Kirill Korotaev + Signed-off-by: Linus Torvalds + +commit eb35cf60e462491249166182e3e755d3d5d91a28 +Author: Stephen Hemminger +Date: Tue Jun 13 17:17:31 2006 +0900 + + [PATCH] sky2: stop/start hardware idle timer on suspend/resume + + The resume bug was caused not by an early interrupt but because the idle + timeout was not being stopped on suspend. Also disable hardware IRQ's + on suspend. Will need to revisit this with hotplug? + + Signed-off-by: Stephen Hemminger + Signed-off-by: Linus Torvalds + +commit 8ab8fca2071cec559e4b77212cccffd150ce5ce7 +Author: Stephen Hemminger +Date: Tue Jun 13 17:17:30 2006 +0900 + + [PATCH] sky2: save/restore base hardware irq during suspend/resume + + The hardware should be fully shut off during suspend, and the base + irq mask restored during resume. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Linus Torvalds + +commit 26ec43f132d1cf282124a020b2bb5310496c9132 +Author: Stephen Hemminger +Date: Tue Jun 13 17:17:29 2006 +0900 + + [PATCH] sky2: fix hotplug detect during poll + + If the poll routine detects no hardware available, it needs to dequeue + it self from the network poll list. Linus didn't understand NAPI. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Linus Torvalds + +commit f05267e7dee58741a4feb20d0351706ec64bb0b5 +Author: Stephen Hemminger +Date: Tue Jun 13 17:17:28 2006 +0900 + + [PATCH] sky2: don't hard code number of ports + + It is cleaner, to not loop over both ports if only one exists. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Linus Torvalds + +commit 2ccc99b7b71976d15822ae7c41cd2ccda66d5076 +Author: Stephen Hemminger +Date: Tue Jun 13 17:17:27 2006 +0900 + + [PATCH] sky2: set_power_state should be void + + The set power state function is cleaner if it doesn't return anything. + The only caller that could fail is in suspend() and it can check the argument + there. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Linus Torvalds + +commit 5e625b0844435e0333670d9da633304169896740 +Author: Randy Dunlap +Date: Mon Jun 12 15:13:40 2006 -0700 + + [PATCH] alpha: generic hweight build fix + + From: Randy Dunlap + + According to include/asm-alpha/bitops.h, only ALPHA_EV67 has hardware + hweight support, so ALPHA_EV6 needs to use GENERIC_HWEIGHT. + + Signed-off-by: Randy Dunlap + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Cc: Ernst Herzberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 86bc843a268058df558844b6bf64531617fbc698 +Author: Sergey Vlasov +Date: Mon Jun 12 21:53:23 2006 +0100 + + [PATCH] tmpfs: Decrement i_nlink correctly in shmem_rmdir() + + shmem_rmdir() must undo the increment of i_nlink done in + shmem_get_inode() for directories, otherwise at least + IN_DELETE_SELF inotify event generation is broken. + + Signed-off-by: Sergey Vlasov + Signed-off-by: Hugh Dickins + Signed-off-by: Linus Torvalds + +commit cfd95a9cf58cd9e92d4c23b5ee20b07a3d121477 +Author: Robin H. Johnson +Date: Mon Jun 12 21:50:25 2006 +0100 + + [PATCH] tmpfs: time granularity fix for [acm]time going backwards + + I noticed a strange behavior in a tmpfs file system the other day, while + building packages - occasionally, and seemingly at random, make decided to + rebuild a target. However, only on tmpfs. + + A file would be created, and if checked, it had a sub-second timestamp. + However, after an utimes related call where sub-seconds should be set, they + were zeroed instead. In the case that a file was created, and utimes(...,NULL) + was used on it in the same second, the timestamp on the file moved backwards. + + After some digging, I found that this was being caused by tmpfs not having a + time granularity set, thus inheriting the default 1 second granularity. + + Hugh adds: yes, we missed tmpfs when the s_time_gran mods went into 2.6.11. + Unfortunately, the granularity of CURRENT_TIME, often used in filesystems, + does not match the default granularity set by alloc_super. A few more such + discrepancies have been found, but this is the most important to fix now. + + Signed-off-by: Robin H. Johnson + Acked-by: Andi Kleen + Signed-off-by: Hugh Dickins + Signed-off-by: Linus Torvalds + +commit 42d1d52e695d87475846e9a09964cae1209eeecb +Author: Weidong +Date: Mon Jun 12 13:09:59 2006 -0700 + + [IPV4]: Increment ipInHdrErrors when TTL expires. + + Signed-off-by: Weidong + Signed-off-by: David S. Miller + +commit d374c1c1281d6188a0d0676172b1c0e3de35c6e7 +Author: Linus Torvalds +Date: Mon Jun 12 12:53:27 2006 -0700 + + [sky2] Fix sky2 network driver suspend/resume + + This fixes two independent problems: it would not save the PCI state on + suspend (and thus try to resume a nonexistent state on resume), and + while shut off, if an interrupt happened on the same shared irq, the irq + handler would react very badly to the interrupt status being an invalid + all-ones state. + + Acked-by: Jeff Garzik + Signed-off-by: Linus Torvalds + +commit 79320d7e14900c549c3520791a297328f53ff71e +Author: Aki M Nyrhinen +Date: Sun Jun 11 21:18:56 2006 -0700 + + [TCP]: continued: reno sacked_out count fix + + From: Aki M Nyrhinen + + IMHO the current fix to the problem (in_flight underflow in reno) + is incorrect. it treats the symptons but ignores the problem. the + problem is timing out packets other than the head packet when we + don't have sack. i try to explain (sorry if explaining the obvious). + + with sack, scanning the retransmit queue for timed out packets is + fine because we know which packets in our retransmit queue have been + acked by the receiver. + + without sack, we know only how many packets in our retransmit queue the + receiver has acknowledged, but no idea which packets. + + think of a "typical" slow-start overshoot case, where for example + every third packet in a window get lost because a router buffer gets + full. + + with sack, we check for timeouts on those every third packet (as the + rest have been sacked). the packet counting works out and if there + is no reordering, we'll retransmit exactly the packets that were + lost. + + without sack, however, we check for timeout on every packet and end up + retransmitting consecutive packets in the retransmit queue. in our + slow-start example, 2/3 of those retransmissions are unnecessary. these + unnecessary retransmissions eat the congestion window and evetually + prevent fast recovery from continuing, if enough packets were lost. + + Signed-off-by: David S. Miller + +commit afec35e3fee900b3016519d0b5512064e4625b2c +Author: Andrea Bittau +Date: Sun Jun 11 20:58:33 2006 -0700 + + [DCCP] Ackvec: fix soft lockup in ackvec handling code + + A soft lockup existed in the handling of ack vector records. + Specifically, when a tail of the list of ack vector records was + removed, it was possible to end up iterating infinitely on an element + of the tail. + + Signed-off-by: Andrea Bittau + Signed-off-by: Ian McDonald + Signed-off-by: David S. Miller + +commit ccefb5f3f60cd116d9a8ce2fa9e82e67206e49e5 +Author: David S. Miller +Date: Sun Jun 11 21:00:46 2006 -0700 + + [SPARC64]: Do not double-export sys_close() when CONFIG_SOLARIS_EMUL_MODULE + + It is already exported by fs/open.c + + Noticed by Ben Collins. + + Signed-off-by: David S. Miller + +commit 289a1e995e74734b5ec76ca8a5490058f4fecc24 +Author: Paul Mackerras +Date: Mon Jun 12 12:16:26 2006 +1000 + + [PATCH] Fix for the PPTP hangs that have been reported + + People have been reporting that PPP connections over ptys, such as + used with PPTP, will hang randomly when transferring large amounts of + data, for instance in http://bugzilla.kernel.org/show_bug.cgi?id=6530. + I have managed to reproduce the problem, and the patch below fixes the + actual cause. + + The problem is not in fact in ppp_async.c but in n_tty.c. What + happens is that when pptp reads from the pty, we call read_chan() in + drivers/char/n_tty.c on the master side of the pty. That copies all + the characters out of its buffer to userspace and then calls + check_unthrottle(), which calls the pty unthrottle routine, which + calls tty_wakeup on the slave side, which calls ppp_asynctty_wakeup, + which calls tasklet_schedule. So far so good. Since we are in + process context, the tasklet runs immediately and calls + ppp_async_process(), which calls ppp_async_push, which calls the + tty->driver->write function to send some more output. + + However, tty->driver->write() returns zero, because the master + tty->receive_room is still zero. We haven't returned from + check_unthrottle() yet, and read_chan() only updates tty->receive_room + _after_ calling check_unthrottle. That means that the driver->write + call in ppp_async_process() returns 0. That would be fine if we were + going to get a subsequent wakeup call, but we aren't (we just had it, + and the buffer is now empty). + + The solution is for n_tty.c to update tty->receive_room _before_ + calling the driver unthrottle routine. The patch below does this. + With this patch I was able to transfer a 900MB file over a PPTP + connection (taking about 25 minutes), whereas without the patch the + connection would always stall in under a minute. + + Signed-off-by: Paul Mackerras + Signed-off-by: Linus Torvalds + +commit 2f9719b61e1fcf7422a016ac4f2420a0cc6ba320 +Author: Mark Lord +Date: Wed Jun 7 12:53:29 2006 -0400 + + [PATCH] sata_mv: grab host lock inside eng_timeout + + Bug fix: mv_eng_timeout() calls mv_err_intr() without first grabbing the host lock, + which can lead to all sorts of interesting scenarios. + + This whole error-handling portion of sata_mv is nasty (and will get fixed for + the new EH stuff), but for now this patch will help keep it on life-support. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit c0bbbc73d58f1b774cd987b5687a478a027f137c +Author: Christoph Lameter +Date: Sun Jun 11 15:22:26 2006 -0700 + + [PATCH] typo in vmscan.c + + From: Christoph Lameter + + Looks like a comma was left from the conversion from a struct to an + assignment. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8b8c8d280ab2d18fe6e42d671f60d4ffed451cdc +Author: Yu, Luming +Date: Tue Apr 25 00:00:34 2006 -0700 + + [PATCH] PCI: reverse pci config space restore order + + According to Intel ICH spec, there are several rules that Base Address + should be programmed before IOSE (PCICMD register ) enabled. + + For example ICH7: + + 12.1.3 SATA : the base address register for the bus master register + should be programmed before this bit is set. + + 11.1.3: PCICMD (USB): The base address register for USB should be + programmed before this bit is set. + .... + + To make sure kernel code follow this rule , and prevent unnecessary + confusion. I proposal this patch. + + Signed-off-by: Luming Yu + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 04d9c1a1100b6bdeffa7e1bfc30080bdac28e183 +Author: Dave Jones +Date: Tue Apr 18 21:06:51 2006 -0700 + + [PATCH] PCI: Improve PCI config space writeback + + At least one laptop blew up on resume from suspend with a black screen due + to a lack of this patch. By only writing back config space that is + different, we minimise the possibility of accidents like this. + + Signed-off-by: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 8d92bc2270d67a43b1d7e94a8cb6f81f1435fe9a +Author: Jean Delvare +Date: Tue Apr 18 14:49:56 2006 +0200 + + [PATCH] PCI: Error handling on PCI device resume + + We currently don't handle errors properly when resuming a PCI device: + * In pci_default_resume() we capture the error code returned by + pci_enable_device() but don't pass it up to the caller. + Introduced by commit 95a629657dbe28e44a312c47815b3dc3f1ce0970 + * In pci_resume_device(), the errors possibly returned by the driver's + .resume method or by the generic pci_default_resume() function are + ignored. + + This patch fixes both issues. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 0ce030395b92270567423d57d9d432eb77df32f2 +Author: akpm@osdl.org +Date: Sat May 13 08:30:52 2006 -0700 + + [PATCH] PCI: fix pciehp compile issue when CONFIG_ACPI is not enabled + + Fix build error when CONFIG_ACPI not defined + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 650fb8382287f7990d5127a82a54295139224606 +Author: Krzysztof Helt +Date: Sat Jun 10 22:03:43 2006 -0700 + + [SPARC]: Migration cost tune up in sparc smp. + + This patch sets the max_cache_size value required to tune up + scheduler in SMP systems. Otherwise, the calculated + migration_cost is too high and task scheduling may lock up. + + Signed-off-by: Krzysztof Helt + Signed-off-by: David S. Miller + +commit 9145bcf63575a8b78590a5beaf604001e9c8d2ef +Author: David S. Miller +Date: Sat Jun 10 22:02:17 2006 -0700 + + [SPARC64]: Set appropriate max_cache_size. + + Signed-off-by: David S. Miller + +commit 938473b24636d77dc5e9c3f41090d071b6cf4389 +Author: Milton Miller +Date: Sat Jun 10 09:54:16 2006 -0700 + + [PATCH] powerpc: console_initcall ordering issues + + From: Milton Miller + + The add_preferred_console call in rtas_console.c was not causing the + console to be selected. It turns out that the add_preferred_console was + being called after the hvc_console driver was registered. It only works + when it is called before the console driver is registered. + + Reorder hvc_console.o after the hvc_console drivers to allow the selection + during console_initcall processing. + + Signed-off-by: Milton Miller + Signed-off-by: Anton Blanchard + Cc: Paul Mackerras + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 57a62fed871eb2a95f296fe6c5c250ce21b81a79 +Author: Markus Lidel +Date: Sat Jun 10 09:54:14 2006 -0700 + + [PATCH] I2O: Bugfixes to get I2O working again + + From: Markus Lidel + + - Fixed locking of struct i2o_exec_wait in Executive-OSM + + - Removed LCT Notify in i2o_exec_probe() which caused freeing memory and + accessing freed memory during first enumeration of I2O devices + + - Added missing locking in i2o_exec_lct_notify() + + - removed put_device() of I2O controller in i2o_iop_remove() which caused + the controller structure get freed to early + + - Fixed size of mempool in i2o_iop_alloc() + + - Fixed access to freed memory in i2o_msg_get() + + See http://bugzilla.kernel.org/show_bug.cgi?id=6561 + + Signed-off-by: Markus Lidel + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a913f50706b21c7933f53cec678bb9a1c2383499 +Author: Andrew Morton +Date: Sat Jun 10 09:54:13 2006 -0700 + + [PATCH] powernow-k8 crash workaround + + From: Andrew Morton + + Work around the oops reported in + http://bugzilla.kernel.org/show_bug.cgi?id=6478. + + Thanks to Ralf Hildebrandt for testing and + reporting. + + Acked-by: Dave Jones + Cc: "Brown, Len" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 670bd95e0413c43f878b73a4a3919d1f452a4157 +Author: David Howells +Date: Sat Jun 10 09:54:12 2006 -0700 + + [PATCH] Further alterations for memory barrier document + + From: David Howells + + Apply some alterations to the memory barrier document that I worked out + with Paul McKenney of IBM, plus some of the alterations suggested by Alan + Stern. + + The following changes were made: + + (*) One of the examples given for what can happen with overlapping memory + barriers was wrong. + + (*) The description of general memory barriers said that a general barrier is + a combination of a read barrier and a write barrier. This isn't entirely + true: it implies both, but is more than a combination of both. + + (*) The first example in the "SMP Barrier Pairing" section was wrong: the + loads around the read barrier need to touch the memory locations in the + opposite order to the stores around the write barrier. + + (*) Added a note to make explicit that the loads should be in reverse order to + the stores. + + (*) Adjusted the diagrams in the "Examples Of Memory Barrier Sequences" + section to make them clearer. Added a couple of diagrams to make it more + clear as to how it could go wrong without the barrier. + + (*) Added a section on memory speculation. + + (*) Dropped any references to memory allocation routines doing memory + barriers. They may do sometimes, but it can't be relied on. This may be + worthy of further documentation later. + + (*) Made the fact that a LOCK followed by an UNLOCK should not be considered a + full memory barrier more explicit and gave an example. + + Signed-off-by: David Howells + Acked-by: Paul E. McKenney + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 56f1319e877a969b814b3805c77ea9c31d849f54 +Author: Russell King +Date: Sat Jun 10 12:42:12 2006 +0100 + + [ARM] Fix Integrator and Versatile interrupt initialisation + + Both Integrator and Versatile were using set_irq_handler() and + enable_irq(), and working around the initialisation of the + chained interrupt, instead of the more correct + set_irq_chained_handler() function. Fix Integrator and + Versatile to use the right function, and remove these work-arounds. + + Signed-off-by: Russell King + +commit 46b304934de417a2238d659ef6459a74cb3f5e6b +Author: David S. Miller +Date: Sat Jun 10 01:06:25 2006 -0700 + + [SPARC64]: Avoid JBUS errors on some Niagara systems. + + Doing PCI config space accesses to non-present PCI slots + can result in fatal JBUS errors if the PCI config access + hypervisor call is performed on cpus other than the boot + cpu. + + PCI config space accesses to present PCI slots works just + fine. + + Recursively traverse the OBP device tree under the PCI + controller node and record all present device IDs into + a small hash table. + + Avoid the hypervisor call for any PCI config space access + attempt for a device not recorded in the hash table. + + Signed-off-by: David S. Miller + +commit c29ca9d1812f2abacaefa7daa31e085600128938 +Author: Tom "spot" Callaway +Date: Fri Jun 9 17:01:48 2006 -0700 + + [FUSION]: Fix mptspi.c build with CONFIG_PM not set. + + Signed-off-by: Tom "spot" Callaway + Signed-off-by: David S. Miller + +commit f49639e643e69ff233b14966b8d48541d2e17517 +Author: David S. Miller +Date: Fri Jun 9 11:58:36 2006 -0700 + + [TG3]: Handle Sun onboard tg3 chips more correctly. + + Get rid of all the SUN_570X logic and instead: + + 1) Make sure MEMARB_ENABLE is set when we probe the SRAM + for config information. If that is off we will get + timeouts. + + 2) Always try to sync with the firmware, if there is no + firmware running do not treat it as an error and instead + just report it the first time we notice this condition. + + 3) If there is no valid SRAM signature, assume the device + is onboard by setting TG3_FLAG_EEPROM_WRITE_PROT. + + Update driver version and release date. + + With help from Michael Chan and Fabio Massimo Di Nitto. + + Signed-off-by: David S. Miller + +commit 5224e6cc3ab5ae03895bbb67f4a26ce72e62ce58 +Author: David S. Miller +Date: Tue Jun 6 17:37:41 2006 -0700 + + [SPARC64]: Dump local cpu registers in sun4v_log_error() + + This makes the debugging information more usable. + + Signed-off-by: David S. Miller + +commit 133dda1e4f757e036fa838cba6804d0344931c4a +Author: Arnd Bergmann +Date: Wed Jun 7 12:04:18 2006 +1000 + + [PATCH] powerpc: Fix cell blade detection + + The IBM Cell blade firmware might confuse the kernel to think it's a + pSeries machine. This fixes it for now. With a bit of luck, the firmware + will be updated to avoid that in the future but currently that patch is + needed. + + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Paul Mackerras + +commit 33b7497794424181dca87f18e43ecbc07f86bba5 +Author: Benjamin Herrenschmidt +Date: Wed Jun 7 12:01:32 2006 +1000 + + [PATCH] powerpc: Fix call to ibm,client-architecture-support + + The code in prom_init.c calling the firmware + ibm,client-architecture-support method on pSeries has a bug where it + fails to properly pass the instance handle of the firmware object when + trying to call a method. Result ranges from the call doing nothing to + the firmware crashing. (Found by Segher, thanks !) + + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Segher Boessenkool + Signed-off-by: Paul Mackerras + +commit 7c85d1f9d358b24c5b05c3a2783a78423775a080 +Author: Paul Mackerras +Date: Fri Jun 9 13:02:59 2006 +1000 + + powerpc: Fix machine check problem on 32-bit kernels + + This fixes a bug found by Dave Jones that means that it is possible + for userspace to provoke a machine check on 32-bit kernels. This + also fixes a couple of other places where I found similar problems + by inspection. + + Signed-off-by: Paul Mackerras + +commit bafe00cc9297ca77b66e5c83e5e65e17c0c997c8 +Author: Martin Schwidefsky +Date: Thu Jun 8 01:36:20 2006 -0700 + + [PATCH] s390: fix in-user atomic futex operation. + + From: Martin Schwidefsky + + __futex_atomic_op needs to do an atomic operation in the user address space, + not the kernel address space. Add the missing sacf 256/sacf 0 to switch to + the secondary mode before doing the compare-and-swap. In addition add + another fixup for catch specification exceptions if the compare-and-swap + address is not aligned. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 71601e2b33dad9acb8d7844f7321f90ed9d1bce8 +Author: Jens Axboe +Date: Thu Jun 8 10:26:39 2006 +0200 + + [PATCH] debugfs inode leak + + Looking at the reiser4 crash, I found a leak in debugfs. In + debugfs_mknod(), we create the inode before checking if the dentry + already has one attached. We don't free it if that is the case. + + These bugs happen quite often, I'm starting to think we should disallow + such coding in CodingStyle. + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit bc1c116974a5c3f498112a6f175d3e4a8cd5bdbc +Author: Jens Axboe +Date: Thu Jun 8 08:49:06 2006 +0200 + + [PATCH] elevator switching race + + There's a race between shutting down one io scheduler and firing up the + next, in which a new io could enter and cause the io scheduler to be + invoked with bad or NULL data. + + To fix this, we need to maintain the queue lock for a bit longer. + Unfortunately we cannot do that, since the elevator init requires to be + run without the lock held. This isn't easily fixable, without also + changing the mempool API. So split the initialization into two parts, + and alloc-init operation and an attach operation. Then we can + preallocate the io scheduler and related structures, and run the attach + inside the lock after we detach the old one. + + This patch has survived 30 minutes of 1 second io scheduler switching + with a very busy io load. + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 26e780e8ef1cc3ef581a07aafe2346bb5a07b4f9 +Author: Malcom Parsons +Date: Thu Jun 8 00:43:42 2006 -0700 + + [PATCH] fbcon: fix limited scroll in SCROLL_PAN_REDRAW mode + + From: Malcom Parsons + + When scrolling up in SCROLL_PAN_REDRAW mode with a large limited scroll + region, the bottom few lines have to be redrawn. Without this patch, the + wrong text is drawn into these lines, corrupting the display. + + Observed in 2.6.14 when running an IRC client in the Nintendo DS linux + port. + + I haven't tested if scrolling down has the same problem. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 45b35a5ced474b9fbbbfcfd5cf346c432d28d9fd +Author: Ralf Baechle +Date: Thu Jun 8 00:43:41 2006 -0700 + + [PATCH] Fix mempolicy.h build error + + From: Ralf Baechle + + uses struct mm_struct and relies on a definition or + declaration somehow magically being dragged in which may result in a + build: + + [...] + CC mm/mempolicy.o + In file included from mm/mempolicy.c:69: + include/linux/mempolicy.h:150: warning: ‘struct mm_struct’ declared inside parameter list + include/linux/mempolicy.h:150: warning: its scope is only this definition or declaration, which is probably not what you want + include/linux/mempolicy.h:175: warning: ‘struct mm_struct’ declared inside parameter list + mm/mempolicy.c:622: error: conflicting types for ‘do_migrate_pages’ + include/linux/mempolicy.h:175: error: previous declaration of ‘do_migrate_pages’ was here + mm/mempolicy.c:1661: error: conflicting types for ‘mpol_rebind_mm’ + include/linux/mempolicy.h:150: error: previous declaration of ‘mpol_rebind_mm’ was here + make[1]: *** [mm/mempolicy.o] Error 1 + make: *** [mm] Error 2 + [ralf@denk linux-ip35]$ + + Including is a step into direction of include hell so + fixed by adding a forward declaration of struct mm_struct instead. + + Signed-off-by: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fd0a0ac1c5393b226640a30bae753983068136b3 +Author: Lennert Buytenhek +Date: Thu Jun 8 00:43:40 2006 -0700 + + [PATCH] ep93xx build fix + + From: Lennert Buytenhek + + The recent renaming of m48t86's ->readb() and ->writeb() platform driver + methods (2d7b20c1884777e66009be1a533641c19c4705f6) to ->readbyte() and + ->writebyte() to fix the ia64 build broke the build of the cirrus ep93xx + ARM platform. This patch fixes it up. + + Signed-off-by: Lennert Buytenhek + Cc: Alessandro Zummo + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a2ef3a50f19f64d350bdc0aa15c31ae4b8973f57 +Author: Andy Currid +Date: Thu Jun 8 00:43:39 2006 -0700 + + [PATCH] Fix HPET operation on 64-bit NVIDIA platforms + + From: "Andy Currid" + + This patch fixes a kernel panic during boot that occurs on NVIDIA platforms + that have HPET enabled. + + When HPET is enabled, the standard timer IRQ is routed to IOAPIC pin 2 and is + advertised as such in the ACPI APIC table - but an earlier workaround in the + kernel was ignoring this override. The fix is to honor timer IRQ overrides + from ACPI when HPET is detected on an NVIDIA platform. + + Signed-off-by: Andy Currid + Cc: "Brown, Len" + Cc: "Yu, Luming" + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d44647b0a6e48d18a1402dfa9052d85c4fe98341 +Author: Andy Currid +Date: Thu Jun 8 00:43:38 2006 -0700 + + [PATCH] Fix HPET operation on 32-bit NVIDIA platforms + + From: "Andy Currid" + + This patch fixes a kernel panic during boot that occurs on NVIDIA platforms + that have HPET enabled. + + When HPET is enabled, the standard timer IRQ is routed to IOAPIC pin 2 and is + advertised as such in the ACPI APIC table - but an earlier workaround in the + kernel was ignoring this override. The fix is to honor timer IRQ overrides + from ACPI when HPET is detected on an NVIDIA platform. + + Signed-off-by: Andy Currid + Cc: "Brown, Len" + Cc: "Yu, Luming" + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e2f04e18941dbd3826901540a0be03f1728f8822 +Author: Matt Reimer +Date: Thu Jun 8 22:46:48 2006 +0100 + + [ARM] 3546/1: PATCH: subtle lost interrupts bug on i.MX + + Patch from Matt Reimer + + There is a subtle bug in the GPIO interrupt status register + handling in arch/arm/mach-imx/irq.c:imx_gpio_ack_irq(). The + documentation states that a 1 should be written to the relevant bit to + acknowledge a GPIO interrupt, but that is not what the code does. + + The problem is that the |= writes back 1s for all the *other* + interrupts represented in the register, so interrupts could get lost. + For example, if interrupts are pending for GPIO B10 and B12, ISR_B + would have the value 0x00001400. Then when the interrupt code handles + GPIO B10, it eventually calls imx_gpio_ack_irq(IRQ_GPIOB(10)), which + effectively does this: + + ISR_B |= 1 << 10; + + with the result that (0x00001400 | 0x00000400) is written, clearing + the interrupt status bits for *both* GPIO B10 and B12. + + The fix is to write 1s only for the interrupts we want to clear. + + The same problem seems to be occurring in the DMA code; this patch + does not address those issues. + + Acked-by: Sascha Hauer + Signed-off-by: Matt Reimer + Signed-off-by: Russell King + +commit 0c27c5d5b93339df4def7ced77ea5be26df4d84b +Author: Richard Purdie +Date: Thu Jun 8 22:44:07 2006 +0100 + + [ARM] 3547/1: PXA-OHCI: Allow platforms to specify a power budget + + Patch from Richard Purdie + + Add a power budget variable to the PXA OHCI platform data and add a + default value for the spitz platform(s) which prevents known failures + with certain USB devices. + + Signed-off-by: Richard Purdie + Signed-off-by: Russell King + +commit d782f33df706f1b8a4496b41fd7d339c6e23aa59 +Author: Russell King +Date: Thu Jun 8 17:59:31 2006 +0100 + + [ARM] Fix Neponset IRQ handling + + While testing the genirq code on ARM, a condition was found whereby + the Neponset IRQ handler was being re-entered, causing the system + to deadlock. + + Under the ARM IRQ code, this would not have been a visible problem + because the "simple" IRQ handling had no re-entrancy protection. + + Resolve this by acknowledging the parent interrupt after we mask it + when we are going to handle one of our "special" level-based sources + (from ethernet or USAR chip.) + + Signed-off-by: Russell King + +commit 24f476eeecba66524af3f95e31ac208eea99e617 +Author: Auke Kok +Date: Thu Jun 8 09:28:47 2006 -0700 + + e1000: remove risky prefetch on next_skb->data + + It was brought to our attention that the prefetches break e1000 traffic + on xscale/arm architectures. Remove them for now. We'll let them + stay in mm for a while, or find a better solution to enable. + + Signed-off-by: Jesse Brandeburg + Signed-off-by: Auke Kok + +commit b9b6e78b11de295ef073271979355d5fab71b877 +Author: Auke Kok +Date: Thu Jun 8 09:28:38 2006 -0700 + + e1000: fix ethtool test irq alloc as "probe" + + New code added in 2.6.17 caused setup_irq to print a warning when + running ethtool -t eth0 offline. + + This test marks the request_irq call made by this test as a "probe" + to see if the interrupt is shared or not. + + Signed-off-by: Jesse Brandeburg + Signed-off-by: Auke Kok + +commit 1def630a6a49dda5bc89dfbd86656293640456f0 +Author: Linus Torvalds +Date: Mon Jun 5 17:57:02 2006 -0700 + + Linux 2.6.17-rc6 + +commit 36485707bbd9729e0c52315b173aeed9bc2303dd +Author: Jiri Benc +Date: Mon Jun 5 16:39:34 2006 -0700 + + [BRIDGE]: fix locking and memory leak in br_add_bridge + + There are several bugs in error handling in br_add_bridge: + - when dev_alloc_name fails, allocated net_device is not freed + - unregister_netdev is called when rtnl lock is held + - free_netdev is called before netdev_run_todo has a chance to be run after + unregistering net_device + + Signed-off-by: Jiri Benc + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit b1c231f5a57cb4a417c38a8a946f1e66db3bb9c0 +Author: Chad Reese +Date: Tue May 30 17:16:49 2006 -0700 + + [MIPS] Fix sparsemem support. + + Move memory_present() in arch/mips/kernel/setup.c. When using sparsemem + extreme, this function does an allocate for bootmem. This would always + fail since init_bootmem hasn't been called yet. + + Move memory_present after free_bootmem. This only marks actual memory + ranges as present instead of the entire address space. + + Signed-off-by: Chad Reese + Signed-off-by: Ralf Baechle + +commit ecf52d3c895c8bc069b9ae07c18acf39d846c2ef +Author: Atsushi Nemoto +Date: Thu Jun 1 01:00:03 2006 +0900 + + [MIPS] Fix compiler warnings (field width, unused variable) + + Fix following warnings: + linux/arch/mips/kernel/setup.c:432: warning: field width is not type int (arg 2) + linux/arch/mips/kernel/setup.c:432: warning: field width is not type int (arg 4) + linux/arch/mips/kernel/syscall.c:279: warning: unused variable `len' + linux/arch/mips/kernel/syscall.c:280: warning: unused variable `name' + linux/arch/mips/math-emu/dp_fint.c:32: warning: unused variable `xc' + linux/arch/mips/math-emu/dp_flong.c:32: warning: unused variable `xc' + linux/arch/mips/math-emu/sp_fint.c:32: warning: unused variable `xc' + linux/arch/mips/math-emu/sp_flong.c:32: warning: unused variable `xc' + + (original patch by Atsushi, slight changes to the setup.c part by me.) + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 460c0422c3861ab63a14c2be600a96a9e68b89f2 +Author: Atsushi Nemoto +Date: Thu Jun 1 01:00:39 2006 +0900 + + [MIPS] Fix sparse warnings about too big constants. + + Fix following warnings: + linux/arch/mips/kernel/setup.c:249:12: warning: constant 0xffffffff00000000 is so big it is unsigned long + linux/arch/mips/kernel/cpu-bugs64.c:209:10: warning: constant 0xffffffffffffdb9a is so big it is unsigned long + linux/arch/mips/kernel/cpu-bugs64.c:227:10: warning: constant 0xffffffffffffdb9a is so big it is unsigned long + linux/arch/mips/kernel/cpu-bugs64.c:283:10: warning: constant 0xffffffffffffdb9a is so big it is unsigned long + linux/arch/mips/kernel/cpu-bugs64.c:299:10: warning: constant 0xffffffffffffdb9a is so big it is unsigned long + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit e32b699335b70fae94ce041c9a1c6d3a31a3f7e4 +Author: Ralf Baechle +Date: Tue May 30 15:55:05 2006 +0100 + + [MIPS] Fix 64-bit build for RM7000. + + RM7000 has 40-bit virtual / 36-bit physical address space. + + Signed-off-by: Ralf Baechle + +commit b6d7c7a91138c883f890c204cd5300172145b0b3 +Author: Ralf Baechle +Date: Tue May 30 02:13:16 2006 +0100 + + [MIPS] IP32: Fix warnings. + + The expressions are volatile; no need for temporary variables. + + Signed-off-by: Ralf Baechle + +commit 7cb710c9a617384cd0ed30638f3acc00125690fc +Author: Sergei Shtylyov +Date: Sat May 27 22:39:39 2006 +0400 + + [MIPS] Fix non-linear memory mapping on MIPS + + Fix the non-linear memory mapping done via remap_file_pages() -- it + didn't work on any MIPS CPU because the page offset clashing with + _PAGE_FILE and some other page protection bits which should have been left + zeros for this kind of pages. + + Signed-off-by: Konstantin Baydarov + Signed-off-by: Sergei Shtylyov + Signed-off-by: Ralf Baechle + +commit aa32374aaa2e516a9b0719477efae0782a62a79e +Author: Ralf Baechle +Date: Mon May 29 00:02:12 2006 +0100 + + [MIPS] SB1: Only pass1 FPUs are broken beyond recovery. + + The wrong revision number in the check was forcing a fallback to FPU + emulation for all SB1 cores in 2.6. + + Signed-off-by: Ralf Baechle + +commit 7155262e180d3b50fdea0f58f3329d9ae81ef80b +Author: Thiemo Seufer +Date: Sun May 28 15:02:53 2006 +0100 + + [MIPS] open() forces O_LARGEFILE for o32 on 64bit kernels + + open() always sets the O_LARGEFILE flag for the o32 ABI implementation + of a 64bit kernel. The appended patch fixes it. + + Signed-off-by: Thiemo Seufer + Signed-off-by: Ralf Baechle + +commit fef6d6a73a3985e4fdb5ab1910909c0c73539829 +Author: Sergei Shtylyov +Date: Sat May 27 23:36:41 2006 +0400 + + [MIPS] Au1xx0: fix prom_getenv() to handle YAMON style environment + + Alchemy boards use YAMON which passes the environment variables as the + tuples of strings (the name followed by the value) unlike PMON which + passes "name=" strings. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Ralf Baechle + +commit 6ebba0e2f56ee77270a9ef8e92c1b4ec38e5f419 +Author: Sergei Shtylyov +Date: Sat May 27 20:43:04 2006 +0400 + + [MIPS] Fix swap entry for MIPS32 36-bit physical address + + With 64-bit physical address enabled, 'swapon' was causing kernel oops on + Alchemy CPUs (MIPS32) because of the swap entry type field corrupting the + _PAGE_FILE bit in 'pte_low' field. So, switch to storing the swap entry in + 'pte_high' field using all its bits except _PAGE_GLOBAL and _PAGE_VALID which + gives 25 bits for the swap entry offset. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Ralf Baechle + +commit 79e0bc37255a4b934291b4d3ea5a4561fbd78da4 +Author: Sergei Shtylyov +Date: Wed May 3 22:56:43 2006 +0400 + + [MIPS] Fix mprotect() syscall for MIPS32 w/36-bit physical address support + + Fix mprotect() syscall for MIPS32 CPUs with 36-bit physical address + support: pte_modify() macro didn't clear the hardware page protection bits + before modifying... + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Ralf Baechle + +commit 9370b35175ca43fad7d24bc7b391473f3becbee8 +Author: Sergei Shtylyov +Date: Fri May 26 19:44:54 2006 +0400 + + [MIPS] Save write-only Config.OD from being clobbered + + Save the Config.OD bit from being clobbered by coherency_setup(). This + bit, when set, fixes various errata in the early steppings of Au1x00 + SOCs. Unfortunately, the bit was write-only on the most early of them. + In addition, also restore the bit after a wakeup from sleep. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Ralf Baechle + +commit cac4bcbce0e800f2219a27b66aaeb4a33f2e3dbc +Author: Ralf Baechle +Date: Wed May 24 16:51:02 2006 +0100 + + [MIPS] Print more information if we're struck by a machine check exception. + + Signed-off-by: Ralf Baechle + +commit 722ace9dfb73a62bf78c2db619795cfc128fef5a +Author: Ralf Baechle +Date: Wed May 24 03:04:18 2006 +0100 + + [MIPS] Fix declaration of smp_prepare_cpus() platform hook. + + A while ago prom_prepare_cpus was replaced by plat_prepare_cpus but + the declaration has stayed unchanged. + + Signed-off-by: Ralf Baechle + +commit 1acf1ca7e906cf7453d76d76a6c953996295c220 +Author: Atsushi Nemoto +Date: Tue May 23 16:42:38 2006 +0900 + + [MIPS] Fix modpost warning: Rename op_model_xxx to op_model_xxx_ops. + + The modpost uses a whitelist for commonly used suffix on checking the + section mismatch. Adding "_ops" suffix to op_modex_xxx get rid of + this modpost warning. + + WARNING: arch/mips/oprofile/oprofile.o - Section mismatch: reference to .init.text: from .data after 'op_model_mipsxx' (at offset 0x528) + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 5ee823507b3c7d2187df2160125a4f64232d3a60 +Author: Ralf Baechle +Date: Tue May 23 16:37:32 2006 +0100 + + [MIPS] Fix instable BogoMIPS on multi-issue processors. + + Increase alignment of BogoMIPS loop to 8 bytes. Having the delay loop + overlap cache line boundaries may cause instable delays. + + Signed-off-by: Ralf Baechle + +commit f3bf07b9a367c342bcbc9f47d525d3cf5e8b4f3b +Author: Atsushi Nemoto +Date: Tue May 23 00:45:07 2006 +0900 + + [MIPS] Ignore unresolved weak symbols in modules. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 320e6aba26892b016293190e079f15e83a5c28b9 +Author: Ralf Baechle +Date: Mon May 22 14:24:04 2006 +0100 + + [MIPS] Fix SMP now that fixup_cpu_present_map is gone. + + Signed-off-by: Ralf Baechle + +commit acf518cbba773e2c20fe313acb340da65001c7a8 +Author: Ralf Baechle +Date: Thu May 18 01:16:10 2006 +0200 + + [MIPS] Remove duplicate declaration of cpu_online_map. + + Signed-off-by: Ralf Baechle + +commit 8c893ff6abbac0c7c05b1cb9bfb6e2dfc4538c75 +Author: Florin Malita +Date: Mon Jun 5 15:34:52 2006 -0700 + + [IRDA]: Missing allocation result check in irlap_change_speed(). + + The skb allocation may fail, which can result in a NULL pointer dereference + in irlap_queue_xmit(). + + Coverity CID: 434. + + Signed-off-by: Florin Malita + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 9bc18091a5e44a368827f539289b99788eb27d4e +Author: Florin Malita +Date: Mon Jun 5 15:34:33 2006 -0700 + + [PPPOE]: Missing result check in __pppoe_xmit(). + + skb_clone() may fail, we should check the result. + + Coverity CID: 1215. + + Signed-off-by: Florin Malita + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 6569a351da7e58d6f0fbc92fcf0bef5d4a4bc0a4 +Author: Jes Sorensen +Date: Mon Jun 5 15:34:11 2006 -0700 + + [NET]: Eliminate unused /proc/sys/net/ethernet + + The /proc/sys/net/ethernet directory has been sitting empty for more than + 10 years! Time to eliminate it! + + Signed-off-by: Jes Sorensen + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 92cd6eeea62e235fcb6634d87d1572c3da59f088 +Author: Matt Mackall +Date: Mon Jun 5 15:04:37 2006 -0700 + + [NETCONSOLE]: Clean up initcall warning. + + From: Matt Mackall + + netconsole is being wrong here. If it wasn't enabled there's no error. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit f291196979ca80cdef199ca2b55e2758e8c23a0d +Author: Herbert Xu ~{PmVHI~} +Date: Mon Jun 5 15:03:37 2006 -0700 + + [TCP]: Avoid skb_pull if possible when trimming head + + Trimming the head of an skb by calling skb_pull can cause the packet + to become unaligned if the length pulled is odd. Since the length is + entirely arbitrary for a FIN packet carrying data, this is actually + quite common. + + Unaligned data is not the end of the world, but we should avoid it if + it's easily done. In this case it is trivial. Since we're discarding + all of the head data it doesn't matter whether we move skb->data forward + or back. + + However, it is still possible to have unaligned skb->data in general. + So network drivers should be prepared to handle it instead of crashing. + + This patch also adds an unlikely marking on len < headlen since partial + ACKs on head data are extremely rare in the wild. As the return value + of __pskb_trim_head is no longer ever NULL that has been removed. + + Signed-off-by: Herbert Xu ~{PmV>HI~} + Signed-off-by: David S. Miller + +commit fec468b0c9e0a75b89514408e3b35b1576b57071 +Author: Jeff Dike +Date: Sun Jun 4 02:51:49 2006 -0700 + + [PATCH] uml: add -ffreestanding to CFLAGS + + From: Jeff Dike + + This fixes the undefined reference to strcpy seen when building modules on + i386. Tracked down by Al Viro. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b8719c31a30a4a1054d99fbd51a88c2f6444392a +Author: Al Viro +Date: Sun Jun 4 02:51:48 2006 -0700 + + [PATCH] uml: more __user annotations + + From: Al Viro + + uml __user annotations + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ca34fb1a8786af43457ec4f1bfc101a66d1160e0 +Author: Al Viro +Date: Sun Jun 4 02:51:47 2006 -0700 + + [PATCH] uml: __user annotation in arch_prctl + + From: Al Viro + + fix uml/amd64 prctl() + + put_user() there should go to (long __user *)addr, not &addr + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f218312582350900443125137e6c5fc484dc1de1 +Author: Jeff Dike +Date: Sun Jun 4 02:51:47 2006 -0700 + + [PATCH] uml: fix a typo in do_uml_initcalls + + From: Jeff Dike + + We had a spurious semicolon somehow. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5cb38bc47bf370570fce81f89e05e5250169060f +Author: Jeff Dike +Date: Sun Jun 4 02:51:46 2006 -0700 + + [PATCH] uml: fix wall_to_monotonic initialization + + From: Jeff Dike + + Initialize wall_to_monotonic correctly. This fixes a problem where sleeps + lasted about one secone less than they should. This also called for a bit of + code restructuring, following a patch which Blaisorblade had been keeping. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 65e62974a8a6157140259b26e7156e39f53031b6 +Author: Jeff Dike +Date: Sun Jun 4 02:51:43 2006 -0700 + + [PATCH] uml: add asm/irqflags.h + + From: Jeff Dike + + Add an empty asm/irqflags.h, which seems to satisfy the lock validator enough + that UML builds. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2d7b20c1884777e66009be1a533641c19c4705f6 +Author: Andrew Morton +Date: Sun Jun 4 02:51:42 2006 -0700 + + [PATCH] m48t86: ia64 build fix + + From: Andrew Morton + + drivers/rtc/rtc-m48t86.c: In function `m48t86_rtc_read_time': + drivers/rtc/rtc-m48t86.c:51: error: structure has no member named `ia64_mv' + drivers/rtc/rtc-m48t86.c:55: error: structure has no member named `ia64_mv' + drivers/rtc/rtc-m48t86.c:56: error: structure has no member named `ia64_mv' + drivers/rtc/rtc-m48t86.c:57: error: structure has no member named `ia64_mv' + drivers/rtc/rtc-m48t86.c:58: error: structure has no member named `ia64_mv' + drivers/rtc/rtc-m48t86.c:60: error: structure has no member named `ia64_mv' + + readb() and writeb() are macros on ia64. + + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 67f672f61bb75e74805046e4a301f4923b0ef753 +Author: Rune Torgersen +Date: Sun Jun 4 02:51:41 2006 -0700 + + [PATCH] sata_sil24: SII3124 sata driver endian problem + + From: "Rune Torgersen" + + Fix an endian issue in the sil24 driver. + + Signed-off-by: Rune Torgersen + Acked-by: Jeff Garzik + Cc: Tejun Heo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 829a1985e732698ee98def146410e6e9f532781f +Author: Stefan Richter +Date: Sun Jun 4 02:51:40 2006 -0700 + + [PATCH] sbp2: fix check of return value of hpsb_allocate_and_register_addrspace() + + From: Stefan Richter + + I added a failure check in patch "sbp2: variable status FIFO address (fix + login timeout)" --- alas for a wrong error value. This is a bug since + Linux 2.6.16. Leads to NULL pointer dereference if the call failed, and + bogus failure handling if call succeeded. + + Signed-off-by: Stefan Richter + Cc: + Cc: Ben Collins + Cc: Jody McIntyre + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 948c51e6a8d71df99ef57c61bc80dc7c20cbf7bc +Author: Michael Chan +Date: Sun Jun 4 02:51:39 2006 -0700 + + [PATCH] MAINTAINERS: Add entries for BNX2 and TG3 + + From: "Michael Chan" + + Add maintainer entries for Broadcom BNX2 and TG3 drivers. + + Signed-off-by: Michael Chan + Cc: "David S. Miller" + Acked-by: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0674d594ad8e0856243536c0bcc22e4583554bfb +Author: Zachary Amsden +Date: Sun Jun 4 02:51:38 2006 -0700 + + [PATCH] Implement get / set tso for forcedeth driver + + From: Zachary Amsden + + Signed-off-by: Zachary Amsden + Cc: Ayaz Abdulla + Cc: Manfred Spraul + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 78b86e579f11e7d7bd45acd90b6a87cd4b7c5a54 +Author: Benjamin Herrenschmidt +Date: Sun Jun 4 02:51:38 2006 -0700 + + [PATCH] pmf_register_irq_client() gives sleep with locks held warning + + From: Benjamin Herrenschmidt + + This fixes request_irq() potentially called from atomic context. + + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d09bb627d2470299dfb1af0e6d27fb4aece9196 +Author: Trond Myklebust +Date: Sun Jun 4 02:51:37 2006 -0700 + + [PATCH] fs/namei.c: Call to file_permission() under a spinlock in do_lookup_path() + + From: Trond Myklebust + + We're presently running lock_kernel() under fs_lock via nfs's ->permission + handler. That's a ranking bug and sometimes a sleep-in-spinlock bug. This + problem was introduced in the openat() patchset. + + We should not need to hold the current->fs->lock for a codepath that doesn't + use current->fs. + + [vsu@altlinux.ru: fix error path] + Signed-off-by: Trond Myklebust + Cc: Al Viro + Signed-off-by: Sergey Vlasov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c7d2d28b9851d0ffc9924b0e36bac806d18ebf25 +Author: Ivan Kokshaysky +Date: Sun Jun 4 02:51:34 2006 -0700 + + [PATCH] alpha: SMP IRQ routing fix + + From: Ivan Kokshaysky + + After removal of fixup_cpu_present_map() function Alpha ended up with an empty + cpu_present_map, so secondary CPUs on SMP systems are not being started. + + Worse, on some platforms we route interrupts to secondary CPUs using + cpu_possible_map which is still populated properly. As a result, these + interrupts go nowhere so the machines like DP264 aren't able to boot even with + a primary CPU. + + Fixed basically by s/cpu_present_mask/cpu_present_map/. + + Thanks to Ernst Herzberg for reporting the bug and testing the fix. + + Cc: Ernst Herzberg + Cc: Richard Henderson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ba0c19ed6a61a96d4b42b81cb19d4bc81b5f728c +Author: Stephen Smalley +Date: Sun Jun 4 02:51:30 2006 -0700 + + [PATCH] selinux: fix sb_lock/sb_security_lock nesting + + From: Stephen Smalley + + Fix unsafe nesting of sb_lock inside sb_security_lock in + selinux_complete_init. Detected by the kernel locking validator. + + Signed-off-by: Stephen Smalley + Acked-by: James Morris + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 93ff66bf1ef29881dffd6fdc344555dab03cdb42 +Author: Ralf Baechle +Date: Sun Jun 4 02:51:29 2006 -0700 + + [PATCH] Sparsemem build fix + + From: Ralf Baechle + + uses PAGE_SIZE, PAGE_SHIFT from without + including that header itself. For some sparsemem configurations this may + result in build errors like: + + CC init/initramfs.o + In file included from include/linux/gfp.h:4, + from include/linux/slab.h:15, + from include/linux/percpu.h:4, + from include/linux/rcupdate.h:41, + from include/linux/dcache.h:10, + from include/linux/fs.h:226, + from init/initramfs.c:2: + include/linux/mmzone.h:498:22: warning: "PAGE_SHIFT" is not defined + In file included from include/linux/gfp.h:4, + from include/linux/slab.h:15, + from include/linux/percpu.h:4, + from include/linux/rcupdate.h:41, + from include/linux/dcache.h:10, + from include/linux/fs.h:226, + from init/initramfs.c:2: + include/linux/mmzone.h:526: error: `PAGE_SIZE' undeclared here (not in a function) + include/linux/mmzone.h: In function `__pfn_to_section': + include/linux/mmzone.h:573: error: `PAGE_SHIFT' undeclared (first use in this function) + include/linux/mmzone.h:573: error: (Each undeclared identifier is reported only once + include/linux/mmzone.h:573: error: for each function it appears in.) + include/linux/mmzone.h: In function `pfn_valid': + include/linux/mmzone.h:578: error: `PAGE_SHIFT' undeclared (first use in this function) + make[1]: *** [init/initramfs.o] Error 1 + make: *** [init] Error 2 + + Signed-off-by: Ralf Baechle + Seems-reasonable-to: Andy Whitcroft + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4ae9538dd02824257e8e72c053c69ad6680aba04 +Author: Peter Oberparleiter +Date: Sun Jun 4 02:51:28 2006 -0700 + + [PATCH] s390: cio non-unique path group ids + + From: Peter Oberparleiter + + The path grouping can fail due to non-unique pathgroup-IDs. The source for + the CPU-ID part of the ID was incorrectly specified on 64 bit systems. + Additionally, the length of the ID was too large due to incorrect data packing + declaration. Fix CPU-ID lowcore address and add missing packing declaration. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e0ec574987a3301f7767750bb6e8be47d6323bfa +Author: Cornelia Huck +Date: Sun Jun 4 02:51:27 2006 -0700 + + [PATCH] s390: irb memcpy argument swap + + From: Cornelia Huck + + Swapped memcpy arguments in ccw_device_irq() when doing basic sense after + unsolicited interrupt. + + Signed-off-by: Cornelia Huck + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6f258910733a8dbde368acc2ede4b8184ff0e09a +Author: Florin Malita +Date: Sun Jun 4 02:51:26 2006 -0700 + + [PATCH] nmclan_cs: dereferencing skb after netif_rx() + + From: Florin Malita + + The skb may be gone after netif_rx(), we can't use 'skb->len' to update the + stats. 'pkt_len' should work instead. + + Coverity CID: 911. + + Signed-off-by: Florin Malita + Cc: Dominik Brodowski + Acked-by: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ea9a7719597e81a119a155178eabfc941eef11cc +Author: Michael Buesch +Date: Sun Jun 4 02:20:42 2006 +0200 + + [PATCH] bcm43xx: add DMA rx poll workaround to DMA4 + + Also add the Poll RX DMA Memory workaround to the DMA4 + (xmitstatus) path. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit a7d14f875f03cb78992da8387be81a4c9197f101 +Author: Steve Yang +Date: Mon Jun 5 19:47:17 2006 +0100 + + [ARM] 3543/1: [Fwd: PXA270 bootparams address not set] + + Patch from Steve Yang + + MACHINE_START struct doesn't have any bootargs location for the + mainstone. Result is no kernel command args get passed; no serial driver + is selected for console and results in a silent boot failure. + + Signed-off-by: Steve Yang + Signed-off-by: Russell King + +commit 959eb39297e8c82f61fbfc283ad4ff11c883bf1e +Author: Eli Cohen +Date: Mon Jun 5 09:51:36 2006 -0700 + + IPoIB: Fix AH leak at interface down + + When ipoib_stop() is called it first calls netif_stop_queue() to stop + the kernel from passing more packets to the network driver. However, + the completion handler may call netif_wake_queue() re-enabling packet + transfer. + + This might result in leaks (we see AH leaks which we think can be + attributed to this bug) as new packets get posted while the interface + is going down. + + Signed-off-by: Eli Cohen + Signed-off-by: Michael Tsirkin + Signed-off-by: Roland Dreier + +commit e853534e6b94f87e48f29e1701c3f6f8a63669c5 +Author: Horst Schirmeier +Date: Mon Jun 5 10:45:30 2006 +0100 + + [SERIAL] typo: buad -> baud + + Replacing mistyped "buad" with "baud" where applicable. + + Signed-off-by: Horst Schirmeier + Signed-off-by: Russell King + +commit ae5de0ff0bc24664a053109c6caa782ba2ad7c53 +Author: David S. Miller +Date: Sun Jun 4 21:32:01 2006 -0700 + + [SPARC64]: Fix missing fold at end of checksums. + + Both csum_partial() and the csum_partial_copy*() family of routines + forget to do a final fold on the computed checksum value on sparc64. + So do the standard Sparc "add + set condition codes, add carry" + sequence, then make sure the high 32-bits of the return value are + clear. + + Based upon some excellent detective work and debugging done by + Richard Braun and Samuel Thibault. + + Signed-off-by: David S. Miller + +commit c41045a43a08f898ef5490036f761c87a43dcddc +Author: Egry Gabor +Date: Sun Jun 4 21:22:11 2006 +0100 + + [ARM] Trivial typo fixes + + Trivial typo fixes in Kconfig files (ARM). + + Signed-off-by: Egry Gabor + Signed-off-by: Russell King + +commit 092d01e260da628b01d4229c31a296111e3cd97a +Author: Ralf Baechle +Date: Sun Jun 4 17:40:58 2006 +0100 + + [MMC] Prevent au1xmmc.c breakage on non-Au1200 Alchemy + + The driver is selectable on other than Au1200 Alchemy systems but won't + build nor work - there is no MMC hw. + + Signed-off-by: Ralf Baechle + Signed-off-by: Russell King + +commit baca2da4c9c5de63b215b1d82f8e774449d15655 +Author: Russell King +Date: Sun Jun 4 17:36:31 2006 +0100 + + [MMC] Add maintainers entry for MMC subsystem + + Signed-off-by: Russell King + +commit fb80a6e1a521eb298edb4365429d533dd39427fa +Author: Stephen Hemminger +Date: Fri Jun 2 17:51:08 2006 -0700 + + [TCP] tcp_highspeed: Fix problem observed by Xiaoliang (David) Wei + + When snd_cwnd is smaller than 38 and the connection is in + congestion avoidance phase (snd_cwnd > snd_ssthresh), the snd_cwnd + seems to stop growing. + + The additive increase was confused because C array's are 0 based. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit ec8510f6fe57f59e42484809679af31ca7896dcf +Author: Lennert Buytenhek +Date: Fri Jun 2 19:51:51 2006 +0100 + + [ARM] 3540/1: ixp23xx: deal with gap in interrupt bitmasks + + Patch from Lennert Buytenhek + + On the ixp23xx, the microengine thread interrupt sources are numbered + 56..119, but their mask/status bits are located in bit positions 64..127 + in the various registers in the interrupt controller (bit positions + 56..63 are unused.) + + We don't deal with this, so currently, when asked to enable IRQ 64, we + will enable IRQ 56 instead. + + The only interrupts >= 64 are the thread interrupt sources, and there + are no in-tree users of those yet, so this is fortunately not a big + problem, but this needs fixing anyway. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit a77bc69138a4f52d003ca81d075f386953f6b25a +Author: Lennert Buytenhek +Date: Fri Jun 2 19:51:50 2006 +0100 + + [ARM] 3539/1: ixp23xx: fix __arch_ixp23xx_is_coherent() for A1 stepping + + Patch from Lennert Buytenhek + + The current __ixp23xx_arch_is_coherent() check assumes that the + lower byte of IXP23XX_PRODUCT_ID is identical to the lower byte of + processor_id, but this is not the case, and because of this we were + incorrectly enabling coherency on A1 stepping CPUs. + + Stepping A1 of the ixp2350, which has a PRODUCT_ID of 0x401, has '02' + in the lower byte of processor_id, while A2, with a PRODUCT_ID of + 0x402, has '04' in the lower byte of processor_id. + + So, to check for >= A2, we really need to check the lower byte of + processor_id against >= 4. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit b1ab41c4943008375c149a63602d7407f61de5b2 +Author: Ingo Molnar +Date: Fri Jun 2 15:44:58 2006 +0200 + + [PATCH] slab.c: fix offslab_limit bug + + mm/slab.c's offlab_limit logic is totally broken. + + Firstly, "offslab_limit" is a global variable while it should either be + calculated in situ or should be passed in as a parameter. + + Secondly, the more serious problem with it is that the condition for + calculating it: + + if (!(OFF_SLAB(sizes->cs_cachep))) { + offslab_limit = sizes->cs_size - sizeof(struct slab); + offslab_limit /= sizeof(kmem_bufctl_t); + + is in total disconnect with the condition that makes use of it: + + /* More than offslab_limit objects will cause problems */ + if ((flags & CFLGS_OFF_SLAB) && num > offslab_limit) + break; + + but due to offslab_limit being a global variable this breakage was + hidden. + + Up until lockdep came along and perturbed the slab sizes sufficiently so + that the first off-slab cache would still see a (non-calculated) zero + value for offslab_limit and would panic with: + + kmem_cache_create: couldn't create cache size-512. + + Call Trace: + [] show_trace+0x96/0x1c8 + [] dump_stack+0x13/0x15 + [] panic+0x39/0x21a + [] kmem_cache_create+0x5a0/0x5d0 + [] kmem_cache_init+0x193/0x379 + [] start_kernel+0x17f/0x218 + [] _sinittext+0x263/0x26a + + Kernel panic - not syncing: kmem_cache_create(): failed to create slab `size-512' + + Paolo Ornati's config on x86_64 managed to trigger it. + + The fix is to move the calculation to the place that makes use of it. + This also makes slab.o 54 bytes smaller. + + Btw., the check itself is quite silly. Its intention is to test whether + the number of objects per slab would be higher than the number of slab + control pointers possible. In theory it could be triggered: if someone + tried to allocate 4-byte objects cache and explicitly requested with + CFLGS_OFF_SLAB. So i kept the check. + + Out of historic interest i checked how old this bug was and it's + ancient, 10 years old! It is the oldest hidden and then truly triggering + bugs i ever saw being fixed in the kernel! + + Signed-off-by: Ingo Molnar + Signed-off-by: Linus Torvalds + +commit 89f3da3e06257abba3e70163c92969f3fcd1833d +Author: Peter Korsgaard +Date: Fri Jun 2 17:47:26 2006 +0100 + + [SERIAL] Update parity handling documentation + + Update documentation to match reality. INPCK controls whether input + parity checking is enabled. + + Signed-off-by: Peter Korsgaard + Signed-off-by: Russell King + +commit 0b0968a3e691771bf87e1ce747b2c7d23b5526c8 +Author: David S. Miller +Date: Thu Jun 1 17:47:25 2006 -0700 + + [SPARC64]: Fix D-cache corruption in mremap + + If we move a mapping from one virtual address to another, + and this changes the virtual color of the mapping to those + pages, we can see corrupt data due to D-cache aliasing. + + Check for and deal with this by overriding the move_pte() + macro. Set things up so that other platforms can cleanly + override the move_pte() macro too. + + Signed-off-by: David S. Miller + +commit 2b0dd802ba1ff9b7001f5f9bd9b4d192a4aabf81 +Author: Dominik Brodowski +Date: Thu Jun 1 18:29:20 2006 +0200 + + [PATCH] pcmcia: fix zeroing of cm4000_cs.c data + + Fix the incorrect calculation of how much to zero out in struct cm4000_dev + on device initialization. + + Signed-off-by: Dominik Brodowski + +commit 1617406a763870a84ffe6bba3659f30f96ac4a61 +Author: Florin Malita +Date: Wed May 24 21:21:31 2006 -0400 + + [PATCH] pcmcia: missing pcmcia_get_socket() result check + + The result of pcmcia_get_socket() may be NULL but ds_event() uses it + without checking. + + Coverity CID: 436. + + Signed-off-by: Florin Malita + Signed-off-by: Dominik Brodowski + +commit b52a834892f17b6c54c34ab65f1fad1a9229e764 +Author: Jens Axboe +Date: Thu Jun 1 18:53:43 2006 +0200 + + [PATCH] cfq-iosched: busy_rr fairness fix + + Now that we select busy_rr for possible service, insert entries at the + back of that list instead of at the front. + + Signed-off-by: Jens Axboe + +commit f52359622fa25783cf1a08c0772048d2ed1a7434 +Author: Bryan Holty +Date: Wed Mar 22 06:35:39 2006 -0600 + + [SCSI] scsi_lib.c: properly count the number of pages in scsi_req_map_sg() + + The calculation of nr_pages in scsi_req_map_sg() doesn't account for + the fact that the first page could have an offset that pushes the end + of the buffer onto a new page. + + Signed-off-by: Bryan Holty + Signed-off-by: James Bottomley + +commit ae818a38d4755ba4c16a22a8eacec859511a5393 +Author: Jens Axboe +Date: Thu Jun 1 10:13:43 2006 +0200 + + [PATCH] cfq-iosched: fix bug in timer handling for the idle class + + There's a small window from when the timer is entered and we grab + the queue lock, where cfq_set_active_queue() could be rearming the + timer for us. Seen in the wild on a 12-way ppc box. Fix this by + just using mod_timer(), which will do the right thing for us. + + Signed-off-by: Jens Axboe + +commit 25776e3594f841b7fae7b33ebecf009a0a55bed1 +Author: Jens Axboe +Date: Thu Jun 1 10:12:26 2006 +0200 + + [PATCH] cfq-iosched: Detect hardware queueing + + If the hardware is doing real queueing, decide that it's worthless to + idle the hardware. It does reasonable simultaneous io in that case + anyways, and the idling hurts some work loads. + + Signed-off-by: Jens Axboe + +commit 12e9fddd6eb827937fcaac8ac7712c7303898b1f +Author: Jens Axboe +Date: Thu Jun 1 10:09:56 2006 +0200 + + [PATCH] cfq-iosched: Detect idle process issuing async request + + If we are anticipating a sync request from this process and we are + waiting for that and see an async request come in, expire that slice + and move on. + + Signed-off-by: Jens Axboe + +commit e0de0206a2a37cd3e0ba9954d9f863e11d6d1782 +Author: Jens Axboe +Date: Thu Jun 1 10:07:26 2006 +0200 + + [PATCH] cfq-iosched: check busy queues before deciding we are idle + + For just one busy queue (like async write out), we often overlooked + that we could queue more io and decided we were idle instead. This causes + us quite a bit of performance loss. + + Signed-off-by: Jens Axboe + +commit 44d921b246923380f26b8010e47ac5dfe48fcec5 +Author: Kumba +Date: Tue May 16 22:23:59 2006 -0400 + + [MIPS] Treat R14000 like R10000. + + Signed-off-by: Joshua Kinard + Signed-off-by: Ralf Baechle + +commit 714bfad60f3a127147aba76e9c57860c26b1450d +Author: Ralf Baechle +Date: Wed May 17 14:04:30 2006 +0100 + + [MIPS] Remove EXPERIMENTAL from PAGE_SIZE_16KB + + This is known to be working fine for a while. While at it also update + and fix the help texts. + + Signed-off-by: Ralf Baechle + +commit ca30225e9e4c0c74fe781a9fd1d1ad5f85b29c60 +Author: Thiemo Seufer +Date: Mon May 15 18:27:03 2006 +0100 + + [MIPS] Update/Fix instruction definitions + + A small bugfix for up to now unused instruction definitions, and a + somewhat larger update to cover MIPS32R2 instructions. + + Signed-off-by: Thiemo Seufer + Signed-off-by: Ralf Baechle + +commit 3301edcbd7aab674bd7598e6b97a314b93874ec0 +Author: Thiemo Seufer +Date: Mon May 15 18:24:57 2006 +0100 + + [MIPS] DSP and MDMX share the same config flag bit. + + Clarify comment. + + Signed-off-by: Thiemo Seufer + Signed-off-by: Ralf Baechle + +commit 7f3f1d01a9020cff2cb2390aaee3f8df0d70e203 +Author: Ralf Baechle +Date: Fri May 12 13:20:06 2006 +0100 + + [MIPS] Fix deadlock on MP with cache aliases. + + A proper fix would involve introducing the notion of shared caches but + at this stage of 2.6.17 that's going to be too intrusive and not needed + for current hardware; aside I think some discussion will be needed. + + So for now on the affected SMP configurations which happen to suffer from + cache aliases we make use of the fact that a single cache will be shared + by all processors. This solves the deadlock issue and will improve + performance by getting rid of the smp_call_function overhead. + + Signed-off-by: Ralf Baechle + +commit 78665aaa96fe62b4cee6c226680801c4480aa407 +Author: Atsushi Nemoto +Date: Thu May 11 00:41:26 2006 +0900 + + [MIPS] Use generic STABS_DEBUG macro. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 3fa986faad2bb015c3ad6d09a0686016482bc01c +Author: Martin Michlmayr +Date: Tue May 9 23:34:53 2006 +0200 + + [MIPS] Create consistency in "system type" selection. + + The "system type" Kconfig options on MIPS are not consistent. For + some platforms, only the name is listed while other entries are + prepended with "Support for". Remove this as it doesn't make sense + when describing the "system type". + + Signed-off-by: Martin Michlmayr + Signed-off-by: Ralf Baechle + +commit 04b6b3b651b2147ab7e94c0d302b5cab07dfab4c +Author: Atsushi Nemoto +Date: Wed May 10 15:36:04 2006 +0900 + + [MIPS] Use generic DWARF_DEBUG + + When debugging a kernel compiled by gcc 4.1 with gdb 6.4, gdb could + not show filename, linenumber, etc. It seems fixed if I used generic + DWARF_DEBUG macro. Although gcc 3.x seems work without this change, + it would be better to use the generic macro unless there were + something MIPS specific. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 867a521b4cd6c9d26cd736d85bfe84e10c0c05ac +Author: Atsushi Nemoto +Date: Tue May 9 20:23:49 2006 +0900 + + [MIPS] Fix kgdb exception handler from user mode. + + Fix a calculation of saved vector address in trap_low. + + (damage done by lmo f4c72cc737561aab0d9c7f877abbc0a853f1c465) + + Signed-off-by: Ralf Baechle + +commit 1c0c1ae4f3d5057d091677d0ef7dbaeb28122ded +Author: Daniel Jacobowitz +Date: Mon May 8 15:28:22 2006 -0400 + + [MIPS] Update struct sigcontext member names + + Rename the 64-bit sc_hi and sc_lo arrays to use the same names + as the 32-bit struct sigcontext (sc_mdhi, sc_hi1, et cetera). + + Signed-off-by: Daniel Jacobowitz + Signed-off-by: Ralf Baechle + +commit 6ee1da94c5fed95bacce3eda8e6d9e69324ecab7 +Author: Ralf Baechle +Date: Wed May 3 20:42:39 2006 +0100 + + [MIPS] Update/fix futex assembly + + o Implement futex_atomic_op_inuser() operation + o Don't use the R10000-ll/sc bug workaround version for every processor. + branch likely is deprecated and some historic ll/sc processors don't + implement it. In any case it's slow. + + Signed-off-by: Ralf Baechle + +commit 235a9d3eee9a9588c17d39efff8373d0513549b5 +Author: Ralf Baechle +Date: Wed May 3 02:27:40 2006 +0100 + + [MIPS] Remove support for sysmips(2) SETNAME and MIPS_RDNVRAM operations. + + SETNAME only had a minor defect but probably never had a user and + MIPS_RDNVRAM was unimplemented anyway. + + Signed-off-by: Ralf Baechle + +commit c620953c32d301c2a7bc73f9f780301e110b7d7c +Author: Chris Dearman +Date: Tue May 2 14:08:46 2006 +0100 + + [MIPS] Fix detection and handling of the 74K processor. + + Nothing exciting; Linux just didn't know it yet so this is most adding + a value to a case statement. + + Signed-off-by: Chris Dearman + Signed-off-by: Ralf Baechle + +commit 98a41de99a4e4febe99b22c3a28d434caeb3165c +Author: Nigel Stephens +Date: Thu Apr 27 15:50:32 2006 +0100 + + [MIPS] Add missing 34K processor IDs + + The 34K is very much like a 24K on steroids. + + Signed-off-by: Ralf Baechle + +commit 6e9538917c5f62c1a1598da9b898702800801b98 +Author: Sergei Shtylyov +Date: Sun Apr 16 23:27:21 2006 +0400 + + [MIPS] Fix marking buddy of pte global for MIPS32 w/36-bit physical address + + In case of CONFIG_64BIT_PHYS_ADDR, set_pte() and pte_clear() functions + only set _PAGE_GLOBAL bit in the pte_low field of the buddy PTEs, + forgetting to propagate ito to pte_high. Thus, the both pages might not + really be made global for the CPU (since it AND's the G-bit of the + odd / even PTEs together to decide whether they're global or not). Thus, + if only a single page is allocated via vmalloc() or ioremap(), it's not + really global for CPU (and it must be, since this is kernel mapping), + and thus its ASID is compared against the current process' one -- so, + we'll get into trouble sooner or later... Also, pte_none() will fail + on global pages because _PAGE_GLOBAL bit is set in both pte_low and + pte_high, and pte_val() will return u64 value consisting of those fields + concateneted. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Ralf Baechle + +commit 343fdc39713d9c2fe836523e8f2dfc6a3ac39122 +Author: Herbert Valerio Riedel +Date: Wed Apr 12 09:03:08 2006 +0200 + + [MIPS] AU1xxx mips_timer_interrupt() fixes + + common/au1000/irq.c was missing a mips_timer_interrupt() prototype, + whereas in common/au1000/time.c the actual mips_timer_interrupt() + implementation was missing an irq_exit() invocation, causing a + preempt_count() leak. + + Signed-off-by: Herbert Valerio Riedel + Signed-off-by: Ralf Baechle + +commit 477654fc5d5078d2213817609e68e8c968293261 +Author: Ralf Baechle +Date: Thu Apr 27 15:44:50 2006 +0100 + + [MIPS] Fix typo + + Found by Chris Dearman (chris@mips.com). + + Signed-off-by: Ralf Baechle + +commit 5cedae9ca752a43cfb1074907d12c9f01fbebd45 +Author: Deepak Saxena +Date: Wed May 31 16:14:05 2006 -0700 + + [PATCH] ARM: Fix XScale PMD setting + + The ARM Architecture Reference Manual lists bit 4 of the PMD as "implementation + defined" and it must be set to zero on Intel XScale CPUs or the cache does + not behave properly. Found by Mike Rapoport while debugging a flash issue + on the PXA255: + + http://marc.10east.com/?l=linux-arm-kernel&m=114845287600782&w=1 + + Signed-off-by: Deepak Saxena + Signed-off-by: Linus Torvalds + +commit 29f767a254be8fd44fb5d2b5a48e9cda8399c4ea +Author: Andrew Morton +Date: Tue May 30 21:27:18 2006 -0700 + + [PATCH] net/compat.h build fix + + From: Andrew Morton + + Move the forward decl outside the ifdef, since we use it in both legs. + + Should fix the spacr64 build error reported in + http://bugzilla.kernel.org/show_bug.cgi?id=6625 + + Acked-by: "David S. Miller" + Cc: Cedric Pellerin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c331eb04b995ad276a7ece4608326f1db4e137d8 +Author: NeilBrown +Date: Tue May 30 21:27:13 2006 -0700 + + [PATCH] md: Fix badness in sysfs_notify caused by md_new_event + + From: NeilBrown + + If an error is reported by a drive in a RAID array (which is done via + bi_end_io - in interrupt context), we call md_error and md_new_event which + calls sysfs_notify. However sysfs_notify grabs a mutex and so cannot be + called in interrupt context. + + This patch just creates a variant of md_new_event which avoids the sysfs + call, and uses that. A better fix for later is to arrange for the event to + be called from user-context. + + Note: avoiding the sysfs call isn't a problem as an error will not, by + itself, modify the sync_action attribute. (We do still need to + wake_up(&md_event_waiters) as an error by itself will modify /proc/mdstat). + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a835fa798ddfbfe4c63ff5e22c93fa5d24c95f7b +Author: Jeremy Higdon +Date: Tue May 30 21:27:07 2006 -0700 + + [PATCH] sgiioc4: use mmio ops instead of port io + + From: Jeremy Higdon + + This patch fixes a bug in sgiioc4 where it was using the default IDE port + I/O operations instead of MMIO. + + The IDE part of the IOC4 chip uses MMIO to map the chip registers. + Unfortunately, the sgiioc4 driver uses the default port IO operations, + which happens to have worked for the past few years. That's about to + change, however, thus this change from inX/outX to readX/writeX. + + Signed-off-by: Jeremy Higdon + Cc: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8fd66ab852281f9e28e1774c17b49f26c4626fd1 +Author: Martin Michlmayr +Date: Tue May 30 21:27:02 2006 -0700 + + [PATCH] maxinefb: Fix compilation error + + From: Martin Michlmayr + + Fix the following compilation error: + + CC drivers/video/maxinefb.o + drivers/video/maxinefb.c:58: warning: initializer-string for array of chars is too long + drivers/video/maxinefb.c:58: warning: (near initialization for \u2018maxinefb_fix.id\u2019) + drivers/video/maxinefb.c:110: error: unknown field \u2018fb_get_fix\u2019 specified in initializer + drivers/video/maxinefb.c:110: error: \u2018gen_get_fix\u2019 undeclared here (not in a function) + drivers/video/maxinefb.c:111: error: unknown field \u2018fb_get_var\u2019 specified in initializer + drivers/video/maxinefb.c:111: error: \u2018gen_get_var\u2019 undeclared here (not in a function) + make[2]: *** [drivers/video/maxinefb.o] Error 1 + + Signed-off-by: Martin Michlmayr + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c05b7f3d12b9455d746b69b7078ed34d777f560b +Author: Rodolfo Giometti +Date: Tue May 30 21:26:57 2006 -0700 + + [PATCH] au1100fb: Fix compilation + + From: Rodolfo Giometti + + Fix the following warning on compilation: + + drivers/video/au1100fb.c: In function `au1100fb_fb_setcolreg': + drivers/video/au1100fb.c:219: warning: ISO C90 forbids mixed declarations and code + drivers/video/au1100fb.c: In function `au1100fb_fb_pan_display': + drivers/video/au1100fb.c:321: warning: ISO C90 forbids mixed declarations and code + drivers/video/au1100fb.c: In function `au1100fb_fb_mmap': + drivers/video/au1100fb.c:387: warning: ISO C90 forbids mixed declarations and code + drivers/video/au1100fb.c: In function `au1100fb_drv_probe': + drivers/video/au1100fb.c:471: warning: unsigned int format, long unsigned int arg (arg 2) + drivers/video/au1100fb.c: At top level: + drivers/video/au1100fb.c:617: warning: initialization from incompatible pointer type + drivers/video/au1100fb.c:618: warning: initialization from incompatible pointer type + + Signed-off-by: Rodolfo Giometti + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5a47d749e3d067e057d276075fed1d91749d3841 +Author: Benjamin Herrenschmidt +Date: Tue May 30 21:26:51 2006 -0700 + + [PATCH] powerpc: Fix boot on eMac + + From: Benjamin Herrenschmidt + + Prevent calling of some platform functions on the clock chips of the eMac + as it seems to cause it to lockup at boot. For now, add a quirk to prevent + that from happening. Later, I might find out what's wrong and fix it but + that doesn't seem to be important as the machine appear to work fine + without running those. It's possible that Darwin doesn't run them. + + Signed-off-by: Benjamin Herrenschmidt + Cc: Nathan Pilatzke + Cc: Paul Mackerras + Cc: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8d16b76421f0b3216012ee2d7819355e1cb847e5 +Author: Stephen Hemminger +Date: Tue May 30 21:26:09 2006 -0700 + + [PATCH] hrtimer: export symbols + + From: Stephen Hemminger + + I want to use the hrtimer's in the netem (Network Emulator) qdisc. But the + necessary symbols aren't exported for module use. + + Also needed by SystemTap. + + Signed-off-by: Stephen Hemminger + Acked-by: Ingo Molnar + Cc: Thomas Gleixner + Cc: "Stone, Joshua I" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 760f1fce030ccc620ec430a8aff8fc604e7891ed +Author: Andrew Morton +Date: Tue May 30 21:26:03 2006 -0700 + + [PATCH] revert "swsusp add check for suspension of X controlled devices" + + From: Andrew Morton + + Revert commit ff4da2e262d2509fe1bacff70dd00934be569c66. + + It broke APM suspend, probably because APM doesn't switch back to a VT + when suspending. + + Tracked down by Matt Mackall + + Rafael sayeth: + "It only fixed the theoretical issue that a quick-handed user could + switch to X after processes have been frozen and before the devices + are suspended. + + With the current userland suspend tools it shouldn't be necessary." + + Cc: Pavel Machek + Cc: "Rafael J. Wysocki" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d61a3ead268084cc271d7b2aa2950fc822a37cf5 +Author: Corey Minyard +Date: Tue May 30 21:25:57 2006 -0700 + + [PATCH] IPMI: reserve I/O ports separately + + From: Corey Minyard + + This patch is pretty important to get in for IPMI, new systems have been + changing the way ACPI and IPMI interact, and this works around the problems + for now. This is a temporary fix until we get proper ACPI handling in + IPMI. + + Fixed releasing already-allocated regions when a later request fails, and + forward-ported it to HEAD. + + Some BIOSes reserve disjoint I/O regions in their ACPI tables for the IPMI + controller. This causes problems when trying to register the entire I/O + region. Therefore we must register each I/O port separately. + + Signed-off-by: Jordan Hargrave + Signed-off-by: Matt Domsch + Signed-off-by: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 44d7aff035118e8c3993aa3fa05d358d1008e982 +Author: Seiji Munetoh +Date: Tue May 30 21:25:52 2006 -0700 + + [PATCH] tpm: more bios log parsing fixes + + From: Seiji Munetoh + + Change the binary output format to actual ACPI TCPA log structure since the + current format does not contain all event-data information that need to + verify the PCRs in TPM. tpm_binary_bios_measurements_show() uses + get_event_name() to convert the binary event-data to ascii format, and puts + them as binary. However, to verify the PCRs, the event-data must be a + actual binary event-data used by SHA1 calc. in BIOS. + + So, I think actual ACPI TCPA log is good for this binary output format. + That way, any userland tools easily parse this data with reference to TCG + PC specification. + + Signed-off-by: Seiji Munetoh + Acked-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit de66a695bef17264b2472c06e981c068bfa0636e +Author: Seiji Munetoh +Date: Tue May 30 21:25:47 2006 -0700 + + [PATCH] tpm: bios log parsing fixes + + From: Seiji Munetoh + + Fix "tcpa_pc_event" misalignment between enum, strings and TCG PC spec and + output of the event which contains a hash data. + + Signed-off-by: Seiji Munetoh + Acked-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 25a6df952542ad9f284421b6ffe28f3eb3df1305 +Author: Yasunori Goto +Date: Tue May 30 21:25:42 2006 -0700 + + [PATCH] spanned_pages is not updated at a case of memory hot-add + + From: Yasunori Goto + + If hot-added memory's address is smaller than old area, spanned_pages will + not be updated. It must be fixed. + + example) Old zone_start_pfn = 0x60000, and spanned_pages = 0x10000 + Added new memory's start_pfn = 0x50000, and end_pfn = 0x60000 + + new spanned_pages will be still 0x10000 by old code. + (It should be updated to 0x20000.) Because old_zone_end_pfn will be + 0x70000, and end_pfn smaller than it. So, spanned_pages will not be + updated. + + In current code, spanned_pages is updated only when end_pfn is updated. + But, it should be updated by subtraction between bigger end_pfn and new + zone_start_pfn. + + Signed-off-by: Yasunori Goto + Signed-off-by: Dave Hansen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 308af9290ad1844c1b4e93ff4919f8009efbe018 +Author: David Hollister +Date: Tue May 30 21:25:36 2006 -0700 + + [PATCH] fbcon: fix scrollback with logo issue immediately after boot + + From: David Hollister + + After the system boots with the logo, if the first action is a scrollback, the + screen may become garbled. This patch ensures that the softback_curr value is + updated along with softback_in following the scrollback. + + Signed-off-by: David Hollister + Signed-off-by: Jordan Crouse + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6855a3a6c3ab611c3a393be846c1e36120033b18 +Author: Andrew Morton +Date: Tue May 30 21:25:31 2006 -0700 + + [PATCH] ext3 resize: fix double unlock_super() + + From: Andrew Morton + + Spotted by Jan Capek + + Cc: "Stephen C. Tweedie" + Cc: Andreas Dilger + Cc: Jan Capek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 951bc82c53f30ec6b4c2d04a051e74ea9a89b669 +Author: David S. Miller +Date: Wed May 31 01:24:02 2006 -0700 + + [SPARC64]: Make smp_processor_id() functional before start_kernel() + + Uses of smp_processor_id() get pushed earlier and earlier in + the start_kernel() sequence. So just get it working before + we call start_kernel() to avoid all possible problems. + + Signed-off-by: David S. Miller + +commit e6ed89ac9f5da16fea5111651b6de0ff0a76a5c2 +Author: Deepak Saxena +Date: Tue May 30 14:36:49 2006 -0700 + + [PATCH] ARM: explicitly disable BTB on ixp2350 + + We don't enable the BTB on the ixp2350 as that can cause weird + crashes (erratum #42.) However, some bootloaders enable the BTB, + which means that we have to disable the BTB explicitly. + + Found thanks to Tom Rini. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Deepak Saxena + Signed-off-by: Linus Torvalds + +commit 9a8fca0499c611ab37b5c0d4481ca09d3f6e8101 +Author: Linus Torvalds +Date: Tue May 30 20:32:15 2006 -0700 + + Revert "[PATCH] i386/x86_64: Force pci=noacpi on HP XW9300" + + This reverts commit 5491d0f3e206beb95eeb506510d62a1dab462df1. + + As per Andi: + + "After some discussion with people who have the affected system it + seems best to revert for 2.6.17. It broke a common BIOS workaround + and PCI-X still doesn't work. Alternative is for people to change + the BIOS which seems to be better right now." + + Signed-off-by: Linus Torvalds + +commit 822ff019f72ae01baef1893e86735f1a5e36be7d +Author: Andi Kleen +Date: Tue May 30 22:48:03 2006 +0200 + + [PATCH] x86_64: Don't do syscall exit tracing twice + + int_ret_from_syscall already does syscall exit tracing, so + no need to do it again in the caller. + + This caused problems for UML and some other special programs doing + syscall interception. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 7ca97c6131dac9f06b1856a95a2ec89d43844286 +Author: Robert Hentosh +Date: Tue May 30 22:48:00 2006 +0200 + + [PATCH] x86_64: Fix off by one in bad_addr checking in find_e820_area + + From: Robert Hentosh + + Actually, we just stumbled on a different bug found in find_e820_area() in + e820.c. The following code does not handle the edge condition correctly: + + while (bad_addr(&addr, size) && addr+size < ei->addr + ei->size) + ; + last = addr + size; + if ( last > ei->addr + ei->size ) + continue; + + The second statement in the while loop needs to be a <= b so that it is the + logical negavite of the if (a > b) outside it. It needs to read: + + while (bad_addr(&addr, size) && addr+size <= ei->addr + ei->size) + ; + + In the case that failed bad_addr was returning an address that is exactly size + bellow the end of the e820 range. + + AK: Again together with the earlier avoid edma fix this fixes + boot on a Dell PE6850/16GB + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 0d01532451710110a93891ae152d1dd1ee006ccf +Author: Daniel Yeisley +Date: Tue May 30 22:47:57 2006 +0200 + + [PATCH] x86_64: Handle empty node zero + + From: Daniel Yeisley + + It is possible to boot a Unisys ES7000 with CPUs from multiple cells, and not + also include the memory from those cells. This can create a scenario where + node 0 has cpus, but no associated memory. The system will boot fine in a + configuration where node 0 has memory, but nodes 2 and 3 do not. + + [AK: I rechecked the code and generic code seems to indeed handle that already. + Dan's original patch had a change for mm/slab.c that seems to be already in now.] + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit b2468e525f29882f866cb0b832956e69328f9647 +Author: Jan Beulich +Date: Tue May 30 22:47:54 2006 +0200 + + [PATCH] x86_64: fix last_tsc calculation of PM timer + + From: "Jan Beulich" + + The PM timer code updates vxtime.last_tsc, but this update was done + incorrectly in two ways: + - offset_delay being in microseconds requires multiplying with cpu_mhz + rather than cpu_khz + - the multiplication of offset_delay and cpu_khz (both being 32-bit + values) on most current CPUs would overflow (observed value of the + delay was approximately 4000us, yielding an overflow for frequencies + starting a little above 1GHz) + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 2ba567cbd7626700b800d4ce9503bd3cd78ed7ef +Author: Jan Beulich +Date: Tue May 30 22:47:51 2006 +0200 + + [PATCH] i386: apic= command line option should always be + + From: "Jan Beulich" + + When using apic= on the kernel command line, this had no effect for machines + matched by either the ACPI MADT or the MPS OEM table scan. However, when such + option is specified, it should also take effect for this set of systems. + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit dc9a719528d782777b86936b817cc0913d5f0b42 +Author: Andi Kleen +Date: Tue May 30 22:47:48 2006 +0200 + + [PATCH] x86_64: Fix no IOMMU warning in PCI-GART driver + + Complaining about the IOMMU not compiled in doesn't make sense + here because it is clearly compiled in. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 6ae53cd496d36db5f25e6f84b8b9fe7e675999a1 +Author: Andi Kleen +Date: Tue May 30 22:47:45 2006 +0200 + + [PATCH] x86_64: Fix stack/mmap randomization for compat tasks + + ia32_setup_arg_pages would ignore the passed in random stack top + and use its own static value. + + Now it uses the 8bit of randomness native i386 would use too. + + This indirectly fixes mmap randomization for 32bit processes too, + which depends on the stack randomization. + + Should also give slightly better virtual cache colouring and + possibly better performance with HyperThreading. + + Signed-off-by: Andi Kleen + Acked-by: Ingo Molnar + Signed-off-by: Linus Torvalds + +commit 3793c65c13e4751c7a10f98198bae1758453eb0e +Author: Jens Axboe +Date: Tue May 30 21:11:04 2006 +0200 + + [PATCH] cfq-iosched: fixup locking and ->queue_list list management + + - Drop cic from the list when seen as dead. + - Fixup the locking, just use a simple spinlock. + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 55aa2e097dd5f0546972fc2607d7094181967ce2 +Author: Steve French +Date: Tue May 30 18:09:31 2006 +0000 + + [[CIFS] Pass truncate open flag through on file open in case setattr fails + + on set size to zero. + + Signed-off-by: Sebastian Voitzsch + Signed-off-by: Steve French + +commit 08775834c412c48f3539ef7ed073fff58e3cf419 +Author: Steve French +Date: Tue May 30 18:08:26 2006 +0000 + + [CIFS] Fix typos in previous fix + + Signed-off-by: Steve French + +commit cec6815a12edc91b123394f29d672cb9fa6cf79f +Author: Steve French +Date: Tue May 30 18:07:17 2006 +0000 + + [CIFS] endian fix for new POSIX byte range lock support + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Steve French + +commit a424f8bfcbecb8353b88a351394e8d1960136219 +Author: Steve French +Date: Tue May 30 18:06:04 2006 +0000 + + [CIFS] fix memory leak in cifs session info struct on reconnect + + Signed-off-by: Steve French + +commit c01f36a896cb11e8533b4f7c132a1722fb15102b +Author: Steve French +Date: Tue May 30 18:05:10 2006 +0000 + + [CIFS] ACPI suspend oops + + Wasn't able to reproduce a hard hang, but was able to get an oops if + suspended the machine during a copy to the cifs mount. This led to some + things hanging, including a "sync". Also got I/O errors when trying to + access the mount afterwards (even when didn't see the oops), and had + to unmount and remount in order to access the filesystem. + + This patch fixed the oops. + + Signed-off-by: Dave Kleikamp + Signed-off-by: Steve French + +commit a878fb2218c87fe66f2bcf3914840e24c41338f7 +Author: Steve French +Date: Tue May 30 18:04:19 2006 +0000 + + [CIFS] Do not limit the length of share names (was 100 for whole UNC name) + during mount. Especially important for some non-Western languages. + + Signed-off-by: Steve French + +commit fc94cdb94462e71a4a974bc9bc1f483189ae7805 +Author: Steve French +Date: Tue May 30 18:03:32 2006 +0000 + + [CIFS] Fix new POSIX Locking for setting lock_type correctly on unlock + + Signed-off-by: Steve French + +commit 47ce56edb8ecdd4ec2bbec4e8683f3ba91de72e3 +Author: Kenan Esau +Date: Mon May 29 23:31:12 2006 -0400 + + Input: psmouse - DMI updates for lifebook protocol + + Added different lifebook-versions and the CF-18 to the corresponding + dmi-table. + + Signed-off-by: Kenan Esau + Signed-off-by: Dmitry Torokhov + +commit ed8f9e2f047de5d9b791e390269f230a101a6a4b +Author: Richard Purdie +Date: Mon May 29 23:31:03 2006 -0400 + + Input: change from numbered to named switches + + Remove the numbered SW_* entries from the input system and assign names + to the existing users. + + Signed-off-by: Richard Purdie + Signed-off-by: Dmitry Torokhov + +commit d2f4012f15845761bd3c6f90172e53767c11e359 +Author: Yotam Medini +Date: Mon May 29 23:30:36 2006 -0400 + + Input: alps - fix old protocol decoding + + Correct touchpad left & right keys assignments for ALPS_OLDPROTO + that were swapped. Old protocol is used on UMAX ActionBook-530T + notebook. + + Signed-off-by: Yotam Medini + Signed-off-by: Dmitry Torokhov + +commit e107b8ee7e97fc20695ca3d5ef862511eca28df0 +Author: masc@theaterzentrum.at +Date: Mon May 29 23:29:36 2006 -0400 + + Input: wistron - add support for AOpen Barebook 1559as + + Signed-off-by: Dmitry Torokhov + +commit 4f8b05efec7a56221c6d1b0e20bcf19671017065 +Author: Zbigniew Luszpinski +Date: Mon May 29 23:29:19 2006 -0400 + + Input: psmouse - add detection of Logitech TrackMan Wheel trackball + + Signed-off-by: Dmitry Torokhov + +commit 7363cfc8666692a5263c646e68e54900b536cd7e +Author: Jesper Juhl +Date: Mon May 29 23:28:05 2006 -0400 + + Input: sidewinder - fix memory leak + + In sw_connect we leak 'buf' and 'idbuf' when we do not leave via one of + the fail* labels. This was spotted by the coverity checker. + + Patch is compile tested only due to lack of hardware. + + Signed-off-by: Jesper Juhl + Signed-off-by: Dmitry Torokhov + +commit f39b25bed373cf11a2c0490bee8b0ac430aadff4 +Author: Matthew Garrett +Date: Mon May 29 23:27:39 2006 -0400 + + Input: add KEY_BATTERY keycode + + Signed-off-by: Dmitry Torokhov + +commit 7114b0bb6df7b2db266ba4847e4dd8333fa98a9a +Author: Alexey Dobriyan +Date: Sun May 28 22:51:05 2006 -0700 + + [NETFILTER]: PPTP helper: fix sstate/cstate typo + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit ca3ba88d0cf4b5d7a628caf505c231162dde9429 +Author: Patrick McHardy +Date: Sun May 28 22:50:40 2006 -0700 + + [NETFILTER]: mark H.323 helper experimental + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 6c813c3fe9e30fcf3c4d94d2ba24108babd745b0 +Author: Marcel Holtmann +Date: Sun May 28 22:50:18 2006 -0700 + + [NETFILTER]: Fix small information leak in SO_ORIGINAL_DST (CVE-2006-1343) + + It appears that sockaddr_in.sin_zero is not zeroed during + getsockopt(...SO_ORIGINAL_DST...) operation. This can lead + to an information leak (CVE-2006-1343). + + Signed-off-by: Marcel Holtmann + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit b82e8005af14b51600714971e0c6420c4e334a50 +Author: Paul Mackerras +Date: Mon May 29 08:42:34 2006 +1000 + + ppc: Fix typo in TI_LOCAL_FLAGS definition + + A typo crept in with commit ea1e847cc202e805769c3c46ba5e5c53714068a1 + which defined TI_LOCAL_FLAGS to be the offset of the `flags' field + of struct thread_info, rather than the `local_flags' field. This + fixes it. The typo was pointed out by Guennadi Liakhovetski. + + Signed-off-by: Paul Mackerras + +commit 0737ac895afbfbe210557fa5fbafcca932d5fa7c +Author: Mark Lord +Date: Sun May 28 11:28:00 2006 -0400 + + [PATCH] the latest consensus libata resume fix + + Okay, just to sum things up. + + This forces libata to wait for up to 2 seconds for BUSY|DRQ to clear + on resume before continuing. + + [jgarzik adds...] During testing we never saw DRQ asserted, but + nonetheless (a) this works and (b) testing for DRQ won't hurt. + + Signed-off-by: Mark Lord + Acked-by: Jens Axboe + Signed-off-by: Jeff Garzik + +commit e82b0f2cc21be905e504573483fa9542b15df96f +Author: Jeff Garzik +Date: Fri May 26 21:58:38 2006 -0400 + + [netdrvr s/390] trim trailing whitespace + + Previous fix patches added a bunch of trailing whitespace, + which git-applymbox complained loudly about. + +commit 74ef872c8f250acc02add54ff9d96f31d17bfeb3 +Author: Klaus Wacker +Date: Wed May 24 09:51:21 2006 +0200 + + [PATCH] s390: lcs driver bug fixes and improvements [2/2] + + This is the second lcs driver patch containing the rest of lcs fixes. + + Signed-off-by: Frank Pavlic + Signed-off-by: Jeff Garzik + +commit 27eb5ac8f015687205a51425620064c711784956 +Author: Klaus Wacker +Date: Wed May 24 09:51:17 2006 +0200 + + [PATCH] s390: lcs driver bug fixes and improvements [1/2] + + Several problems occured with lcs device driver: + - device not operational anymore after cable pull/plug-in. + - unpredictable results occured, e.g. kernel panic + using cards of type QD8F. + - STOPLAN and delete multicast address command + were not proper recognized by OSA card under heavy network workload. + - channel/device error checks missing in interrupt handler. + To fix all problems at once recovery of lcs devices has been improved. + missing error checks in lcs interrupt handler has been added. + Once a hardware problem occurs lcs will recover the device now properly. + + Signed-off-by: Frank Pavlic + Signed-off-by: Jeff Garzik + +commit ba1aa084d6fb725a4c026adf69845ca60bab3b36 +Author: Ursula Braun +Date: Wed May 24 09:51:13 2006 +0200 + + [PATCH] s390: qeth driver fixes + + From: Frank Blaschka + From: Frank Pavlic + + - fix fake_ll during initial device bringup. fake_ll was + not active after first start of the device. + Problem only occured when qeth was built without IPV6 support. + - avoid skb usage after invocation of qeth_flush_buffers, + because skb might already be freed. + - remove yet another useless netif_wake_queue in + qeth_softsetup_ipv6 since this function is only called + when device is going online. In this case card->state will + never be in state UP. So let the net_device queue down . + + Signed-off-by: Frank Pavlic + Signed-off-by: Jeff Garzik + +commit b85e1fa196da91e07c98eaf014ae773c2a2e0c4f +Author: Ursula Braun +Date: Wed May 24 09:51:11 2006 +0200 + + [PATCH] s390: qeth driver fixes + + From: Frank Pavlic + + - correct checking of sscanf-%n value in qeth_string_to_ipaddr(). + - don't use netif_stop_queue outside the hard_start_xmit routine. + Rather use netif_tx_disable. + - don't call qeth_netdev_init on a recovery. + + Signed-off-by: Frank Pavlic + Signed-off-by: Jeff Garzik + +commit 7401a4670f0e81d50dcc4e0a7bd2dcb4a5d65e6b +Author: Cornelia Huck +Date: Wed May 24 09:51:05 2006 +0200 + + [PATCH] s390: minor fix in cu3088 + + In case of a parse error for the cu3088 group attribute, + return -EINVAL instead of count. + + Signed-off-by: Frank Pavlic + Signed-off-by: Jeff Garzik + +commit a24b163b7c16f9e30e726319115e45ed6e683582 +Author: Don Fry +Date: Thu May 25 16:22:40 2006 -0700 + + [PATCH] pcnet32: remove incorrect pcnet32_free_ring + + During a code scan for another change I discovered that this call to + pcnet32_free_ring must be removed. If the open fails due to a lack of + memory all the ring structures are removed via the call to free_ring + and a subsequent call to open will dereference a null pointer in + pcnet32_init_ring. + + Please apply to 2.6.17. + + Signed-off-by: Don Fry + Signed-off-by: Jeff Garzik + +commit 80871e63e410c53524ef47eaf475c13e0f164ea6 +Author: Auke Kok +Date: Tue May 23 13:35:57 2006 -0700 + + e1000: add shutdown handler back to fix WOL + + Someone was waaay too aggressive and removed e1000's reboot notifier + instead of porting it to the new way of the shutdown handler. This change + broke wake on lan. Add the shutdown handler back in using the same method + as e100 uses. + + Signed-off-by: Jesse Brandeburg + Signed-off-by: Auke Kok + + (cherry picked from c653e6351e371b33b29871e5eedf610ffb3be037 commit) + +commit 3041a069090224462e27da1bc9483b463eb40841 +Author: Stephen Hemminger +Date: Fri May 26 13:25:24 2006 -0700 + + [NET]: dev.c comment fixes + + Noticed that dev_alloc_name() comment was incorrect, and more spellung + errors. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 4d0c5911660b97f53c2211afc6ded5dafafa9b78 +Author: YOSHIFUJI Hideaki +Date: Fri May 26 13:23:41 2006 -0700 + + [IPV6] ROUTE: Don't try less preferred routes for on-link routes. + + In addition to the real on-link routes, NONEXTHOP routes + should be considered on-link. + + Problem reported by Meelis Roos . + + Signed-off-by: YOSHIFUJI Hideaki + Acked-by: Meelis Roos + Signed-off-by: David S. Miller + +commit 4541a5db0ba33d9c692e5b2f8d7805e336fabe7c +Author: Randy Dunlap +Date: Thu May 25 11:10:08 2006 -0700 + + [PATCH] arlan: fix section mismatch warnings + + Fix section mismatch warnings: + WARNING: drivers/net/wireless/arlan.o - Section mismatch: reference to + .init.text:arlan_probe from .text between 'init_module' (at offset + 0x3526) and 'cleanup_module' + WARNING: drivers/net/wireless/arlan.o - Section mismatch: reference to + .init.text:init_arlan_proc from .text between 'init_module' (at offset + 0x3539) and 'cleanup_module' + WARNING: drivers/net/wireless/arlan.o - Section mismatch: reference to + .exit.text:cleanup_arlan_proc from .text between 'cleanup_module' (at + offset 0x356c) and 'arlan_diagnostic_info_string' + + Signed-off-by: Randy Dunlap + Signed-off-by: John W. Linville + +commit 53072d68cc2deda9f1a8cde864aa9d04f58addd3 +Author: Randy Dunlap +Date: Thu May 25 11:09:21 2006 -0700 + + [PATCH] wavelan: fix section mismatch + + Fix section mismatch warning: + WARNING: drivers/net/wireless/wavelan.o - Section mismatch: reference to + .init.text: from .text between 'init_module' (at offset 0x371e) and + 'cleanup_module' + + Signed-off-by: Randy Dunlap + Signed-off-by: John W. Linville + +commit 087377a4307e18225f6452af5e71fe763c088c4e +Author: Kylene Jo Hall +Date: Thu May 25 18:44:27 2006 -0700 + + [PATCH] tpm: fix bug for TPM on ThinkPad T60 and Z60 + + The TPM chip on the ThinkPad T60 and Z60 machines is returning 0xFFFF for + the vendor ID which is a check the driver made to double check it was + actually talking to the memory mapped space of a TPM. This patch removes + the check since it isn't absolutely necessary and was causing device + discovery to fail on these machines. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5d5daa162a5187bc0f98eb2bc7a063392b0de311 +Author: Randy Dunlap +Date: Thu May 25 18:44:26 2006 -0700 + + [PATCH] scx200_acb: fix section mismatch warning + + WARNING: drivers/i2c/busses/scx200_acb.o - Section mismatch: reference to + .init.text: from .text after 'scx200_add_cs553x' (at offset 0x528) + + Signed-off-by: Randy Dunlap + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ac88bcff2fa536e015a97e144b7190c740225144 +Author: Ben Dooks +Date: Thu May 25 18:44:25 2006 -0700 + + [PATCH] s3c24xx: fix spi driver with CONFIG_PM + + Fix compile bug with the S3C24XX SPI driver when CONFIG_PM is set. + + Signed-off-by: Ben Dooks + Cc: David Brownell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0fba3a1f39f8b0a50b56c8b068fa52131cbc84c2 +Author: Johannes Berg +Date: Thu May 25 18:44:24 2006 -0700 + + [PATCH] PowerMac: force only suspend-to-disk to be valid + + For a very long time, echoing 'standby' or 'mem' into /sys/power/state has + killed the machine on powerpc. This patch fixes that. + + This patch adds the .valid callback to pm_ops on PowerMac so that only the + suspend to disk state can be entered. Note that just returning 0 would + suffice since the upper layers don't pass PM_SUSPEND_DISK down, but we + handle it there regardless just in case that changes. + + Acked-by: Benjamin Herrenschmidt + Signed-off-by: Johannes Berg + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ac8141366932a74fd8620afaebd66960c91196d +Author: Florin Malita +Date: Thu May 25 18:44:23 2006 -0700 + + [PATCH] affs: possible null pointer dereference in affs_rename() + + If affs_bread() fails, the exit path calls mark_buffer_dirty_inode() with a + NULL argument. + + Coverity CID: 312. + + Signed-off-by: Florin Malita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9084533e797f131c923c8883adf91cc2f7ddcfae +Author: David Brownell +Date: Thu May 25 18:44:20 2006 -0700 + + [PATCH] ads7846 conversion accuracy + + This improves accuracy of the touchscreen and hwmon sensor readings, + addressing an issue noted by Imre Deak: there's an extra bit written before + the sample (12 bits) gets written out. + + It also catches up to various comments, and makes the /proc/interrupts + entry sensible again. + + Signed-off-by: David Brownell + Cc: Imre Deak + Cc: Jean Delvare + Cc: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f09de595b5eda6040cd733ecf1eb222e00b42517 +Author: Jens Axboe +Date: Thu May 25 18:44:19 2006 -0700 + + [PATCH] x86: wire up vmsplice syscall + + Signed-off-by: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6bf08cb246b5ac639b2429533d303f5026f2520c +Author: Paul Mackerras +Date: Thu May 25 18:44:17 2006 -0700 + + [PATCH] Add CMSPAR to termbits.h for powerpc and alpha + + Some driver wants to use CMSPAR, but it was missing on alpha and powerpc. + This adds it, with the same value as every other architecture uses. + + (akpm: fixes the build of an upcoming gregkh USB patch) + + Signed-off-by: Paul Mackerras + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c71d48877e6f3d5e3eb22fcaaa612081bce3d089 +Author: Neil Brown +Date: Fri May 26 10:39:25 2006 +1000 + + [PATCH] Unlock md devices when stopping them on reboot. + + otherwise we get nasty messages about locks not being released. + + Signed-off-by: Neil Brown + Signed-off-by: Linus Torvalds + +commit 54f4ee183aea859eb09f141dad3fc3c6f4fe0446 +Author: Hollis Blanchard +Date: Thu May 25 16:36:53 2006 -0500 + + [PATCH] powerpc: fix RTC/NVRAM accesses on Maple + + Due to a firmware device tree bug, RTC and NVRAM accesses (including + halt/reboot) on Maple have been broken since January, when an untested + build fix went in. This code patches the device tree in Linux. + + Signed-off-by: Hollis Blanchard + Signed-off-by: Segher Boessenkool + Signed-off-by: Paul Mackerras + +commit 8e30a9a299ca30b6c4072c2182238d5f5dd1590d +Author: Vitaly Bordug +Date: Wed May 24 21:40:18 2006 +0400 + + [PATCH] ppc32 CPM_UART: various fixes for pq2 uart users + + This fixes various odd things that missed update together with cpm_uart + platform_device move. Unified resources names, restructurisation, etc. + Also, addressed issue with recent phys/virt translation rework. Being + cache-coherent, CPM2's do alloc_bootmem() for the console stuff, and it was + used to treat console buffer descriptor mapping 1:1 (as in CPM1 case), + which is definitely wrong. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit 6d923f98fe0f31c174ace92f8b680d0d153663aa +Author: Arthur Othieno +Date: Fri May 19 06:22:23 2006 -0400 + + [PATCH] powerpc: linuxppc64.org no more + + http://linuxppc64.org has long been a redirect to the canonical + http://penguinppc.org/ppc64/ -- update all instances accordingly, + as ACKed by Hollis: + + On Wed, Jan 18, 2006 at 09:48:08AM -0600, Hollis Blanchard wrote: + > On Wed, 2006-01-18 at 13:07 +0100, Olaf Hering wrote: + > > On Wed, Jan 18, Arthur Othieno wrote: + > > > + > > > What about the s/linuxppc64\.org/penguinppc\.org/g case? Or is + > > > penguinppc64.org preferable? Or am I just taking it too far? ;) + > > + > > They are redirected on DNS or HTTP level. + > + > HTTP level, but that doesn't answer his question. + > + > As the maintainer of that site, I would prefer to remove the + > linuxppc64.org reference. + + Signed-off-by: Arthur Othieno + Signed-off-by: Paul Mackerras + +commit 56bc348ce8a709a70cd80857ffc09749f871d7a8 +Author: Samuel Ortiz +Date: Thu May 25 16:17:53 2006 -0700 + + [IRDA]: *_DONGLE should depend on IRTTY_SIR + + If a SIR dongle is built in the kernel while IRTTY_SIR is built + as a module, kernel compilation will fail. + Thus, the SIR dongle config should depend on the IRTTY_SIR. + + Closes kernel bug# 6512 + (http://bugzilla.kernel.org/show_bug.cgi?id=6512) + + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit be2f2e84549386df63206fec134d9e0fc2212328 +Author: Stephen Hemminger +Date: Thu May 25 16:14:43 2006 -0700 + + [MAINTAINERS]: Add entry for netem + + It gets enough reports, that there ought to be a MAINTAINER entry. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 705af309505681f197f81618440954d10f120dc0 +Author: Martin Schwidefsky +Date: Tue May 23 09:22:42 2006 +0200 + + [PATCH] s390: fix typo in stop_hz_timer. + + Add missing parentheses for type cast to u64. + + Signed-off-by: Martin Schwidefsky + Cc: Dave Jones + Signed-off-by: Linus Torvalds + +commit a8bd60705aa17a998516837d9c1e503ad4cbd7fc +Author: Linus Torvalds +Date: Wed May 24 18:50:17 2006 -0700 + + Linux 2.6.17-rc5 + +commit 4f3a151a11da3351e2149a401d4ee18426938de7 +Author: Jean Delvare +Date: Wed May 24 15:13:14 2006 -0300 + + [PATCH] V4L/DVB (4045): Fixes recursive dependency for I2C + + Mixing "depends on I2C" and "select I2C" within the media subsystem + leads to the following problem: + Warning! Found recursive dependency: I2C DVB_BUDGET DVB_BUDGET_PATCH + DVB_AV7110 VIDEO_SAA7146_VV VIDEO_SAA7146 I2C + + Signed-off-by: Jean Delvare + Acked-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + Signed-off-by: Linus Torvalds + +commit ab28b171eabc0a414e0404844453c11af3caed10 +Author: Michael S. Tsirkin +Date: Wed May 24 18:27:07 2006 +0300 + + IB/mthca: Fix posting lists of 256 receive requests to SRQ for Tavor + + If we post a list of length exactly a multiple of 256, nreq in + doorbell gets set to 256 which is wrong: it should be encoded by 0. + This is because we only zero it out on the next WR, which may not be + there. The solution is to ring the doorbell after posting a WQE, not + before posting the next one. + + This is the same bug that we just fixed for QPs with non-shared RQ. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 51c403274093767d6dc30703d67e9f0b255c7439 +Author: Pierre Ossman +Date: Wed May 24 10:20:45 2006 +0200 + + [MMC] Fix premature use of md->disk + + md->disk was being used in a debug message before it was allocated. + + Signed-off-by: Pierre Ossman + Signed-off-by: Linus Torvalds + +commit b964638ffd59b61c13f02b81e5118a6e573d91cd +Author: Dave Kleikamp +Date: Wed May 24 07:43:38 2006 -0500 + + JFS: Fix multiple errors in metapage_releasepage + + It looks like metapage_releasepage was making in invalid assumption that + the releasepage method would not be called on a dirty page. Instead of + issuing a warning and releasing the metapage, it should return 0, indicating + that the private data for the page cannot be released. + + I also realized that metapage_releasepage had the return code all wrong. If + it is successful in releasing the private data, it should return 1, otherwise + it needs to return 0. + + Lastly, there is no need to call wait_on_page_writeback, since + try_to_release_page will not call us with a page in writback state. + + Signed-off-by: Dave Kleikamp + +commit bb31a8faa270beafcc51a65880c5564c6b718bd6 +Author: Albert Lee +Date: Mon May 22 11:43:46 2006 +0800 + + [PATCH] libata: add pio flush for via atapi (was: Re: TR: ASUS A8V Deluxe, x86_64) + + Backport the "pio flush" from the libata major update to 2.6.17 for via atapi. + + Signed-off-by: Albert Lee + Signed-off-by: Jeff Garzik + +commit a1433ac4ab46fb23ae77804c207a1f710a7b12f1 +Author: Stephen Hemminger +Date: Mon May 22 12:03:42 2006 -0700 + + [PATCH] sky2: fix jumbo packet support + + The truncate threshold calculation to prevent receiver from getting stuck + was incorrect, and it didn't take into account the upper limit on bits + in the register so the jumbo packet support was broken. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 387e2b0439026aa738a9edca15a57e5c0bcb4dfc +Author: Stephen Hemminger +Date: Tue May 23 15:20:25 2006 -0700 + + [BRIDGE]: need to ref count the LLC sap + + Bridge will OOPS on removal if other application has the SAP open. + The bridge SAP might be shared with other usages, so need + to do reference counting on module removal rather than explicit + close/delete. + + Since packet might arrive after or during removal, need to clear + the receive function handle, so LLC only hands it to user (if any). + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 4a063739138e2c4e933188d641f1593e01ce8285 +Author: Chris Wright +Date: Tue May 23 15:08:13 2006 -0700 + + [NETFILTER]: SNMP NAT: fix memleak in snmp_object_decode + + If kmalloc fails, error path leaks data allocated from asn1_oid_decode(). + + Signed-off-by: Chris Wright + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 4d942d8b39bf7d43ce93d85964aeb63aeace0593 +Author: Patrick McHardy +Date: Tue May 23 15:07:46 2006 -0700 + + [NETFILTER]: H.323 helper: fix sequence extension parsing + + When parsing unknown sequence extensions the "son"-pointer points behind + the last known extension for this type, don't try to interpret it. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 7185989db4d926dbef1a2f638c464f35599c83e0 +Author: Patrick McHardy +Date: Tue May 23 15:07:07 2006 -0700 + + [NETFILTER]: H.323 helper: fix parser error propagation + + The condition "> H323_ERROR_STOP" can never be true since H323_ERROR_STOP + is positive and is the highest possible return code, while real errors are + negative, fix the checks. Also only abort on real errors in some spots + that were just interpreting any return value != 0 as error. + + Fixes crashes caused by use of stale data after a parsing error occured: + + BUG: unable to handle kernel paging request at virtual address bfffffff + printing eip: + c01aa0f8 + *pde = 1a801067 + *pte = 00000000 + Oops: 0000 [#1] + PREEMPT + Modules linked in: ip_nat_h323 ip_conntrack_h323 nfsd exportfs sch_sfq sch_red cls_fw sch_hfsc xt_length ipt_owner xt_MARK iptable_mangle nfs lockd sunrpc pppoe pppoxx + CPU: 0 + EIP: 0060:[] Not tainted VLI + EFLAGS: 00210646 (2.6.17-rc4 #8) + EIP is at memmove+0x19/0x22 + eax: d77264e9 ebx: d77264e9 ecx: e88d9b17 edx: d77264e9 + esi: bfffffff edi: bfffffff ebp: de6a7680 esp: c0349db8 + ds: 007b es: 007b ss: 0068 + Process asterisk (pid: 3765, threadinfo=c0349000 task=da068540) + Stack: <0>00000006 c0349e5e d77264e3 e09a2b4e e09a38a0 d7726052 d7726124 00000491 + 00000006 00000006 00000006 00000491 de6a7680 d772601e d7726032 c0349f74 + e09a2dc2 00000006 c0349e5e 00000006 00000000 d76dda28 00000491 c0349f74 + Call Trace: + [] mangle_contents+0x62/0xfe [ip_nat] + [] ip_nat_mangle_tcp_packet+0xa1/0x191 [ip_nat] + [] set_addr+0x74/0x14c [ip_nat_h323] + [] process_setup+0x11b/0x29e [ip_conntrack_h323] + [] process_setup+0x14c/0x29e [ip_conntrack_h323] + [] process_q931+0x3c/0x142 [ip_conntrack_h323] + [] q931_help+0xe0/0x144 [ip_conntrack_h323] + ... + + Found by the PROTOS c07-h2250v4 testsuite. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 09b74de9fff056a0a4058a0f14508acba89ea6fc +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:38 2006 -0700 + + IB/ipath: deref correct pointer when using kernel SMA + + At this point, the core QP structure hasn't been initialized, so what's + in there isn't valid. Get the same information elsewhere. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 3977026462314dfbb237adf6a964d0f683b8e45d +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:37 2006 -0700 + + IB/ipath: fix null deref during rdma ops + + The problem was that node A's sending thread, which handles sending RDMA + read response data, would write the trigger word, the last packet would + be sent, node B would send a new RDMA read request, node A's interrupt + handler would initialize s_rdma_sge, then node A's sending thread would + update s_rdma_sge. This didn't happen very often naturally but was more + frequent with 1 byte RDMA reads. Rather than adding more locking or + increasing the QP structure size and copying sge data, I modified the + copy routine to update the pointers before writing the trigger word to + avoid the update race. + + Signed-off-by: Ralph Campbell + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 41c75a19bf4a0102f49763a686fb7e39780349f3 +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:36 2006 -0700 + + IB/ipath: register as IB device owner + + This fixes an oops. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 9dcc0e58e2913f7e6ffba64c27fe5c2f2c7b845c +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:35 2006 -0700 + + IB/ipath: enable PE800 receive interrupts on user ports + + Fixed so it works on the PE-800. It had not previously been updated to + match PE-800 receive interrupt differences from HT-400. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit f2080fa3c6098dedfb9b599bdaedd07be2ea4646 +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:34 2006 -0700 + + IB/ipath: enable GPIO interrupt on HT-460 + + This is required for even semi-decent performance on OpenIB. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit b0ff7c2005f7ec8dec10fb15e62b8e1acc172bbf +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:33 2006 -0700 + + IB/ipath: fix NULL dereference during cleanup + + Fix NULL deref due to pcidev being clobbered before dd->ipath_f_cleanup() + was called. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 94b8d9f98d7f535037eb9845b81396f667b4f727 +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:32 2006 -0700 + + IB/ipath: replace uses of LIST_POISON + + Per Andrew's request. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit eaf6733bc176742fb08def2269441684e963c275 +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:31 2006 -0700 + + IB/ipath: fix reporting of driver version to userspace + + Fix the interface version that gets exported to userspace. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit b228b43c491c53d1838e06f47a7470db9f84d899 +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:30 2006 -0700 + + IB/ipath: don't modify QP if changes fail + + Make sure modify_qp won't modify the QP if any of the changes failed. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit ebac3800e5652063aa9491ef7fb4d57e089eb385 +Author: Bryan O'Sullivan +Date: Tue May 23 11:32:29 2006 -0700 + + IB/ipath: fix spinlock recursion bug + + The local loopback path for RC can lock the rkey table lock without + blocking interrupts. The receive interrupt path can then call + ipath_rkey_ok() and deadlock. Remove the redundant lock. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 14ba3e7b3103a12b6f6a1057a1ecbfb15e1b48c0 +Author: Mauro Carvalho Chehab +Date: Tue May 23 16:02:03 2006 -0300 + + V4L/DVB (4041): Fix compilation on PPC 64 + + Those functions don't exist on PPC64 architecture. + + Signed-off-by: Mauro Carvalho Chehab + +commit 8b6c879c81e8f00077607f83e024eedf388839b4 +Author: Jean Delvare +Date: Tue May 23 15:56:50 2006 -0300 + + V4L/DVB (4040a): Fix the following section warnings: + + reference to .init.text: from .text between 'dvb_bt8xx_probe' + (at offset 0x122c) and 'dvb_bt8xx_remove' + reference to .init.text: from .text between 'dvb_bt8xx_probe' + (at offset 0x1267) and 'dvb_bt8xx_remove' + + Signed-off-by: Jean Delvare + Signed-off-by: Mauro Carvalho Chehab + +commit 3c2c54910f277f3abd3763dbc64b9dbf8b4479e9 +Author: Manu Abraham +Date: Sat May 20 13:17:00 2006 -0300 + + V4L/DVB (4037): Make the bridge devices that depend on I2C dependant on I2C + + Ref: Bugzilla 6179, 6589 + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 9d8a51f80117a9d672b455d60901842ad50aa69f +Author: Adrian Bunk +Date: Tue May 23 15:56:20 2006 -0300 + + V4L/DVB (3927): Fix VIDEO_DEV=m, VIDEO_V4L1_COMPAT=y + + If CONFIG_VIDEO_DEV=m and CONFIG_VIDEO_V4L1_COMPAT=y, v4l1-compat should + be built as a module (currently, it isn't built at all leading to + problems with modules using it). + + Signed-off-by: Adrian Bunk + Signed-off-by: Mauro Carvalho Chehab + +commit fd0ff8aa1d95a896b3627bc62d42d6d002ac0bc3 +Author: Jens Axboe +Date: Tue May 23 11:23:49 2006 +0200 + + [PATCH] blk: fix gendisk->in_flight accounting during barrier sequence + + While executing barrrier sequence, the bar_rq which carries actual + write was accounted as normal IO on completion, while it wasn't on + queueing. This caused gendisk->in_flight to be decremented by 1 after + each barrier thus messed up statistics. + + This patch makes bar_rq not accounted as normal IO. As the containing + barrier request as a whole is accounted, part of it shouldn't be. + + Signed-off-by: Tejun Heo + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 0f0410823792ae0ecb45f2578598b115835ffdbb +Author: David Woodhouse +Date: Tue May 23 07:46:40 2006 -0700 + + [PATCH] powerpc: wire up sys_[gs]et_robust_list + + Signed-off-by: David Woodhouse + Cc: Benjamin Herrenschmidt + Acked-by: Paul Mackerras + Cc: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b471f55427ee94d6de2b33b88a7409f8cbc6b5dc +Author: David Woodhouse +Date: Tue May 23 07:46:39 2006 -0700 + + [PATCH] powerpc: check Cell SPU syscall number range _before_ using it + + Signed-off-by: David Woodhouse + Cc: Benjamin Herrenschmidt + Acked-by: Paul Mackerras + Cc: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5a4fa1639622b85d7e4422242308fc6cef7e503e +Author: David Woodhouse +Date: Tue May 23 07:46:38 2006 -0700 + + [PATCH] powerpc: fill hole in Cell SPU syscall table + + Syscall number 224 was absent from the table, which I believe means that + the SPU can cause an oops by attempting to use it. + + Signed-off-by: David Woodhouse + Cc: Benjamin Herrenschmidt + Acked-by: Paul Mackerras + Cc: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bb6e093da23ace2724fdadd27738027468eb82b3 +Author: Florin Malita +Date: Mon May 22 22:35:30 2006 -0700 + + [PATCH] orinoco: possible null pointer dereference in orinoco_rx_monitor() + + If the skb allocation fails, the current error path calls + dev_kfree_skb_irq() with a NULL argument. Also, 'err' is not being used. + + Coverity CID: 275. + + Signed-off-by: Florin Malita + Cc: "John W. Linville" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 30d6b2f3749e41ce37170ebc445948222b2db4ee +Author: Pavel Machek +Date: Mon May 22 22:35:29 2006 -0700 + + [PATCH] swsusp: fix typo in cr0 handling + + Writing cr0 to cr2 register can't be right. This fixes the typo. I wonder + how it could survive so long. + + Signed-off-by: Pavel Machek + Cc: Zachary Amsden + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ff4547f4aa9823908e9866495598fc65772c2a09 +Author: Tobias Powalowski +Date: Mon May 22 22:35:28 2006 -0700 + + [PATCH] tty_insert_flip_string_flags() license fix + + We still don't have the tty layer licensing compatibility quite right. + + tty_insert_flip_char() used to be inlined in include/linux/tty_flip.h. It + is now out-of-lined and hence needs EXPORT_SYMBOL() to be back-compatible. + + One known offender is the Intel Modem driver. + + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a2eb0c101d24aca9d3d16c30c4f79f3a70c89208 +Author: NeilBrown +Date: Mon May 22 22:35:27 2006 -0700 + + [PATCH] md: Make sure bi_max_vecs is set properly in bio_split + + Else a subsequent bio_clone might make a mess. + + Signed-off-by: Neil Brown + Cc: "Don Dupuis" + Acked-by: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5c4c33318d26620fa552f15bbb6d0f9775a1b4df +Author: NeilBrown +Date: Mon May 22 22:35:26 2006 -0700 + + [PATCH] md: fix possible oops when starting a raid0 array + + This loop that sets up the hash_table has problems. + + Careful examination will show that the last time through, everything but + the first line is pointless. This is because all it does is change 'cur' + and 'size' and neither of these are used after the loop. This should ring + warning bells... That last time through the loop, + + size += conf->strip_zone[cur].size + + can index off the end of the strip_zone array. Depending on what it finds + there, it might exit the loop cleanly, or it might spin going further and + further beyond the array until it hits an unmapped address. + + This patch rearranges the code so that the last, pointless, iteration of + the loop never happens. i.e. the one statement of the last loop that is + needed is moved the the end of the previous loop - or to before the loop + starts - and the loop counter starts from 1 instead of 0. + + Cc: "Don Dupuis" + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f2d395865faa2a7cd4620b07178e58cbb160ba08 +Author: NeilBrown +Date: Mon May 22 22:35:25 2006 -0700 + + [PATCH] knfsd: Fix two problems that can cause rmmod nfsd to die + + Both cause the 'entries' count in the export cache to be non-zero at module + removal time, so unregistering that cache fails and results in an oops. + + 1/ exp_pseudoroot (used for NFSv4 only) leaks a reference to an export + entry. + 2/ sunrpc_cache_update doesn't increment the entries count when it adds + an entry. + + Thanks to "david m. richter" for triggering the + problem and finding one of the bugs. + + Cc: "david m. richter" + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e46e490368f87032a6e54969194413339b35a385 +Author: Andrew Morton +Date: Mon May 22 22:35:24 2006 -0700 + + [PATCH] sys_sync_file_range(): move exported flags outside __KERNEL__ + + These flags are needed by userspace - move them outside __KERNEL__ + + (Pointed out by dwmw2) + + Cc: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 42f142371e48fbc44956d57b4e506bb6ce673cd7 +Author: David S. Miller +Date: Tue May 23 02:07:22 2006 -0700 + + [SPARC64]: Respect gfp_t argument to dma_alloc_coherent(). + + Using asm-generic/dma-mapping.h does not work because pushing + the call down to pci_alloc_coherent() causes the gfp_t argument + of dma_alloc_coherent() to be ignored. + + Fix this by implementing things directly, and adding a gfp_t + argument we can use in the internal call down to the PCI DMA + implementation of pci_alloc_coherent(). + + This fixes massive memory corruption when using the sound driver + layer, which passes things like __GFP_COMP down into these + routines and (correctly) expects that to work. + + Signed-off-by: David S. Miller + +commit f41d5bb1d9f49b03af7126d07a511facbe283a92 +Author: Patrick McHardy +Date: Mon May 22 16:55:14 2006 -0700 + + [NETFILTER]: SNMP NAT: fix memory corruption + + Fix memory corruption caused by snmp_trap_decode: + + - When snmp_trap_decode fails before the id and address are allocated, + the pointers contain random memory, but are freed by the caller + (snmp_parse_mangle). + + - When snmp_trap_decode fails after allocating just the ID, it tries + to free both address and ID, but the address pointer still contains + random memory. The caller frees both ID and random memory again. + + - When snmp_trap_decode fails after allocating both, it frees both, + and the callers frees both again. + + The corruption can be triggered remotely when the ip_nat_snmp_basic + module is loaded and traffic on port 161 or 162 is NATed. + + Found by multiple testcases of the trap-app and trap-enc groups of the + PROTOS c06-snmpv1 testsuite. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit f5565f4a90bdfea99e4bcd8411ff5272ebdbdbf8 +Author: Alexey Dobriyan +Date: Mon May 22 16:54:30 2006 -0700 + + [IRDA]: fixup type of ->lsap_state + + Signed-off-by: Alexey Dobriyan + Signed-off-by: David S. Miller + +commit 405a42c5c8bd5731087c0ff01310731a3c1c9c24 +Author: Alexey Dobriyan +Date: Mon May 22 16:54:08 2006 -0700 + + [IRDA]: fix 16/32 bit confusion + + Signed-off-by: Alexey Dobriyan + Signed-off-by: David S. Miller + +commit 4195f81453b9727f82bb8ceae03411b7fe52a994 +Author: Alexey Dobriyan +Date: Mon May 22 16:53:22 2006 -0700 + + [NET]: Fix "ntohl(ntohs" bugs + + Signed-off-by: Alexey Dobriyan + Signed-off-by: David S. Miller + +commit ae181bc44c65fdc93d0d2d908534b22e43f60f56 +Author: Michael Chan +Date: Mon May 22 16:39:20 2006 -0700 + + [BNX2]: Use kmalloc instead of array + + Use kmalloc() instead of a local array in bnx2_nvram_write(). + + Update version to 1.4.40. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit bae25761c92c5eec781b6ea72bbe7e98fc8382a0 +Author: Michael Chan +Date: Mon May 22 16:38:38 2006 -0700 + + [BNX2]: Fix bug in bnx2_nvram_write() + + Fix a bug in bnx2_nvram_write() caused by a counter variable not + correctly incremented by 4. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 463d305bc51b8f5d0750a17ec0c9caf5181ec6d4 +Author: Michael Chan +Date: Mon May 22 16:36:27 2006 -0700 + + [TG3]: Add some missing rx error counters + + Add some missing rx error counters for 5705 and newer chips. + + Update version to 3.58. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 7dd1d9b85cfb63eebf48fa13d3c5d25a3deb3a25 +Author: Magnus Kessler +Date: Mon May 22 10:53:10 2006 +0100 + + [AGPGART] VIA PT880 Ultra support. + + This patch enables agpgart on a Via "PT880 Ultra" based motherboard + (Asus P4V800D-X). The PCI ID of the PT880 Ultra is 0x0308 instead of + 0x0258 of the PT880. + + The patched via-agp passes testgart. + + Signed-off-by: Magnus Kessler + Signed-off-by: Dave Jones + +commit 353b28bafd1b962359a866ff263a7fad833d29a1 +Author: David S. Miller +Date: Sun May 21 21:22:53 2006 -0700 + + [SPARC]: Add robust futex syscall entries. + + Signed-off-by: David S. Miller + +commit 9a2a9bb2010ed7e56547e2bb2041dab14ab0510a +Author: Andrew Morton +Date: Mon May 15 14:10:11 2006 -0700 + + [SUNSU]: Fix license. + + FATAL: modpost: GPL-incompatible module sunsu uses the GPL-only symbol tty_insert_flip_string_flags + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit f1adad78dd2fc8edaa513e0bde92b4c64340245c +Author: Linus Torvalds +Date: Sun May 21 18:54:09 2006 -0700 + + Revert "[PATCH] sched: fix interactive task starvation" + + This reverts commit 5ce74abe788a26698876e66b9c9ce7e7acc25413 (and its + dependent commit 8a5bc075b8d8cf7a87b3f08fad2fba0f5d13295e), because of + audio underruns. + + Reported by Rene Herman , who also pinpointed + the exact cause of the underruns: + + "Audio underruns galore, with only ogg123 and firefox (browsing the + GIT tree online is also a nice trigger by the way). + + If I back it out, everything is fine for me again." + + Cc: Rene Herman + Cc: Mike Galbraith + Acked-by: Con Kolivas + Signed-off-by: Linus Torvalds + +commit ca2797ffaabc1f73cf8a73a30f709f0c1a6bef34 +Author: Dave Jones +Date: Sun May 21 17:11:42 2006 -0400 + + [AGPGART] Fix Nforce3 suspend on amd64. + + kernel.org bugzilla #6206 + + Based on patch from Serge Belyshev + Signed-off-by: Dave Jones + +commit 283a12c53b9abeed89491da4a1eda98f5764947b +Author: Andi Kleen +Date: Tue Mar 28 09:38:45 2006 +0200 + + [AGPGART] Enable SIS AGP driver on x86-64 for EM64T systems + + Enable SIS AGP driver on x86-64 for EM64T systems + + Untested so far + + Signed-off-by: Andi Kleen + Signed-off-by: Dave Jones + +commit b307e8548921c686d2eb948ca418ab2941876daa +Author: Andrew Morton +Date: Sat May 20 15:00:36 2006 -0700 + + [PATCH] ad1848 section fix + + WARNING: sound/oss/ad1848.o - Section mismatch: reference to .init.data:ad1848_isapnp_list from .text between 'ad1848_init_generic' (at offset 0x46f0) and 'kmalloc' + WARNING: sound/oss/ad1848.o - Section mismatch: reference to .init.data:ad1848_isapnp_list from .text between 'ad1848_init_generic' (at offset 0x46f8) and 'kmalloc' + WARNING: sound/oss/ad1848.o - Section mismatch: reference to .init.data:ad1848_isapnp_list from .text between 'ad1848_init_generic' (at offset 0x4818) and 'kmalloc' + + Also, + + sound/oss/ad1848.c: In function `ad1848_init': + sound/oss/ad1848.c:2029: warning: cast to pointer from integer of different size + sound/oss/ad1848.c: In function `ad1848_unload': + sound/oss/ad1848.c:2178: warning: cast to pointer from integer of different size + sound/oss/ad1848.c: In function `adintr': + sound/oss/ad1848.c:2207: warning: cast from pointer to integer of different size + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit db31419404e5ccc7e8e07000a5f1ac440a0eafa0 +Author: Andrew Morton +Date: Sat May 20 15:00:35 2006 -0700 + + [PATCH] nm256_audio section fix + + WARNING: sound/oss/nm256_audio.o - Section mismatch: reference to .init.text:nm256_peek_for_sig from .text between 'nm256_install' (at offset 0x3ba4) and 'nm256_probe' WARNING: sound/oss/nm256_audio.o - Section mismatch: reference to .init.text:nm256_peek_for_sig from .text between 'nm256_install' (at offset 0x3bac) and 'nm256_probe' WARNING: sound/oss/nm256_audio.o - Section mismatch: reference to .init.text: from .text between 'nm256_install' (at offset 0x3dcc) and 'nm256_probe' WARNING: sound/oss/nm256_audio.o - Section mismatch: reference to .init.text: from .text between 'nm256_install' (at offset 0x3dd0) and 'nm256_probe' + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1caef6aa97a3a43a82f238d8b31bf177de34a4bf +Author: Andrew Morton +Date: Sat May 20 15:00:35 2006 -0700 + + [PATCH] es18xx build fix + + sound/isa/es18xx.c: In function `snd_es18xx_identify': + sound/isa/es18xx.c:1606: warning: implicit declaration of function `udelay' + + Cc: Jaroslav Kysela + Cc: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fad43488b8c9b3914fcdc48ee3b8d30aeb49fa30 +Author: Andrew Morton +Date: Sat May 20 15:00:34 2006 -0700 + + [PATCH] mpu401 section fix + + WARNING: sound/drivers/mpu401/snd-mpu401.o - Section mismatch: reference to .init.text: from .text between 'snd_mpu401_pnp_probe' (at offset 0x1f7) and 'snd_mpu401_pnp_remove' + + Cc: Jaroslav Kysela + Cc: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9e8a3d229b23c34adb9c20cc2875fc67dce12585 +Author: Andrew Morton +Date: Sat May 20 15:00:33 2006 -0700 + + [PATCH] i810 section fix + + WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference to .init.data: from .text between 'i810_fix_offsets' (at offset 0x1b88) and 'i810_alloc_agp_mem' + WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference to .init.data: from .text between 'i810_fix_offsets' (at offset 0x1b8f) and 'i810_alloc_agp_mem' + WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference to .init.data: from .text between 'i810_fix_offsets' (at offset 0x1ba3) and 'i810_alloc_agp_mem' + WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference to .init.data: from .text between 'i810_fix_offsets' (at offset 0x1bb5) and 'i810_alloc_agp_mem' + WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference to .init.data: from .text between 'i810_fix_offsets' (at offset 0x1bc6) and 'i810_alloc_agp_mem' + WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference to .init.data: from .text between 'i810_init_defaults' (at offset 0x1dd8) and 'i810_init_device' + WARNING: drivers/video/i810/i810fb.o - Section mismatch: reference to .init.data: from .text between 'i810_init_defaults' (at offset 0x1dfb) and 'i810_init_device' + + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9781b8b055bd0a02a043ed80fb8d59d703a49daf +Author: Andrew Morton +Date: Sat May 20 15:00:32 2006 -0700 + + [PATCH] pd6729 section fix + + WARNING: drivers/pcmcia/pd6729.o - Section mismatch: reference to .init.text: from .text between 'pd6729_pci_probe' (at offset 0x9a8) and 'pd6729_pci_remove' + + Cc: Dominik Brodowski + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e984bb43f7450312ba66fe0e67a99efa6be3b246 +Author: Bob Picco +Date: Sat May 20 15:00:31 2006 -0700 + + [PATCH] Align the node_mem_map endpoints to a MAX_ORDER boundary + + Andy added code to buddy allocator which does not require the zone's + endpoints to be aligned to MAX_ORDER. An issue is that the buddy allocator + requires the node_mem_map's endpoints to be MAX_ORDER aligned. Otherwise + __page_find_buddy could compute a buddy not in node_mem_map for partial + MAX_ORDER regions at zone's endpoints. page_is_buddy will detect that + these pages at endpoints are not PG_buddy (they were zeroed out by bootmem + allocator and not part of zone). Of course the negative here is we could + waste a little memory but the positive is eliminating all the old checks + for zone boundary conditions. + + SPARSEMEM won't encounter this issue because of MAX_ORDER size constraint + when SPARSEMEM is configured. ia64 VIRTUAL_MEM_MAP doesn't need the logic + either because the holes and endpoints are handled differently. This + leaves checking alloc_remap and other arches which privately allocate for + node_mem_map. + + Signed-off-by: Bob Picco + Acked-by: Mel Gorman + Cc: Dave Hansen + Cc: Andy Whitcroft + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ae57a856429dd932c547530df1b234eb7e642297 +Author: Greg Kroah-Hartman +Date: Sat May 20 15:00:30 2006 -0700 + + [PATCH] kobject: quiet errors in kobject_add + + People don't like released kernels yelling at them, no matter how real the + error might be. So only report it if CONFIG_KOBJECT_DEBUG is enabled. + + Sent on request of Andrew Morton. + + (akpm: should bring this back post-2.6.17) + + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b3969e5831adac133b286600e74214e1ae42ec05 +Author: Alessandro Zummo +Date: Sat May 20 15:00:29 2006 -0700 + + [PATCH] rtc subsystem: use ENOIOCTLCMD and ENOTTY where appropriate + + Appropriately use -ENOIOCTLCMD and -ENOTTY when the ioctl is not + implemented by a driver. + + (akpm: we're not allowed to return -ENOIOCTLCMD to userspace. This patch does + the right thing). + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eae07ac607f317ee6781983d3f9d8f77ef144b45 +Author: Atsushi Nemoto +Date: Sat May 20 15:00:28 2006 -0700 + + [PATCH] kbuild: fix modpost segfault for 64bit mipsel kernel + + Here is an updated r_info layout fix. Please apply "check SHT_REL + sections" patch before this. + + 64bit mips has different r_info layout. This patch fixes modpost + segfault for 64bit little endian mips kernel. + + Signed-off-by: Atsushi Nemoto + Cc: Sam Ravnborg + Cc: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2c1a51f39d9551a514d7a089d01c23c0c3a54ab8 +Author: Atsushi Nemoto +Date: Sat May 20 15:00:26 2006 -0700 + + [PATCH] kbuild: check SHT_REL sections + + I found that modpost can not detect section mismatch on mips and i386. On + mips64, the modpost (with r_info layout fix) can detect it. The current + modpst only checks SHT_RELA section but I suppose SHT_REL section should be + checked also. This patch does not contain r_info layout fix. I'll post an + updated r_info layout fix on next mail. + + Check SHT_REL sections as like as SHT_RELA sections to detect section + mismatch. + + Signed-off-by: Atsushi Nemoto + Cc: Sam Ravnborg + Cc: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 92f63cd000059366af18712367216d96180e0ec0 +Author: Martin Schwidefsky +Date: Sat May 20 15:00:25 2006 -0700 + + [PATCH] s390: next_timer_interrupt overflow in stop_hz_timer + + The 32 bit unsigned substraction (next - jiffies) in stop_hz_timer can + overflow if jiffies gets advanced between next_timer_interrupt and the read + under the xtime lock. The cast to a u64 then results in a large value + which causes the cpu to wait too long. Fix this by casting next and + jiffies independently to u64 before subtracting them. + + (Spotted by Zachary Amsden ) + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0662b71322e211dba9a4bc0e6fbca7861a2b5a7d +Author: Zachary Amsden +Date: Sat May 20 15:00:24 2006 -0700 + + [PATCH] Fix a NO_IDLE_HZ timer bug + + Under certain timing conditions, a race during boot occurs where timer + ticks are being processed on remote CPUs. The remote timer ticks can + increment jiffies, and if this happens during a window when a timeout is + very close to expiring but a local tick has not yet been delivered, you can + end up with + + 1) No softirq pending + 2) A local timer wheel which is not synced to jiffies + 3) No high resolution timer active + 4) A local timer which is supposed to fire before the current jiffies value. + + In this circumstance, the comparison in next_timer_interrupt overflows, + because the base of the comparison for high resolution timers is jiffies, + but for the softirq timer wheel, it is relative the the current base of the + wheel (jiffies_base). + + Signed-off-by: Zachary Amsden + Cc: Martin Schwidefsky + Cc: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8b1ea24c6cc529f6860c458b1c0872f22e74c950 +Author: Rene Herman +Date: Sat May 20 15:00:22 2006 -0700 + + [PATCH] missing newline in scsi/st.c + + st: Version 20050830, fixed bufsize 32768, s/g segs 256 + st 0:0:6:0: Attached scsi tape st0<4>st0: try direct i/o: yes (alignment 512 B) + + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dc49e3445aa703eb7fd33c7ddb7e4a7bbcf06d30 +Author: Satoshi Oshima +Date: Sat May 20 15:00:21 2006 -0700 + + [PATCH] kprobes: bad manipulation of 2 byte opcode on x86_64 + + Problem: + + If we put a probe onto a callq instruction and the probe is executed, + kernel panic of Bad RIP value occurs. + + Root cause: + + If resume_execution() found 0xff at first byte of p->ainsn.insn, it must + check the _second_ byte. But current resume_execution check _first_ byte + again. + + I changed it checks second byte of p->ainsn.insn. + + Kprobes on i386 don't have this problem, because the implementation is a + little bit different from x86_64. + + Cc: Andi Kleen + Signed-off-by: Satoshi Oshima + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit be0d03f1c3d3612fe2b6aa451ae87a89382c9231 +Author: Vivek Goyal +Date: Sat May 20 15:00:21 2006 -0700 + + [PATCH] i386 kdump boot cpu physical apicid fix + + o Kdump second kernel boot fails after a system crash if second kernel + is UP and acpi=off and if crash occurred on a non-boot cpu. + + o Issue here is that MP tables report boot cpu lapic id as 0 but second + kernel is booting on a different processor and MP table data is stale + in this context. Hence apic_id_registered() check fails in setup_local_APIC() + when called from APIC_init_uniprocessor(). + + o Problem is not seen if ACPI is enabled as in that case + boot_cpu_physical_apicid is read from the LAPIC. + + o Problem is not seen with SMP kernels as well because in this case also + boot_cpu_physical_apicid is read from LAPIC. (smp_boot_cpus()). + + o The problem is fixed by reading boot_cpu_physical_apicid from LAPIC + if it is a UP kernel and CRASH_DUMP is enabled. + + Signed-off-by: Vivek Goyal + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5daa3ba0c6a41a8bb4ba17ad8d5514172e103504 +Author: Stephen Street +Date: Sat May 20 15:00:19 2006 -0700 + + [PATCH] pxa2xx-spi update + + Fix some outstanding issues with the pxa2xx_spi driver when running on a + PXA270: + + - Wrong timeout calculation in the setup function due to different + peripheral clock rates in the PXAxxx family. + + - Bad handling of SSSR_TFS interrupts in interrupt_transfer function. + + - Added locking to interface between the pump_messages workqueue and the + pump_transfers tasklet. + + Much thanks to Juergen Beisert for the extensive testing on the PXA270. + + Signed-off-by: Stephen Street + Signed-off-by: David Brownell + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7fba53402eb0fb4209c74469814c583b6455e096 +Author: Ben Dooks +Date: Sat May 20 15:00:18 2006 -0700 + + [PATCH] S3C24XX: hardware SPI driver + + Hardware based SPI driver for Samsung S3C24XX SoC systems + + Signed-off-by: Ben Dooks + Cc: David Brownell + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1fc7547d4bfe5c8c8c79e196b955b6fbaa21bfd2 +Author: Ben Dooks +Date: Sat May 20 15:00:17 2006 -0700 + + [PATCH] S3C24XX: GPIO based SPI driver + + SPI driver for SPI by GPIO on the Samsung S3C24XX series of SoC processors. + + Signed-off-by: Ben Dooks + Cc: Greg KH + Cc: David Brownell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1b81d6637d27a0e6a0506ecef65493b50d859cfc +Author: Adrian Bunk +Date: Sat May 20 15:00:16 2006 -0700 + + [PATCH] drivers/base/firmware_class.c: cleanups + + - remove the following global function that is both unused and + unimplemented: + - register_firmware() + + - make the following needlessly global function static: + - firmware_class_uevent() + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ccf06998fe179ae2cc9517ed1d75433dc0b5032d +Author: Kumar Gala +Date: Sat May 20 15:00:15 2006 -0700 + + [PATCH] spi: add spi master driver for Freescale MPC83xx SPI controller + + This driver supports the SPI controller on the MPC83xx SoC devices from + Freescale. Note, this driver supports only the simple shift register SPI + controller and not the descriptor based CPM or QUICCEngine SPI controller. + + Signed-off-by: Kumar Gala + Signed-off-by: David Brownell + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ba1a051319dc2bec9f43b7cef11c6e5270107fd6 +Author: dmitry pervushin +Date: Sat May 20 15:00:14 2006 -0700 + + [PATCH] minor SPI doc fix + + Because several developers asked me about referenced but missing + spi_add_master(), I think that this patch should be applied ... it + corrects comments so they refer to spi_register_master() instead. + + Signed-off-by: dmitry pervushin + Signed-off-by: David Brownell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ae0718f8e3fcfa3e4863f63db90d24bbec6b14a2 +Author: Theodore Tso +Date: Sat May 20 15:00:13 2006 -0700 + + [PATCH] Update ext2/ext3/jbd MAINTAINERS entries + + Signed-off-by: "Theodore Ts'o" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c9ee133b914879e02796bccd840f75f185cf1bb7 +Author: Alan Cox +Date: Sat May 20 15:00:12 2006 -0700 + + [PATCH] Clarify maintainers and include linux-security info + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a6a61c5494145c904bead0cceadd94080bd3a784 +Author: Eric Sesterhenn +Date: Sat May 20 15:00:12 2006 -0700 + + [PATCH] Overrun in isdn_tty.c + + This fixes coverity bug id #1237. After the while loop, it is possible for + i == ISDN_LMSNLEN. If this happens the terminating '\0' is written after + the end of the array. + + Signed-off-by: Eric Sesterhenn + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 92d1dbd27417c54c23aac6a84c285e256f6118b6 +Author: Paul Jackson +Date: Sat May 20 15:00:11 2006 -0700 + + [PATCH] cpuset: might_sleep_if check in cpuset_zones_allowed + + It's too easy to incorrectly call cpuset_zone_allowed() in an atomic + context without __GFP_HARDWALL set, and when done, it is not noticed until + a tight memory situation forces allocations to be tried outside the current + cpuset. + + Add a 'might_sleep_if()' check, to catch this earlier on, instead of + waiting for a similar check in the mutex_lock() code, which is only rarely + invoked. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 36be57ffe39e03aab9fbe857f70c7a6a15bd9e08 +Author: Paul Jackson +Date: Sat May 20 15:00:10 2006 -0700 + + [PATCH] cpuset: update cpuset_zones_allowed comment + + Update the kernel/cpuset.c:cpuset_zone_allowed() comment. + + The rule for when mm/page_alloc.c should call cpuset_zone_allowed() + was intended to be: + + Don't call cpuset_zone_allowed() if you can't sleep, unless you + pass in the __GFP_HARDWALL flag set in gfp_flag, which disables + the code that might scan up ancestor cpusets and sleep. + + The explanation of this rule in the comment above cpuset_zone_allowed() was + stale, as a result of a restructuring of some __alloc_pages() code in + November 2005. + + Rewrite that comment ... + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bdd804f478a0cc74bf7db8e9f9d5fd379d1b31ca +Author: Paul Jackson +Date: Sat May 20 15:00:09 2006 -0700 + + [PATCH] Cpuset: might sleep checking zones allowed fix + + Fix a couple of infrequently encountered 'sleeping function called from + invalid context' in the cpuset hooks in __alloc_pages. Could sleep while + interrupts disabled. + + The routine cpuset_zone_allowed() is called by code in mm/page_alloc.c + __alloc_pages() to determine if a zone is allowed in the current tasks + cpuset. This routine can sleep, for certain GFP_KERNEL allocations, if the + zone is on a memory node not allowed in the current cpuset, but might be + allowed in a parent cpuset. + + But we can't sleep in __alloc_pages() if in interrupt, nor if called for a + GFP_ATOMIC request (__GFP_WAIT not set in gfp_flags). + + The rule was intended to be: + Don't call cpuset_zone_allowed() if you can't sleep, unless you + pass in the __GFP_HARDWALL flag set in gfp_flag, which disables + the code that might scan up ancestor cpusets and sleep. + + This rule was being violated in a couple of places, due to a bogus change + made (by myself, pj) to __alloc_pages() as part of the November 2005 effort + to cleanup its logic, and also due to a later fix to constrain which swap + daemons were awoken. + + The bogus change can be seen at: + http://linux.derkeiler.com/Mailing-Lists/Kernel/2005-11/4691.html + [PATCH 01/05] mm fix __alloc_pages cpuset ALLOC_* flags + + This was first noticed on a tight memory system, in code that was disabling + interrupts and doing allocation requests with __GFP_WAIT not set, which + resulted in __might_sleep() writing complaints to the log "Debug: sleeping + function called ...", when the code in cpuset_zone_allowed() tried to take + the callback_sem cpuset semaphore. + + We haven't seen a system hang on this 'might_sleep' yet, but we are at + decent risk of seeing it fairly soon, especially since the additional + cpuset_zone_allowed() check was added, conditioning wakeup_kswapd(), in + March 2006. + + Special thanks to Dave Chinner, for figuring this out, and a tip of the hat + to Nick Piggin who warned me of this back in Nov 2005, before I was ready + to listen. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 593ee20766921fec643194dff829e17f30552220 +Author: Kristen Accardi +Date: Sat May 20 15:00:08 2006 -0700 + + [PATCH] pci: correctly allocate return buffers for osc calls + + The OSC set and query functions do not allocate enough space for return + values, and set the output buffer length to a false, too large value. This + causes the acpi-ca code to assume that the output buffer is larger than it + actually is, and overwrite memory when copying acpi return buffers into + this caller provided buffer. In some cases this can cause kernel oops if + the memory that is overwritten is a pointer. This patch will change these + calls to use a dynamically allocated output buffer, thus allowing the + acpi-ca code to decide how much space is needed. + + Signed-off-by: Kristen Carlson Accardi + Cc: "Brown, Len" + Cc: "Yu, Luming" + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d66fd908acc8ba88541ecc570d89b0243f947c5e +Author: Amy Griffis +Date: Sat May 20 15:00:07 2006 -0700 + + [PATCH] fix NULL dereference in inotify_ignore + + Don't reassign to watch. If idr_find() returns NULL, then + put_inotify_watch() will choke. + + Signed-off-by: Amy Griffis + Cc: John McCutchan + Cc: Robert Love + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 66055a4e7334b05354c835123ff621c5f700e56a +Author: Amy Griffis +Date: Sat May 20 15:00:06 2006 -0700 + + [PATCH] fix race in inotify_release + + While doing some inotify stress testing, I hit the following race. In + inotify_release(), it's possible for a watch to be removed from the lists + in between dropping dev->mutex and taking inode->inotify_mutex. The + reference we hold prevents the watch from being freed, but not from being + removed. + + Checking the dev's idr mapping will prevent a double list_del of the + same watch. + + Signed-off-by: Amy Griffis + Acked-by: John McCutchan + Cc: Robert Love + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 12783b002db1f02c29353c8f698a85514420b9f4 +Author: Mike Kravetz +Date: Sat May 20 15:00:05 2006 -0700 + + [PATCH] SPARSEMEM incorrectly calculates section number + + A bad calculation/loop in __section_nr() could result in incorrect section + information being put into sysfs memory entries. This primarily impacts + memory add operations as the sysfs information is used while onlining new + memory. + + Fix suggested by Dave Hansen. + + Note that the bug may not be obvious from the patch. It actually occurs in + the function's return statement: + + return (root_nr * SECTIONS_PER_ROOT) + (ms - root); + + In the existing code, root_nr has already been multiplied by + SECTIONS_PER_ROOT. + + Signed-off-by: Mike Kravetz + Cc: Dave Hansen + Cc: Andy Whitcroft + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ad8f5797302ed389476debcc51b4630f387618b9 +Author: KAMEZAWA Hiroyuki +Date: Sat May 20 15:00:03 2006 -0700 + + [PATCH] build fix: CONFIG_MEMORY_HOTPLUG=y on i386 + + typo in #ifdefs. Fixes http://bugme.osdl.org/show_bug.cgi?id=6538 + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d4e9dc63dca91cd89086b5a686d7f7635c8319e5 +Author: Alexey Dobriyan +Date: Sat May 20 15:00:02 2006 -0700 + + [PATCH] selinux: endian fix + + Signed-off-by: Alexey Dobriyan + Cc: Stephen Smalley + Acked-by: James Morris + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit df88912a2165f56a7402db80126cf8ea075221fe +Author: Andrew Morton +Date: Sat May 20 15:00:01 2006 -0700 + + [PATCH] binfmt_flat: don't check for EMFILE + + Bernd Schmidt points out that binfmt_flat is now leaving the exec file open + while the application runs. This offsets all the application's fd numbers. + We should have closed the file within exec(), not at exit()-time. + + But there doesn't seem to be a lot of point in doing all this just to avoid + going over RLIMIT_NOFILE by one fd for a few microseconds. So take the EMFILE + checking out again. This will cause binfmt_flat to again fail LTP's + exec-should-return-EMFILE-when-fdtable-is-full test. That test appears to be + wrong anyway - Open Group specs say nothing about exec() returning EMFILE. + + Cc: Bernd Schmidt + Cc: Greg Ungerer + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 48d705522da4fa04bb0169a7ca3c9ab92e28b613 +Author: Micon, David +Date: Sat May 20 14:59:59 2006 -0700 + + [PATCH] HID read busywait fix + + Make a read of a HID device block until data is available. Without it, the + read goes into a busy-wait loop until data is available. + + Cc: Greg KH + Acked-by: Vojtech Pavlik + Cc: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9ccfc29c671c9d0a83c2a114d4bc5f85f3cd749d +Author: Florin Malita +Date: Sat May 20 14:59:58 2006 -0700 + + [PATCH] nfsd: sign conversion obscuring errors in nfsd_set_posix_acl() + + Assigning the result of posix_acl_to_xattr() to an unsigned data type + (size/size_t) obscures possible errors. + + Coverity CID: 1206. + + Signed-off-by: Florin Malita + Acked-by: NeilBrown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2adc7d47c4dbf684e69ee3980c158ff684dc170e +Author: NeilBrown +Date: Sat May 20 14:59:57 2006 -0700 + + [PATCH] md: Fix inverted test for 'repair' directive. + + We should be able to write 'repair' to /sys/block/mdX/md/sync_action, + however due to and inverted test, that always given EINVAL. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8c7b389e532e964f07057dac8a56c43465544759 +Author: Peter Staubach +Date: Sat May 20 14:59:56 2006 -0700 + + [PATCH] NFS server subtree_check returns dubious value + + Address a problem found when a Linux NFS server uses the "subtree_check" + export option. + + The "subtree_check" NFS export option was designed to prohibit a client + from using a file handle for which it should not have permission. The + algorithm used is to ensure that the entire path to the file being + referenced is accessible to the user attempting to use the file handle. If + some part of the path is not accessible, then the operation is aborted and + the appropriate version of ESTALE is returned to the NFS client. + + The error, ESTALE, is unfortunate in that it causes NFS clients to make + certain assumptions about the continued existence of the file. They assume + that the file no longer exists and refuse to attempt to access it again. + In this case, the file really does exist, but access was denied by the + server for a particular user. + + A better error to return would be an EACCES sort of error. This would + inform the client that the particular operation that it was attempting was + not allowed, without the nasty side effects of the ESTALE error. + + Signed-off-by: Peter Staubach + Acked-By: NeilBrown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ea6c20891eb25e4884b852c040136f44cb173f3e +Author: Vivek Goyal +Date: Sat May 20 14:59:55 2006 -0700 + + [PATCH] Kdump maintainer info update + + Update MAINTAINERS file for info regarding kdump maintainership. + + Signed-off-by: Vivek Goyal + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 22192ccd6d1dfea2a41e40442997ccad5b7b160e +Author: Benjamin Herrenschmidt +Date: Sat May 20 14:59:53 2006 -0700 + + [PATCH] powerpc: Fix ide-pmac sysfs entry + + It looks like the generic ide code now wants ide_init_hwif_ports() to set + the parent struct device into the ide_hw structure (new field ?). Without + this, the mac ide code can cause the ide probing code to explode in flames + in sysfs registration due to what looks like a stale pointer in there + (happens when removing/re-inserting one of the hotswap media bays on some + laptops). + + Signed-off-by: Benjamin Herrenschmidt + Cc: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c44b20d51142acdc9c66108b758c0454a7e2ce11 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Sat May 20 14:59:52 2006 -0700 + + [PATCH] i386: remove junk from stack dump + + i386 stack dump has a "<0>" in the middle of the line and an extra space + between columns in multicolumn mode. Remove those and also remove an extra + blank line of source code. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d39bedc47fbf18a940f5843981767c221d22cfe +Author: Paul A. Clarke +Date: Sat May 20 14:59:51 2006 -0700 + + [PATCH] matroxfb: fix DVI setup to be more compatible + + There has been a longstanding problem with the Matrox G450 and perhaps + other similar cards, with modes "above" 1280x1024-60 on ppc/ppc64 boxes + running Linux. Higher resolutions and/or higher refresh rates resulted in + a very noticably "jittery" display, and sometimes no display, depending on + the physical monitor. This patch fixes that problem on the systems I have + easy access to... + + I've tested with SLES9SP3 (2.6.5+ kernel) and 2.6.16-rc6 custom kernels on + an IBM eServer p5 520 w/G450 (a.k.a GXT135P on IBM's ppc64 systems), and a + colleague of mine (Ian Romanick) tested it successfully on an Apple ppc32 + box (w/GXT135P). I also tested it on IA32 box I have with a GXT135P to + verify that it didn't obviously break anything. In my testing, I covered + single-card, single and dual-head setups using both HD15 and DVI-D signals, + on both the IA32 and ppc64 boxes. While everything appeared fine on both + boxes, I did encounter one problem: I can't get any signal on the DVI-D + output on the ppc64 box. However, this is also the case without my patch. + + I just noticed that screen-blanking only occurs on the primary display as + well. + + Signed-off-by: Paul A. Clarke + Signed-off-by: Ian Romanick + Signed-off-by: Petr Vandrovec + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d64b1c878fc1e384ae53d1d40034239bc33848f4 +Author: Lin Feng Shen +Date: Sat May 20 14:59:49 2006 -0700 + + [PATCH] NFS: fix error handling on access_ok in compat_sys_nfsservctl + + Functions compat_nfs_svc_trans, compat_nfs_clnt_trans, + compat_nfs_exp_trans, compat_nfs_getfd_trans and compat_nfs_getfs_trans, + which are called by compat_sys_nfsservctl(fs/compat.c), don't handle the + return value of access_ok properly. access_ok return 1 when the addr is + valid, and 0 when it's not, but these functions have the reversed + understanding. When the address is valid, they always return -EFAULT to + compat_sys_nfsservctl. + + An example is to run /usr/sbin/rpc.nfsd(32bit program on Power5). It + doesn't function as expected. strace showes that nfsservctl returns + -EFAULT. + + The patch fixes this by correcting the error handling on the return value + of access_ok in the five functions. + + Signed-off-by: Lin Feng Shen + Cc: Trond Myklebust + Acked-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 84b3932bf0fd8cdc8c75a5be77e1dded1e6479c6 +Author: Ayaz Abdulla +Date: Sat May 20 14:59:48 2006 -0700 + + [PATCH] forcedeth: fix multi irq issues + + With Manfred Spraul and + Andrew Morton + + Bring back this recently-reverted patch, only fixed. + + Original changelog: + + From: Ayaz Abdulla + + This patch fixes the issues with multiple irqs. + + I am resending based on feedback. I decoupled the dma mask for + consistent memory and fixed leak with multiple irq in error path. + + Thanks to Manfred for catching the spin lock problem. + + Fix it: + + From: Manfred Spraul + + Fix bug introduced by ebf34c9b6fcd22338ef764b039b3ac55ed0e297b, covered in + http://bugzilla.kernel.org/show_bug.cgi?id=6568. + + Remove second instance of the request_irq() calls: they were moved + from nv_open into nv_request_irq. + + Thanks to Alistair Strachan for reporting and + persisting. + + Signed-off-by: Ayaz Abdulla + Signed-off-by: Manfred Spraul + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9f434d4f84a235f6b61aec6e691d6b07bc46fc24 +Author: Eric Moore +Date: Wed May 17 18:19:43 2006 -0600 + + [SCSI] scsi_transport_sas: make write attrs writeable + + A couple write attributes in sas transport layer have a small + bug that prevents them from being written to. Those + attributes are the link_reset and write_reset. This is due + the store field being set to NULL. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 6d99a3f372181160a56d7b1ee3259dbe03663f0d +Author: James Bottomley +Date: Fri May 19 10:49:37 2006 -0500 + + [SCSI] scsi_transport_sas; fix user_scan + + the user_scan() callback currently has the potential to identify the + wrong device in the presence of expanders. This is because it finds + the first device with a matching target_id, which might be an + expander. Fix this by making it look specifically for end devices. + + Signed-off-by: James Bottomley + +commit e2a7f77a7b4ab298a38c8d1f624628456069bdb0 +Author: Randy Dunlap +Date: Thu May 18 10:50:18 2006 -0700 + + [PATCH] libata-core: fix current kernel-doc warnings + + Fix all current kernel-doc warnings. + + Signed-off-by: Randy Dunlap + Signed-off-by: Jeff Garzik + +commit 63a25355cd5cd9a2d19a7c50eed4f0a8aa622f72 +Author: Mark Lord +Date: Fri May 19 16:41:27 2006 -0400 + + [PATCH] sata_mv: version bump + + Increment the version number inside sata_mv.c. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit 559eedad7f7764dacca33980127b4615011230e4 +Author: Mark Lord +Date: Fri May 19 16:40:15 2006 -0400 + + [PATCH] sata_mv: endian fix + + This fixes a byte-swap issue on PPC, found by Zang Roy-r61911 + on the powerpc platform. His original patch also had some other + platform-specific changes in #ifdef's, but I'm not sure yet how to + incorporate them. Look for another patch for those (soon). + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit a6432436c5e14b416f27c8f87c5bf0bc36771f49 +Author: Mark Lord +Date: Fri May 19 16:36:36 2006 -0400 + + [PATCH] sata_mv: remove local copy of queue indexes + + The driver currently keeps local copies of the hardware request/response queue indexes. + But it expends significant effort ensuring consistency between the two views, + and still gets it wrong after an error or reset occurs. + + This patch removes the local copies, in favour of just accessing the hardware + whenever we need them. Eventually this may need to be tweaked again for NCQ, + but for now this works and solves problems some users were seeing. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit e857f141945f29c16f72ffcfdbce097f8be6c4e9 +Author: Mark Lord +Date: Fri May 19 16:33:03 2006 -0400 + + [PATCH] sata_mv: spurious interrupt workaround + + The 60xx chips, and possibly others, incorrectly assert DEV_IRQ interrupts + on a regular basis. The cause of this is under investigation (by me and + in theory by Marvell also), but regardless we do need to deal with these events. + + This patch tidies up some interrupt handler code, and ensures that we ignore + DEV_IRQ interrupts when the drive still has ATA_BUSY asserted. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit eb46d684600ac145501805a294c94675e82eab2e +Author: Mark Lord +Date: Fri May 19 16:29:21 2006 -0400 + + [PATCH] sata_mv: chip initialization fixes + + The interface control register of the 60xx (and later) Marvell chip + requires certain bits to always be set when writing to it. These bits + incorrectly read-back as zeros, so the pattern must be ORed in + with each write of the register. Also, bit 12 should NOT be set + (note that Marvell's own driver also had bit-12 wrong here). + + While we're at it, we also now do pci_set_master() in the init code. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit 615ab95342f6245026d8974b9724f7ea57d9a184 +Author: Mark Lord +Date: Fri May 19 16:24:56 2006 -0400 + + [PATCH] sata_mv: deal with interrupt coalescing interrupts + + In some systems, it is possible that the BIOS may have enabled interrupt coalescing + for the Marvell controllers which support it. This patch adds code to detect/ack + interrupts from the chip's coalescing (combing) logic. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit 9b358e305c1d783c8a4ebf00344e95deb9e38f3d +Author: Mark Lord +Date: Fri May 19 16:21:03 2006 -0400 + + [PATCH] sata_mv: prevent unnecessary double-resets + + The mv_err_intr() function is invoked from the driver's interrupt handler, + as well as from the timeout function. This patch prevents it from triggering + a one-after-the-other double reset of the controller when invoked + from the timeout function. + + This also adds a check for a timeout race condition that has been observed + to occur with this driver in earlier kernels. This should not be needed, + in theory, but in practice it has caught bugs. Maybe nuke it at a later date. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit bb02aacc02c6002143a1cfc313d144a413eec8d0 +Author: Erling A. Jacobsen +Date: Sun Apr 30 21:46:56 2006 +0200 + + [PATCH] winbond-840-remove-badness-in-pci_map_single + + Call pci_map_single() with the actual size of the receive + buffers, not 0 (which skb->len is initialized to by dev_alloc_skb()). + + Signed-off-by: Erling A. Jacobsen + Signed-off-by: Jeff Garzik + +commit f905703a93b7014a0fd95d0edac2b734bf0d1522 +Author: Komuro +Date: Sun Apr 30 09:54:13 2006 +0900 + + [PATCH] network: axnet_cs: bug fix multicast code (support older ax88190 chipset) + + Dear Jeff + + axnet_cs: bug fix multicast code (support older ax88190 chipset) + + Signed-off-by: komurojun-mbn@nifty.com + + Best Regards + Komuro + Signed-off-by: Jeff Garzik + +commit a06631cbdc09fe33892f08238be498eaa84892ee +Author: Stephen Hemminger +Date: Mon May 15 16:32:39 2006 -0700 + + [PATCH] skge: don't allow transmit ring to be too small + + The driver will get stuck (permanent transmit timeout), if the transmit + ring size is set too small. It needs to have enough ring elements to + hold one maximum size transmit. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 20e777a2a7dc9fad3d0b016c662c2fb60e6b20e7 +Author: Stephen Hemminger +Date: Mon May 15 16:30:25 2006 -0700 + + [PATCH] skge: bad checksums on big-endian platforms + + Skge driver always causes bad checksums on big-endian. + The checksum in the receive control block was being swapped + when it doesn't need to be. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit c9b84dcac6e20ec8e5424f3dff853daa863bfdd0 +Author: Stephen Hemminger +Date: Wed May 17 14:37:07 2006 -0700 + + [PATCH] sky2 version 1.4 + + Need to track impact of this group of changes. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 86fba6342dee30a1533b14da284d79e4eb66de26 +Author: Stephen Hemminger +Date: Wed May 17 14:37:06 2006 -0700 + + [PATCH] sky2: force NAPI repoll if busy + + If the status ring processing can't keep up with the incoming frames, + it is more efficient to have NAPI keep scheduling the poll routine + rather than causing another interrupt. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 86a31a759f2117816b8c78a049c41ead3ef9ef1c +Author: Stephen Hemminger +Date: Wed May 17 14:37:05 2006 -0700 + + [PATCH] sky2: more fixes for Yukon Ultra + + Logic error in the phy initialization code. Also, turn on wake on lan + bit in status control. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 2d2a387199bf38c6628adb9c6184d7ab6e306148 +Author: Stephen Hemminger +Date: Wed May 17 14:37:04 2006 -0700 + + [PATCH] Subjec: sky2, skge: correct PCI id for DGE-560T + + The Dlink DGE-560T uses Yukon2 chipset so it needs sky2 driver; and + the DGE-530T uses Yukon1 so it uses skge driver. + + Bug: http://bugzilla.kernel.org/show_bug.cgi?id=6544 + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit ee7abb04df92b444069be8fe47d66d809de23782 +Author: Stephen Hemminger +Date: Thu May 18 11:16:21 2006 -0700 + + [PATCH] sky2: allow dual port usage + + If both ports are receiving on the SysKonnect dual port cards, + then it appears the bus interface unit can give an interrupt status + for frame before DMA has completed. This leads to bogus frames + and general confusion. This is why receive checksumming is also + messed up on dual port cards. + + A workaround for the out of order receive problem is to eliminating + split transactions on PCI-X. + + This version is based of the current linux-2.6.git including earlier + patch to disable dual ports. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 38bb6b288bf4fb954a3793e57c7339774c842a54 +Author: John W. Linville +Date: Fri May 19 10:51:21 2006 -0400 + + [PATCH] via-rhine: revert "change mdelay to msleep and remove from ISR path" + + Revert previous patch with subject "change mdelay to msleep and remove + from ISR path". This patch seems to have caused bigger problems than + it solved, and it didn't solve much of a problem to begin with... + + Discussion about backing-out this patch can be found here: + + http://marc.theaimsgroup.com/?l=linux-netdev&m=114321570402396&w=2 + + The git commit associated w/ the original patch is: + + 6ba98d311d0a4ff7dc36d8f435ce60174f4c30ec + + Signed-off-by: John W. Linville + +commit f34ba4e1edd82272dbc192e488c7dc9e56c4ec62 +Author: Andrew Morton +Date: Fri May 19 02:13:21 2006 -0700 + + [PATCH] revert "forcedeth: fix multi irq issues" + + Revert ebf34c9b6fcd22338ef764b039b3ac55ed0e297b. Maybe. Due to crashes + at shutdown - see http://bugzilla.kernel.org/show_bug.cgi?id=6568. + + Cc: Ayaz Abdulla + Cc: Manfred Spraul + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 78a904b65420e02bf964af6a83c1fd7a85e0b59d +Author: Randy.Dunlap +Date: Fri May 19 10:11:02 2006 -0700 + + [SCSI] ppa: fix for machines with highmem + + ppa cannot handle highmem pages, and like imm, which already has + this patch, the device is slow, so performance is not a big issue, + so just force pages to be in low memory (hence mapped). + + Signed-off-by: Randy Dunlap + Signed-off-by: James Bottomley + +commit 4ff42a669a9ad3eb8274da31c7baabd968c2d365 +Author: James Bottomley +Date: Wed May 17 18:06:52 2006 -0500 + + [SCSI] mptspi: reset handler shouldn't be called for other bus protocols + + All registered reset callback handlers are called during reset processing. + The mptspi modules has its own reset callback handler, just recently + added for issuing domain validation after host reset. If either the mptsas or + mptfc driver are loaded, this callback could be called. Thus resulting + in domain validation being issued for sas or fibre end devices. + + Fix this by having mptbase.c check the bus type against the driver + type and only call the reset handler if they match (or if it's a + non-bus specific reset handler). + + Signed-off-by: James Bottomley + +commit c3d833685583f943fb0b5511a9e4602becb1668b +Author: Thomas Bogendoerfer +Date: Tue May 16 06:38:29 2006 +0200 + + [SCSI] Blacklist entry for HP dat changer + + after upgrading our SUN E250 from 2.4 to 2.6 I'm seeing following error + when the HP DDS4 DAT changer gets probed: + + scsi: host 1 channel 0 id 5 lun16777216 has a LUN larger than allowed by + the host adapter + + The device is connected to a symbios 875 host. I've talked to Willy + about the problem, and he asked me to try to blacklist the device + for reportlun. I did that with the patch below and it solved the + problem. It now gets properly detected: + + target1:0:5: FAST-20 WIDE SCSI 40.0 MB/s ST (50 ns, offset 16) + Vendor: HP Model: C5713A Rev: H307 + Type: Sequential-Access ANSI SCSI revision: 03 + target1:0:5: Beginning Domain Validation + target1:0:5: FAST-20 SCSI 20.0 MB/s ST (50 ns, offset 16) + target1:0:5: FAST-20 WIDE SCSI 40.0 MB/s ST (50 ns, offset 16) + target1:0:5: Domain Validation skipping write tests + target1:0:5: Ending Domain Validation + Vendor: HP Model: C5713A Rev: H307 + Type: Medium Changer ANSI SCSI revision: 03 + + Signed-off-by: tsbogend@alpha.franken.de + Signed-off-by: James Bottomley + +commit b89498a1c2941c00889dd025f52dcb653a5083bc +Author: Vladislav Yasevich +Date: Fri May 19 14:32:06 2006 -0700 + + [SCTP]: Allow linger to abort 1-N style sockets. + + Enable SO_LINGER functionality for 1-N style sockets. The socket API + draft will be clarfied to allow for this functionality. The linger + settings will apply to all associations on a given socket. + + Signed-off-by: Vladislav Yasevich + Signed-off-by: Sridhar Samudrala + +commit a601266e4f3c479790f373c2e3122a766d123652 +Author: Vladislav Yasevich +Date: Fri May 19 14:25:53 2006 -0700 + + [SCTP]: Validate the parameter length in HB-ACK chunk. + + If SCTP receives a badly formatted HB-ACK chunk, it is possible + that we may access invalid memory and potentially have a buffer + overflow. We should really make sure that the chunk format is + what we expect, before attempting to touch the data. + + Signed-off-by: Vlad Yasevich + Signed-off-by: Sridhar Samudrala + +commit c2a4c40651e08e465d3a6130bd9f6dcc1ce21d83 +Author: Catalin Marinas +Date: Fri May 19 21:55:35 2006 +0100 + + [ARM] 3533/1: Implement the __raw_(read|write)_can_lock functions on ARM + + Patch from Catalin Marinas + + Recent patches introduced the write_can_lock() call in the kernel/ptrace.c + file. Implement the __raw_* variants on ARM (SMP) as well. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit 2c171bf13423dc5293188cea7f6c2da1720926e2 +Author: Pavel Pisa +Date: Fri May 19 21:48:03 2006 +0100 + + [ARM] 3531/1: i.MX/MX1 SD/MMC ensure, that clock are stopped before new command and cleanups + + Patch from Pavel Pisa + + There has been problems that for some paths that clock are not stopped + during new command programming and initiation. Result is issuing + of incorrect command to the card. Some other problems are cleaned too. + Noisy report of known ERRATUM #4 has been suppressed. + + Signed-off-by: Pavel Pisa + Signed-off-by: Russell King + +commit dd2d1c6f2958d027e4591ca5d2a04dfe36ca6512 +Author: Vladislav Yasevich +Date: Fri May 19 11:52:20 2006 -0700 + + [SCTP]: Respect the real chunk length when walking parameters. + + When performing bound checks during the parameter processing, we + want to use the real chunk and paramter lengths for bounds instead + of the rounded ones. This prevents us from potentially walking of + the end if the chunk length was miscalculated. We still use rounded + lengths when advancing the pointer. This was found during a + conformance test that changed the chunk length without modifying + parameters. + + Signed-off-by: Vlad Yasevich + Signed-off-by: Sridhar Samudrala + +commit 61c9fed41638249f8b6ca5345064eb1beb50179f +Author: Vladislav Yasevich +Date: Fri May 19 11:01:18 2006 -0700 + + [SCTP]: A better solution to fix the race between sctp_peeloff() and + sctp_rcv(). + + The goal is to hold the ref on the association/endpoint throughout the + state-machine process. We accomplish like this: + + /* ref on the assoc/ep is taken during lookup */ + + if owned_by_user(sk) + sctp_add_backlog(skb, sk); + else + inqueue_push(skb, sk); + + /* drop the ref on the assoc/ep */ + + However, in sctp_add_backlog() we take the ref on assoc/ep and hold it + while the skb is on the backlog queue. This allows us to get rid of the + sock_hold/sock_put in the lookup routines. + + Now sctp_backlog_rcv() needs to account for potential association move. + In the unlikely event that association moved, we need to retest if the + new socket is locked by user. If we don't this, we may have two packets + racing up the stack toward the same socket and we can't deal with it. + If the new socket is still locked, we'll just add the skb to its backlog + continuing to hold the ref on the association. This get's rid of the + need to move packets from one backlog to another and it also safe in + case new packets arrive on the same backlog queue. + + The last step, is to lock the new socket when we are moving the + association to it. This is needed in case any new packets arrive on + the association when it moved. We want these to go to the backlog since + we would like to avoid the race between this new packet and a packet + that may be sitting on the backlog queue of the old socket toward the + same association. + + Signed-off-by: Vladislav Yasevich + Signed-off-by: Sridhar Samudrala + +commit 8de8c8738086501bbe3057ed6f4b70dded657488 +Author: Sridhar Samudrala +Date: Fri May 19 10:58:12 2006 -0700 + + [SCTP]: Set sk_err so that poll wakes up after a non-blocking connect failure. + + Also fix some other cases where sk_err is not set for 1-1 style sockets. + + Signed-off-by: Sridhar Samudrala + +commit ee433530d96a7b0af24ab616e5b51f1d89f9ae38 +Author: Patrick McHardy +Date: Fri May 19 02:17:18 2006 -0700 + + [NETFILTER]: nfnetlink_log: fix byteorder confusion + + flags is a u16, so use htons instead of htonl. Also avoid double + conversion. + + Noticed by Alexey Dobriyan + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 2c8ac66bb2ff89e759f0d632a27cc64205e9ddd9 +Author: Solar Designer +Date: Fri May 19 02:16:52 2006 -0700 + + [NETFILTER]: Fix do_add_counters race, possible oops or info leak (CVE-2006-0039) + + Solar Designer found a race condition in do_add_counters(). The beginning + of paddc is supposed to be the same as tmp which was sanity-checked + above, but it might not be the same in reality. In case the integer + overflow and/or the race condition are triggered, paddc->num_counters + might not match the allocation size for paddc. If the check below + (t->private->number != paddc->num_counters) nevertheless passes (perhaps + this requires the race condition to be triggered), IPT_ENTRY_ITERATE() + would read kernel memory beyond the allocation size, potentially causing + an oops or leaking sensitive data (e.g., passwords from host system or + from another VPS) via counter increments. This requires CAP_NET_ADMIN. + + Signed-off-by: Solar Designer + Signed-off-by: Kirill Korotaev + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a467704dcb4fa45da48079486f1b0e6baffb12d2 +Author: Alexey Dobriyan +Date: Fri May 19 02:16:29 2006 -0700 + + [NETFILTER]: GRE conntrack: fix htons/htonl confusion + + GRE keys are 16 bit. + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 5c170a09d9092e63af1658179f29867d32d56b55 +Author: Philip Craig +Date: Fri May 19 02:15:47 2006 -0700 + + [NETFILTER]: fix format specifier for netfilter log targets + + The prefix argument for nf_log_packet is a format specifier, + so don't pass the user defined string directly to it. + + Signed-off-by: Philip Craig + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 493e2428aa1db0e592736ad15885c6ed1e81b8af +Author: Jesper Juhl +Date: Fri May 19 02:15:13 2006 -0700 + + [NETFILTER]: Fix memory leak in ipt_recent + + The Coverity checker spotted that we may leak 'hold' in + net/ipv4/netfilter/ipt_recent.c::checkentry() when the following + is true: + if (!curr_table->status_proc) { + ... + if(!curr_table) { + ... + return 0; <-- here we leak. + Simply moving an existing vfree(hold); up a bit avoids the possible leak. + + Signed-off-by: Jesper Juhl + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 23f3bc0f2c1e26215b671499c07047c325d54d9c +Author: Michael S. Tsirkin +Date: Thu May 18 18:32:54 2006 +0300 + + IB/mthca: Fix posting lists of 256 receive requests for Tavor + + If we post a list of length 256 exactly, nreq in doorbell gets set to + 256 which is wrong: it should be encoded by 0. This is because we + only zero it out on the next WR, which may not be there. The solution + is to ring the doorbell after posting a WQE, not before posting the + next one. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 0cb4fe8d2658dc0bd1accfbb74ee288a9d6788f4 +Author: Roland Dreier +Date: Wed May 17 22:20:50 2006 -0700 + + IB/uverbs: Don't leak ref to mm on error path + + In ib_umem_release_on_close(), if the kmalloc() fails, then a + reference to current->mm will be leaked. Fix this by adding a mmput() + instead of just returning on kmalloc() failure. + + Signed-off-by: Roland Dreier + +commit a54c9d30dbb06391ec4422aaf0e1dc2c8c53bd3e +Author: Stefan Richter +Date: Mon May 15 22:09:46 2006 +0200 + + [PATCH] ohci1394, sbp2: fix "scsi_add_device failed" with PL-3507 based devices + + Re-enable posted writes for status FIFO. + + Besides bringing back a very minor bandwidth tweak from Linux 2.6.15.x + and older, this also fixes an interoperability regression since 2.6.16: + + http://bugzilla.kernel.org/show_bug.cgi?id=6356 + (sbp2: scsi_add_device failed. IEEE1394 HD is not working anymore.) + + Signed-off-by: Stefan Richter + Tested-by: Vanei Heidemann + Tested-by: Martin Putzlocher (chip type unconfirmed) + Signed-off-by: Linus Torvalds + +commit 679c0cd2dd61c825ab910fdbf347a8b7d1dddec4 +Author: Stefan Richter +Date: Mon May 15 22:08:09 2006 +0200 + + [PATCH] sbp2: add ability to override hardwired blacklist + + In case the blacklist with workarounds for device bugs yields a false + positive, the module load parameter can now also be used as an override + instead of an addition to the blacklist. + + Signed-off-by: Stefan Richter + Signed-off-by: Linus Torvalds + +commit e9a1c52c7b19d10342226c12f170d7ab644427e2 +Author: Stefan Richter +Date: Mon May 15 22:06:37 2006 +0200 + + [PATCH] sbp2: add read_capacity workaround for iPod + + Apple decided to copy some USB stupidity over to FireWire. + + The sector number returned by iPods from read_capacity is one too many. + This may cause I/O errors, especially if the kernel is configured for EFI + partition support. We use the same workaround as usb-storage but have to + check for different model IDs. + + http://marc.theaimsgroup.com/?t=114233262300001 + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187409 + + Acknowledgements: + Diagnosis and therapy by Mathieu Chouquet-Stringer , + additional data about affected and unaffected Apple hardware from + Vladimir Kotal, Sander De Graaf, Bryan Olmstead and Hugh Dixon. + + Signed-off-by: Stefan Richter + Signed-off-by: Linus Torvalds + +commit 24d3bf884e093f9de52d31c97187f4b9b4ad7dcb +Author: Stefan Richter +Date: Mon May 15 22:04:59 2006 +0200 + + [PATCH] sbp2: consolidate workarounds + + Grand unification of the three types of workarounds we have so far. + + The "skip mode page 8" workaround is now limited to devices which + pretend to be of TYPE_DISK instead of TYPE_RBC. This workaround is no + longer enabled for Initio bridges. + + Patch update in anticipation of more workarounds: + - Add module parameter "workarounds". + - Deprecate parameter "force_inquiry_hack". + - Compose the blacklist of a compound type for better readability and + extensibility. + - Remove a now unused #define. + + Signed-off-by: Stefan Richter + Signed-off-by: Linus Torvalds + +commit cef0893dcf1fdf22943aa49e75ee1eb3bfffe5f5 +Author: Joel Becker +Date: Wed May 3 11:38:53 2006 -0700 + + configfs: Make sure configfs_init() is called before consumers. + + configfs_init() needs to be called first to register configfs before anyconsumers try to access it. Move up configfs in fs/Makefile to make + sure it is initialized early. + + Signed-off-by: Joel Becker + Signed-off-by: Mark Fasheh + +commit eed7a0db460595b139428d252798a83f1e1ce1d3 +Author: Joel Becker +Date: Tue Apr 11 21:37:20 2006 -0700 + + configfs: configfs_mkdir() failed to cleanup linkage. + + If configfs_mkdir() errored in certain ways after the parent<->child + linkage was already created, it would not undo the linkage. Also, + comment the reference counting for clarity. + + Signed-off-by: Joel Becker + Signed-off-by: Mark Fasheh + +commit 84efad1a53dd05969094f9a2562b4e6666571c00 +Author: Joel Becker +Date: Mon Mar 27 18:46:09 2006 -0800 + + configfs: Fix a reference leak in configfs_mkdir(). + + configfs_mkdir() failed to release the working parent reference in most + exit paths. Also changed the exit path for readability. + + Signed-off-by: Joel Becker + Signed-off-by: Mark Fasheh + +commit afae00ab45ea71d89086f924ebee6ca51c81e48e +Author: Sunil Mushran +Date: Wed Apr 12 14:37:00 2006 -0700 + + ocfs2: fix gfp mask in some file system paths + + We were using GFP_KERNEL in a handful of places which really wanted + GFP_NOFS. Fix this. + + Signed-off-by: Sunil Mushran + Signed-off-by: Mark Fasheh + +commit dd4a2c2bfe159cc39e9672e875c8314563699764 +Author: Mark Fasheh +Date: Wed Apr 12 14:24:05 2006 -0700 + + ocfs2: Don't populate uptodate cache in ocfs2_force_read_journal() + + This greatly reduces the amount of memory useded during recovery. + + Signed-off-by: Mark Fasheh + +commit c4374f8a6093fbee42ac4368b3ca180d1d0c7c6d +Author: Mark Fasheh +Date: Fri May 5 19:04:35 2006 -0700 + + ocfs2: take meta data lock in ocfs2_file_aio_read() + + Temporarily take the meta data lock in ocfs2_file_aio_read() to allow us to + update our inode fields. + + Signed-off-by: Mark Fasheh + +commit 53013cba4118a5cfe8f7c7ea5e5bc1c48b160f76 +Author: Mark Fasheh +Date: Fri May 5 19:04:03 2006 -0700 + + ocfs2: take data locks around extend + + We need to take a data lock around extends to protect the pages that + ocfs2_zero_extend is going to be pulling into the page cache. Otherwise an + extend on one node might populate the page cache with data pages that have + no lock coverage. + + Signed-off-by: Mark Fasheh + +commit ec64152fee25e2a63f06d40d32c7b4cb62eab9a3 +Author: Thomas Gleixner +Date: Wed May 17 20:14:29 2006 +0100 + + [ARM] 3530/1: PXA Mainstone: prevent double enable_irq() in pcmcia + + Patch from Thomas Gleixner + + The mainstone board pcmcia interrupt have been enabled via setup_irq() + and the following socket check calls enable_irq again. Set the NOAUTOEN flag so the interrupt is not automatically enabled in setup_irq() + + Signed-off-by: Thomas Gleixner + Acked-by: Nicolas Pitre + Signed-off-by: Russell King + +commit bc519f30eb039f023c15167663d5a8a14fed7dcb +Author: David Woodhouse +Date: Fri May 5 17:38:27 2006 +0100 + + [PATCH] bcm43xx: associate on 'ifconfig up' + + I still need this hack to work around the fact that softmac doesn't + attempt to associate when we bring the device up... + + Signed-off-by: David Woodhouse + Signed-off-by: John W. Linville + +commit 093beac189e4295d968f0d38787b46f76cb0eaaa +Author: Ishai Rabinovitz +Date: Wed May 17 09:20:48 2006 -0700 + + IB/srp: Complete correct SCSI commands on device reset + + When flushing out queued commands after a successful device reset, + make sure that SRP completes the right commands, instead of calling + scsi_done on the command passed into the device reset handler over and + over. + + Signed-off-by: Ishai Rabinovitz + Signed-off-by: Roland Dreier + +commit ec2d7208494fe599a5ff13b40a0a20c9881f2737 +Author: Roland Dreier +Date: Wed May 17 09:16:03 2006 -0700 + + IB/srp: Get rid of extra scsi_host_put()s if reconnection fails + + If a reconnection attempt fails, then SRP does two scsi_host_put()s. + This is a historical relic from an earlier version of the driver that + took a reference on the scsi_host before trying to reconnect, so get + rid of the extra scsi_host_put(). + + Signed-off-by: Roland Dreier + +commit e65810566f3e613d9baa5512b8724ebde42ace0f +Author: Roland Dreier +Date: Wed May 17 09:13:21 2006 -0700 + + IB/srp: Don't wait for disconnection if sending DREQ fails + + Sending a DREQ may fail, for example because the remote target has + already broken the connection. If so, then SRP should not wait for + the disconnection to complete, because it never will. + + Signed-off-by: Roland Dreier + +commit c3fb04162a1c8ddcf6caa6e19020da3f0fd23103 +Author: Dimitry Andric +Date: Wed May 17 16:31:11 2006 +0100 + + [ARM] 3529/1: s3c24xx: fix restoring control register with undefined instruction + + Patch from Dimitry Andric + + In arch/arm/mach-s3c2410/sleep.S, the coprocessor registers are saved at + suspend time, and restored at resume time. However, an undefined + instruction is used when attempting to restore a non-existent "auxiliary + control register". This leads to a crash on S3C2412, which has an ARM926 + core instead of an ARM920. + + At suspend time, the following fragment runs: + + mrc p15, 0, r7, c2, c0, 0 @ translation table base address + mrc p15, 0, r8, c2, c0, 0 @ auxiliary control register + mrc p15, 0, r9, c1, c0, 0 @ control register + + and at resume time, the following fragment runs: + + mcr p15, 0, r7, c2, c0, 0 @ translation table base + mcr p15, 0, r8, c1, c1, 0 @ auxilliary control + ... + mcr p15, 0, r9, c1, c0, 0 @ turn on MMU, etc + + There are several problems with these fragments: + 1. The ARM920 and ARM926 cores don't have any "auxiliary control + register", at least not according to the ARM920 and ARM926 TRM's. + 2. The 2nd line of suspend erroneously saves the c2 register again. + 3. This saved c2 value is restored using an undefined instruction. For + some reason this does not crash on ARM920, but does crash on ARM926. + + The following patch fixes all these problems. + + Signed-off-by: Dimitry Andric + Yes, this looks sensible + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 1db76c14d215c8b26024dd532de3dcaf66ea30f7 +Author: Roland Dreier +Date: Wed May 17 07:48:07 2006 -0700 + + IB/mthca: Make fw_cmd_doorbell default to 0 + + Setting fw_cmd_doorbell allows FW command to be queued using posted + writes instead of requiring polling on a "go" bit, so it should be a + performance boost. However, the option causes problems with at least + some device/firmware combinations, so set the default to 0 until we + understand what's going on better. + + Signed-off-by: Roland Dreier + +commit 4c31ce8fea9760961a2d1b1d6c84b7590c17ae38 +Author: Chen, Kenneth W +Date: Tue May 16 16:34:57 2006 -0700 + + [IA64] one-line cleanup on set_irq_affinity_info + + Calls to set_irq_info in set_irq_affinity_info() is redundant because + irq_affinity mask was set just one line immediately above it. Remove + that duplicate call. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 41503def5d83bada6a2fd792e636ccc28a285f38 +Author: Chen, Kenneth W +Date: Tue May 16 16:29:00 2006 -0700 + + [IA64] fix broken irq affinity + + When CONFIG_PCI_MSI is set, move_irq() is an empty function, causing + grief when sys admin tries to bind interrupt to CPU. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 1101ece44e00cfe31a2fd9d3222d05f927b00ef8 +Author: Jes Sorensen +Date: Mon May 15 05:07:54 2006 -0400 + + [IA64] sn2 defconfig + + Set node shift to 10 on SN2 and disable mutex debugging. + + Signed-off-by: Jes Sorensen + Signed-off-by: Tony Luck + +commit 8872d8e1c4311dd7e5086975df9c76120a0be83b +Author: Angelo P. Castellani +Date: Tue May 16 21:42:11 2006 -0700 + + [TCP]: reno sacked_out count fix + + From: "Angelo P. Castellani" + + Using NewReno, if a sk_buff is timed out and is accounted as lost_out, + it should also be removed from the sacked_out. + + This is necessary because recovery using NewReno fast retransmit could + take up to a lot RTTs and the sk_buff RTO can expire without actually + being really lost. + + left_out = sacked_out + lost_out + in_flight = packets_out - left_out + retrans_out + + Using NewReno without this patch, on very large network losses, + left_out becames bigger than packets_out + retrans_out (!!). + + For this reason unsigned integer in_flight overflows to 2^32 - something. + + Signed-off-by: David S. Miller + +commit d8fd0a73169e90022dc3ccf3083ca24573b44b5c +Author: Alexey Dobriyan +Date: Tue May 16 15:24:41 2006 -0700 + + [IPV6]: Endian fix in net/ipv6/netfilter/ip6t_eui64.c:match(). + + Signed-off-by: Alexey Dobriyan + Signed-off-by: David S. Miller + +commit 6599519e9c6c56ff0f9a4ffd53f90c5b65b902f4 +Author: Adrian Bunk +Date: Tue May 16 15:23:40 2006 -0700 + + [TR]: Remove an unused export. + + This patch removes the unused EXPORT_SYMBOL(tr_source_route). + + (Note, the usage in net/llc/llc_output.c can't be modular.) + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit 4ac396c0467993853d3d58c0975151515700c07b +Author: Alexey Dobriyan +Date: Tue May 16 15:17:49 2006 -0700 + + [IPX]: Correct return type of ipx_map_frame_type(). + + Casting BE16 to int and back may or may not work. Correct, to be sure. + + Signed-off-by: Alexey Dobriyan + Signed-off-by: David S. Miller + +commit 53d42f541278b6c97724465b19bae4730d7a85c8 +Author: Alexey Dobriyan +Date: Tue May 16 15:07:28 2006 -0700 + + [IPX]: Correct argument type of ipxrtr_delete(). + + A single caller passes __u32. Inside function "net" is compared with + __u32 (__be32 really, just wasn't annotated). + + Signed-off-by: Alexey Dobriyan + Signed-off-by: David S. Miller + +commit 338f7566e5c26a9547e25d54863ae4e4e5c856d1 +Author: Stephen Hemminger +Date: Tue May 16 15:02:12 2006 -0700 + + [PKT_SCHED]: Potential jiffy wrap bug in dev_watchdog(). + + There is a potential jiffy wraparound bug in the transmit watchdog + that is easily avoided by using time_after(). + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 1e316d7566b63767aa18902235c719e9e95465d0 +Author: David Brownell +Date: Thu Apr 6 22:25:56 2006 -0700 + + [PATCH] SPI: spi_bitbang: clocking fixes + + This fixes two problems triggered by the MMC stack updating clocks: + + - SPI masters driver should accept a max clock speed of zero; that's one + convention for marking idle devices. (Presumably that helps controllers + that don't autogate clocks to "off" when not in use.) + + - There are more than 1000 nanoseconds per millisecond; setting the clock + down to 125 KHz now works properly. + + Showing once again that Zero (http://en.wikipedia.org/wiki/Zero) is still + an inexhaustible number of bugs. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 9708c121c38fe864eb6f5a119f7525729686e095 +Author: Stephen Street +Date: Tue Mar 28 14:05:23 2006 -0800 + + [PATCH] spi: Update to PXA2xx SPI Driver + + Fix two outstanding issues with the pxa2xx_spi driver: + + 1) Bad cast in the function u32_writer. Thanks to Henrik Bechmann + 2) Adds support for per transfer changes to speed and bits per word + + Signed-off-by: Stephen Street + Cc: David Brownell + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit a020ed7521a9737bcf3e34eb880867c60c3c68d0 +Author: David Brownell +Date: Mon Apr 3 15:49:04 2006 -0700 + + [PATCH] SPI: busnum == 0 needs to work + + We need to be able to have a "SPI bus 0" matching chip numbering; but + that number was wrongly used to flag dynamic allocation of a bus number. + + This patch resolves that issue; now negative numbers trigger dynamic alloc. + + It also updates the how-to-write-a-controller-driver overview to mention + this stuff. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit ccf77cc4af5b048e20cfd9327fcc286cb69c34cc +Author: David Brownell +Date: Mon Apr 3 15:46:22 2006 -0700 + + [PATCH] SPI: devices can require LSB-first encodings + + Add spi_device hook for LSB-first word encoding, and update all the + (in-tree) controller drivers to reject such devices. Eventually, + some controller drivers will be updated to support lsb-first encodings + on the wire; no current drivers need this. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit ff9f4771b5f017ee0f57629488b6cd7a6ef3d19b +Author: Kumar Gala +Date: Sun Apr 2 16:06:35 2006 -0500 + + [PATCH] SPI: Renamed bitbang_transfer_setup to spi_bitbang_setup_transfer and export it + + Renamed bitbang_transfer_setup to follow convention of other exported symbols + from spi-bitbang. Exported spi_bitbang_setup_transfer to allow users of + spi-bitbang to use the function in their own setup_transfer. + + Signed-off-by: Kumar Gala + Cc: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 025c398710ac24456f0288fc7e64f426c5c5508f +Author: Kumar Gala +Date: Sun Apr 2 16:05:54 2006 -0500 + + [PATCH] SPI: Add David as the SPI subsystem maintainer + + Add David as the SPI subsystem maintainer + + Signed-off-by: Kumar Gala + Signed-off-by: Greg Kroah-Hartman + +commit a9948b6194b46e489aa3b4d111d6dfd786c39c4b +Author: David Brownell +Date: Sun Apr 2 10:37:40 2006 -0800 + + [PATCH] SPI: spi bounce buffer has a minimum length + + Make sure that spi_write_then_read() can always handle at least 32 bytes + of transfer (total, both directions), minimizing one portability issue. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 747d844ee9a183ff3067bb1181f2a25c50649538 +Author: David Brownell +Date: Sun Apr 2 10:33:37 2006 -0800 + + [PATCH] SPI: spi whitespace fixes + + This removes superfluous whitespace in the header. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit e0c9905e87ac1bc56c9ea8f5b2934aeee53dce26 +Author: Stephen Street +Date: Tue Mar 7 23:53:24 2006 -0800 + + [PATCH] SPI: add PXA2xx SSP SPI Driver + + This driver turns a PXA2xx synchronous serial port (SSP) into a SPI master + controller (see Documentation/spi/spi_summary). The driver has the following + features: + + - Support for any PXA2xx SSP + - SSP PIO and SSP DMA data transfers. + - External and Internal (SSPFRM) chip selects. + - Per slave device (chip) configuration. + - Full suspend, freeze, resume support. + + Signed-off-by: Stephen Street + Signed-off-by: Andrew Morton + Cc: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 4cff33f94fefcce1b3c01a9d1da6bb85fe3cbdfa +Author: Imre Deak +Date: Fri Feb 17 10:02:18 2006 -0800 + + [PATCH] SPI: per-transfer overrides for wordsize and clocking + + Some protocols (like one for some bitmap displays) require different clock + speed or word size settings for each transfer in an SPI message. This adds + those parameters to struct spi_transfer. They are to be used when they are + nonzero; otherwise the defaults from spi_device are to be used. + + The patch also adds a setup_transfer callback to spi_bitbang, uses it for + messages that use those overrides, and implements it so that the pure + bitbanging code can help resolve any questions about how it should work. + + Signed-off-by: Imre Deak + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 3170a5e80be7db29ab5ccb6b4145cf28b4a156de +Author: Adrian Bunk +Date: Tue May 16 22:09:46 2006 +0100 + + [ARM] arch/arm/kernel/dma-isa.c: named initializers + + This patch converts struct dma_resources to named initializers. + + Besides fixing a compile error in -mm, it didn't sound like a bad idea. + + Signed-off-by: Adrian Bunk + Acked-by: Alexander Schulz + Signed-off-by: Russell King + +commit bb1a2aa617e67e2d60f22052b13422c7caeaf798 +Author: Harry Fearnhamm +Date: Tue May 16 16:50:21 2006 +0100 + + [ARM] 3527/1: MPCore Boot Lockup Fix + + Patch from Harry Fearnhamm + + This patch fixes the occasional lockup seen in early boot stage + on RealView MPCore system. + + Signed-off-by: Harry Fearnhamm + Signed-off-by: Russell King + +commit a4523a8b38089478f93bc053c31f678c63f5ee1b +Author: Roland Dreier +Date: Mon May 15 11:41:00 2006 -0700 + + [PATCH] slab: Fix kmem_cache_destroy() on NUMA + + With CONFIG_NUMA set, kmem_cache_destroy() may fail and say "Can't + free all objects." The problem is caused by sequences such as the + following (suppose we are on a NUMA machine with two nodes, 0 and 1): + + * Allocate an object from cache on node 0. + * Free the object on node 1. The object is put into node 1's alien + array_cache for node 0. + * Call kmem_cache_destroy(), which ultimately ends up in __cache_shrink(). + * __cache_shrink() does drain_cpu_caches(), which loops through all nodes. + For each node it drains the shared array_cache and then handles the + alien array_cache for the other node. + + However this means that node 0's shared array_cache will be drained, + and then node 1 will move the contents of its alien[0] array_cache + into that same shared array_cache. node 0's shared array_cache is + never looked at again, so the objects left there will appear to be in + use when __cache_shrink() calls __node_shrink() for node 0. So + __node_shrink() will return 1 and kmem_cache_destroy() will fail. + + This patch fixes this by having drain_cpu_caches() do + drain_alien_cache() on every node before it does drain_array() on the + nodes' shared array_caches. + + The problem was originally reported by Or Gerlitz . + + Signed-off-by: Roland Dreier + Acked-by: Christoph Lameter + Acked-by: Pekka Enberg + Signed-off-by: Linus Torvalds + +commit 40e59a61669a3cab9e0bd24644e29155d6b00970 +Author: Andi Kleen +Date: Mon May 15 18:19:47 2006 +0200 + + [PATCH] x86_64: Don't schedule on exception stack on preemptive kernels + + Extends an earlier patch from John Blackwood to more exception handlers + that also run on the exception stacks. + + Expand the use of preempt_conditional_{sti,cli} to all cases where + interrupts are to be re-enabled during exception handling while running + on an IST stack. + + Based on original patch from Jan Beulich. + + Cc: John Blackwood + Cc: jbeulich@novell.com + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit fad7906d16e8c4926aeb5b0f1756eb9f55b2837d +Author: Andi Kleen +Date: Mon May 15 18:19:44 2006 +0200 + + [PATCH] x86_64: Fix memory hotadd heuristics + + This fixes some boot failures on Dell and Unisys systems with memory + hotadd added. + + - Set hotadd_percent to 0 by default. This means anybody using hotadd + memory needs to specify the value on the command line. That's + because there are lots of Intel boxes which have a bogus hotplug area + in their SRAT and they would waste a lot of memory before. + - Fix calculation of how much memory to use when the hotplug area + exceeds hotadd_percent + - Fix fallback when the + - Fix fallback if memory hotadd is not compiled in. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 5491d0f3e206beb95eeb506510d62a1dab462df1 +Author: Andi Kleen +Date: Mon May 15 18:19:41 2006 +0200 + + [PATCH] i386/x86_64: Force pci=noacpi on HP XW9300 + + This is needed to see all devices. + + The system has multiple PCI segments and we don't handle that properly + yet in PCI and ACPI. Short term before this is fixed blacklist it to + pci=noacpi. + + Acked-by: len.brown@intel.com + Cc: gregkh@suse.de + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit f0fdabf8bf187c9aafeb139a828c530ef45cf022 +Author: Andi Kleen +Date: Mon May 15 18:19:38 2006 +0200 + + [PATCH] x86_64: Don't warn for overflow in nommu case when dma_mask is < 32bit + + This triggers for b44's 1GB DMA workaround which tries to map + first and then bounces. + + The 32bit heuristic is reasonable because the IOMMU doesn't attempt + to handle < 32bit masks anyways. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 639b421b911bbde1e3fb5ed037a4f8c85a5bffcb +Author: Andi Kleen +Date: Mon May 15 18:19:35 2006 +0200 + + [PATCH] x86_64: Check for bad dma address in b44 1GB DMA workaround + + Needed for interaction with the nommu code in x86-64 which + will return bad_dma_address if the address exceeds dma_mask. + + Cc: netdev@vger.kernel.org + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit cb6b2eb9bcf2f61e84dc0b55ef7e3d4923842313 +Author: Benjamin Herrenschmidt +Date: Mon May 15 15:46:03 2006 +1000 + + [PATCH] Fix pSeries identification in prom_init.c + + The OF trampoline code prom_init.c still needs to identify IBM pSeries + (PAPR) machines in order to run some platform specific code on them like + instanciating the TCE tables. The code doing that detection was changed + recently in 2.6.17 early stages but was done slightly incorrectly. It + should be testing for an exact match of "chrp" and it currently tests + for anything that begins with "chrp". That means it will incorrectly + match with platforms using Maple-like device-trees and have open + firmware. This fixes it by using strcmp instead of strncmp to match what + the actual platform detection code does. + + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Paul Mackerras + +commit 3de620e8394406fd01f450b8c6e3e74464e81a78 +Author: Anton Blanchard +Date: Wed May 10 13:05:54 2006 +1000 + + [PATCH] powerpc: fix kernel version display on pseries boxes + + We are displaying the wrong thing on the operator panel (2x40 + character LCD). This got broken in commit cebb21b5, when UTS_RELEASE + got changed to system_utsname.version. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 9d494ccb9ca297f80dc61a0d6357e88c86f44e92 +Author: Russell King +Date: Tue May 16 11:33:15 2006 +0100 + + [ARM] arch/arm/kernel/process.c: Fix warning + + arch/arm/kernel/process.c:314: warning: assignment makes integer from pointer without a cast + + Signed-off-by: Russell King + +commit 478922c2b3c4ec8844ff2dec7eb1eba6f89a10ee +Author: Catalin Marinas +Date: Tue May 16 11:30:26 2006 +0100 + + [ARM] 3526/1: ioremap should use vunmap instead of vfree on ARM + + Patch from Catalin Marinas + + This patch modifies the __ioremap_pfn and __iounmap functions in + arch/arm/mm/ioremap.c to use vunmap instead of vfree. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit 1d6760a3ac6b5691e4914a3333b48fee5c2e275d +Author: Nicolas Pitre +Date: Tue May 16 11:29:46 2006 +0100 + + [ARM] 3524/1: ARM EABI: more 64-bit aligned stack fixes + + Patch from Nicolas Pitre + + Assembly code that calls C code must ensure the C code sees a 64-bit + aligned stack pointer. + + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit 2ceec0c8c6e2780d58dece91b4b787729405d9e7 +Author: Uwe Zeisberger +Date: Wed May 10 18:11:05 2006 +0100 + + [ARM] 3517/1: move definition of PROC_INFO_SZ from procinfo.h to asm-offsets.h + + Patch from Uwe Zeisberger + + The symbol is only used in arch/arm/kernel/head-common.S. This in turn + is included from arch/arm/kernel/head.S and arch/arm/kernel/head-nommu.S + which include asm-offsets.h . + + Signed-off-by: Uwe Zeisberger + Signed-off-by: Russell King + +commit 1281e36027a9119356bd93b5e7853c72c35dd462 +Author: Andrew Victor +Date: Tue May 16 11:28:49 2006 +0100 + + [ARM] 3523/1: Serial core pm_state + + Patch from Andrew Victor + + The serial_core already manages the power state of the UARTs, and + therefore it shouldn't suspend a UART which was previously suspended. + + This patch modifies serial_core only call the UART-specific + power-management function if the PM state is actually changing. + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit 655516c80ccb3ab2ba2d3063715889b00552a8b3 +Author: Ben Dooks +Date: Wed Apr 19 23:02:56 2006 +0100 + + [WATCHDOG] s3c2410_wdt.c stop watchdog after boot + + If the s3c2410 watchdog timer is not enabled by + the driver at startup, ensure that it is stopped + in-case the boot process has enabled it. + + Signed-off-by: Ben Dooks + Signed-off-by: Wim Van Sebroeck + Signed-off-by: Andrew Morton + +commit 03a8e359cf760a876f4da9b5c0c165c49564f95a +Author: Wim Van Sebroeck +Date: Sun Apr 16 12:52:35 2006 +0200 + + [WATCHDOG] i8xx_tco.c - remove support for ICH6 + ICH7 + + Temporary remove support for ICH6 + ICH7. In these newer TCO's + the watchdog timer has changed: the TCO_TMR register is not at + the TCOBASE+0x1 offset, but changed it's place to TCOBASE+0x12 + and became 10 bit long [0:9]. (Kernel BUG 6031). + + ICH6 + ICH7 support will be added in a new driver. Code is + under test. + + Signed-off-by: Wim Van Sebroeck + Signed-off-by: Andrew Morton + +commit 92930d9e8121223e14131809c6e9959ee9e0c43f +Author: Randy Dunlap +Date: Tue Apr 4 20:17:26 2006 -0700 + + [WATCHDOG] Documentation/watchdog/watchdog-api.txt - fix watchdog daemon + + Fix the simple watchdog daemon program in Doc/watchdog/watchdog-api.txt + to build cleanly. + + Signed-off-by: Randy Dunlap + Signed-off-by: Wim Van Sebroeck + Signed-off-by: Andrew Morton + +commit 7071e522a58cb1b3469e4cd8664ef03a32076349 +Author: Dave Jones +Date: Mon Apr 3 16:04:48 2006 -0700 + + [WATCHDOG] sc1200wdt.c printk fix + + Fix printk output. + + sc1200wdt: build 20020303<3>sc1200wdt: io parameter must be specified + + Signed-off-by: Dave Jones + Signed-off-by: Wim Van Sebroeck + Signed-off-by: Andrew Morton + +commit 843a46f423a508b3a443a08baa903c6da02f3297 +Author: Stephen Hemminger +Date: Thu May 11 15:07:28 2006 -0700 + + sky2: prevent dual port receiver problems + + When both ports are receiving simultaneously, the receive logic gets confused + and may pass up a packet before it is full. This causes hangs, and IP will see + lots of garbage packets. There is even the potential for data corruption if + a later arriving packet DMA's into freed memory. + + It looks like a hardware bug because status arrives for a packet but no + data is there. Until this bug is worked out, block the user from bringing + up both ports at once. + + Signed-off-by: Stephen Hemminger + +commit de54bc0f00c23a805f4ad2146c5a1fd5e2abe1e9 +Author: Andi Kleen +Date: Mon May 15 18:19:35 2006 +0200 + + x86_64: Check for bad dma address in b44 1GB DMA workaround + + Needed for interaction with the nommu code in x86-64 which + will return bad_dma_address if the address exceeds dma_mask. + + Cc: netdev@vger.kernel.org + + Signed-off-by: Andi Kleen + Signed-off-by: Stephen Hemminger + +commit 1ea739a5f9f469a57d804ebcf70514b8a5efe9da +Author: Lennert Buytenhek +Date: Mon May 15 12:25:29 2006 -0700 + + The ixp2000 driver for the enp2611 was developed on a board with + three gigabit ports, but some enp2611 models only have two ports + (and only one onboard PM3386.) The current driver assumes there + are always three ports and so it doesn't work on the two-port + version of the board at all. + + This patch adds a bit of logic to the enp2611 driver to limit the + number of ports to 2 if the second PM3386 isn't detected. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Stephen Hemminger + +commit c4694c76ce28dd7e415b4f3014d8c6e580b5f3d2 +Author: Andrew Morton +Date: Mon May 15 09:44:43 2006 -0700 + + [PATCH] dl2k needs dma-mapping.h + + On alpha: + + drivers/net/dl2k.c: In function `rio_free_tx': + drivers/net/dl2k.c:768: error: `DMA_48BIT_MASK' undeclared (first use in this function) + drivers/net/dl2k.c:768: error: (Each undeclared identifier is reported only once + drivers/net/dl2k.c:768: error: for each function it appears in.) + drivers/net/dl2k.c: In function `receive_packet': + drivers/net/dl2k.c:896: error: `DMA_48BIT_MASK' undeclared (first use in this function) + drivers/net/dl2k.c: In function `rio_close': + drivers/net/dl2k.c:1803: error: `DMA_48BIT_MASK' undeclared (first use in this function) + + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 194a61b8e09ac526c33777a688ee2a1504d7fbc3 +Author: Andrew Morton +Date: Mon May 15 09:44:42 2006 -0700 + + [PATCH] jffs2 warning fixes + + fs/jffs2/nodelist.c: In function `check_node_data': + fs/jffs2/nodelist.c:441: warning: unsigned int format, different type arg (arg 4) + fs/jffs2/nodelist.c:464: warning: int format, different type arg (arg 5) + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d3779e7989cfdba854b843fe605f8df9e991cd18 +Author: Peter Osterlund +Date: Mon May 15 09:44:40 2006 -0700 + + [PATCH] devices.txt: remove pktcdvd entry + + Changing the driver to use dynamic device numbers was one of the many + changes that were made in order to have the driver accepted into the + mainline kernel. Therefore I would say that the entry in devices.txt is + obsolete. This patch removes it. + + Signed-off-by: Peter Osterlund + Cc: Torben Mathiasen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 264a341231e8af2c2e35ac15d26de76f1198525b +Author: Thomas Kleffel +Date: Mon May 15 09:44:37 2006 -0700 + + [PATCH] ide_cs: Add IBM microdrive to known IDs + + Add the IBM microdrive to the known PCMCIA IDs for ide_cs. + + Signed-off-by: Thomas Kleffel + Cc: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Cc: Dominik Brodowski + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 79afecfaabbe42e2a8a7e28880517f1721f2f3a7 +Author: Aneesh Kumar +Date: Mon May 15 09:44:36 2006 -0700 + + [PATCH] Fix typos in Documentation/memory-barriers.txt + + Fix some typos in Documentation/memory-barriers.txt + + Signed-off-by: Aneesh Kumar K.V + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bfe2e9349f318883c036607c64b6205d573a28ff +Author: Alexey Dobriyan +Date: Mon May 15 09:44:35 2006 -0700 + + [PATCH] gigaset: endian fix + + Signed-off-by: Alexey Dobriyan + Cc: Hansjoerg Lipp + Cc: Tilman Schmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b2d596d8e08099b47e0a75aa4b7f82aae780e851 +Author: Pavel Machek +Date: Mon May 15 09:44:34 2006 -0700 + + [PATCH] fix hotplug kconfig help + + HOTPLUG_CPU entry says "Say Y..." then "Say N.". Slightly ugly, so I fixed + it up, and added remark about suspend on SMP as a bonus. + + Signed-off-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ce007ea59729d627f62bb5fa8c1a81e25653a0ad +Author: Carl-Daniel Hailfinger +Date: Mon May 15 09:44:33 2006 -0700 + + [PATCH] smbus unhiding kills thermal management + + Do not enable the SMBus device on Asus boards if suspend is used. We do + not reenable the device on resume, leading to all sorts of undesirable + effects, the worst being a total fan failure after resume on Samsung P35 + laptop. + + Signed-off-by: Carl-Daniel Hailfinger + Signed-off-by: Pavel Machek + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eee391a66d774e644bf3cbb35403562e09d88bb2 +Author: Andrew Morton +Date: Mon May 15 09:44:30 2006 -0700 + + [PATCH] revert "vfs: propagate mnt_flags into do_loopback/vfsmount" + + Revert commit f6422f17d3a480f21917a3895e2a46b968f56a08, due to + + Valdis.Kletnieks@vt.edu wrote: + > + > There seems to have been a bug introduced in this changeset: + > + > Am running 2.6.17-rc3-mm1. When this changeset is applied, 'mount --bind' + > misbehaves: + > + > > # mkdir /foo + > > # mount -t tmpfs -o rw,nosuid,nodev,noexec,noatime,nodiratime none /foo + > > # mkdir /foo/bar + > > # mount --bind /foo/bar /foo + > > # tail -2 /proc/mounts + > > none /foo tmpfs rw,nosuid,nodev,noexec,noatime,nodiratime 0 0 + > > none /foo tmpfs rw 0 0 + > + > Reverting this changeset causes both mounts to have the same options. + > + > (Thanks to Stephen Smalley for tracking down the changeset...) + > + + Cc: Herbert Poetzl + Cc: Christoph Hellwig + Cc: + Cc: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit be6e028b6422878df2e799a74609a03a553c7dad +Author: Andy Whitcroft +Date: Mon May 15 09:44:29 2006 -0700 + + [PATCH] root mount failure: emit filesystems attempted + + When we fail to mount from a valid root device list out the filesystems we + have tried to mount it with. This gives the user vital diagnostics as to + what is missing from their kernel. + + For example in the fragment below the kernel does not have CRAMFS compiled + into the kernel and yet appears to recognise it at the RAMDISK detect + stage. Later the mount fails as we don't have the filesystem. + + RAMDISK: cramfs filesystem found at block 0 + RAMDISK: Loading 1604KiB [1 disk] into ram disk... done. + XFS: bad magic number + XFS: SB validate failed + No filesystem could mount root, tried: reiserfs ext3 ext2 msdos vfat + iso9660 jfs xfs + Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(8,1) + + Signed-off-by: Andy Whitcroft + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3835a9bd07778d87dea37fbf190f70883515e8fc +Author: Alexey Dobriyan +Date: Mon May 15 09:44:27 2006 -0700 + + [PATCH] fs/compat.c: fix 'if (a |= b )' typo + + Mentioned by Mark Armbrust somewhere on Usenet. + + Signed-off-by: Alexey Dobriyan + Cc: David Woodhouse + Cc: Ulrich Drepper + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bb53a76116a8af13ee2581c85c02fe40e0c1a599 +Author: Daniel Walker +Date: Mon May 15 09:44:27 2006 -0700 + + [PATCH] tpm_register_hardware gcc 4.1 warning fix + + drivers/char/tpm/tpm.c: In function 'tpm_register_hardware': + drivers/char/tpm/tpm.c:1157: warning: assignment from incompatible pointer type + + Signed-off-by: Daniel Walker + Acked-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 655fdeab809a5612b0eab6aee873b00d26404ca7 +Author: Alan Cox +Date: Mon May 15 09:44:26 2006 -0700 + + [PATCH] Final rio polish + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2a7362f52a17e8dbeab57c00c3c45fcfeb0dff54 +Author: Kylene Jo Hall +Date: Mon May 15 09:44:25 2006 -0700 + + [PATCH] tpm: fix constant + + Fix the constant used for the base address when it cannot be determined + from ACPI. It was off by one order of magnitude. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 64471ebe534dc6cedd72849b2324b52cb5249eb9 +Author: Benjamin LaHaise +Date: Mon May 15 09:44:24 2006 -0700 + + [PATCH] Add Core Solo and Core Duo support to oprofile + + Add support to oprofile for the Intel Core Solo and Core Duo processors. + See also the patch to add support to oprofile-0.9.1-8.1.1 at + http://www.kvack.org/~bcrl/patches/oprofile/oprofile-core-0.9.1.diff . + + Signed-off-by: Benjamin LaHaise + Cc: Philippe Elie + Cc: John Levon + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e6333fd4ddf7a583480017f535b9ea53c116ab81 +Author: Hua Zhong +Date: Mon May 15 09:44:22 2006 -0700 + + [PATCH] fix can_share_swap_page() when !CONFIG_SWAP + + can_share_swap_page() is used to check if the page has the last reference. + This avoids allocating a new page for COW if it's the last page. + + However, if CONFIG_SWAP is not set, can_share_swap_page() is defined as 0, + thus always causes a copy for the last COW page. The below simple patch + fixes it. + + Signed-off-by: Hua Zhong + Cc: David Howells + Cc: Hugh Dickins + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 41e5a6ac80c600e1f8bda0a4871f0b797e097d78 +Author: Latchesar Ionkov +Date: Mon May 15 09:44:21 2006 -0700 + + [PATCH] v9fs: signal handling fixes + + Multiple races can happen when v9fs is interrupted by a signal and Tflush + message is sent to the server. After v9fs sends Tflush it doesn't wait + until it receives Rflush, and possibly the response of the original + message. This behavior may confuse v9fs what fids are allocated by the + file server. + + This patch fixes the races and the fid allocation. + + Signed-off-by: Latchesar Ionkov + Cc: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 343f1fe6f2e3fb4912db241e639b0721c2e14f2e +Author: Latchesar Ionkov +Date: Mon May 15 09:44:18 2006 -0700 + + [PATCH] v9fs: Twalk memory leak + + v9fs leaks memory if the file server responds with Rerror to a Twalk + message. The patch fixes the leak. + + Signed-off-by: Latchesar Ionkov + Cc: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3dc7b82ea7649356bf027fba50c16ca50cec31e2 +Author: Richard Purdie +Date: Mon May 15 09:44:17 2006 -0700 + + [PATCH] LED: Fix sysfs store function error handling + + Fix the error handling of some LED _store functions. This corrects them to + return -EINVAL if the value is not numeric with an optional byte of trailing + whitespace. + + Signed-off-by: Richard Purdie + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 263de9b582b0f9b6ad5a0651b7df884fe80d6c3c +Author: Richard Purdie +Date: Mon May 15 09:44:16 2006 -0700 + + [PATCH] LED: Add maintainer entry for the LED subsystem + + Add a MAINTAINERS entry for the LED subsystem. + + Signed-off-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 68673afd443c5eeb4cebfb9026e3675f43d79f2b +Author: Richard Purdie +Date: Mon May 15 09:44:15 2006 -0700 + + [PATCH] Backlight/LCD Class: Fix sysfs _store error handling + + The backlight and LCD class _store functions currently accept values like "34 + some random strings" without error. This corrects them to return -EINVAL if + the value is not numeric with an optional byte of trailing whitespace. + + Signed-off-by: Richard Purdie + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a8d2e7d95229db9999682113bfac40b49978f212 +Author: Richard Purdie +Date: Mon May 15 09:44:14 2006 -0700 + + [PATCH] LED: Improve Kconfig information + + Improve the NEW_LEDS Kconfig information to say what it does as well as what + it doesn't. + + Signed-off-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 39d24e64263cd3211705d3b61ea4171c65030921 +Author: Mike Kravetz +Date: Mon May 15 09:44:13 2006 -0700 + + [PATCH] add slab_is_available() routine for boot code + + slab_is_available() indicates slab based allocators are available for use. + SPARSEMEM code needs to know this as it can be called at various times + during the boot process. + + Signed-off-by: Mike Kravetz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 48564e628bd7662d7a0b3ac81c41cd0e4cc36dae +Author: Jan Niehusmann +Date: Mon May 15 09:44:12 2006 -0700 + + [PATCH] smbfs: Fix slab corruption in samba error path + + Yesterday, I got the following error with 2.6.16.13 during a file copy from + a smb filesystem over a wireless link. I guess there was some error on the + wireless link, which in turn caused an error condition for the smb + filesystem. + + In the log, smb_file_read reports error=4294966784 (0xfffffe00), which also + shows up in the slab dumps, and also is -ERESTARTSYS. Error code 27499 + corresponds to 0x6b6b, so the rq_errno field seems to be the only one being + set after freeing the slab. + + In smb_add_request (which is the only place in smbfs where I found + ERESTARTSYS), I found the following: + + if (!timeleft || signal_pending(current)) { + /* + * On timeout or on interrupt we want to try and remove the + * request from the recvq/xmitq. + */ + smb_lock_server(server); + if (!(req->rq_flags & SMB_REQ_RECEIVED)) { + list_del_init(&req->rq_queue); + smb_rput(req); + } + smb_unlock_server(server); + } + [...] + if (signal_pending(current)) + req->rq_errno = -ERESTARTSYS; + + I guess that some codepath like smbiod_flush() caused the request to be + removed from the queue, and smb_rput(req) be called, without + SMB_REQ_RECEIVED being set. This violates an asumption made by the quoted + code. + + Then, the above code calls smb_rput(req) again, the req gets freed, and + req->rq_errno = -ERESTARTSYS writes into the already freed slab. As + list_del_init doesn't cause an error if called multiple times, that does + cause the observed behaviour (freed slab with rq_errno=-ERESTARTSYS). + + If this observation is correct, the following patch should fix it. + + I wonder why the smb code uses list_del_init everywhere - using list_del + instead would catch such situations by poisoning the next and prev + pointers. + + May 4 23:29:21 knautsch kernel: [17180085.456000] ipw2200: Firmware error detected. Restarting. + May 4 23:29:21 knautsch kernel: [17180085.456000] ipw2200: Sysfs 'error' log captured. + May 4 23:33:02 knautsch kernel: [17180306.316000] ipw2200: Firmware error detected. Restarting. + May 4 23:33:02 knautsch kernel: [17180306.316000] ipw2200: Sysfs 'error' log already exists. + May 4 23:33:02 knautsch kernel: [17180306.968000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:34:18 knautsch kernel: [17180383.256000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:34:18 knautsch kernel: [17180383.284000] SMB connection re-established (-5) + May 4 23:37:19 knautsch kernel: [17180563.956000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:40:09 knautsch kernel: [17180733.636000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:40:26 knautsch kernel: [17180750.700000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:43:02 knautsch kernel: [17180907.304000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:43:08 knautsch kernel: [17180912.324000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:43:34 knautsch kernel: [17180938.416000] smb_errno: class Unknown, code 27499 from command 0x6b + May 4 23:43:34 knautsch kernel: [17180938.416000] Slab corruption: start=c4ebe09c, len=244 + May 4 23:43:34 knautsch kernel: [17180938.416000] Redzone: 0x5a2cf071/0x5a2cf071. + May 4 23:43:34 knautsch kernel: [17180938.416000] Last user: [](smb_rput+0x53/0x90 [smbfs]) + May 4 23:43:34 knautsch kernel: [17180938.416000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6a 6b 6b 6b 6b 6b 6b 6b + May 4 23:43:34 knautsch kernel: [17180938.416000] 0f0: 00 fe ff ff + May 4 23:43:34 knautsch kernel: [17180938.416000] Next obj: start=c4ebe19c, len=244 + May 4 23:43:34 knautsch kernel: [17180938.416000] Redzone: 0x5a2cf071/0x5a2cf071. + May 4 23:43:34 knautsch kernel: [17180938.416000] Last user: [<00000000>](_stext+0x3feffde0/0x30) + May 4 23:43:34 knautsch kernel: [17180938.416000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b + May 4 23:43:34 knautsch kernel: [17180938.416000] 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b + May 4 23:43:34 knautsch kernel: [17180938.460000] SMB connection re-established (-5) + May 4 23:43:42 knautsch kernel: [17180946.292000] ipw2200: Firmware error detected. Restarting. + May 4 23:43:42 knautsch kernel: [17180946.292000] ipw2200: Sysfs 'error' log already exists. + May 4 23:45:04 knautsch kernel: [17181028.752000] ipw2200: Firmware error detected. Restarting. + May 4 23:45:04 knautsch kernel: [17181028.752000] ipw2200: Sysfs 'error' log already exists. + May 4 23:45:05 knautsch kernel: [17181029.868000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:45:36 knautsch kernel: [17181060.984000] smb_errno: class Unknown, code 27499 from command 0x6b + May 4 23:45:36 knautsch kernel: [17181060.984000] Slab corruption: start=c4ebe09c, len=244 + May 4 23:45:36 knautsch kernel: [17181060.984000] Redzone: 0x5a2cf071/0x5a2cf071. + May 4 23:45:36 knautsch kernel: [17181060.984000] Last user: [](smb_rput+0x53/0x90 [smbfs]) + May 4 23:45:36 knautsch kernel: [17181060.984000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6a 6b 6b 6b 6b 6b 6b 6b + May 4 23:45:36 knautsch kernel: [17181060.984000] 0f0: 00 fe ff ff + May 4 23:45:36 knautsch kernel: [17181060.984000] Next obj: start=c4ebe19c, len=244 + May 4 23:45:36 knautsch kernel: [17181060.984000] Redzone: 0x5a2cf071/0x5a2cf071. + May 4 23:45:36 knautsch kernel: [17181060.984000] Last user: [<00000000>](_stext+0x3feffde0/0x30) + May 4 23:45:36 knautsch kernel: [17181060.984000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b + May 4 23:45:36 knautsch kernel: [17181060.984000] 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b + May 4 23:45:36 knautsch kernel: [17181061.024000] SMB connection re-established (-5) + May 4 23:46:17 knautsch kernel: [17181102.132000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:47:46 knautsch kernel: [17181190.468000] smb_errno: class Unknown, code 27499 from command 0x6b + May 4 23:47:46 knautsch kernel: [17181190.468000] Slab corruption: start=c4ebe09c, len=244 + May 4 23:47:46 knautsch kernel: [17181190.468000] Redzone: 0x5a2cf071/0x5a2cf071. + May 4 23:47:46 knautsch kernel: [17181190.468000] Last user: [](smb_rput+0x53/0x90 [smbfs]) + May 4 23:47:46 knautsch kernel: [17181190.468000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6a 6b 6b 6b 6b 6b 6b 6b + May 4 23:47:46 knautsch kernel: [17181190.468000] 0f0: 00 fe ff ff + May 4 23:47:46 knautsch kernel: [17181190.468000] Next obj: start=c4ebe19c, len=244 + May 4 23:47:46 knautsch kernel: [17181190.468000] Redzone: 0x5a2cf071/0x5a2cf071. + May 4 23:47:46 knautsch kernel: [17181190.468000] Last user: [<00000000>](_stext+0x3feffde0/0x30) + May 4 23:47:46 knautsch kernel: [17181190.468000] 000: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b + May 4 23:47:46 knautsch kernel: [17181190.468000] 010: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b + May 4 23:47:46 knautsch kernel: [17181190.492000] SMB connection re-established (-5) + May 4 23:49:20 knautsch kernel: [17181284.828000] smb_file_read: //some_file validation failed, error=4294966784 + May 4 23:49:39 knautsch kernel: [17181303.896000] smb_file_read: //some_file validation failed, error=4294966784 + + Signed-off-by: Jan Niehusmann + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2e367a82fc2da335455984a7722c721dd3fa782b +Author: Marcelo Tosatti +Date: Mon May 15 09:44:08 2006 -0700 + + [PATCH] Marcelo has moved + + Signed-off-by: Marcelo Tosatti + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e376613899076396d0c97de67ad072587267370 +Author: Trent Piepho +Date: Mon May 15 09:44:06 2006 -0700 + + [PATCH] symbol_put_addr() locks kernel + + Even since a previous patch: + + Fix race between CONFIG_DEBUG_SLABALLOC and modules + Sun, 27 Jun 2004 17:55:19 +0000 (17:55 +0000) + http://www.kernel.org/git/?p=linux/kernel/git/torvalds/old-2.6-bkcvs.git;a=commit;h=92b3db26d31cf21b70e3c1eadc56c179506d8fbe + + The function symbol_put_addr() will deadlock the kernel. + + symbol_put_addr() would acquire modlist_lock, then while holding the lock call + two functions kernel_text_address() and module_text_address() which also try + to acquire the same lock. This deadlocks the kernel of course. + + This patch changes symbol_put_addr() to not acquire the modlist_lock, it + doesn't need it since it never looks at the module list directly. Also, it + now uses core_kernel_text() instead of kernel_text_address(). The latter has + an additional check for addr inside a module, but we don't need to do that + since we call module_text_address() (the same function kernel_text_address + uses) ourselves. + + Signed-off-by: Trent Piepho + Cc: Zwane Mwaikambo + Acked-by: Rusty Russell + Cc: Johannes Stezenbach + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0159677857c5ada0a0a2c03a4dd59312382b73d0 +Author: Martin Schwidefsky +Date: Mon May 15 09:44:05 2006 -0700 + + [PATCH] s390: add vmsplice system call + + Add new vmsplice system call and add missing __NR_xxx defines for + sys_set_robust_list, sys_get_robust_list, sys_splice, sys_sync_file_range + and sys_tee. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a050da45b5d855b48b057446847ff1542977b52 +Author: Mark Huang +Date: Mon May 15 09:44:03 2006 -0700 + + [PATCH] initramfs: fix CPIO hardlink check + + Copy the filenames of hardlinks when inserting them into the hash, since + the "name" pointer may point to scratch space (name_buf). Not doing so + results in corruption if the scratch space is later overwritten: the wrong + file may be hardlinked, or, if the scratch space contains garbage, the link + will fail and a 0-byte file will be created instead. + + Signed-off-by: Mark Huang + Acked-by: Al Viro + Cc: "H. Peter Anvin" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 698d070746770aaaec78ab4ffa3ab1f1d5c6abe8 +Author: Greg Smith +Date: Mon May 15 09:44:02 2006 -0700 + + [PATCH] s390: lcs incorrect test + + While debugging why our LCS emulator is having some problems I noticed the + following weirdness in drivers/s390/net/lcs.c routine lcs_irq. The `if' + statement is always true since SCHN_STAT_PCI is defined as 0x80. + + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ac924c6034d9095f95ee889f7e31bbb9145da0c2 +Author: Andrew Morton +Date: Mon May 15 09:43:59 2006 -0700 + + [PATCH] setup_per_zone_pages_min() overflow fix + + As pointed out in http://bugzilla.kernel.org/show_bug.cgi?id=6490, this + function can experience overflows on 32-bit machines, causing our response to + changed values of min_free_kbytes to go whacky. + + Fixing it efficiently is all too hard, so fix it with 64-bit math instead. + + Cc: Ake Sandgren + Cc: Martin Bligh + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5afdbd6e84c7fbdaa7cfde4cbee0d3a5f4f56da2 +Author: Heiko Carstens +Date: Mon May 15 09:43:59 2006 -0700 + + [PATCH] s390: exploit rcu_needs_cpu() interface + + Exploit rcu_needs_cpu() interface to keep the cpu 'ticking' if necessary. + + Signed-off-by: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 986733e01d258c26107f1da9d8d47c718349ad2f +Author: Heiko Carstens +Date: Mon May 15 09:43:58 2006 -0700 + + [PATCH] RCU: introduce rcu_needs_cpu() interface + + With "Paul E. McKenney" + + Introduce rcu_needs_cpu() interface. This can be used to tell if there + will be a new rcu batch on a cpu soon by looking at the curlist pointer. + This can be used to avoid to enter a tickless idle state where the cpu + would miss that a new batch is ready when rcu_start_batch would be called + on a different cpu. + + Signed-off-by: Heiko Carstens + Cc: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3b7c8108273bed41a2fc04533cc9f2026ff38c8e +Author: Olaf Kirch +Date: Mon May 15 09:43:57 2006 -0700 + + [PATCH] smbfs chroot issue (CVE-2006-1864) + + Mark Moseley reported that a chroot environment on a SMB share can be left + via "cd ..\\". Similar to CVE-2006-1863 issue with cifs, this fix is for + smbfs. + + Steven French wrote: + + Looks fine to me. This should catch the slash on lookup or equivalent, + which will be all obvious paths of interest. + + Signed-off-by: Chris Wright + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a7b862f663d81858531dfccc0537bc9d8a2a4121 +Author: Chris Wedgwood +Date: Mon May 15 09:43:55 2006 -0700 + + [PATCH] VIA quirk fixup, additional PCI IDs + + An earlier commit (75cf7456dd87335f574dcd53c4ae616a2ad71a11) changed an + overly-zealous PCI quirk to only poke those VIA devices that need it. + However, some PCI devices were not included in what I hope is now the full + list. Consequently we're failing to run the quirk on all machines which need + it, causing IRQ routing failures. + + This should I hope correct this. + + Thanks to Masoud Sharbiani for pointing this out + and testing the fix. + + Signed-off-by: Chris Wedgwood + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 73d58588091e81e5ee4266488e2fb09a410f1512 +Author: Benjamin Herrenschmidt +Date: Mon May 15 09:43:53 2006 -0700 + + [PATCH] pcmcia Oopses fixes + + Fix some NULL dereferences in the pcmcia code when using old userland + tools. + + Signed-off-by: Benjamin Herrenschmidt + Acked-by: Dominik Brodowski + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 94585136606e0598a93ec145d9a899c8ec9b2208 +Author: Kylene Jo Hall +Date: Mon May 15 09:43:53 2006 -0700 + + [PATCH] tpm: update module dependencies + + The TIS driver is dependent upon information from the ACPI table for device + discovery thus it compiles but does no actual work without this dependency. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 90d5ede5985f3b172cc3ccd89bf8c52a209088a5 +Author: Stefan Schweizer +Date: Mon May 15 09:43:52 2006 -0700 + + [PATCH] Fix capi reload by unregistering the correct major + + I am having the bug FATAL: Error inserting capi ([..]/capi.ko): Device or + resource busy when I try to reload capi after loading it. in dmesg: + capi20: unable to get major 68 + + Fix the issue which is caused by setting the major to zero when registering + the chrdev succeeded. + + (akpm: this means that we can again not use `major=0' (dynamic major + allocation) for this driver). + + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a5370553952a9a414860d878b67c49eff11313bd +Author: Ian Kent +Date: Mon May 15 09:43:51 2006 -0700 + + [PATCH] autofs4: NFY_NONE wait race fix + + This patch fixes two problems. + + First, the comparison of entries in the waitq.c was incorrect. + + Second, the NFY_NONE check was incorrect. The test of whether the dentry + is mounted if ineffective, for example, if an expire fails then we could + wait forever on a non existant expire. The bug was identified by Jeff + Moyer. + + The patch changes autofs4 to wait on expires only as this is all that's + needed. If there is no existing wait when autofs4_wait is call with a type + of NFY_NONE it delays until either a wait appears or the the expire flag is + cleared. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6aff5cb8ec270db569800b1bb59bd20003a76f07 +Author: Adrian Bunk +Date: Mon May 15 09:43:50 2006 -0700 + + [PATCH] fs/open.c: unexport sys_openat + + Remove the unused EXPORT_SYMBOL_GPL(sys_openat). + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0cccca06f9870eb6daa89357b8a99ad041865553 +Author: Serge E. Hallyn +Date: Mon May 15 09:43:48 2006 -0700 + + [PATCH] selinux: check for failed kmalloc in security_sid_to_context() + + Check for NULL kmalloc return value before writing to it. + + Signed-off-by: Serge E. Hallyn + Acked-by: James Morris + Cc: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9be2f7c38e0bd64e8a0f74ea68df1e73e2ddfcc3 +Author: Linus Torvalds +Date: Sat May 13 08:01:23 2006 -0700 + + Revert "[PATCH] i386: export: memory more than 4G through /proc/iomem" + + This reverts commit 10dbe196a8da6b3196881269c6639c0ec11c36cb. + + The resource struct is still 32-bit, so trying to save a 64-bit memory + size there obviously won't work. + + When we merge the 64-bit resource series, we can re-enable this. + + Thanks to Sachin Sant and Maneesh Soni for debugging + + Cc: Maneesh Soni + Cc: Sachin Sant + Cc: Russell King + Cc: Sharyathi Nagesh + Cc: Arjan van de Ven + Cc: Vivek Goyal + Signed-off-by: Linus Torvalds + +commit 032ebf2620ef99a4fedaa0f77dc2272095ac5863 +Author: Linus Torvalds +Date: Fri May 12 18:42:09 2006 -0700 + + Alternative fix for MMC oops on unmount after removal + + Make sure to clear the driverfs_dev pointer when we do del_gendisk() (on + disk removal), so that other users that may still have a ref to the disk + won't try to use the stale pointer. + + Also move the KOBJ_REMOVE uevent handler up, so that the uevent still + has access to the driverfs_dev data. + + This all should hopefully fix the problems with MMC umounts after device + removals that caused commit 56cf6504fc1c0c221b82cebc16a444b684140fb7 and + its reversal (1a2acc9e9214699a99389e323e6686e9e0e2ca67). + + Original problem reported by Todd Blumer and others. + + Acked-by: Greg KH + Cc: Russell King + Cc: James Bottomley + Cc: Erik Mouw + Cc: Andrew Vasquez + Cc: Todd Blumer + Signed-off-by: Linus Torvalds + +commit 8a2ae70a9b4dc88c83b4644c58d06d74f2cb70c9 +Author: Ingo Molnar +Date: Tue May 2 09:00:31 2006 -0300 + + V4L/DVB (3965): Fix CONFIG_VIDEO_VIVI=y build bug + + CONFIG_VIDEO_VIVI depends on CONFIG_VIDEO_BUF. + + Signed-off-by: Ingo Molnar + Signed-off-by: Mauro Carvalho Chehab + +commit 68a26aecb3829d013f612def3c8995efdbad3306 +Author: Adrian Bunk +Date: Fri Apr 28 10:48:41 2006 -0300 + + V4L/DVB (3964): Bt8xx/bttv-cards.c: fix off-by-one errors + + This patch fixes two off-by-one errors spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: Mauro Carvalho Chehab + +commit 1095136dee95d27d27cebc52bd502f7facee8600 +Author: Andrew Morton +Date: Thu Apr 27 10:10:58 2006 -0300 + + V4L/DVB (3914): Vivi build fix + + drivers/media/video/vivi.c: In function `vivi_map_sg': + drivers/media/video/vivi.c:799: error: `DMA_NONE' undeclared (first use in this function) + drivers/media/video/vivi.c:799: error: (Each undeclared identifier is reported only once + drivers/media/video/vivi.c:799: error: for each function it appears in.) + + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 765bf9770fda950e6615451ad1a4b8866bda7dfa +Author: Andrew Morton +Date: Thu Apr 27 10:09:27 2006 -0300 + + V4L/DVB (3912): Sparc32 vivi fix + + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit ba5f0a4e15e736d99d698ce498bd6f1f16d014cf +Author: Michael Krufky +Date: Sun Apr 23 01:55:38 2006 -0300 + + V4L/DVB (3832): Get_dvb_firmware: download nxt2002 firmware from new driver location + + BBTI has updated their driver, and removed the old one from their website. + This patch updates the get_dvb_firmware script to download the firmware + from the new driver location. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit dd31d5ac7345b2c728bf7eb37b06383776174232 +Author: Rusty Scott +Date: Sat Apr 22 16:15:07 2006 -0300 + + V4L/DVB (3829): Fix frequency values in the ranges structures of the LG TDVS H06xF tuners + + Frequency range values in the current driver for the LG TDVS H06xF tuners + appear to have been a transposing of the 5 in the mid range 160-455 instead + of 165-450. + This patch corrects the pll programming for these tuners as per the datasheet. + + Signed-off-by: Rusty Scott + Signed-off-by: Mac Michaels + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 7bbbc0a28e6cfcef66e2180206257b959dad2006 +Author: Mikhail Gusarov +Date: Thu Apr 20 13:18:50 2006 -0300 + + V4L/DVB (3826): Saa7134: Missing 'break' in Terratec Cinergy 400 TV initialization + + There is a missing break in card initialization function. Might screw + up initialization of Terratec Cinergy 400 TV. + + Signed-off-by: Mikhail Gusarov + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 7d16eaa3d0d41a6e871e5c82720bcd006b202d55 +Author: Hans Verkuil +Date: Sun Apr 23 05:54:56 2006 -0300 + + V4L/DVB (3825): Remove broken 'fast firmware load' from cx25840. + + The fast firmware load hack in cx25840 uses private data. In fact, it + breaks pvrusb2 and doesn't work at all with ivtv. It is a unsafe + implementation and so it is removed. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 5691c8473936508c51639b6ff8467e55d8b129c1 +Author: Michael Krufky +Date: Wed Apr 19 20:40:01 2006 -0300 + + V4L/DVB (3819): Cxusb-bluebird: bug-fix: power down corrupts frontend + + This patch prevents a bug where the frontend is unable to tune after waking + from powered down state. Now, the device remains powered on until it is + disconnected, just like the windows driver. It seems that the bluebird + firmware is unable to successfully handle tuning after a powered down state. + This patch fixes all of the FusionHDTV Bluebird USB2 devices. The Medion + MD95700 will still behave as before, since it was unaffected by this bug. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 7157e2b6ff6fdd24d7e54d9856aa24ea88527ca9 +Author: Hans Verkuil +Date: Sun Apr 16 17:17:42 2006 -0300 + + V4L/DVB (3813): Add support for TCL M2523_5N_E tuner. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 70047f9cca231126981f360c79cde98ea30410b2 +Author: Yeasah Pell +Date: Thu Apr 13 17:26:22 2006 -0300 + + V4L/DVB (3804): Tweak bandselect setup fox cx24123 + + *) Allow forcing the bandselect value with a module parameter to + facilitate determining the correct bandselect frequencies. + *) Changes the bandselect frequency thresholds based on experiments + with the above parameter in conjunction with the values in the spec. + + Signed-off-by: Yeasah Pell + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 0e4558ab4a89a127e0de36746552da9353e35f10 +Author: Yeasah Pell +Date: Thu Apr 13 17:24:13 2006 -0300 + + V4L/DVB (3803): Various correctness fixes to tuning. + + *) Sets an additional tuner parameter (demodulator sample gain) that + wasn't being set before. + *) Removes the low symbol rate tuner parameter tweaks in the previous + patch -- it appears those tweaks are not necessary with the demodulator + sample gain set correctly. + *) Cleanup and document the demodulator register initialization sequence. + *) Change set_fec routine to disable FEC auto scan when a specific code + rate is selected. + *) Remove error message when reported FEC is invalid (which happens + sometimes when the card has no signal) + + Signed-off-by: Yeasah Pell + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit dce1dfc2a5736bfc82df5d3fd6396022c7bbbbd8 +Author: Yeasah Pell +Date: Thu Apr 13 11:40:59 2006 -0300 + + V4L/DVB (3797): Always wait for diseqc queue to become ready before transmitting a diseqc message + + The previous DISEQC code didn't wait, so it was unreliable + + Signed-off-by: Yeasah Pell + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit caf970e09c42843eb3b8456fc0e815f9b5385873 +Author: Mauro Carvalho Chehab +Date: Thu Apr 13 11:29:13 2006 -0300 + + V4L/DVB (3796): Add several debug messages to cx24123 code + + Current debug messages at cx24123 are next to useless, since they don't + print the values sent/read to registers. With this patch, debug=1 will + show comprehensive messages. debug=2 will show also read/write operations + at I2C bus. + + Signed-off-by: Mauro Carvalho Chehab + Signed-off-by: Andrew de Quincey + +commit a74b51fca9d9b6774413d700ade1e9ae1f0c0e75 +Author: Vadim Catana +Date: Thu Apr 13 10:19:52 2006 -0300 + + V4L/DVB (3795): Fix for CX24123 & low symbol rates + + - fixed the reception of channels with low symbol rates. + ( The VGA1 and VGA2 offsets recommended by cx24109 docs for + symbol rates from 1 to 5 MSps do not work. I changed them + to values found experimentally. The charge pump current + and FILTUNE voltage are now set to values recommended in + the docs. This improves reception for symbol rates < 15 MSps. + The values written in the SYSSymbolRate registers are calculated + with better precision. ) + + - fixed the cx24123_get_fec() function. It was returning the values + for DCII mode. + - removed some unused variables + + Signed-off-by: Vadim Catana + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 3a63fc4bfd8579bda1f6a03b3fcb792f59cb15f8 +Author: Michael Krufky +Date: Tue Apr 11 18:16:22 2006 -0300 + + V4L/DVB (3792): Kbuild: DVB_BT8XX must select DVB_ZL10353 + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 7c908fbb0139fa1080412d0590189abfe2df87eb +Author: Eric Sesterhenn +Date: Tue Apr 11 18:19:33 2006 -0300 + + V4L/DVB (3790): Use after free in drivers/media/video/em28xx/em28xx-video.c + + In several places we use dev->devno right after we kfree() dev. This fixes + coverity bug id #1065 + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit b37492be25be5ff0551bff8b479e783498ebe838 +Author: Mauro Carvalho Chehab +Date: Tue Apr 11 18:07:49 2006 -0300 + + V4L/DVB (3788): Fix compilation with V4L1_COMPAT + + Signed-off-by: Mauro Carvalho Chehab + +commit 4fff598fc700a9f2089a3351a54e049d79faa631 +Author: Mauro Carvalho Chehab +Date: Sun Apr 9 16:20:19 2006 -0300 + + V4L/DVB (3782): Removed uneeded stuff from pwc Makefile + + Signed-off-by: Mauro Carvalho Chehab + +commit c1d1ea9e0f83a89d7afa1c84fac8312e2e08c85e +Author: Mauro Carvalho Chehab +Date: Sun Apr 9 15:51:18 2006 -0300 + + V4L/DVB (3775): Add VIVI Kconfig stuff + + Signed-off-by: Mauro Carvalho Chehab + +commit cd41e28e2d0f198ad56840bf8ba13cb41b129bab +Author: Mauro Carvalho Chehab +Date: Sun Apr 9 15:43:41 2006 -0300 + + V4L/DVB (3774): Create V4L1 config options + + V4L1 API is depreciated and should be removed soon from kernel. This patch + adds two new options, one to disable V4L1 drivers, and another to disable + V4L1 compat module. This way, it would be easy to check what still depends + on V4L1 stuff, allowing also to test if app works fine with V4L2 only support. + + Signed-off-by: Mauro Carvalho Chehab + +commit ea76ce526ec1af3e07f3dd9107ca93f0c82fc9c9 +Author: Jose Alberto Reguero +Date: Tue Apr 11 10:19:25 2006 -0300 + + V4L/DVB (3767): Pvr350 tv out (saa7127) + + Witout this patch tv out don't work properly with my pvr350 card. + + Signed-off-by: Jose Alberto Reguero + Signed-off-by: Mauro Carvalho Chehab + +commit bba3ad76a82eb458d31b136fa2414216e20c99cc +Author: Duncan Sands +Date: Tue Apr 11 10:18:57 2006 -0300 + + V4L/DVB (3766): Correct buffer size calculations in cx88-core.c + + The computation in cx88_risc_buffer suffers from the mistake: + a non-zero padding value can cause more page borders to be crossed, + leading to big buffer over-runs. + This patch changes the additive constant from 3 + 4 to 4 + It also changees the constant in cx88_risc_databuffer from 3 + 4 to 2, + because 2 dwords are the correct vaule. + + Signed-off-by: Duncan Sands + Signed-off-by: Mauro Carvalho Chehab + +commit 9175b8544ff7b73b158df370acc1d828b28b80b7 +Author: Trent Piepho +Date: Mon Apr 10 09:40:37 2006 -0300 + + V4L/DVB (3763): Bug fix: Wrong tuner was used pcHDTV HD-3000 card + + It looks like the HD3000 was prototyped with the 7610 tuner when + the driver was developed, but the cards appear to have always shipped + with the 7612 tuner and the driver was never adjusted for it. + The definition needs to be corrected. + - The HD-3000 was prototyped with a Thomson DTT7610, + but production versions used a DTT7612 tuner. + - This patch changes both dvb-pll settings and V4L tuner type. + + Signed-off-by: Trent Piepho + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit f1de3e7c5c9d8e65937addce83b42331bdad15a1 +Author: Mauro Carvalho Chehab +Date: Fri Apr 7 18:50:09 2006 -0300 + + V4L/DVB (3745): Fix a bug at pluto2 Makefile + + When pluto2 were selected, all other module dependencies were + just discarded. + + Signed-off-by: Mauro Carvalho Chehab + +commit a064fad337e27cfe74c04509e88ef4d2c9138ec2 +Author: Andrew de Quincey +Date: Thu Apr 6 17:05:46 2006 -0300 + + V4L/DVB (3743): Fix some more potential oopses + + Spotted a couple more places where it fails to check if + dvb_register_adapter() fails. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 6445401673fe486ba15a39370d41100df6d73b1f +Author: Andrew de Quincey +Date: Thu Apr 6 14:32:23 2006 -0300 + + V4L/DVB (3742): Set tone/voltage again if the frontend was reinitialised + + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 71a8dffb07ae40af87b2f7b93dcd5810e2c558bf +Author: Andrew de Quincey +Date: Thu Apr 6 09:42:46 2006 -0300 + + V4L/DVB (3740): Fix oops in budget-av with CI + + Now that the CI code reinitialises the frontend, need to move the CI + initialisation to after the frontend init in order to ensure the frontend is + always in a good state. Fixes an oops caused by the frontend being NULL as + well. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 7a766f9ddd74b50d6069f054a3004ece0439f5c1 +Author: Sergey Vlasov +Date: Fri Apr 7 10:04:56 2006 -0300 + + V4L/DVB (3738): Saa7134: Fix oops with disable_ir=1 + + When disable_ir=1 parameter is used, or when saa7134_input_init1() + fails for any other reason, dev->remote will remain NULL, and the + driver will oops in saa7134_hwinit2(). Therefore dev->remote must be + checked before dereferencing. + + Signed-off-by: Sergey Vlasov + Signed-off-by: Mauro Carvalho Chehab + +commit a7286033f951ebc78527e63f335516ea2f95e142 +Author: Michael Krufky +Date: Tue Apr 4 22:23:04 2006 -0300 + + V4L/DVB (3731): Kbuild: drivers/media/video/bt8xx: remove $(src) from include path + + - replaced '$(src)/..' with 'drivers/media/video' + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 96b194c12e1206e5cdccf55ea71bb38ce1124bd9 +Author: Andrew de Quincey +Date: Wed Apr 5 14:09:45 2006 -0300 + + V4L/DVB (3726): Fix TT budget-ci 1.1 CI slots + + It turns out the firmware on the TT budget-ci 1.1 slots doesn't generate + interrupts. This patch adds support for this using polling mode on these + slots. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit f47f4763cde162656448fcd1ada9d5e8101a00d2 +Author: Andrew de Quincey +Date: Tue Apr 4 09:41:47 2006 -0300 + + V4L/DVB (3725): Fix mutex in dvb_register_device to work. + + This mutex is meant to stop two devices getting the same ID. dvbdev_get_free_id() + scans the list of already allocated devices to find a free id. + Unfortunately, since the mutex is unlocked before the card is added to the + above list, it is still possible for two of them to get the same id. + Its debatable whether this mutex lock is actually needed, but I'm unwilling + to just remove it in case something does depend on it. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 3203f94a25ea04b3052d22c7be9518538862d88f +Author: Duncan Sands +Date: Sun Apr 2 04:14:57 2006 -0300 + + V4L/DVB (3704): Fix some errors on bttv_risc_overlay + + There are tree mistakes on bttv_risc_overlay. + 1) When skip_odd is true, the number of lines for which + instructions are written is (height+1)/2, not height/2. + 2) This occurs when clipping: the number of instruction bytes + written can be as much as 8 + 12*nclips, not 8 + 8*nclips, as + currently estimated. + 3) Coverity check were wrong with nskips=0, since it means that + it can clipped at most one line. + + Signed-off-by: Duncan Sands + Signed-off-by: Mauro Carvalho Chehab + +commit 1b52fa98edd1c3e663ea4a06519e3d20976084a8 +Author: Sean Hefty +Date: Fri May 12 14:57:52 2006 -0700 + + IB: refcount race fixes + + Fix race condition during destruction calls to avoid possibility of + accessing object after it has been freed. Instead of waking up a wait + queue directly, which is susceptible to a race where the object is + freed between the reference count going to 0 and the wake_up(), use a + completion to wait in the function doing the freeing. + + Signed-off-by: Sean Hefty + Signed-off-by: Roland Dreier + +commit 6f4bb3d8205d943acafa2f536f37131777524b67 +Author: Roland Dreier +Date: Fri May 12 14:57:52 2006 -0700 + + IB/ipath: Properly terminate PCI ID table + + The ipath driver's table of PCI IDs needs a { 0, } entry at the end. + This makes all of the device aliases visible to userspace so hotplug + loads the module for all supported devices. Without the patch, + modinfo ipath_core only shows: + + alias: pci:v00001FC1d0000000Dsv*sd*bc*sc*i* + + instead of the correct: + + alias: pci:v00001FC1d00000010sv*sd*bc*sc*i* + alias: pci:v00001FC1d0000000Dsv*sd*bc*sc*i* + + Signed-off-by: Roland Dreier + Signed-off-by: Bryan O'Sullivan + +commit bd89efc532fe41f867f848144cc8b42054ddf6f9 +Author: Simon Kelley +Date: Fri May 12 14:56:08 2006 -0700 + + [NEIGH]: Fix IP-over-ATM and ARP interaction. + + The classical IP over ATM code maintains its own IPv4 <-> + ARP table, using the standard neighbour-table code. The + neigh_table_init function adds this neighbour table to a linked list + of all neighbor tables which is used by the functions neigh_delete() + neigh_add() and neightbl_set(), all called by the netlink code. + + Once the ATM neighbour table is added to the list, there are two + tables with family == AF_INET there, and ARP entries sent via netlink + go into the first table with matching family. This is indeterminate + and often wrong. + + To see the bug, on a kernel with CLIP enabled, create a standard IPv4 + ARP entry by pinging an unused address on a local subnet. Then attempt + to complete that entry by doing + + ip neigh replace lladdr nud reachable + + Looking at the ARP tables by using + + ip neigh show + + will reveal two ARP entries for the same address. One of these can be + found in /proc/net/arp, and the other in /proc/net/atm/arp. + + This patch adds a new function, neigh_table_init_no_netlink() which + does everything the neigh_table_init() does, except add the table to + the netlink all-arp-tables chain. In addition neigh_table_init() has a + check that all tables on the chain have a distinct address family. + The init call in clip.c is changed to call + neigh_table_init_no_netlink(). + + Since ATM ARP tables are rather more complicated than can currently be + handled by the available rtattrs in the netlink protocol, no + functionality is lost by this patch, and non-ATM ARP manipulation via + netlink is rescued. A more complete solution would involve a rtattr + for ATM ARP entries and some way for the netlink code to give + neigh_add and friends more information than just address family with + which to find the correct ARP table. + + [ I've changed the assertion checking in neigh_table_init() to not + use BUG_ON() while holding neigh_tbl_lock. Instead we remember that + we found an existing tbl with the same family, and after dropping + the lock we'll give a diagnostic kernel log message and a stack dump. + -DaveM ] + + Signed-off-by: Simon Kelley + Signed-off-by: David S. Miller + +commit 586152560ae8df2a9babf1a8b667d7a145cb8208 +Author: Martin Habets +Date: Fri May 12 12:53:59 2006 -0700 + + [SPARC]: Fix warning on prom_getproperty in openprom.c + + Signed-off-by: Martin Habets + Signed-off-by: David S. Miller + +commit ef34814426862c41c061520d4ac833be5914b5ba +Author: Karsten Keil +Date: Fri May 12 12:49:08 2006 -0700 + + [TG3]: ethtool always report port is TP. + + Even with fiber cards ethtool reports that the connected port is TP, + the patch fix this. + + Signed-off-by: Karsten Keil + Acked-by: Michael Chan + Signed-off-by: David S. Miller + +commit 06a1be167ea77c436657587e26cd4d7d6401784c +Author: David S. Miller +Date: Fri May 12 12:45:50 2006 -0700 + + [SPARC]: Handle UNWIND_INFO properly. + + For sparc32 we need R_SPARC_UA32 relocation support, for + sparc64 we need the handle R_SPARC_DISP32 relocations. + + Based upon reports and initial patch by Martin Habets. + + Signed-off-by: David S. Miller + +commit 1a2acc9e9214699a99389e323e6686e9e0e2ca67 +Author: Linus Torvalds +Date: Fri May 12 12:08:46 2006 -0700 + + Revert "[BLOCK] Fix oops on removal of SD/MMC card" + + This reverts commit 56cf6504fc1c0c221b82cebc16a444b684140fb7. + + Both Erik Mouw and Andrew Vasquez independently pinpointed this commit + as causing problems, where the slab cache for a driver is never released + (most obviously causing problems when immediately re-loading that + driver, resulting in a "kmem_cache_create: duplicate cache " + message, but it can also cause other trouble). + + James Bottomley dug into it, and reports: + + "OK, here's the scoop. The problem patch adds a get of driverfs_dev in + add_disk(), but doesn't put it again until disk_release() (which occurs + on final put_disk() of the gendisk). + + However, in SCSI, the driverfs_dev is the sdev_gendev. That means + there's a reference held on sdev_gendev until final disk put. + Unfortunately, we use the driver model driver_remove to trigger + del_gendisk (which removes the gendisk from visibility and decrements + the refcount), so we've introduced an unbreakable deadlock in the + reference counting with this. + + I suggest simply reversing this patch at the moment. If Russell and + Jens can tell me what they're trying to do I'll see if there's another + way to do it." + + so hereby the patch gets reverted, waiting for a better fix. + + Cc: Jens Axboe + Cc: Russell King + Cc: James Bottomley + Cc: Erik Mouw + Cc: Andrew Vasquez + Signed-off-by: Linus Torvalds + +commit df3fccb14ad02c5fabe095a104a0323c223f2833 +Author: Greg Kroah-Hartman +Date: Tue May 2 08:44:45 2006 +0200 + + [PATCH] USB: fix omninet driver bug + + I introduced this way back in 2.6.13 when adding the port lock logic. + This device talks out through different "ports" all at the same time, so + the lock logic was wrong, preventing any data from ever being sent + properly. + + Thanks a lot to Bernhard Reiter for being + patient and helping with debugging this. + + Cc: Bernhard Reiter + Signed-off-by: Greg Kroah-Hartman + +commit 815ddc99dd8108908d14c699a37d0f5974da6def +Author: Greg Kroah-Hartman +Date: Fri May 12 11:05:29 2006 -0700 + + [PATCH] USB: add ark3116 usb to serial driver + + Based on Simon's original driver, with some minor code cleanups and + tidying by me. + + Cc: Simon Schulz + Signed-off-by: Greg Kroah-Hartman + +commit 71a84163ca6b4e36744978385e94150af32f9d75 +Author: Luiz Fernando Capitulino +Date: Thu May 11 22:34:24 2006 -0300 + + [PATCH] usbserial: Fixes leak in serial_open() error path. + + If serial_open() fails at the port assignment or mutex_lock_interruptible() + is interrupted, the 'serial' object will never be freed. + + We should call kref_put() when those errors happens. + + Signed-off-by: Luiz Fernando N. Capitulino + Signed-off-by: Greg Kroah-Hartman + +commit 704936a25bda9bb12e35bb222d5e3f26186dc279 +Author: Luiz Fernando Capitulino +Date: Thu May 11 22:34:17 2006 -0300 + + [PATCH] usbserial: Fixes use-after-free in serial_open(). + + If the device is disconnected while serial_open() is executing and + either try_module_get() or the device specific open function fails, the + kref_put() call in the 'bailout_kref_put' label will free the memory + pointed out by 'port'. + + The subsequent dereferences in the 'bailout_kref_put' label will be + invalid. + + The fix is just to assure kref_put() is called after any 'port' usage. + + Signed-off-by: Luiz Fernando N. Capitulino + Signed-off-by: Greg Kroah-Hartman + +commit 16c23f7d88cbcce491f9370b2846fad66e8ef319 +Author: Monty +Date: Tue May 9 12:37:22 2006 -0700 + + [PATCH] USB: Emagic USB firmware loading fixes + + It's become apparent as machines get faster that the emagic kernel firmware + loaders (based on the ezusb loader) have a reset race. a 400MHz TiBook + never tripped it, but a 2GHz Pentium M seems to hit it about 30% of the + time. The bug is seen as a hung USB box and the kernel error: + + drivers/usb/misc/emi62.c: emi62_load_firmware - error loading firmware: + error = -110 + + The patch below inserts a delay after deasserting reset to allow the box to + settle before a new command is issued. This affects only device startup. + + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 332bbf613868a5d5938ad9fb7436b2beae72d53d +Author: Olaf Hering +Date: Fri May 5 11:07:21 2006 +0200 + + [PATCH] USB: add an IBM USB keyboard to the HID_QUIRK_NOGET blacklist + + After recent changes, the USB keyboard as shipped with IBM pSeries systems + does not work anymore, unless the keyboard is replugged after reboot. + Adding this model to the blacklist fixes it. + + Signed-off-by: Olaf Hering + Signed-off-by: Greg Kroah-Hartman + +commit b68f7de02ae380ddb4e5e457e3fe945ddfd0aa08 +Author: Ken Brush +Date: Mon May 8 20:24:12 2006 -0500 + + [PATCH] USB: Add Sieraa Wireless 580 evdo card to airprime.c + + This adds the Sierra Wireless card to airprime.c. + + I tested this on my laptop. + + Signed-off-by: Ken Brush + Signed-off-by: Greg Kroah-Hartman + +commit d8c3291c73b958243b33f8509d4507e76dafd055 +Author: Linus Torvalds +Date: Thu May 11 16:31:53 2006 -0700 + + Linux v2.6.17-rc4 + +commit dac07ec121de66b6be988b14ae2cd9ce45357b21 +Author: Jens Axboe +Date: Thu May 11 08:20:16 2006 +0200 + + [BLOCK] limit request_fn recursion + + Don't recurse back into the driver even if the unplug threshold is met, + when the driver asks for a requeue. This is both silly from a logical + point of view (requeues typically happen due to driver/hardware + shortage), and also dangerous since we could hit an endless request_fn + -> requeue -> unplug -> request_fn loop and crash on stack overrun. + + Also limit blk_run_queue() to one level of recursion, similar to how + blk_start_queue() works. + + This patch fixed a real problem with SLES10 and lpfc, and it could hit + any SCSI lld that returns non-zero from it's ->queuecommand() handler. + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 210525d65d33d17eb6bea6c965ce442d60d9aa8d +Author: Patrick McHardy +Date: Thu May 11 12:22:03 2006 -0700 + + [NET_SCHED]: HFSC: fix thinko in hfsc_adjust_levels() + + When deleting the last child the level of a class should drop to zero. + + Noticed by Andreas Mueller + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit f358166a9405e4f1d8e50d8f415c26d95505b6de +Author: Linus Torvalds +Date: Thu May 11 11:08:49 2006 -0700 + + ptrace_attach: fix possible deadlock schenario with irqs + + Eric Biederman points out that we can't take the task_lock while holding + tasklist_lock for writing, because another CPU that holds the task lock + might take an interrupt that then tries to take tasklist_lock for writing. + + Which would be a nasty deadlock, with one CPU spinning forever in an + interrupt handler (although admittedly you need to really work at + triggering it ;) + + Since the ptrace_attach() code is special and very unusual, just make it + be extra careful, and use trylock+repeat to avoid the possible deadlock. + + Cc: Oleg Nesterov + Cc: Eric W. Biederman + Cc: Roland McGrath + Signed-off-by: Linus Torvalds + +commit ce477ae4f8c75c94587c3157deffad8219db09a0 +Author: Michael S. Tsirkin +Date: Wed May 10 17:58:41 2006 +0300 + + IB/mthca: FMR ioremap fix + + Addresses for ioremap must be calculated off of pci_resource_start; + we can't directly use the bus address as seen by the HCA. Fix the + code that remaps device memory for FMR access. + + Based on patch by Klaus Smolin. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit d8e95e52a9db0e26b37f51ab5140b89da7c4b31e +Author: James Cameron +Date: Wed May 10 13:33:29 2006 -0700 + + sis900: phy for FoxCon motherboard + + 661FX7MI-S motherboard which uses the SiS 661FX chipset. The patch adds + an entry to mii_chip_info for the transceiver. + + The PHY ids were found using the sis900_c_122.diff patch from + http://brownhat.org/sis900.html but that patch didn't solve the problem, + because the PHY at address 1 was already being chosen. + + Without my patch, when bursts of packets arrive from other hosts on a + LAN, the interface dropped one roughly 10% of the time, causing + retransmits. There were fifth second pauses in refresh of large xterms, + and it made Netrek suck. I can provide further test data. + + Workaround in lieu of patch is to use mii-tool to advertise + 100baseTx-HD, then force renegotiation. + + I wasn't able to identify the actual transceiver, so the description + field is a guess. + + This patch is similar to Artur Skawina's patch: + http://marc.theaimsgroup.com/?l=linux-netdev&m=114297516729079&w=2 + + I'm not sure, but I wonder if it means the default behaviour should be + changed, so as to better handle future transceivers. + + Diff is against 2.6.16.13. + + Signed-off-by: James Cameron + Signed-off-by: Stephen Hemminger + +commit 4c1b46226ce4424a93b8ac544e37afb26c8a72c6 +Author: Francois Romieu +Date: Wed May 10 12:48:57 2006 -0700 + + dl2k: use DMA_48BIT_MASK constant + + Typo will be harder with this one. + + Signed-off-by: Francois Romieu + Signed-off-by: Stephen Hemminger + +commit 64b1c2b42b555ef38c475d104f2faf3f6f93690d +Author: Herbert Valerio Riedel +Date: Wed May 10 12:12:57 2006 -0400 + + phy: mdiobus_register(): initialize all phy_map entries + + make sure phy_map entries whose PHY address is masked are initialized + to NULL, given that other code (such as mdiobus_unregister for + instance) assumes that non-NULL phy_map entries are allocated + phy_devices + + Signed-off-by: Herbert Valerio Riedel + Signed-off-by: Stephen Hemminger + +commit f4ea431bb7c4856b930eafca6eb1fb474dae9b40 +Author: Stephen Hemminger +Date: Tue May 9 14:46:54 2006 -0700 + + sky2: ifdown kills irq mask + + Bringing down a port also masks off the status and other IRQ's + needed for device to function due to missing paren's. + + Signed-off-by: Stephen Hemminger + +commit 7fc5b1e3a170d865f625e609c087cf8d84fd285d +Author: Harald Welte +Date: Wed May 10 13:28:52 2006 +0200 + + [Cardman 40x0] Fix udev device creation + + This patch corrects the order of the calls to register_chrdev() and + pcmcia_register_driver(). Now udev correctly creates userspace device + files /dev/cmmN and /dev/cmxN respectively. + + Based on an earlier patch by Jan Niehusmann . + + Signed-off-by: Harald Welte + Signed-off-by: Linus Torvalds + +commit b0013fd47b14fc26eec07a6b2cec0c2a8954e1d7 +Author: Alexey Kuznetsov +Date: Wed May 10 13:24:38 2006 -0700 + + [IPV6]: skb leakage in inet6_csk_xmit + + inet6_csk_xit does not free skb when routing fails. + + Signed-off-by: Alexey Kuznetsov + Signed-off-by: David S. Miller + +commit ac05202e8b83594bf6797d241371e6c752f371e6 +Author: Stephen Hemminger +Date: Wed May 10 13:21:53 2006 -0700 + + [BRIDGE]: Do sysfs registration inside rtnl. + + Now that netdevice sysfs registration is done as part of + register_netdevice; bridge code no longer has to be tricky when adding + it's kobjects to bridges. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit b17a7c179dd3ce7d04373fddf660eda21efc9db9 +Author: Stephen Hemminger +Date: Wed May 10 13:21:17 2006 -0700 + + [NET]: Do sysfs registration as part of register_netdevice. + + The last step of netdevice registration was being done by a delayed + call, but because it was delayed, it was impossible to return any error + code if the class_device registration failed. + + Side effects: + * one state in registration process is unnecessary. + * register_netdevice can sleep inside class_device registration/hotplug + * code in netdev_run_todo only does unregistration so it is simpler. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 6dd727da92290193d0f74fa39f3ad53f423524db +Author: mdr@sgi.com +Date: Mon May 1 13:07:04 2006 -0500 + + [SCSI] mptfc: race between mptfc_register_dev and mptfc_target_alloc + + A race condition exists in mptfc between the thread registering a device + with the fc transport and the scan work generated by the transport. + This race existed prior to the application of the mptfc bug fix patch. + + mptfc_register_dev() calls fc_remote_port_add() with the FC_RPORT_ROLE_TARGET + bit set in the rport ids passed to the function. Having this bit set causes + fc_remote_port_add() to schedule a scan of the device. + + This scan can execute before mptfc_register_dev() can fill in the dd_data + in the rport structure. When this happens, mptfc_target_alloc() will fail + because dd_data is null. + + Attached is a patch which fixes the problem. The patch changes the rport ids + passed to fc_remote_port_add() to not have the TARGET bit set. This prevents + the scan from being scheduled. After mptfc_register_dev() fills in the rport + dd_data field, fc_remote_port_rolechg() is called, changing the role of the + rport to TARGET. Thus, the scan is scheduled after dd_data is filled + in which prevents the failure in mptfc_target_alloc(). + + Signed-off-by: Michael Reed + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit a50bb7b9af9a7c39b2aba15678eb686ae428718c +Author: Jesper Juhl +Date: Tue May 9 23:14:35 2006 -0700 + + [TG3]: Fix possible NULL deref in tg3_run_loopback(). + + tg3_run_loopback doesn't check that dev_alloc_skb() returns anything + useful. + + Even if dev_alloc_skb() fails to return an skb to us we'll happily go + on and assume it did, so we risk dereferencing a NULL pointer. Much + better to fail gracefully by returning -ENOMEM than crashing here. + + Signed-off-by: Jesper Juhl + Signed-off-by: David S. Miller + +commit 5941d079f2c3bdf0dffed1afb8941678fcd0bcb7 +Author: Roland Dreier +Date: Tue May 9 22:54:59 2006 -0700 + + IPoIB: Free child interfaces properly + + When deleting a child interface with a non-default P_Key via + /sys/class/net/ibX/delete_child, the interface must be freed with + free_netdev() (rather than kfree() on the private data). + + Signed-off-by: Roland Dreier + +commit 8c1056839e808aad728db86d739ffec71d2d1db8 +Author: Herbert Xu +Date: Tue May 9 15:27:54 2006 -0700 + + [NET] linkwatch: Handle jiffies wrap-around + + The test used in the linkwatch does not handle wrap-arounds correctly. + Since the intention of the code is to eliminate bursts of messages we + can afford to delay things up to a second. Using that fact we can + easily handle wrap-arounds by making sure that we don't delay things + by more than one second. + + This is based on diagnosis and a patch by Stefan Rompf. + + Signed-off-by: Herbert Xu + Acked-by: Stefan Rompf + Signed-off-by: David S. Miller + +commit 788252e6616afc75098397cc6b0bcb5482ad07ac +Author: Christoph Hellwig +Date: Tue May 9 15:27:04 2006 -0700 + + [IRDA]: Switching to a workqueue for the SIR work + + Since sir_kthread.c pretty much duplicates the workqueue + functionality, we'd better switch. The SIR fsm has been merged into + sir_dev.c and thus sir_kthread.c is deleted. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit d94c77b9b55f2c868ffd63cbd1f9749755c4b3d0 +Author: David Brownell +Date: Tue May 9 15:26:11 2006 -0700 + + [IRDA]: smsc-ircc: Minimal hotplug support. + + Minimal PNP hotplug support for the smsc-ircc2 driver. A modular + driver will be modprobed via hotplug, but still bypasses driver model + probing. + + Signed-off-by: David Brownell + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 11766199a0bb9a7ba57510119e7340140e7c3e24 +Author: Adrian Bunk +Date: Tue May 9 15:25:25 2006 -0700 + + [IRDA]: Removing unused EXPORT_SYMBOLs + + This patch removes the following unused EXPORT_SYMBOL's: + - irias_find_attrib + - irias_new_string_value + - irias_new_octseq_value + + Signed-off-by: Adrian Bunk + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit f353976dc2f31c9be092d4cb9476a39ba3973926 +Author: Samuel Ortiz +Date: Tue May 9 15:24:49 2006 -0700 + + [IRDA]: New maintainer. + + As agreed with Jean Tourrilhes, I am taking over IrDA maintainership. + + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit f07d5b946510a54937a75a3654941e855ffdc4c2 +Author: Alan Stern +Date: Tue May 9 15:23:03 2006 -0700 + + [NET]: Make netdev_chain a raw notifier. + + From: Alan Stern + + This chain does it's own locking via the RTNL semaphore, and + can also run recursively so adding a new mutex here was causing + deadlocks. + + Signed-off-by: David S. Miller + +commit 63cbd2fda38f3d1f107c4fd6261e5660be3eccf9 +Author: Wei Yongjun +Date: Tue May 9 15:18:50 2006 -0700 + + [IPV4]: ip_options_fragment() has no effect on fragmentation + + Fix error point to options in ip_options_fragment(). optptr get a + error pointer to the ipv4 header, correct is pointer to ipv4 options. + + Signed-off-by: Wei Yongjun + Signed-off-by: David S. Miller + +commit 3a01c1ef75e1d84752ddef607c389bbde9c2576e +Author: Stefan Rompf +Date: Tue May 9 15:15:35 2006 -0700 + + [NET]: Add missing operstates documentation. + + Signed-off-by: Stefan Rompf + Signed-off-by: David S. Miller + +commit 41b11afb048d67cc0e221191191ba0b2012dce47 +Author: Pavel Machek +Date: Tue May 9 22:27:51 2006 +0100 + + [ARM] 3508/1: Update collie defconfig + + Patch from Pavel Machek + + Update collie defconfig to something that can bring closer-to-working + system to its user. + + Signed-off-by: Pavel Machek + Signed-off-by: Russell King + +commit 1929ab8c6860a4a94109eed038b0fa9d12c81721 +Author: Russell King +Date: Tue May 9 22:14:28 2006 +0100 + + [ARM] Fix thread struct allocator for SMP case + + The ARM thread struct allocator is racy on SMP systems. Fix it by + turning it into a per-cpu based allocator. This also allows keeps + the cache cache warm for thread structs and kernel stacks. + + Signed-off-by: Russell King + +commit 95563d343fec8d3e2f667c95230ac4ab7674b757 +Author: Jordan Crouse +Date: Fri Apr 28 22:53:30 2006 +0200 + + [PATCH] scx200_acb: Fix for the CS5535 errata + + This is a fix for the CS5535 errata 111: + + When the SMBus controller tries to access a non-existing device, it sets + the NEGACK bit, SMBus I/O offset 01h[4], to 1 after it detects no + acknowledge at the ninth clock. The specification states that the bit + can be cleared by writing a 1 to it, but under certain circumstances it + is possible for this bit to not clear. + + Writing a 0 to the bit resets the internal state machine and clears the + issue. + + Since all writable bits in ACBST are W1C bits (write-one-to-clear) the + second write doesn't affect any other logic except the buggy NEGACK + state machine. The second write clears an internal register which is + responsible for "overwriting" the NEGACK bit in ACBST. + + Signed-off-by: Jordan Crouse + Signed-off-by: Andrew Morton + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit b33d0798e6cfae1fcee75afc808fe5690a48a814 +Author: Jean Delvare +Date: Wed Apr 26 23:00:16 2006 +0200 + + [PATCH] scx200_acb: Fix resource name use after free + + We can't pass a string on the stack to request_region. As soon as we + leave the function that stack is gone and the string is lost. Let's + use the same string we identify the i2c_adapter with instead, it's + more simple, more consistent, and just works. + + This is the second half of fix to bug #6445. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 6f9c2963888e60e46a9e0bd09a25740abce29262 +Author: Jean Delvare +Date: Wed Apr 26 22:50:32 2006 +0200 + + [PATCH] scx200_acb: Fix return on init error + + The scx200_acb driver shouldn't return failure after initialization + if it successfully registered at least one i2c_adapter, else we are + leaking resources. The driver was OK in that respect up to 2.6.16, a + recent change broke it. + + This is part of the fix to bug #6445. + + Signed-off-by: Jean Delvare + Cc: Ben Gardner + Signed-off-by: Greg Kroah-Hartman + +commit a3285aa4eecd722508dab01c4932b11b4ba80134 +Author: Roland Dreier +Date: Tue May 9 10:50:29 2006 -0700 + + IB/mthca: Fix race in reference counting + + Fix races in in destroying various objects. If a destroy routine + waits for an object to become free by doing + + wait_event(&obj->wait, !atomic_read(&obj->refcount)); + /* now clean up and destroy the object */ + + and another place drops a reference to the object by doing + + if (atomic_dec_and_test(&obj->refcount)) + wake_up(&obj->wait); + + then this is susceptible to a race where the wait_event() and final + freeing of the object occur between the atomic_dec_and_test() and the + wake_up(). And this is a use-after-free, since wake_up() will be + called on part of the already-freed object. + + Fix this in mthca by replacing the atomic_t refcounts with plain old + integers protected by a spinlock. This makes it possible to do the + decrement of the reference count and the wake_up() so that it appears + as a single atomic operation to the code waiting on the wait queue. + + While touching this code, also simplify mthca_cq_clean(): the CQ being + cleaned cannot go away, because it still has a QP attached to it. So + there's no reason to be paranoid and look up the CQ by number; it's + perfectly safe to use the pointer that the callers already have. + + Signed-off-by: Roland Dreier + +commit d945e1df28ca07642b3e1a9b9d07074ba5f76be0 +Author: Roland Dreier +Date: Tue May 9 10:50:28 2006 -0700 + + IB/srp: Fix tracking of pending requests during error handling + + If a SCSI abort completes, or the command completes successfully, then + the driver must remove the command from its queue of pending + commands. Similarly, if a device reset succeeds, then all commands + queued for the given device must be removed from the queue. + + Signed-off-by: Roland Dreier + +commit d8b9f23b23e080d820e3c0aa5ccd7834c26ebf96 +Author: Ralph Campbell +Date: Tue May 9 10:50:28 2006 -0700 + + IB: Fix display of 4-bit port counters in sysfs + + The code to display local_link_integrity_errors and + excessive_buffer_overrun_errors in + /sys/class/infiniband//ports//counters/ + uses the wrong shift to extract the 4 bit values. + + Signed-off-by: Ralph Campbell + Signed-off-by: Roland Dreier + +commit 72a9f958421a519e69b3e7b409948c3a294f4a32 +Author: Razvan Gavril +Date: Thu May 4 11:35:49 2006 +0300 + + [PATCH] USB: ftdi_sio: add device id for ACT Solutions HomePro ZWave interface + + Signed-off-by: Razvan Gavril + Signed-off-by: Greg Kroah-Hartman + +commit 20a0f47e18c646bcc772282512fc59e56b2fc968 +Author: Ian Abbott +Date: Thu May 4 11:34:25 2006 +0100 + + [PATCH] USB: ftdi_sio: Add support for HCG HF Dual ISO RFID Reader + + This patch adds support for ACG Identification Technologies GmbH's HF + Dual ISO Reader (an RFID tag reader) to the ftdi_sio driver's device ID + table. The product ID was supplied by anotonios (anton at goto10 dot + org) on the ftdi-usb-sio-devel list and subsequently verified by myself + (Ian Abbott). + + Signed-off-by: Ian Abbott + Signed-off-by: Greg Kroah-Hartman + +commit 77ef6c4d6e23653a79eedacdd6d1d0da7083e59c +Author: Pete Zaitcev +Date: Wed May 3 00:16:00 2006 -0700 + + [PATCH] USB: ub oops in block_uevent + + In kernel 2.6.16, if a mounted storage device is removed, an oops happens + because ub supplies an interface device (and kobject) to the block layer, + but neglects to pin it. And apparently, the block layer expects its users + to pin device structures. + + The code in ub was broken this way for years. But the bug was exposed only + by 2.6.16 when it started to call block_uevent on close, which traverses + device structures (kobjects actually). + + Signed-off-by: Pete Zaitcev + Signed-off-by: Greg Kroah-Hartman + +commit 436f5762bcd4929825a0725d4bc78337e6fc0d8f +Author: Alan Stern +Date: Tue May 2 15:22:41 2006 -0400 + + [PATCH] USB: usbcore: don't check the device's power source + + The choose_configuration() routine contains code the determine the + device's power source, so that configurations requiring external power + can be ruled out if the device is running on bus power. Unfortunately + it turns out that some devices have errors in their config descriptors + and other devices don't like the GET_DEVICE_STATUS request. + + Since that information wasn't used for anything else, this patch (as673) + removes the code, leaving only a comment. It fixes bugzilla entry + #6448. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit db4cefaaea4c6d67cdaebfd315abc791c5c9d22f +Author: David Brownell +Date: Mon May 1 22:07:13 2006 -0700 + + [PATCH] USB: fix OHCI PM regression + + This fixes a small regression in USB controller power usage for many + OHCI controllers, notably including every non-PCI version of OHCI: on + those systems, the runtime autosuspend mechanism is no longer enabled. + + The change moves to saner defaults. All root hubs are expected to handle + remote wakeup (and hence autosuspend), although drivers for buggy silicon + may override that default. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 7e713b825610de9a9584c189c72e2d9f2326359c +Author: David Brownell +Date: Mon May 1 14:02:45 2006 -0700 + + [PATCH] USB: pegasus fixes (logstorm, suspend) + + Teach "pegasus" to handle a few of the disconnect fault paths + without hundreds of usless syslog messages. + + Handle the carrier check workqueue entry even if the driver has + not been opened. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 6275cdfa0fe032208937a3567ebb8bcfd42d20b1 +Author: Duncan Sands +Date: Fri Apr 28 18:52:16 2006 +0200 + + [PATCH] USBATM: fix modinfo output + + Because of the way stringify works, using an expression + like 64 * 1024 for UDSL_MAX_BUF_SIZE results in 64 * 1024 + turning up in the modinfo output instead of 65536. So use + 65536 directly (this was the only way I found of fixing this). + + Signed-off-by: Duncan Sands + Signed-off-by: Greg Kroah-Hartman + +commit 67c752b41a4238c1a2d7eebcd061ff8c1127d3e9 +Author: Duncan Sands +Date: Fri Apr 28 18:44:06 2006 +0200 + + [PATCH] USBATM: change the default speedtouch iso altsetting + + The maximum possible bandwidth for a speedtouch modem is about 7Mbaud. + You can only get this by using isochronous urbs (enable_isoc=1) and + altsetting 3. With the current default altsetting of 2, the modem + maxes out at about 4Mbaud. So change the default altsetting to 3 + when using isochronous urbs. It would be nice to base the altsetting + on the detected line speed, but that's hard given the current design. + + Signed-off-by: Duncan Sands + Signed-off-by: Greg Kroah-Hartman + +commit 839ab1d4ce4dfd7e6c189391a82c584292488b41 +Author: David Brownell +Date: Wed Apr 26 14:39:11 2006 -0700 + + [PATCH] USB: fix bug in ohci-hcd.c ohci_restart() + + A loop on a power-lost resume path used the wrong index. + I suspect khubd has been working around such bugs. + Noticed by Andreas Mohr . + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit c51e078f82096a7d35ac8ec2416272e843a0e1c4 +Author: Marcelo Tosatti +Date: Fri May 5 17:09:29 2006 -0300 + + [PATCH] ppc32/8xx: Fix r3 trashing due to 8MB TLB page instantiation + + Instantiation of 8MB pages on the TLB cache for the kernel static + mapping trashes r3 register on !CONFIG_8xx_CPU6 configurations. + This ensures r3 gets saved and restored. + + Signed-off-by: Marcelo Tosatti + Signed-off-by: Paul Mackerras + +commit e4de00215c3af02116db3d486bf53700dfe10619 +Author: Paul Mackerras +Date: Tue May 9 16:00:59 2006 +1000 + + powerpc/32: Define an is_kernel_addr() to fix ARCH=ppc compilation + + My commit 6bfd93c32a5065d0e858780b3beb0b667081601c broke the ARCH=ppc + compilation by using the is_kernel_addr() macro in asm/uaccess.h. + This fixes it by defining a suitable is_kernel_addr() for ARCH=ppc. + + Signed-off-by: Paul Mackerras + +commit 8ec93459655a3618dedec6360bb28d63f0010ef6 +Author: Jens Osterkamp +Date: Thu May 4 05:59:41 2006 -0400 + + spidernet: enable support for bcm5461 ethernet phy + + A newer board revision changed the type of ethernet phy. + Moreover, this generalizes the way that a phy gets switched + into fiber mode when autodetection is not available. + + Signed-off-by: Jens Osterkamp + Signed-off-by: Arnd Bergmann + Signed-off-by: Stephen Hemminger + +commit b636d17a3bee8ba988e78e4bc8262f0dc3fad8ab +Author: Jens Osterkamp +Date: Thu May 4 05:59:56 2006 -0400 + + spidernet: introduce new setting + + We found a new chip setting that we need in order + to make the driver work more reliable. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Stephen Hemminger + +commit aedc0e520e5ae9ba1342c25c4604d18fb236c2bc +Author: Sergei Shtylyov +Date: Tue May 9 00:58:28 2006 +0400 + + Fix RTL8019AS init for Toshiba RBTX49xx boards + + Ensure that 8-bit mode is selected for the on-board Realtek RTL8019AS chip + on Toshiba RBHMA4x00, get rid of the duplicate #ifdef's when setting + ei_status.word16. + The chip's datasheet says that the PSTOP register shouldn't exceed 0x60 in + 8-bit mode -- ensure this too. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Stephen Hemminger + +commit 8cd35da094bed8a41eb722c1d03eab24d57bf706 +Author: Herbert Valerio Riedel +Date: Mon May 1 15:37:09 2006 +0200 + + au1000_eth.c: use ether_crc() from + + since the au1000 driver already selects the CRC32 routines, simply replace + the internal ether_crc() implementation with the semantically equivalent + one from + + Signed-off-by: Herbert Valerio Riedel + Signed-off-by: Stephen Hemminger + +commit 6d4b0f617d577975108ccc7e3b0c7dbe50144df6 +Author: Stephen Hemminger +Date: Mon May 8 15:11:34 2006 -0700 + + sky2: version 1.3 + + Update version number, to track changes. + + Signed-off-by: Stephen Hemminger + +commit ed6d32c7a927bfccf921d15a3e25160f4528c3eb +Author: Stephen Hemminger +Date: Mon May 8 15:11:33 2006 -0700 + + Add more support for the Yukon Ultra chip found in dual core centino laptops. + + The newest Yukon Ultra chipset's require more special tweaks. + They seem to be like the Yukon XL chipsets. This code is transliterated + from the latest SysKonnect driver; I don't have any Ultra hardware. + + Signed-off-by: Stephe Hemminger + Signed-off-by: Stephen Hemminger + +commit 72cb8529208020484cecd69bbf87719b50ee6313 +Author: Stephen Hemminger +Date: Mon May 8 15:11:32 2006 -0700 + + sky2: synchronize irq on remove + + Need to make sure interrupt is not racing with unregister of + network device. + + Signed-off-by: Stephen Hemminger + +commit e71ebd73276cc21efc74aba4118ef037cd32e50a +Author: Stephen Hemminger +Date: Mon May 8 15:11:31 2006 -0700 + + sky2: dont write status ring + + It is more efficient not to write the status ring from the + processor and just read the active portion. + + Signed-off-by: Stephen Hemminger + +commit 01bd75645f94d49cb7ffd61022890166ce00ec2a +Author: Stephen Hemminger +Date: Mon May 8 15:11:30 2006 -0700 + + sky2: edge triggered workaround enhancement + + Need to make the edge-triggered workaround timer faster to get marginally + better peformance. The test_and_set_bit in schedule_prep() acts as a barrier + already. Make it a module parameter so that laptops who are concerned + about power can set it to 0; and user's stuck with broken BIOS's + can turn the driver into pure polling. + + Signed-off-by: Stephen Hemminger + +commit cb5d9547307f44f210f88c829bad4249eeb24bc3 +Author: Stephen Hemminger +Date: Mon May 8 15:11:29 2006 -0700 + + sky2: use mask instead of modulo operation + + Gcc isn't smart enough to know that it can do a modulo + operation with power of 2 constant by doing a mask. + So add macro to do it for us. + + Signed-off-by: Stephen Hemminger + +commit f55925d7eb04f936ab4c001f10e3e9c74c1297ae +Author: Stephen Hemminger +Date: Mon May 8 15:11:28 2006 -0700 + + sky2: tx ring index mask fix + + Mask for transmit ring status was picking up bits from the + unused sync ring. They were always zero, so far... + Also, make sure to remind self not to make tx ring too big. + + Signed-off-by: Stephen Hemminger + +commit 1e5f1283a2aed429f4457e2eb875b1928a6643df +Author: Stephen Hemminger +Date: Mon May 8 15:11:27 2006 -0700 + + sky2: status irq hang fix + + The status interrupt flag should be cleared before processing, + not afterwards to avoid race. Need to process in poll routine + even if no new interrupt status. This is a normal occurrence when + more than 64 frames (NAPI weight) are processed in one poll routine. + + Signed-off-by: Stephen Hemminger + +commit d324031245abbb54e4e0321004430826052b6c37 +Author: Stephen Hemminger +Date: Mon May 8 15:11:26 2006 -0700 + + sky2: backout NAPI reschedule + + This is a backout of earlier patch. + + The whole rescheduling hack was a bad idea. It doesn't really solve + the problem and it makes the code more complicated for no good reason. + + Signed-off-by: Stephen Hemminger + +commit 1f8aa2f66b7253d1a42ead0142c7a00d2df5ac89 +Author: David S. Miller +Date: Mon May 8 15:13:14 2006 -0700 + + [SPARC64]: Update defconfig. + + Signed-off-by: David S. Miller + +commit 601e7f024edbea8018de34c83a7398623214e636 +Author: Linus Torvalds +Date: Mon May 8 13:38:42 2006 -0700 + + Revert "kbuild: fix modpost segfault for 64bit mipsel kernel" + + This reverts commit c8d8b837ebe4b4f11e1b0c4a2bdc358c697692ed, which + caused problems for the x86 build. Quoth Sam: + + "It was discussed on mips list but apparently the fix was bogus. I + will not have time to look into it so mips can carry this local fix + until we get a proper fix in mainline." + + Signed-off-by: Linus Torvalds + +commit f9d8f063fee645a23776519fb5c910b9d9435270 +Author: Russell King +Date: Mon May 8 20:31:11 2006 +0100 + + [ARM] Update mach-types + + Signed-off-by: Russell King + +commit 5eb204eb1fff7387d3ab3e6225c0099dc34e69db +Author: Russell King +Date: Mon May 8 20:30:24 2006 +0100 + + [ARM] Update versatile_defconfig + + Update versatile default configuration, enabling the AACI sound driver, + VFP and Versatile AB support. + + Signed-off-by: Russell King + +commit 6810b548b25114607e0814612d84125abccc0a4f +Author: Andi Kleen +Date: Mon May 8 15:17:31 2006 +0200 + + [PATCH] x86_64: Move ondemand timer into own work queue + + Taking the cpu hotplug semaphore in a normal events workqueue + is unsafe because other tasks can wait for any workqueues with + it hold. This results in a deadlock. + + Move the DBS timer into its own work queue which is not + affected by other work queue flushes to avoid this. + + Has been acked by Venkatesh. + + Cc: venkatesh.pallipadi@intel.com + Cc: cpufreq@lists.linux.org.uk + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit ac71d12c990526b01ef6cfe50907ef8530a30331 +Author: Andi Kleen +Date: Mon May 8 15:17:28 2006 +0200 + + [PATCH] x86_64: Avoid EBDA area in early boot allocator + + Based on analysis&patch from Robert Hentosch + + Observed on a Dell PE6850 with 16GB + + The problem occurs very early on, when the kernel allocates space for the + temporary memory map called bootmap. The bootmap overlaps the EBDA region. + EBDA region is not historically reserved in the e820 mapping. When the + bootmap is freed it marks the EBDA region as usable. + + If you notice in setup.c there is already code to work around the EBDA + in reserve_ebda_region(), this check however occurs after the bootmap + is allocated and doesn't prevent the bootmap from using this range. + + AK: I redid the original patch. Thanks also to Jan Beulich for + spotting some mistakes. + + Cc: Robert_Hentosch@dell.com + Cc: jbeulich@novell.com + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 8b1ffe9550e71224c43d8c754245bd76f4ea9bb8 +Author: Corey Minyard +Date: Mon May 8 15:17:25 2006 +0200 + + [PATCH] x86_64: add nmi_exit to die_nmi + + Playing with NMI watchdog on x86_64, I discovered that it didn't + do what I expected. It always panic-ed, even when it didn't + happen from interrupt context. This patch solves that + problem for me. Also, in this case, do_exit() will be called + with interrupts disabled, I believe. Would it be wise to also + call local_irq_enable() after nmi_exit()? + [Yes I added it -AK] + + Currently, on x86_64, any NMI watchdog timeout will cause a panic + because the irq count will always be set to be in an interrupt + when do_exit() is called from die_nmi(). If we add nmi_exit() to + the die_nmi() call (since the nmi will never exit "normally") + it seems to solve this problem. The following small program + can be used to trigger the NMI watchdog to reproduce this: + main () + { + iopl(3); + for (;;) asm("cli"); + } + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit cdc60a4c8e71c4bcf67e83fac6c0cabd0ff19bfe +Author: Corey Minyard +Date: Mon May 8 15:17:22 2006 +0200 + + [PATCH] x86_64: fix die_lock nesting + + I noticed this when poking around in this area. + + The oops_begin() function in x86_64 would only conditionally claim + the die_lock if the call is nested, but oops_end() would always + release the spinlock. This patch adds a nest count for the die lock + so that the release of the lock is only done on the final oops_end(). + + Signed-off-by: Corey Minyard + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 5192d84e4c32cd335fd572e5ff0712041f45f7e7 +Author: Andi Kleen +Date: Mon May 8 15:17:19 2006 +0200 + + [PATCH] x86_64: Check for too many northbridges in IOMMU code + + The IOMMU code can only deal with 8 northbridges. Error out when + more are found. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit e0c1e9bf81badc7ba59e120d6218101903d5d103 +Author: Kimball Murray +Date: Mon May 8 15:17:16 2006 +0200 + + [PATCH] x86_64: avoid IRQ0 ioapic pin collision + + The patch addresses a problem with ACPI SCI interrupt entry, which gets + re-used, and the IRQ is assigned to another unrelated device. The patch + corrects the code such that SCI IRQ is skipped and duplicate entry is + avoided. Second issue came up with VIA chipset, the problem was caused by + original patch assigning IRQs starting 16 and up. The VIA chipset uses + 4-bit IRQ register for internal interrupt routing, and therefore cannot + handle IRQ numbers assigned to its devices. The patch corrects this + problem by allowing PCI IRQs below 16. + + Cc: len.brown@intel.com + + Signed-off by: Natalie Protasevich + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 75dff55af9a989293e9f9bacf049858f4262bc08 +Author: Trond Myklebust +Date: Sun May 7 23:02:42 2006 -0400 + + [PATCH] fs/locks.c: Fix lease_init + + It is insane to be giving lease_init() the task of freeing the lock it is + supposed to initialise, given that the lock is not guaranteed to be + allocated on the stack. This causes lockups in fcntl_setlease(). + Problem diagnosed by Daniel Hokka Zakrisson + + Also fix a slab leak in __setlease() due to an uninitialised return value. + Problem diagnosed by Björn Steinbrink. + + Signed-off-by: Trond Myklebust + Tested-by: Daniel Hokka Zakrisson + Signed-off-by: Linus Torvalds + +commit e63a3690013a475746ad2cea998ebb534d825704 +Author: Nathan Scott +Date: Mon May 8 19:51:58 2006 +1000 + + [XFS] Fix a possible metadata buffer (AGFL) refcount leak when fixing an + AG freelist. + + SGI-PV: 952681 + SGI-Modid: xfs-linux-melb:xfs-kern:25902a + + Signed-off-by: Nathan Scott + +commit b1ecdda9313ec5d2f971993f44f6b657acf70cff +Author: Nathan Scott +Date: Mon May 8 19:51:42 2006 +1000 + + [XFS] Fix a project quota space accounting leak on rename. + + SGI-PV: 951636 + SGI-Modid: xfs-linux-melb:xfs-kern:25811a + + Signed-off-by: Nathan Scott + +commit d08d389d5aef0509edba7ee42cd6c6a3998fee22 +Author: Nathan Scott +Date: Mon May 8 19:51:28 2006 +1000 + + [XFS] Fix a possible forced shutdown due to mishandling write barriers + with remount,ro. + + SGI-PV: 951944 + SGI-Modid: xfs-linux-melb:xfs-kern:25742a + + Signed-off-by: Nathan Scott + +commit 4cfbd7eb24975e942c3b6c0119c953c3a7a5f787 +Author: Martin Habets +Date: Sun May 7 23:43:19 2006 -0700 + + [SPARC]: show device name in /proc/dvma_map + + This patch will set the device name in a resource, which will be shown + in /proc/dvma_map. + + Signed-off-by: Martin Habets + Signed-off-by: David S. Miller + +commit bb3426ad6659282d9244d4909e69aa639d0360d0 +Author: Martin Habets +Date: Sun May 7 23:04:06 2006 -0700 + + [SPARC]: Remove duplicate symbol exports + + This patch resolves the following build warnings seen in 2.6.17-rc3: + WARNING: vmlinux: 'sys_close' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'memchr' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strstr' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strnlen' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strrchr' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strchr' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strcmp' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strncat' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strcat' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strncpy' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strcpy' exported twice. Previous export was in vmlinux + + Signed-off-by: Martin Habets + Signed-off-by: David S. Miller + +commit fd5f0cd6b0cef59ba18e5ac13be5b2775fa6ec28 +Author: Jan Beulich +Date: Tue May 2 12:33:20 2006 +0200 + + kbuild: Do not overwrite makefile as anohter user + + Change the conditional of the outputmakefile rule to be evaluated entirely + in make, and add a conditional to not touch the generated makefile when e.g. + running 'make install' as root while the build was done as non-root. Also + adjust the comment describing this, and move the message printing and + redirection to mkmakefile. + + Signed-off-by: Jan Beulich + Signed-off-by: Sam Ravnborg + +commit 74fae122eb9f0db8b8718b9851c31c2f374fb134 +Author: Bellido Nicolas +Date: Sun May 7 22:49:24 2006 +0100 + + [ARM] 3507/1: Replace map_desc.physical with map_desc.pfn: aaed2000 + + Patch from Bellido Nicolas + + aaed2000 map_desc.pfn conversion + + Signed-off-by: Nicolas Bellido + Signed-off-by: Russell King + +commit 9a708becafe99fa32211e8c53dbacefdb4b11718 +Author: Bellido Nicolas +Date: Sun May 7 22:49:23 2006 +0100 + + [ARM] 3506/1: aaec2000: debug-macro.S needs hardware.h + + Patch from Bellido Nicolas + + Include hardware.h in debug-macro.S, otherwise io_p2v is undefined. + + Signed-off-by: Nicolas Bellido + Signed-off-by: Russell King + +commit 201be92a4243e58bcc6c0878489bcc2aaaf51c80 +Author: Bellido Nicolas +Date: Sun May 7 22:49:22 2006 +0100 + + [ARM] 3505/1: aaec2000: entry-macro.S needs asm/arch/irqs.h + + Patch from Bellido Nicolas + + Since git commit 2b78838842346da390e8547cd37035184376d506, entry-macro.S needs to include asm/arch/irqs.h + + Signed-off-by: Nicolas Bellido + Signed-off-by: Russell King + +commit 8a33b224ecb576e27695ff8922c8e579dbf7070e +Author: Bellido Nicolas +Date: Sun May 7 22:49:21 2006 +0100 + + [ARM] 3504/1: Fix clcd includes for aaec2000 + + Patch from Bellido Nicolas + + Since this patch: + [ARM] 3366/1: Allow the 16bpp mode configuration in the CLCD control register + + linux/amba/bus.h needs to be included before linux/amba/clcd.h + + Signed-off-by: Nicolas Bellido + Signed-off-by: Russell King + +commit 16b6dd4419cdef637a907cfc26594e4ebe688975 +Author: Bellido Nicolas +Date: Sun May 7 22:49:21 2006 +0100 + + [ARM] 3503/1: Fix map_desc structure for aaec2000 + + Patch from Bellido Nicolas + + Patch: + [ARM] 2982/1: Replace map_desc.physical with map_desc.pfn: aaec2000 + incorrectly expanded the struct map_desc for aaec2000. + + Signed-off-by: Nicolas Bellido + Signed-off-by: Russell King + +commit 216251cff98838f2b79c53fc8a9e76884944be7d +Author: Sascha Hauer +Date: Sun May 7 18:56:27 2006 +0100 + + [ARM] 3501/1: i.MX: fix lowlevel debug macros + + Patch from Sascha Hauer + + This patch fixes the addruart macro to work with both mmu enabled and + disabled. + + Signed-off-by: Sascha Hauer + Signed-off-by: Russell King + +commit f5b40e363ad6041a96e3da32281d8faa191597b9 +Author: Linus Torvalds +Date: Sun May 7 10:49:33 2006 -0700 + + Fix ptrace_attach()/ptrace_traceme()/de_thread() race + + This holds the task lock (and, for ptrace_attach, the tasklist_lock) + over the actual attach event, which closes a race between attacking to a + thread that is either doing a PTRACE_TRACEME or getting de-threaded. + + Thanks to Oleg Nesterov for reminding me about this, and Chris Wright + for noticing a lost return value in my first version. + + Signed-off-by: Linus Torvalds + +commit 0eb1bd210d94e9f2c87551d794bb2755e5e24eed +Author: Randy Dunlap +Date: Sat May 6 18:34:10 2006 -0700 + + [IRDA] irda-usb: use NULL instead of 0 + + Use NULL instead of 0 for a null pointer value (sparse warning): + + drivers/net/irda/irda-usb.c:1781:30: warning: Using plain integer as NULL pointer + + Also, correct timeout argument to use milliseconds instead of jiffies. + + Signed-off-by: Randy Dunlap + Signed-off-by: David S. Miller + +commit 0182bd2b1e2fb45a55f110795bfdb9aa5f6c6b0b +Author: Hua Zhong +Date: Sat May 6 18:11:39 2006 -0700 + + [IPV4]: Remove likely in ip_rcv_finish() + + This is another result from my likely profiling tool + (dwalker@mvista.com just sent the patch of the profiling tool to + linux-kernel mailing list, which is similar to what I use). + + On my system (not very busy, normal development machine within a + VMWare workstation), I see a 6/5 miss/hit ratio for this "likely". + + Signed-off-by: Hua Zhong + Signed-off-by: David S. Miller + +commit fe9925b551a95fae6ec61470c79f8b701a2fe928 +Author: Stephen Hemminger +Date: Sat May 6 17:56:03 2006 -0700 + + [NET]: Create netdev attribute_groups with class_device_add + + Atomically create attributes when class device is added. This avoids + the race between registering class_device (which generates hotplug + event), and the creation of attribute groups. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: David S. Miller + +commit 1498221d51a43d5fa1a580618591497d90f957d9 +Author: Stephen Hemminger +Date: Sat May 6 17:55:11 2006 -0700 + + [CLASS DEVICE]: add attribute_group creation + + Extend the support of attribute groups in class_device's to allow + groups to be created as part of the registration process. This allows + network device's to avoid race between registration and creating + groups. + + Note that unlike attributes that are a property of the class object, + the groups are a property of the class_device object. This is done + because there are different types of network devices (wireless for + example). + + Signed-off-by: Stephen Hemminger + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: David S. Miller + +commit f12267011d16b1722e71aa12cd3e89eb70a9edd6 +Author: Russell King +Date: Sat May 6 11:29:21 2006 +0100 + + [ARM] rtc-sa1100: fix compiler warnings and error cleanup + + Fix: + drivers/rtc/rtc-sa1100.c: In function `sa1100_rtc_proc': + drivers/rtc/rtc-sa1100.c:298: warning: unsigned int format, long unsigned int arg (arg 3) + + and arrange for sa1100_rtc_open() to pass the devid to free_irq() + rather than NULL. + + Signed-off-by: Russell King + +commit 19ca5d27e15c10d8529984ecd98dcba2637edcd2 +Author: Russell King +Date: Sat May 6 11:26:30 2006 +0100 + + [ARM] Allow SA1100 RTC alarm to be configured for wakeup + + The SA1100 RTC alarm can be configured to wake up the CPU + from sleep mode, and the RTC driver has been using the + API to configure this mode. Unfortunately, the code was + which sets the required bit in the hardware was missing. + + Signed-off-by: Russell King + +commit 5528e568a760442e0ec8fd2dea1f0791875a066b +Author: John Heffner +Date: Fri May 5 17:41:44 2006 -0700 + + [TCP]: Fix snd_cwnd adjustments in tcp_highspeed.c + + Xiaoliang (David) Wei wrote: + > Hi gurus, + > + > I am reading the code of tcp_highspeed.c in the kernel and have a + > question on the hstcp_cong_avoid function, specifically the following + > AI part (line 136~143 in net/ipv4/tcp_highspeed.c ): + > + > /* Do additive increase */ + > if (tp->snd_cwnd < tp->snd_cwnd_clamp) { + > tp->snd_cwnd_cnt += ca->ai; + > if (tp->snd_cwnd_cnt >= tp->snd_cwnd) { + > tp->snd_cwnd++; + > tp->snd_cwnd_cnt -= tp->snd_cwnd; + > } + > } + > + > In this part, when (tp->snd_cwnd_cnt == tp->snd_cwnd), + > snd_cwnd_cnt will be -1... snd_cwnd_cnt is defined as u16, will this + > small chance of getting -1 becomes a problem? + > Shall we change it by reversing the order of the cwnd++ and cwnd_cnt -= + > cwnd? + + Absolutely correct. Thanks. + + Signed-off-by: John Heffner + Signed-off-by: David S. Miller + +commit f530937b2cccdb131cb459977943c98421ab09b3 +Author: Ralf Baechle +Date: Fri May 5 17:19:26 2006 -0700 + + [NETROM/ROSE]: Kill module init version kernel log messages. + + There are out of date and don't tell the user anything useful. + The similar messages which IPV4 and the core networking used + to output were killed a long time ago. + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 134af34632a7b3b0a98a79a2e56bf9cc927e0eac +Author: Herbert Xu +Date: Fri May 5 17:09:13 2006 -0700 + + [DCCP]: Fix sock_orphan dead lock + + Calling sock_orphan inside bh_lock_sock in dccp_close can lead to dead + locks. For example, the inet_diag code holds sk_callback_lock without + disabling BH. If an inbound packet arrives during that admittedly tiny + window, it will cause a dead lock on bh_lock_sock. Another possible + path would be through sock_wfree if the network device driver frees the + tx skb in process context with BH enabled. + + We can fix this by moving sock_orphan out of bh_lock_sock. + + The tricky bit is to work out when we need to destroy the socket + ourselves and when it has already been destroyed by someone else. + + By moving sock_orphan before the release_sock we can solve this + problem. This is because as long as we own the socket lock its + state cannot change. + + So we simply record the socket state before the release_sock + and then check the state again after we regain the socket lock. + If the socket state has transitioned to DCCP_CLOSED in the time being, + we know that the socket has been destroyed. Otherwise the socket is + still ours to keep. + + This problem was discoverd by Ingo Molnar using his lock validator. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 1c29fc4989bc2a3838b2837adc12b8aeb0feeede +Author: Stephen Hemminger +Date: Fri May 5 17:07:13 2006 -0700 + + [BRIDGE]: keep track of received multicast packets + + It makes sense to add this simple statistic to keep track of received + multicast packets. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 35d63edb1c807bc5317e49592260e84637bc432e +Author: Sridhar Samudrala +Date: Fri May 5 17:05:23 2006 -0700 + + [SCTP]: Fix state table entries for chunks received in CLOSED state. + + Discard an unexpected chunk in CLOSED state rather can calling BUG(). + + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + +commit 62b08083ec3dbfd7e533c8d230dd1d8191a6e813 +Author: Sridhar Samudrala +Date: Fri May 5 17:04:43 2006 -0700 + + [SCTP]: Fix panic's when receiving fragmented SCTP control chunks. + + Use pskb_pull() to handle incoming COOKIE_ECHO and HEARTBEAT chunks that + are received as skb's with fragment list. + + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + +commit 672e7cca17ed6036a1756ed34cf20dbd72d5e5f6 +Author: Vladislav Yasevich +Date: Fri May 5 17:03:49 2006 -0700 + + [SCTP]: Prevent possible infinite recursion with multiple bundled DATA. + + There is a rare situation that causes lksctp to go into infinite recursion + and crash the system. The trigger is a packet that contains at least the + first two DATA fragments of a message bundled together. The recursion is + triggered when the user data buffer is smaller that the full data message. + The problem is that we clone the skb for every fragment in the message. + When reassembling the full message, we try to link skbs from the "first + fragment" clone using the frag_list. However, since the frag_list is shared + between two clones in this rare situation, we end up setting the frag_list + pointer of the second fragment to point to itself. This causes + sctp_skb_pull() to potentially recurse indefinitely. + + Proposed solution is to make a copy of the skb when attempting to link + things using frag_list. + + Signed-off-by: Vladislav Yasevich + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + +commit 7c3ceb4fb9667f34f1599a062efecf4cdc4a4ce5 +Author: Neil Horman +Date: Fri May 5 17:02:09 2006 -0700 + + [SCTP]: Allow spillover of receive buffer to avoid deadlock. + + This patch fixes a deadlock situation in the receive path by allowing + temporary spillover of the receive buffer. + + - If the chunk we receive has a tsn that immediately follows the ctsn, + accept it even if we run out of receive buffer space and renege data with + higher TSNs. + - Once we accept one chunk in a packet, accept all the remaining chunks + even if we run out of receive buffer space. + + Signed-off-by: Neil Horman + Acked-by: Mark Butler + Acked-by: Vlad Yasevich + Signed-off-by: Sridhar Samudrala + Signed-off-by: David S. Miller + +commit 568cb09b9d889b6f2852ede19772b8e9eed36c1e +Author: Nicolas Pitre +Date: Fri May 5 22:35:05 2006 +0100 + + [ARM] 3495/1: EABI: undefine removed syscalls, but... + + Patch from Nicolas Pitre + + ... but only for user space. + + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit 99532559dc7a8e686b2cef14c780a7ad5dbd4a31 +Author: Nicolas Pitre +Date: Fri May 5 22:32:24 2006 +0100 + + [ARM] 3500/1: fix PXA27x DMA allocation priority + + Patch from Nicolas Pitre + + Intel PXA27x developers manual section 5.4.1.1 lists a priority + distribution for the DMA channels differently than what the code + currently assumes. This patch fixes that. + + Noticed by Simon Vogl + + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit b7d7ef87e15dea105be59ec8f14e2f92182dd421 +Author: George G. Davis +Date: Fri May 5 22:32:23 2006 +0100 + + [ARM] 3499/1: Fix VFP FPSCR corruption for double exception case + + Patch from George G. Davis + + The ARM VFP FPSCR register is corrupted when a condition flags modifying + VFP instruction is followed by a non-condition flags modifying VFP + instruction and both instructions raise exceptions. The fix is to + read the current FPSCR in between emulation of these two instructions + and use the current FPSCR value when handling the second exception. + + Signed-off-by: George G. Davis + Signed-off-by: Russell King + +commit 178e0cc5ff249965c6cfbd78b1af6a5e614d837c +Author: David Woodhouse +Date: Fri May 5 18:19:37 2006 +0100 + + [PATCH] bcm43xx: Fix access to non-existent PHY registers + + Fix the conditions under which we poke at the APHY registers in + bcm43xx_phy_initg() to avoid a machine check on chips where they don't + exist. + + Signed-off-by: David Woodhouse + Signed-off-by: John W. Linville + +commit 869aaab1812c4212e65fb181e94b824cf49f9509 +Author: Michael Buesch +Date: Fri May 5 17:23:51 2006 +0200 + + [PATCH] bcm43xx: Fix array overrun in bcm43xx_geo_init + + The problem here is that the bcm34xx driver and the ieee80211 + stack do not agree on what channels are possible for 802.11a. + The ieee80211 stack only wants channels between 34 and 165, while + the bcm43xx driver accepts anything from 0 to 200. I made the + bcm43xx driver comply with the ieee80211 stack expectations, by + using the proper constants. + + Signed-off-by: Jean Delvare + + [mb]: Reduce stack usage by kzalloc-ing ieee80211_geo + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit f9f7b9602ecb66f55718d6d1afa3e2b1e721b22d +Author: Stefano Brivio +Date: Fri May 5 01:26:29 2006 +0200 + + [PATCH] bcm43xx: check for valid MAC address in SPROM + + Check for valid MAC address in SPROM fields instead of relying on + PHY type while setting the MAC address in the networking subsystem, + as some devices have multiple PHYs. + + Signed-off-by: Stefano Brivio + Signed-off-by: John W. Linville + +commit f21709d70ad6d7ad50288f7056c3a368138b017c +Author: Jean Delvare +Date: Thu May 4 19:47:19 2006 +0200 + + [PATCH] ieee80211: Fix A band channel count (resent) + + The channel count for 802.11a is still not right. We better + compute it from the min and max channel numbers, rather than + hardcoding it. + + Signed-off-by: Jean Delvare + Signed-off-by: John W. Linville + +commit 5b4b9775a00c20ade1b1ac8aa25e0e4059d6243e +Author: Michael Buesch +Date: Mon May 1 22:43:00 2006 +0200 + + [PATCH] bcm43xx: fix iwmode crash when down + + This fixes a crash when + + iwconfig ethX mode foo + + is done before + + ifconfig ethX up + + or after + + ifconfig ethX down + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit d57336e3f2dd7c2d1fbe4a8323029869fb6e1f00 +Author: Daniel Drake +Date: Sun Apr 30 22:09:07 2006 +0100 + + [PATCH] softmac: make non-operational after being stopped + + zd1211 with softmac and wpa_supplicant revealed an issue with softmac + and the use of workqueues. Some of the work functions actually + reschedule themselves, so this meant that there could still be + pending work after flush_scheduled_work() had been called during + ieee80211softmac_stop(). + + This patch introduces a "running" flag which is used to ensure that + rescheduling does not happen in this situation. + + I also used this flag to ensure that softmac's hooks into ieee80211 are + non-operational once the stop operation has been started. This simply + makes softmac a little more robust, because I could crash it easily + by receiving frames in the short timeframe after shutting down softmac + and before turning off the ZD1211 radio. (ZD1211 is now fixed as well!) + + Signed-off-by: Daniel Drake + Acked-by: Johannes Berg + Signed-off-by: John W. Linville + +commit 995c99268e0b12eb3c8939211ba5368dd92d98d9 +Author: Daniel Drake +Date: Sun Apr 30 19:49:30 2006 +0100 + + [PATCH] softmac: don't reassociate if user asked for deauthentication + + When wpa_supplicant exits, it uses SIOCSIWMLME to request + deauthentication. softmac then tries to reassociate without any user + intervention, which isn't the desired behaviour of this signal. + + This change makes softmac only attempt reassociation if the remote + network itself deauthenticated us. + + Signed-off-by: Daniel Drake + Acked-by: Johannes Berg + Signed-off-by: John W. Linville + +commit 913ed41eb5c948d2f8b5deffd29c2638eceef3d7 +Author: Jon Mason +Date: Wed May 3 17:26:58 2006 -0500 + + [IA64] remove asm-ia64/bitops.h self-inclusion + + asm-ia64/bitops.h includes itself. The #ifndef _ASM_IA64_BITOPS_H + prevents this from being an issue, but it should still be removed. + + Signed-off-by: Jon Mason + Signed-off-by: Tony Luck + +commit 3e6e155646706f1ef9f791a4402d145f112a3f8d +Author: Chen, Kenneth W +Date: Wed May 3 11:53:43 2006 -0700 + + [IA64] strcpy returns NULL pointer and not destination pointer + + Bob Picco noted that 6edfba1b33c701108717f4e036320fc39abe1912 + dropped the -ffreestanding compiler flag from the top level + Makefile, which allows the compiler to substitute memcpy() in + places where strcpy() is used with a known size source string. + But the ia64 memcpy() returns 0 for success, and "bytes copied" + for failure. + + Fix to return the address of the destination string (like + stdlibc version, and other architectures). There are no + places where ia64 specific code makes use of the non-standard + return value. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 56cf6504fc1c0c221b82cebc16a444b684140fb7 +Author: Russell King +Date: Fri May 5 17:57:52 2006 +0100 + + [BLOCK] Fix oops on removal of SD/MMC card + + The block layer keeps a reference (driverfs_dev) to the struct + device associated with the block device, and uses it internally + for generating uevents in block_uevent. + + Block device uevents include umounting the partition, which can + occur after the backing device has been removed. + + Unfortunately, this reference is not counted. This means that + if the struct device is removed from the device tree, the block + layers reference will become stale. + + Guard against this by holding a reference to the struct device + in add_disk(), and only drop the reference when we're releasing + the gendisk kobject - in other words when we can be sure that no + further uevents will be generated for this block device. + + Signed-off-by: Russell King + Acked-by: Jens Axboe + +commit 2eb9d3157107497fdccb51e1570fea677f6e3c82 +Author: Uwe Zeisberger +Date: Fri May 5 15:11:14 2006 +0100 + + [ARM] 3496/1: more constants for asm-offsets.h + + Patch from Uwe Zeisberger + + added the following constants: + - MACHINFO_TYPE + - MACHINFO_NAME + - MACHINFO_PHYSIO + - MACHINFO_PGOFFIO + - PROCINFO_INITFUNC + - PROCINFO_MMUFLAGS + + and removed their definition from head.S and head-nommu.S + + Signed-off-by: Uwe Zeisberger + Signed-off-by: Russell King + +commit ff10952a547dad934d9ed9afc5cf579ed1ccb53a +Author: Nicolas Pitre +Date: Fri May 5 15:11:14 2006 +0100 + + [ARM] 3494/1: asm-arm/bug.h needs linux/stddef.h + + Patch from Nicolas Pitre + + ... for the definition of NULL. + + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit fed3be9bd56e67c9b9324277b7f95c32e73a75bb +Author: Linus Torvalds +Date: Thu May 4 13:23:40 2006 -0400 + + CREDITS file update (Tristan Greaves) + + By request from Tristan. + + Signed-off-by: Linus Torvalds + +commit 920e70c5c603ada05dd480ca0ccc0ae12a5fdc39 +Author: Russell King +Date: Thu May 4 18:22:51 2006 +0100 + + [MMC] Move set_ios debugging into mmc.c + + Rather than having every driver duplicate the set_ios debugging, + provide a single version in mmc.c which can be expanded as we + add additional functionality. + + Signed-off-by: Russell King + +commit 5b802344357338a4d645beac8ca97470bcbe3542 +Author: Sascha Hauer +Date: Thu May 4 14:07:42 2006 +0100 + + [ARM] 3490/1: i.MX: move uart resources to board files + + Patch from Sascha Hauer + + This patch moves the i.MX uart resources and the gpio pin setup to the + board files. This allows the boards to decide how many internal uarts + are connected to the outside world and whether they use rts/cts or + not. + + Signed-off-by: Sascha Hauer + Signed-off-by: Russell King + +commit fe10c6abea8bc83291a13e0580b3e4c355710b09 +Author: Russell King +Date: Thu May 4 13:51:45 2006 +0100 + + [MMC] Correct mmc_request_done comments + + mmc_request_done should be called at the end of handling a request, not + between the data and initial command parts of the request. + + Signed-off-by: Russell King + +commit 98232d504db0a1f91ecaa93686ed3bf61963103b +Author: Jens Axboe +Date: Thu May 4 09:13:49 2006 +0200 + + [PATCH] compat_sys_vmsplice: one-off in UIO_MAXIOV check + + nr_segs may not be > UIO_MAXIOV, however it may be equal to. This makes + the behaviour identical to the real sys_vmsplice(). The other foov + syscalls also agree that this is the way to go. + + Signed-off-by: Jens Axboe + +commit d1a649838802edd94b6335834919463c6ae61f40 +Author: Patrick Caulfield +Date: Wed May 3 23:36:23 2006 -0700 + + [DECNET]: Fix level1 router hello + + This patch fixes hello messages sent when a node is a level 1 + router. Slightly contrary to the spec (maybe) VMS ignores hello + messages that do not name level2 routers that it also knows about. + + So, here we simply name all the routers that the node knows about + rather just other level1 routers. (I hope the patch is clearer than + the description. sorry). + + Signed-off-by: Patrick Caulfield + Signed-off-by: David S. Miller + +commit 75c2d9077c63ac21488129cc23561d4f4fd0f5e5 +Author: Herbert Xu +Date: Wed May 3 23:31:35 2006 -0700 + + [TCP]: Fix sock_orphan dead lock + + Calling sock_orphan inside bh_lock_sock in tcp_close can lead to dead + locks. For example, the inet_diag code holds sk_callback_lock without + disabling BH. If an inbound packet arrives during that admittedly tiny + window, it will cause a dead lock on bh_lock_sock. Another possible + path would be through sock_wfree if the network device driver frees the + tx skb in process context with BH enabled. + + We can fix this by moving sock_orphan out of bh_lock_sock. + + The tricky bit is to work out when we need to destroy the socket + ourselves and when it has already been destroyed by someone else. + + By moving sock_orphan before the release_sock we can solve this + problem. This is because as long as we own the socket lock its + state cannot change. + + So we simply record the socket state before the release_sock + and then check the state again after we regain the socket lock. + If the socket state has transitioned to TCP_CLOSE in the time being, + we know that the socket has been destroyed. Otherwise the socket is + still ours to keep. + + Note that I've also moved the increment on the orphan count forward. + This may look like a problem as we're increasing it even if the socket + is just about to be destroyed where it'll be decreased again. However, + this simply enlarges a window that already exists. This also changes + the orphan count test by one. + + Considering what the orphan count is meant to do this is no big deal. + + This problem was discoverd by Ingo Molnar using his lock validator. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 82e84249f0ee098e004c8bd6d90a1640bd56cfbb +Author: Ralf Baechle +Date: Wed May 3 23:28:20 2006 -0700 + + [ROSE]: Eleminate HZ from ROSE kernel interfaces + + Convert all ROSE sysctl time values from jiffies to ms as units. + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 4d8937d0b113e8ec39f7d18cf13804f3b5fb8fd4 +Author: Ralf Baechle +Date: Wed May 3 23:27:47 2006 -0700 + + [NETROM]: Eleminate HZ from NET/ROM kernel interfaces + + Convert all NET/ROM sysctl time values from jiffies to ms as units. + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit e1fdb5b39656ea2be8cadde565e543649a988af9 +Author: Ralf Baechle +Date: Wed May 3 23:27:16 2006 -0700 + + [AX.25]: Eleminate HZ from AX.25 kernel interfaces + + Convert all AX.25 sysctl time values from jiffies to ms as units. + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 4cc7c2734e2b4032103e47d8f3e8b6fa3360d3f1 +Author: Ralf Baechle +Date: Wed May 3 23:26:20 2006 -0700 + + [ROSE]: Fix routing table locking in rose_remove_neigh. + + The locking rule for rose_remove_neigh() are that the caller needs to + hold rose_neigh_list_lock, so we better don't take it yet again in + rose_neigh_list_lock. + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 70868eace5031298c6f6e991a40a2106957f582c +Author: Ralf Baechle +Date: Wed May 3 23:25:17 2006 -0700 + + [AX.25]: Move AX.25 symbol exports + + Move AX.25 symbol exports to next to their definitions where they're + supposed to be these days. + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 3ab33dcc82e014c69ebad3b524d0053378ef76c3 +Author: Ralf Baechle DL5RB +Date: Wed May 3 23:24:35 2006 -0700 + + [HAMRADIO]: Remove remaining SET_MODULE_OWNER calls from hamradio drivers. + + Signed-off-by: Ralf Baechle DL5RB + Signed-off-by: David S. Miller + +commit 86cfcb95ec60e910d7efcb35ae89bf3403befaad +Author: Ralf Baechle +Date: Wed May 3 23:23:48 2006 -0700 + + [AX25, ROSE]: Remove useless SET_MODULE_OWNER calls. + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 3f072310d0ca85891323e9d325c37c76de389387 +Author: Ralf Baechle +Date: Wed May 3 23:22:36 2006 -0700 + + [AX.25]: Spelling fix + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 0cc5ae24af08abe8e2a467f45b54c48a0f52670f +Author: Ralf Baechle +Date: Wed May 3 23:22:01 2006 -0700 + + [ROSE]: Remove useless prototype for rose_remove_neigh(). + + Signed-off-by: Ralf Baechle + Signed-off-by: David S. Miller + +commit 7800007c1e2d42cd4120b87b0ba3f3480f17f30a +Author: Patrick McHardy +Date: Wed May 3 23:20:27 2006 -0700 + + [NETFILTER]: x_tables: don't use __copy_{from,to}_user on unchecked memory in compat layer + + Noticed by Linus Torvalds + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 7582e9d17edbabab6cbe59467c5d1b5e8c04fca8 +Author: Jing Min Zhao +Date: Wed May 3 23:19:59 2006 -0700 + + [NETFILTER]: H.323 helper: Change author's email address + + Signed-off-by: Jing Min Zhao + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 2354feaeb2acb78f6aabdf8410d55b44492a7949 +Author: Patrick McHardy +Date: Wed May 3 23:19:26 2006 -0700 + + [NETFILTER]: NAT: silence unused variable warnings with CONFIG_XFRM=n + + net/ipv4/netfilter/ip_nat_standalone.c: In function 'ip_nat_out': + net/ipv4/netfilter/ip_nat_standalone.c:223: warning: unused variable 'ctinfo' + net/ipv4/netfilter/ip_nat_standalone.c:222: warning: unused variable 'ct' + + Surprisingly no complaints so far .. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 4228e2a9890cd01b0c8cc58af6fd9e08a4b5e8a7 +Author: Patrick McHardy +Date: Wed May 3 23:17:11 2006 -0700 + + [NETFILTER]: H.323 helper: fix use of uninitialized data + + When a Choice element contains an unsupported choice no error is returned + and parsing continues normally, but the choice value is not set and + contains data from the last parsed message. This may in turn lead to + parsing of more stale data and following crashes. + + Fixes a crash triggered by testcase 0003243 from the PROTOS c07-h2250v4 + testsuite following random other testcases: + + CPU: 0 + EIP: 0060:[] Not tainted VLI + EFLAGS: 00210646 (2.6.17-rc2 #3) + EIP is at memmove+0x19/0x22 + eax: d7be0307 ebx: d7be0307 ecx: e841fcf9 edx: d7be0307 + esi: bfffffff edi: bfffffff ebp: da5eb980 esp: c0347e2c + ds: 007b es: 007b ss: 0068 + Process events/0 (pid: 4, threadinfo=c0347000 task=dff86a90) + Stack: <0>00000006 c0347ea6 d7be0301 e09a6b2c 00000006 da5eb980 d7be003e d7be0052 + c0347f6c e09a6d9c 00000006 c0347ea6 00000006 00000000 d7b9a548 00000000 + c0347f6c d7b9a548 00000004 e0a1a119 0000028f 00000006 c0347ea6 00000006 + Call Trace: + [] mangle_contents+0x40/0xd8 [ip_nat] + [] ip_nat_mangle_tcp_packet+0xa1/0x191 [ip_nat] + [] set_addr+0x60/0x14d [ip_nat_h323] + [] q931_help+0x2da/0x71a [ip_conntrack_h323] + [] q931_help+0x30c/0x71a [ip_conntrack_h323] + [] ip_conntrack_help+0x22/0x2f [ip_conntrack] + [] nf_iterate+0x2e/0x5f + [] xfrm4_output_finish+0x0/0x39f + [] nf_hook_slow+0x42/0xb0 + [] xfrm4_output_finish+0x0/0x39f + [] xfrm4_output+0x3c/0x4e + [] xfrm4_output_finish+0x0/0x39f + [] ip_forward+0x1c2/0x1fa + [] ip_rcv+0x388/0x3b5 + [] netif_receive_skb+0x2bc/0x2ec + [] process_backlog+0x6b/0xd0 + [] net_rx_action+0x4b/0xb7 + [] __do_softirq+0x35/0x7d + [] do_softirq+0x38/0x3f + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 6fd737031eb6869430d0f3cf6bf1440adf7aedf5 +Author: Patrick McHardy +Date: Wed May 3 23:16:29 2006 -0700 + + [NETFILTER]: H.323 helper: fix endless loop caused by invalid TPKT len + + When the TPKT len included in the packet is below the lowest valid value + of 4 an underflow occurs which results in an endless loop. + + Found by testcase 0000058 from the PROTOS c07-h2250v4 testsuite. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a0548871ed267ae12eb1c860c5aaebd9e466b34e +Author: Jens Axboe +Date: Wed May 3 10:58:22 2006 +0200 + + [PATCH] splice: redo page lookup if add_to_page_cache() returns -EEXIST + + This can happen quite easily, if several processes are trying to splice + the same file at the same time. It's not a failure, it just means someone + raced with us in allocating this file page. So just dump the allocated + page and relookup the original. + + Signed-off-by: Jens Axboe + +commit 76ad4d11105ccd40a536db1057083f28326019fd +Author: Jens Axboe +Date: Wed May 3 10:41:33 2006 +0200 + + [PATCH] splice: rename remaining info variables to pipe + + Same thing was done in fs/pipe.c and most of fs/splice.c, but we had + a few missing still. + + Signed-off-by: Jens Axboe + +commit 1432873af7ae29d4bb3c56114c05b539d078ca62 +Author: Jens Axboe +Date: Wed May 3 10:35:26 2006 +0200 + + [PATCH] splice: LRU fixups + + Nick says that the current construct isn't safe. This goes back to the + original, but sets PIPE_BUF_FLAG_LRU on user pages as well as they all + seem to be on the LRU in the first place. + + Signed-off-by: Jens Axboe + +commit bfc4ee39fdbb2deb8864785d5e5bc5cdd3b31a69 +Author: Jens Axboe +Date: Wed May 3 10:35:10 2006 +0200 + + [PATCH] splice: fix unlocking of page on error ->prepare_write() + + Looking at generic_file_buffered_write(), we need to unlock_page() if + prepare write fails and it isn't due to racing with truncate(). + + Also trim the size if ->prepare_write() fails, if we have to. + + Signed-off-by: Jens Axboe + +commit 5dea5176e5c32ef9f0d1a41d28427b3bf6881b3a +Author: Mingming Cao +Date: Wed May 3 19:55:12 2006 -0700 + + [PATCH] ext3: multile block allocate little endian fixes + + Some places in ext3 multiple block allocation code (in 2.6.17-rc3) don't + handle the little endian well. This was resulting in *wrong* block numbers + being assigned to in-memory block variables and then stored on disk + eventually. The following patch has been verified to fix an ext3 + filesystem failure when run ltp test on a 64 bit machine. + + Signed-off-by; Mingming Cao + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8683dc9990158c221e05959935e7dd50a956c574 +Author: Brent Casavant +Date: Wed May 3 19:55:10 2006 -0700 + + [PATCH] Altix: correct ioc4 port order + + Currently loading the ioc3 as a module will cause the ports to be numbered + in reverse order. This mod maintains the proper order of cards for port + numbering. + + Signed-off-by: Brent Casavant + Cc: Pat Gefre + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 96941026a51e9cb8c2d2be7499301b7fcd9ee225 +Author: mark gross +Date: Wed May 3 19:55:07 2006 -0700 + + [PATCH] EDAC Coexistence with BIOS + + Address the issue of EDAC/BIOS coexistence for the e752x chip-sets. + + We have found a problem where the BIOS will start the system with the error + registers (dev0:fun1) hidden and assuming it has exclusive access to them. + The edac driver violates this assumption. + + The workaround this patch offers is to honor the hidden-ness as an + indication that it is not safe to use those registers. + + Signed-off-by: Mark Gross + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6760da0197a6ee327a09dafc070b26e2f02651fe +Author: Jeff Dike +Date: Wed May 3 19:55:03 2006 -0700 + + [PATCH] uml: change timer initialization + + inet_init, which schedules, is called before the UML timer_init, which sets + up the timer. The result is the interval timers being manipulated before + the appropriate signal handlers are established, causing unhandled timers. + + This is fixed by making timer_init be called earlier. + + Signed-off-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f0ec5e39765cd254d436a6d86e211d81795952a4 +Author: Andi Kleen +Date: Wed May 3 19:54:57 2006 -0700 + + [PATCH] Remove wrong cpu_has_apic checks that came from mismerging + + We only need to check cpu_has_apic in the IO-APIC/L-APIC parsing, not for + all of ACPI. + + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8c45112b823972e9ff7bbca77dc592ca2224951b +Author: David S. Miller +Date: Wed May 3 13:55:46 2006 -0700 + + [SPARC]: Hook up vmsplice into syscall tables. + + Signed-off-by: David S. Miller + +commit 0b18ac42aa036c7fa217f178aa6a02c66e19e0a1 +Author: James Smart +Date: Mon May 1 21:50:40 2006 -0400 + + [SCSI] lpfc 8.1.6 : Fix Data Corruption in Bus Reset Path + + This patch updates the lpfc driver to revision 8.1.6, which includes + the following changes: + + - Fix data corruption in SCSI BUS reset path, due to reusing + the same request structure for each target. + - Change version number to 8.1.6 + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 6e1cad02763edec83dba8559d4be8d518a6562a5 +Author: Eric Moore +Date: Tue Apr 25 17:38:58 2006 -0600 + + [SCSI] mptspi: revalidate negotiation parameters after host reset and resume + + This is a bug fix for mptspi driver, where after a host reset or + resume, we revalidate the negotiation parameters for all devices. + This bug was introduced when the driver was ported to use the spi + transport layer. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 30d55280b867aa0cae99f836ad0181bb0bf8f9cb +Author: Stephen Smalley +Date: Wed May 3 10:52:36 2006 -0400 + + [PATCH] selinux: Clear selinux_enabled flag upon runtime disable. + + Clear selinux_enabled flag upon runtime disable of SELinux by userspace, + and make sure it is defined even if selinux= boot parameter support is + not enabled in configuration. + + Signed-off-by: Stephen Smalley + Acked-by: James Morris + Tested-by: Jon Smirl + Acked-by: Al Viro + Signed-off-by: Linus Torvalds + +commit d205819e2346d20fee41297ea6cf789c591abccf +Author: Paul Mackerras +Date: Wed May 3 23:04:37 2006 +1000 + + [PATCH] powerpc: Use the ibm,pa-features property if available + + Forthcoming IBM machines will have a "ibm,pa-features" property on CPU + nodes, that contains bits indicating which optional architecture + features are implemented by the CPU. This adds code to use the + property, if present, to update our CPU feature bitmaps. Note that + this means we can both set and clear feature bits based on what + the firmware tells us. + + This is based on a patch by Will Schmidt . + + Signed-off-by: Paul Mackerras + +commit 6bfd93c32a5065d0e858780b3beb0b667081601c +Author: Paul Mackerras +Date: Wed May 3 23:02:04 2006 +1000 + + powerpc: Fix incorrect might_sleep in __get_user/__put_user on kernel addresses + + We have a case where __get_user and __put_user can validly be used + on kernel addresses in interrupt context - namely, the alignment + exception handler, as our get/put_unaligned just do a single access + and rely on the alignment exception handler to fix things up in the + rare cases where the cpu can't handle it in hardware. Thus we can + get alignment exceptions in the network stack at interrupt level. + The alignment exception handler does a __get_user to read the + instruction and blows up in might_sleep(). + + Since a __get_user on a kernel address won't actually ever sleep, + this makes the might_sleep conditional on the address being less + than PAGE_OFFSET. + + Signed-off-by: Paul Mackerras + +commit 6e1976961c9bd9a3dc368139fab1883961efc879 +Author: Vitaly Bordug +Date: Sat Apr 29 23:06:00 2006 +0400 + + [PATCH] ppc32 CPM_UART: fixes and improvements + + A number of small issues are fixed, and added the header file, missed from the + original series. With this, driver should be pretty stable as tested among + both platform-device-driven and "old way" boards. Also added missing GPL + statement , and updated year field on existing ones to reflect + code update. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit 61f5657c50341198ff05e375e6f1fc0476556562 +Author: Vitaly Bordug +Date: Sat Apr 29 22:32:44 2006 +0400 + + [PATCH] ppc32 CPM_UART: Fixed break send on SCC + + SCC uart sends a break sequence each time it is stopped with the + CPM_CR_STOP_TX command. That means that each time an application closes the + serial device, a break is transmitted. To fix this, graceful tx stop is + issued for SCC. + + Signed-off-by: David Jander + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit 0ccde0a290b44b8296b82a7683b4c299eb51ba6b +Author: Ananth N Mavinakayanahalli +Date: Fri Apr 28 17:38:42 2006 +0530 + + [PATCH] powerpc/kprobes: fix singlestep out-of-line + + We currently single-step inline if the instruction on which a kprobe is + inserted is a trap variant. + + - variants (such as tdnei, used by BUG()) typically evaluate a condition + and cause a trap only if the condition is satisfied. + - kprobes uses the unconditional "trap" (0x7fe00008) and single-stepping + again on this instruction, resulting in another trap without + evaluating the condition is obviously incorrect. + + Signed-off-by: Ananth N Mavinakayanahalli + Signed-off-by: Paul Mackerras + +commit 054d8ff37710efaebd1998ce94d366df315a354f +Author: Linas Vepstas +Date: Thu Apr 27 02:31:20 2006 -0700 + + [PATCH] powerpc/pseries: avoid crash in PCI code if mem system not up + + The powerpc code is currently performing PCI setup before memory + initialization. PCI setup touches PCI config space registers. If the PCI + card is bad, this will evoke an error, which currrently can't be handled, + as the PCI error recovery code expects kmalloc() to be functional. This + patch will cause the system to punt instead of crashing with + + cpu 0x0: Vector: 300 (Data Access) at [c0000000004434d0] + pc: c0000000000c06b4: .kmem_cache_alloc+0x8c/0xf4 + lr: c00000000004ad6c: .eeh_send_failure_event+0x48/0xfc + + This patch will also print name of the offending pci device. + + Signed-off-by: Linas Vepstas + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit e17df688f7064dae1417ce425dd1e4b71d24d63b +Author: Patrick McHardy +Date: Tue May 2 23:23:07 2006 +0200 + + [NETFILTER] SCTP conntrack: fix infinite loop + + fix infinite loop in the SCTP-netfilter code: check SCTP chunk size to + guarantee progress of for_each_sctp_chunk(). (all other uses of + for_each_sctp_chunk() are preceded by do_basic_checks(), so this fix + should be complete.) + + Based on patch from Ingo Molnar + + CVE-2006-1527 + + Signed-off-by: Patrick McHardy + Signed-off-by: Linus Torvalds + +commit b2556da55f78a9dbe92830b1d1c0b612edfea9fd +Author: Uwe Zeisberger +Date: Tue May 2 20:40:56 2006 +0100 + + [ARM] 3488/1: make icedcc_putc do the right thing + + Patch from Uwe Zeisberger + + a) use coprocessor 14 + b) make reading the dcc status volatile + + Signed-off-by: Uwe Zeisberger + Signed-off-by: Russell King + +commit ebf34c9b6fcd22338ef764b039b3ac55ed0e297b +Author: Ayaz Abdulla +Date: Tue May 2 15:26:06 2006 -0400 + + forcedeth: fix multi irq issues + + This patch fixes the issues with multiple irqs. + + I am resending based on feedback. I decoupled the dma mask for + consistent memory and fixed leak with multiple irq in error path. + + Thanks to Manfred for catching the spin lock problem. + + Signed-Off-By: Ayaz Abdulla + +commit 3e0d167a6b6e5722d7fadfad9b817f668ab41ec1 +Author: Craig Brind +Date: Thu Apr 27 02:30:46 2006 -0700 + + [PATCH] via-rhine: zero pad short packets on Rhine I ethernet cards + + Fixes Rhine I cards disclosing fragments of previously transmitted frames + in new transmissions. + + Before transmission, any socket buffer (skb) shorter than the ethernet + minimum length of 60 bytes was zero-padded. On Rhine I cards the data can + later be copied into an aligned transmission buffer without copying this + padding. This resulted in the transmission of the frame with the extra + bytes beyond the provided content leaking the previous contents of this + buffer on to the network. + + Now zero-padding is repeated in the local aligned buffer if one is used. + + Following a suggestion from the via-rhine maintainer, no attempt is made + here to avoid the duplicated effort of padding the skb if it is known that + an aligned buffer will definitely be used. This is to make the change + "obviously correct" and allow it to be applied to a stable kernel if + necessary. There is no change to the flow of control and the changes are + only to the Rhine I code path. + + The patch has run on an in-service Rhine-I host without incident. Frames + shorter than 60 bytes are now correctly zero-padded when captured on a + separate host. I see no unusual stats reported by ifconfig, and no unusual + log messages. + + Signed-off-by: Craig Brind + Signed-off-by: Roger Luethi + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit b0b8dab288590ede2377a671db0a31380f454541 +Author: Olaf Hering +Date: Thu Apr 27 18:23:49 2006 -0700 + + [PATCH] mv643xx_eth: provide sysfs class device symlink + + On Sat, Mar 11, Olaf Hering wrote: + > Why is the /sys/class/net/eth0/device symlink not created for the + > mv643xx_eth driver? Does this work for other platform device drivers? + > Seems to work for the ps2 keyboard at least. + + The SET_NETDEV_DEV has to be done before a call to register_netdev. With + the new patch below, the device symlink for the platform device was + created. Unfortunately, after the 4 ls commands, the network connection + died. No idea if the box crashed or if something else broke, lost remote + access. + + Provide sysfs 'device' in /class/net/ethN Also, set module owner field, + like pcnet32 driver does. + + Signed-off-by: Olaf Hering + Acked-by: Dale Farnsworth + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit d78e9079af7526c4661ff484322094832776ef41 +Author: Russell King +Date: Tue May 2 20:18:53 2006 +0100 + + [MMC] PXA: reduce the number of lines PXAMCI debug uses + + There's no reason for the PXAMCI debug code to print so many lines - it + causes the kernel buffer to overflow when trying to debug this driver. + Remove some debug messages which are duplicated by core code, and + combine other messages, resulting in fewer characters written to the + kernel log. + + Signed-off-by: Russell King + +commit 58741e8b3603e56c3699550e8bc89cb136329343 +Author: Russell King +Date: Tue May 2 20:02:39 2006 +0100 + + [MMC] PXA and i.MX: don't avoid sending stop command on error + + Always send a stop command at the end of a data transfer. If we avoid + sending the stop command, some cards remain in data transfer mode, and + refuse to accept further read/write commands. + + Signed-off-by: Russell King + +commit 37be4e7809e0581db85387e126ae4da68c3d6286 +Author: Russell King +Date: Tue May 2 17:24:59 2006 +0100 + + [MMC] extend data timeout for writes + + The CSD contains a "read2write factor" which determines the multiplier to + be applied to the read timeout to obtain the write timeout. We were + ignoring this parameter, resulting in the possibility for writes being + timed out too early. + + Signed-off-by: Russell King + +commit d8a5a8d7cc32e4474326e0ecc1b959063490efc9 +Author: Russell King +Date: Tue May 2 16:04:29 2006 +0100 + + [SERIAL] 8250: add locking to console write function + + x86 SMP breaks as a result of the previous change, we have no real + option other than to add locking to the 8250 console write function. + If an oops is in progress, try to acquire the lock. If we fail to + do so, continue anyway. + + Signed-off-by: Russell King + +commit 330ab71619bacc4d4494227a6cfc9b7f5500403d +Author: Jens Axboe +Date: Tue May 2 15:29:57 2006 +0200 + + [PATCH] vmsplice: restrict stealing a little more + + Apply the same rules as the anon pipe pages, only allow stealing + if no one else is using the page. + + Signed-off-by: Jens Axboe + +commit a893b99be71f1d669b74f840e3a683dd077d007b +Author: Jens Axboe +Date: Tue May 2 15:03:27 2006 +0200 + + [PATCH] splice: fix page LRU accounting + + Currently we rely on the PIPE_BUF_FLAG_LRU flag being set correctly + to know whether we need to fiddle with page LRU state after stealing it, + however for some origins we just don't know if the page is on the LRU + list or not. + + So remove PIPE_BUF_FLAG_LRU and do this check/add manually in pipe_to_file() + instead. + + Signed-off-by: Jens Axboe + +commit 7591489a8fbee83f19bacc75756989a6a4d0389c +Author: Jens Axboe +Date: Tue May 2 12:57:18 2006 +0200 + + [PATCH] vmsplice: fix badly placed end paranthesis + + We need to use the minium of {len, PAGE_SIZE-off}, not {len, PAGE_SIZE}-off. + The latter doesn't make any sense, and could cause us to attempt negative + length transfers... + + Signed-off-by: Jens Axboe + +commit 46c5ea3c9ae7fbc6e52a13c92e59d4fc7f4ca80a +Author: Patrick McHardy +Date: Tue May 2 05:12:22 2006 +0200 + + [NETFILTER] x_tables: fix compat related crash on non-x86 + + When iptables userspace adds an ipt_standard_target, it calculates the size + of the entire entry as: + + sizeof(struct ipt_entry) + XT_ALIGN(sizeof(struct ipt_standard_target)) + + ipt_standard_target looks like this: + + struct xt_standard_target + { + struct xt_entry_target target; + int verdict; + }; + + xt_entry_target contains a pointer, so when compiled for 64 bit the + structure gets an extra 4 byte of padding at the end. On 32 bit + architectures where iptables aligns to 8 byte it will also have 4 + byte padding at the end because it is only 36 bytes large. + + The compat_ipt_standard_fn in the kernel adjusts the offsets by + + sizeof(struct ipt_standard_target) - sizeof(struct compat_ipt_standard_target), + + which will always result in 4, even if the structure from userspace + was already padded to a multiple of 8. On x86 this works out by + accident because userspace only aligns to 4, on all other + architectures this is broken and causes incorrect adjustments to + the size and following offsets. + + Thanks to Linus for lots of debugging help and testing. + + Signed-off-by: Patrick McHardy + Signed-off-by: Linus Torvalds + +commit 6ba815ded3fef03e888a9fc8eae3113938ff5349 +Author: Shaohua Li +Date: Mon May 1 12:16:19 2006 -0700 + + [PATCH] timer TSC check suspend notifier change + + At suspend time, the TSC CPUFREQ_SUSPENDCHANGE notifier change might + wrongly enable interrupt. cpufreq driver suspend/resume is in interrupt + disabled environment. + + Signed-off-by: Shaohua Li + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 160bd18e5e545cbb4e5c26f54414485f8ac291ec +Author: Mikael Pettersson +Date: Mon May 1 12:16:18 2006 -0700 + + [PATCH] x86_64: make PC Speaker driver work + + The PC Speaker driver's ->probe() routine doesn't even get called in the + 64-bit kernels. The reason for that is that the arch code apparently has + to explictly add a "pcspkr" platform device in order for the driver core to + call the ->probe() routine. arch/i386/kernel/setup.c unconditionally adds + a "pcspkr" device, but the x86_64 kernel has no code at all related to the + PC Speaker. + + The patch below copies the relevant code from i386 to x86_64, which makes + the PC Speaker work for me on x86_64. + + Cc: Dmitry Torokhov + Acked-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f3537ea7b9c2f10397a8b68cd006981d7c615431 +Author: Atsushi Nemoto +Date: Mon May 1 12:16:17 2006 -0700 + + [PATCH] genrtc: fix read on 64-bit platforms + + Fix genrtc's read() routine for 64-bit platforms. Current gen_rtc_read() + stores 64bit integer and returns 8 even if an user tried to read a 32bit + integer. + + Signed-off-by: Atsushi Nemoto + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3418ff76119da52f808eb496191d1fd380f53f3d +Author: Atsushi Nemoto +Date: Mon May 1 12:16:16 2006 -0700 + + [PATCH] RTC: rtc-dev tweak for 64-bit kernel + + Make rtc-dev work well on 64-bit platforms with 32-bit userland. On those + platforms, users might try to read 32-bit integer value. This patch make + rtc-dev's read() work well for both "int" and "long" size. This tweak is came + from genrtc driver. + + Signed-off-by: Atsushi Nemoto + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b44df334a7e909d88cf5c54cc0481b4e2eaeca23 +Author: Heiko Carstens +Date: Mon May 1 12:16:15 2006 -0700 + + [PATCH] s390: bug in setup_rt_frame + + Consider return value of __put_user() when setting up a signal frame + instead of ignoring it. + + Cc: Martin Schwidefsky + Signed-off-by: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 022e4fc0fb2e4e179aaba4ee139dcb8fded0cba2 +Author: Heiko Carstens +Date: Mon May 1 12:16:14 2006 -0700 + + [PATCH] s390: fix ipd handling + + As pointed out by Paulo Marques MAX_IPD_TIME is by + a factor of ten too small. Since this means that we allow ten times more + IPDs in the intended time frame this could result in a cpu check stop of a + physical cpu. + + Cc: Martin Schwidefsky + Signed-off-by: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8261aa600943046a5305564a1cd7432009971799 +Author: Jeremy Kerr +Date: Mon May 1 12:16:13 2006 -0700 + + [PATCH] powerpc: cell: Add numa id to struct spu + + Add an nid member to the spu structure, and store the numa id of the spu there + on creation. + + Signed-off-by: Arnd Bergmann + Cc: Paul Mackerras + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 953039c8df7beb2694814e20e2707a77d335a2e3 +Author: Jeremy Kerr +Date: Mon May 1 12:16:12 2006 -0700 + + [PATCH] powerpc: Allow devices to register with numa topology + + Change of_node_to_nid() to traverse the device tree, looking for a numa id. + Cell uses this to assign ids to SPUs, which are children of the CPU node. + Existing users of of_node_to_nid() are altered to use of_node_to_nid_single(), + which doesn't do the traversal. + + Export an attach_sysdev_to_node() function, allowing system devices (eg. + SPUs) to link themselves into the numa topology in sysfs. + + Signed-off-by: Arnd Bergmann + Cc: Paul Mackerras + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bed120c64eb07b6838bb758109811484af8cebba +Author: Joel H Schopp +Date: Mon May 1 12:16:11 2006 -0700 + + [PATCH] spufs: fix for CONFIG_NUMA + + Based on an older patch from Mike Kravetz + + We need to have a mem_map for high addresses in order to make fops->no_page + work on spufs mem and register files. So far, we have used the + memory_present() function during early bootup, but that did not work when + CONFIG_NUMA was enabled. + + We now use the __add_pages() function to add the mem_map when loading the + spufs module, which is a lot nicer. + + Signed-off-by: Arnd Bergmann + Cc: Paul Mackerras + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 46a66eecdf7bc12562ecb492297447ed0e1ecf59 +Author: Mike Kravetz +Date: Mon May 1 12:16:09 2006 -0700 + + [PATCH] sparsemem interaction with memory add bug fixes + + This patch fixes two bugs with the way sparsemem interacts with memory add. + They are: + + - memory leak if memmap for section already exists + + - calling alloc_bootmem_node() after boot + + These bugs were discovered and a first cut at the fixes were provided by + Arnd Bergmann and Joel Schopp . + + Signed-off-by: Mike Kravetz + Signed-off-by: Joel Schopp + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2c43630fb0ff3f01c29367248ffa4a851e2c9b34 +Author: Pat Gefre +Date: Mon May 1 12:16:08 2006 -0700 + + [PATCH] Altix: correct ioc3 port order + + Currently loading the ioc3 as a module will cause the ports to be numbered + in reverse order. This mod maintains the proper order of cards for port + numbering. + + Signed-off-by: Patrick Gefre + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4c28f81193b6778f7b49090930d88e6d12bcb928 +Author: Christoph Lameter +Date: Mon May 1 12:16:08 2006 -0700 + + [PATCH] page migration: Fix fallback behavior for dirty pages + + Currently we check PageDirty() in order to make the decision to swap out + the page. However, the dirty information may be only be contained in the + ptes pointing to the page. We need to first unmap the ptes before checking + for PageDirty(). If unmap is successful then the page count of the page + will also be decreased so that pageout() works properly. + + This is a fix necessary for 2.6.17. Without this fix we may migrate dirty + pages for filesystems without migration functions. Filesystems may keep + pointers to dirty pages. Migration of dirty pages can result in the + filesystem keeping pointers to freed pages. + + Unmapping is currently not be separated out from removing all the + references to a page and moving the mapping. Therefore try_to_unmap will + be called again in migrate_page() if the writeout is successful. However, + it wont do anything since the ptes are already removed. + + The coming updates to the page migration code will restructure the code + so that this is no longer necessary. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a4b741e380cb56045ccea36f2dbc10e42af21f24 +Author: Jeff Dike +Date: Mon May 1 12:16:06 2006 -0700 + + [PATCH] uml: uml-makefile-nicer uses SYMLINK incorrectly + + Blaisorblade's uml-makefile-nicer makes a V=0 build say SYMLINK where + what's happening is really a LINK. + + Signed-off-by: Jeff Dike + Acked-by: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cead61a6717a9873426b08d73a34a325e3546f5d +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon May 1 12:16:06 2006 -0700 + + [PATCH] uml: export symbols added by GCC hardened + + GCC hardened introduces additional symbol refererences (for the canary and + friends), also in modules - add weak export_symbols for them. We already + tested that the weak declaration creates no problem on both GCC's providing + the function definition and on GCC's which don't provide it. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7b12b9137930eb821b68e1bfa11e9de692208620 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon May 1 12:16:05 2006 -0700 + + [PATCH] uml: cleanup unprofile expression and build infrastructure + + *) Rather than duplicate in various buggy ways the application of + CFLAGS_NO_HARDENING and UNPROFILE (which apply to the same files), + centralize it in Makefile.rules. UNPROFILE_OBJS mustn't be listed in + USER_OBJS but are compiled as such. + + I've also verified that unprofile didn't work in the current form, because we + set _c_flags directly (using CFLAGS and not USER_CFLAGS, which is wrong), + which is normally used by c_flags, but we also override c_flags for all + USER_OBJS, and there we don't call unprofile. + + Instead it only worked for unmap.o, the only one which wasn't a USER_OBJ. + + We need to set c_flags (which is not a public Kbuild API) to clear a lot of + compilation flags like -nostdinc which Kbuild forces on everything. + + *) Rather than $(CFLAGS_$(notdir $@)), which expands to CFLAGS_anObj.s when + building "anObj.s", use $(CFLAGS_$(*F).o) which always accesses + CFLAGS_anObj.o, like done by Kbuild. + + *) Make c_flags apply to all targets having the same basename, rather than + listing .s, .i, .lst and .o, with the use (which I tested) of + + $(USER_OBJS:.o=.%): c_flags = ... + + and of + + - $(obj)/unmap.c: _c_flags = ... + + $(obj)/unmap.%: _c_flags = ... + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 275e6e1ee2bafde77e9390b27e876fa83f24cb60 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon May 1 12:16:04 2006 -0700 + + [PATCH] uml: fix compilation and execution with hardened GCC + + To make some half-assembly stubs compile, disable various "hardened" GCC + features: + + *) we can't make it build PIC code as we need %ebx to do syscalls and GCC + wants it free for PIC + + *) we can't leave stack protection as the stub is moved (not relocated!) in + memory so the RIP-relative access to the canary tries reading from an + unmapped address and causes a segfault, since we move the stub of various + megabytes (the exact amount will be decided at runtime) away from the + link-time address. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cb8aa3d29b562e4c16fdfa4ecc8170ddc55397f4 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon May 1 12:16:03 2006 -0700 + + [PATCH] uml: use Kbuild tracking for all files and fix compilation output + + Move the build of user-offsets to arch/um/sys-$(SUBARCH), where it's located. + So we can also build it via Kbuild with its dependency tracking rather than by + hand. While hacking here, fix also a lot of little cosmetic things. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cb98cdcd0dd892dcaec7dabd57c3b00890006b61 +Author: Mattia Dongili +Date: Mon May 1 12:16:01 2006 -0700 + + [PATCH] uml: search from uml_net in a more reasonable PATH + + Append /usr/lib/uml to the existing PATH environment variable to let execvp() + search uml_net in FHS compliant locations. + + Signed-off-by: Mattia Dongili + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b15fb6b157b83ce983e42130ab7d1a866020d8f5 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon May 1 12:16:01 2006 -0700 + + [PATCH] uml: fix patch mismerge + + I sent a patch, it was applied as cda402b283c34a24b091f78eee116963e9494762, + then it was applied again as 181ae4005d0a4010802be534d929b38c42b9ac06 by + mistake. But while the 1st time it modified (correctly) cow_header_v3, the + 2nd it modified cow_header_v3_broken. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2ace87b9502d922397cabaf07d73e0b60c480ecf +Author: Jeff Dike +Date: Mon May 1 12:16:00 2006 -0700 + + [PATCH] uml: error handling fixes + + Blairsorblade noticed some confusion between our use of a system + call's return value and errno. This patch fixes a number of related + bugs - + using errno instead of a return value + using a return value instead of errno + forgetting to negate a error return to get a positive error code + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 347b3dc2faf34d63a96b41e3244b743cc72a2aa0 +Author: Jeff Dike +Date: Mon May 1 12:15:59 2006 -0700 + + [PATCH] uml: update defconfig + + Bring defconfig up to date. + + Also disable CONFIG_BLK_DEV_UBD_SYNC by default. By performing synchronous + I/O to the host, it slows things down, only protects against host crashes, and + can make a UML appear to hang while it waits for the host's disk. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e3104f50d89b1fffe1fd973e32248a5c7f1bb41e +Author: Jeff Dike +Date: Mon May 1 12:15:58 2006 -0700 + + [PATCH] uml: clean up after MADVISE_REMOVE + + The MADVISE_REMOVE-checking code didn't clean up after itself. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 191ef966ac164a1ce3e06290ca52296744a4aee2 +Author: Jesper Juhl +Date: Mon May 1 12:15:57 2006 -0700 + + [PATCH] uml: remove NULL checks and add some CodingStyle + + Remove redundant NULL checks before [kv]free + small CodingStyle cleanup for + arch/ + + Signed-off-by: Jesper Juhl + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 893bb96a29bee4a5cf2486720ac79412aaee5066 +Author: Joris van Rantwijk +Date: Mon May 1 12:15:56 2006 -0700 + + [PATCH] uml: skas0 support for 2G/2G hosts + + A quick hack to allow skas0 mode to run on 2G/2G hosts. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c39e50b4bada27102306d7fa68ea35dc4e61bd68 +Author: Victor V. Vengerov +Date: Mon May 1 12:15:53 2006 -0700 + + [PATCH] uml: fix iomem list traversal + + We need to walk the region list properly. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f3a19cb45f4730c4ce09ca9bccf197efd010dc3b +Author: Andrew Morton +Date: Mon May 1 12:15:52 2006 -0700 + + [PATCH] silence initcall warnings + + Suppress the initcall-return-value warnings unless initcall_debug was + specified. + + They do find bugs, but they're extremely small ones and as Andi points out, + people get distressed. + + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 42e4c8585f8cbbfac3b70aa2d0a4f869509a0354 +Author: Andi Kleen +Date: Mon May 1 12:15:51 2006 -0700 + + [PATCH] i386: Remove apic= warning + + The apic= option can be used to set the APIC driver too. When that is done + this code would always produce bogus warnings. + + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5871aa6d5a98f315016d1deee07425c269c37f29 +Author: Andi Kleen +Date: Mon May 1 12:15:50 2006 -0700 + + [PATCH] i386: Fix overflow in e820_all_mapped + + The 32bit version of e820_all_mapped() needs to use u64 to avoid overflows on + PAE systems. Pointed out by Jan Beulich + + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 32828546b32a96d550b85eab25609bc4ba3942ab +Author: Andi Kleen +Date: Mon May 1 12:15:49 2006 -0700 + + [PATCH] i386/x86-64: Fix ACPI disabled LAPIC handling mismerge + + The patch I submitted earlier to fix disabled LAPIC handling in ACPI was + mismerged for some reason I still don't quite understand. Parts of it was + applied to the wrong function. + + This patch fixes it up. + + Cc: + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d2610202290b4924b71747314a0f88f28807702e +Author: Andi Kleen +Date: Mon May 1 12:15:48 2006 -0700 + + [PATCH] x86_64: Add compat_sys_vmsplice and use it in x86-64 + + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e7dd2ab6b9bdfa60e19b8739e6b2a204fd4f477 +Author: NeilBrown +Date: Mon May 1 12:15:47 2006 -0700 + + [PATCH] md: Fix 'rdev->nr_pending' count when retrying barrier requests + + When retrying a failed BIO_RW_BARRIER request, we need to keep the reference + in ->nr_pending over the whole retry. Currently, we only hold the reference + if the failed request is the *last* one to finish - which is silly, because it + would normally be the first to finish. + + So move the rdev_dec_pending call up into the didn't-fail branch. As the rdev + isn't used in the later code, calling rdev_dec_pending earlier doesn't hurt. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 62de608da0b0ab17d81a233b50d1e952b9816f69 +Author: NeilBrown +Date: Mon May 1 12:15:47 2006 -0700 + + [PATCH] md: Improve detection of lack of barrier support in raid1 + + Move the test for 'do barrier work' down a bit so that if the first write to a + raid1 is a BIO_RW_BARRIER write, the checking done by superblock writes will + cause the right thing to happen. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bea2771871ed1084c9a85ed0c86340f188505702 +Author: NeilBrown +Date: Mon May 1 12:15:46 2006 -0700 + + [PATCH] md: Change ENOTSUPP to EOPNOTSUPP + + Because that is what you get if a BIO_RW_BARRIER isn't supported! + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e0a33270ed0e8e00cbb882a33d21e1f92aac0ceb +Author: NeilBrown +Date: Mon May 1 12:15:45 2006 -0700 + + [PATCH] md: Fixed refcounting/locking when attempting read error correction in raid10 + + We need to hold a reference to rdevs while reading and writing to attempt to + correct read errors. This reference must be taken under an rcu lock. + + Signed-off-by: Neil Brown + Cc: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit df30d0f4ca3c41b60068232d6de9d58be88436f0 +Author: NeilBrown +Date: Mon May 1 12:15:44 2006 -0700 + + [PATCH] md: Avoid oops when attempting to fix read errors on raid10 + + We should add to the counter for the rdev *after* checking if the rdev is + NULL!!! + + Signed-off-by: Neil Brown + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 235acec78e87a60ace01d1ecb4b87ad1d689715a +Author: Bastian Blank +Date: Mon May 1 12:15:42 2006 -0700 + + [PATCH] s390: make qeth buildable + + Signed-off-by: Bastian Blank + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Cc: "David S. Miller" + Acked-by: Jeff Garzik + Acked-by: Frank Pavlic + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f6f0413e10b76440fb82efebc63120f3b6d42adb +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:09 2006 -0700 + + IB/ipath: tidy up white space in a few files + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit d562a5ae69bd5643d777788117d02acb22fab347 +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:08 2006 -0700 + + IB/ipath: fix label name in interrupt handler + + Names that are the opposite of their intended meanings are not so helpful. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit ae15f540cc52acbcbfdf4b902d214a5db5c835d2 +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:07 2006 -0700 + + IB/ipath: improve sparse annotation + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 9b2017f1e1c95625b2ca2a1ec5317097117d7078 +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:06 2006 -0700 + + IB/ipath: simplify IB timer usage + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 76f0dd141b477094b026206c0d8c21beac6069f5 +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:05 2006 -0700 + + IB/ipath: simplify RC send posting + + Remove some unnecessarily complicated tests. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit c71c30dcba142f16bc5f651812b1bc0b9f70f02d +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:03 2006 -0700 + + IB/ipath: prevent hardware from being accessed during reset + + The reset code now turns off the PRESENT flag during a reset, so that + other code won't attempt to access a device that's in mid-reset. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit fccea663643cedfa310c5254da30e1e35e09199b +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:02 2006 -0700 + + IB/ipath: fix verbs registration + + Remember when the verbs layer unregisters from the lower-level code. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 52e7fad825c47fb86801f23b9f793da1d2774f18 +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:23:00 2006 -0700 + + IB/ipath: change handling of PIO buffers + + Different ipath hardware types have different numbers of buffers + available, so we decide on the counts ourselves unless we are specifically + overridden with a module parameter. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 23e86a4584606a08393e0ad3a5ca27b19a3de374 +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:22:59 2006 -0700 + + IB/ipath: iterate over correct number of ports during reset + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 68dd43a162b43218d2e5ac1d139c1d53da965f54 +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:22:58 2006 -0700 + + IB/ipath: set up 32-bit DMA mask if 64-bit setup fails + + Some systems do not set up 64-bit maps on systems with 2GB or less of + memory installed, so we have to fall back to trying a 32-bit setup. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 755e4ca4a9885b79a14169ab5b615920eb38a32a +Author: Bryan O'Sullivan +Date: Mon Apr 24 14:22:57 2006 -0700 + + IB/ipath: fix race with exposing reset file + + We were accidentally exposing the "reset" sysfs file more than once + per device. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 7afa6fd037e51e95d322990cb127bb2b1217251a +Author: Jens Axboe +Date: Mon May 1 20:02:33 2006 +0200 + + [PATCH] vmsplice: allow user to pass in gift pages + + If SPLICE_F_GIFT is set, the user is basically giving this pages away to + the kernel. That means we can steal them for eg page cache uses instead + of copying it. + + The data must be properly page aligned and also a multiple of the page size + in length. + + Signed-off-by: Jens Axboe + +commit f6762b7ad8edd6abc802542ce845d3bc8adcb92f +Author: Jens Axboe +Date: Mon May 1 20:02:05 2006 +0200 + + [PATCH] pipe: enable atomic copying of pipe data to/from user space + + The pipe ->map() method uses kmap() to virtually map the pages, which + is both slow and has known scalability issues on SMP. This patch enables + atomic copying of pipe pages, by pre-faulting data and using kmap_atomic() + instead. + + lmbench bw_pipe and lat_pipe measurements agree this is a Good Thing. Here + are results from that on a UP machine with highmem (1.5GiB of RAM), running + first a UP kernel, SMP kernel, and SMP kernel patched. + + Vanilla-UP: + Pipe bandwidth: 1622.28 MB/sec + Pipe bandwidth: 1610.59 MB/sec + Pipe bandwidth: 1608.30 MB/sec + Pipe latency: 7.3275 microseconds + Pipe latency: 7.2995 microseconds + Pipe latency: 7.3097 microseconds + + Vanilla-SMP: + Pipe bandwidth: 1382.19 MB/sec + Pipe bandwidth: 1317.27 MB/sec + Pipe bandwidth: 1355.61 MB/sec + Pipe latency: 9.6402 microseconds + Pipe latency: 9.6696 microseconds + Pipe latency: 9.6153 microseconds + + Patched-SMP: + Pipe bandwidth: 1578.70 MB/sec + Pipe bandwidth: 1579.95 MB/sec + Pipe bandwidth: 1578.63 MB/sec + Pipe latency: 9.1654 microseconds + Pipe latency: 9.2266 microseconds + Pipe latency: 9.1527 microseconds + + Signed-off-by: Jens Axboe + +commit e27dedd84c119e2f7af54fcde3293be5ad812103 +Author: Jens Axboe +Date: Mon May 1 19:59:54 2006 +0200 + + [PATCH] splice: call handle_ra_miss() on failure to lookup page + + Notify the readahead logic of the missing page. Suggested by + Oleg Nesterov. + + Signed-off-by: Jens Axboe + +commit 7f9c51f0d9783c78db5c2aa16806d0c256ac667f +Author: Jens Axboe +Date: Mon May 1 19:59:32 2006 +0200 + + [PATCH] Add ->splice_read/splice_write to def_blk_fops + + It can use the generic handlers. + + Signed-off-by: Jens Axboe + +commit f84d751994441292593523c7069ed147176f6cab +Author: Jens Axboe +Date: Mon May 1 19:59:03 2006 +0200 + + [PATCH] pipe: introduce ->pin() buffer operation + + The ->map() function is really expensive on highmem machines right now, + since it has to use the slower kmap() instead of kmap_atomic(). Splice + rarely needs to access the virtual address of a page, so it's a waste + of time doing it. + + Introduce ->pin() to take over the responsibility of making sure the + page data is valid. ->map() is then reduced to just kmap(). That way we + can also share a most of the pipe buffer ops between pipe.c and splice.c + + Signed-off-by: Jens Axboe + +commit 0568b409c74f7a125d92a09a3f386785700ef688 +Author: Jens Axboe +Date: Mon May 1 19:50:48 2006 +0200 + + [PATCH] splice: fix bugs in pipe_to_file() + + Found by Oleg Nesterov , fixed by me. + + - Only allow full pages to go to the page cache. + - Check page != buf->page instead of using PIPE_BUF_FLAG_STOLEN. + - Remember to clear 'stolen' if add_to_page_cache() fails. + + And as a cleanup on that: + + - Make the bottom fall-through logic a little less convoluted. Also make + the steal path hold an extra reference to the page, so we don't have + to differentiate between stolen and non-stolen at the end. + + Signed-off-by: Jens Axboe + +commit 254abfd33a214617deb916585b306faee834c97f +Author: Roland Dreier +Date: Mon May 1 10:40:23 2006 -0700 + + IB/mthca: Fix offset in query_gid method + + GuidInfo records have 8 byte GUIDs in them, so an index should be + multiplied by 8 to get an offset. mthca_query_gid() was incorrectly + multiplying by 16. + + Noticed by Leonid Keller . + + Signed-off-by: Roland Dreier + +commit 2ad312d2093ae506ae0fa184d8d026b559083087 +Author: Steve Grubb +Date: Tue Apr 11 08:50:56 2006 -0400 + + [PATCH] Audit Filter Performance + + While testing the watch performance, I noticed that selinux_task_ctxid() + was creeping into the results more than it should. Investigation showed + that the function call was being called whether it was needed or not. The + below patch fixes this. + + Signed-off-by: Steve Grubb + Signed-off-by: Al Viro + +commit 073115d6b29c7910feaa08241c6484637f5ca958 +Author: Steve Grubb +Date: Sun Apr 2 17:07:33 2006 -0400 + + [PATCH] Rework of IPC auditing + + 1) The audit_ipc_perms() function has been split into two different + functions: + - audit_ipc_obj() + - audit_ipc_set_perm() + + There's a key shift here... The audit_ipc_obj() collects the uid, gid, + mode, and SElinux context label of the current ipc object. This + audit_ipc_obj() hook is now found in several places. Most notably, it + is hooked in ipcperms(), which is called in various places around the + ipc code permforming a MAC check. Additionally there are several places + where *checkid() is used to validate that an operation is being + performed on a valid object while not necessarily having a nearby + ipcperms() call. In these locations, audit_ipc_obj() is called to + ensure that the information is captured by the audit system. + + The audit_set_new_perm() function is called any time the permissions on + the ipc object changes. In this case, the NEW permissions are recorded + (and note that an audit_ipc_obj() call exists just a few lines before + each instance). + + 2) Support for an AUDIT_IPC_SET_PERM audit message type. This allows + for separate auxiliary audit records for normal operations on an IPC + object and permissions changes. Note that the same struct + audit_aux_data_ipcctl is used and populated, however there are separate + audit_log_format statements based on the type of the message. Finally, + the AUDIT_IPC block of code in audit_free_aux() was extended to handle + aux messages of this new type. No more mem leaks I hope ;-) + + Signed-off-by: Al Viro + +commit ce29b682e228c70cdc91a1b2935c5adb2087bab8 +Author: Steve Grubb +Date: Sat Apr 1 18:29:34 2006 -0500 + + [PATCH] More user space subject labels + + Hi, + + The patch below builds upon the patch sent earlier and adds subject label to + all audit events generated via the netlink interface. It also cleans up a few + other minor things. + + Signed-off-by: Steve Grubb + + Signed-off-by: Al Viro + +commit e7c3497013a7e5496ce3d5fd3c73b5cf5af7a56e +Author: Steve Grubb +Date: Mon Apr 3 09:08:13 2006 -0400 + + [PATCH] Reworked patch for labels on user space messages + + The below patch should be applied after the inode and ipc sid patches. + This patch is a reworking of Tim's patch that has been updated to match + the inode and ipc patches since its similar. + + [updated: + > Stephen Smalley also wanted to change a variable from isec to tsec in the + > user sid patch. ] + + Signed-off-by: Steve Grubb + Signed-off-by: Al Viro + +commit 9c7aa6aa74fa8a5cda36e54cbbe4fffe0214497d +Author: Steve Grubb +Date: Fri Mar 31 15:22:49 2006 -0500 + + [PATCH] change lspp ipc auditing + + Hi, + + The patch below converts IPC auditing to collect sid's and convert to context + string only if it needs to output an audit record. This patch depends on the + inode audit change patch already being applied. + + Signed-off-by: Steve Grubb + + Signed-off-by: Al Viro + +commit 1b50eed9cac0e8e5e4d3a522d8aa267f7f8f8acb +Author: Steve Grubb +Date: Mon Apr 3 14:06:13 2006 -0400 + + [PATCH] audit inode patch + + Previously, we were gathering the context instead of the sid. Now in this patch, + we gather just the sid and convert to context only if an audit event is being + output. + + This patch brings the performance hit from 146% down to 23% + + Signed-off-by: Al Viro + +commit 3dc7e3153eddfcf7ba8b50628775ba516e5f759f +Author: Darrel Goeddel +Date: Fri Mar 10 18:14:06 2006 -0600 + + [PATCH] support for context based audit filtering, part 2 + + This patch provides the ability to filter audit messages based on the + elements of the process' SELinux context (user, role, type, mls sensitivity, + and mls clearance). It uses the new interfaces from selinux to opaquely + store information related to the selinux context and to filter based on that + information. It also uses the callback mechanism provided by selinux to + refresh the information when a new policy is loaded. + + Signed-off-by: Al Viro + +commit 376bd9cb357ec945ac893feaeb63af7370a6e70b +Author: Darrel Goeddel +Date: Fri Feb 24 15:44:05 2006 -0600 + + [PATCH] support for context based audit filtering + + The following patch provides selinux interfaces that will allow the audit + system to perform filtering based on the process context (user, role, type, + sensitivity, and clearance). These interfaces will allow the selinux + module to perform efficient matches based on lower level selinux constructs, + rather than relying on context retrievals and string comparisons within + the audit module. It also allows for dominance checks on the mls portion + of the contexts that are impossible with only string comparisons. + + Signed-off-by: Darrel Goeddel + Signed-off-by: Al Viro + +commit 97e94c453073a2aba4bb5e0825ddc5e923debf11 +Author: Al Viro +Date: Wed Mar 29 20:26:24 2006 -0500 + + [PATCH] no need to wank with task_lock() and pinning task down in audit_syscall_exit() + + Signed-off-by: Al Viro + +commit 5411be59db80333039386f3b1ccfe5eb9023a916 +Author: Al Viro +Date: Wed Mar 29 20:23:36 2006 -0500 + + [PATCH] drop task argument of audit_syscall_{entry,exit} + + ... it's always current, and that's a good thing - allows simpler locking. + + Signed-off-by: Al Viro + +commit e495149b173d8e133e1f6f2eb86fd97be7e92010 +Author: Al Viro +Date: Wed Mar 29 20:17:10 2006 -0500 + + [PATCH] drop gfp_mask in audit_log_exit() + + now we can do that - all callers are process-synchronous and do not hold + any locks. + + Signed-off-by: Al Viro + +commit fa84cb935d4ec601528f5e2f0d5d31e7876a5044 +Author: Al Viro +Date: Wed Mar 29 20:30:19 2006 -0500 + + [PATCH] move call of audit_free() into do_exit() + + Signed-off-by: Al Viro + +commit d6fe3945b42d09a1eca7ad180a1646e585b8594f +Author: Steve Grubb +Date: Thu Mar 30 12:20:22 2006 -0500 + + [PATCH] sockaddr patch + + On Thursday 23 March 2006 09:08, John D. Ramsdell wrote: + > I noticed that a socketcall(bind) and socketcall(connect) event contain a + > record of type=SOCKADDR, but I cannot see one for a system call event + > associated with socketcall(accept). Recording the sockaddr of an accepted + > socket is important for cross platform information flow analys + + Thanks for pointing this out. The following patch should address this. + + Signed-off-by: Steve Grubb + Signed-off-by: Al Viro + +commit 45d9bb0e37668b7c64d1e49e98fbc4733c23b334 +Author: Al Viro +Date: Wed Mar 29 20:02:55 2006 -0500 + + [PATCH] deal with deadlocks in audit_free() + + Don't assume that audit_log_exit() et.al. are called for the context of + current; pass task explictly. + + Signed-off-by: Al Viro + +commit c9f2946fbec88d4baa3a6d47eb3a8e6b08b05cd9 +Author: David S. Miller +Date: Sun Apr 30 22:54:27 2006 -0700 + + [SPARC64]: Disable preemption during flush_tlb_pending(). + + A context switch will force a call to flush_tlb_pending() (via + switch_to()), so if we test tlb_nr to be non-zero, then sleep, it + would become zero and later back at the original context we'll pass + zero down into the TLB flushing code which should never see a nr + argument of zero. + + Signed-off-by: David S. Miller + +commit 1241140f5183db38393556832198a3b109bf9085 +Author: David S. Miller +Date: Sun Apr 30 21:40:13 2006 -0700 + + [SPARC64]: Kill __flush_tlb_page() prototype. + + This function no longer exists. + + Signed-off-by: David S. Miller + +commit cc873e1aa1fa916a485294117a9846e668505671 +Author: Sam Ravnborg +Date: Sun Apr 30 23:59:16 2006 +0200 + + kbuild: drivers/video/logo/ - fix ident glitch + + Jan Engelhardt wrote: + while compiling 2.6.17-rc2 with allyesconfig, this showed up: + ... + LOGO drivers/video/logo/logo_superh_clut224.c + CC drivers/video/logo/logo_linux_mono.o + ... + + A tab had sneaked in. Convert it to a few spaces. + Signed-off-by: Sam Ravnborg + +commit 46ed981d5d203703a01137cc58c841d34e90c147 +Author: Sam Ravnborg +Date: Sun Apr 30 23:56:33 2006 +0200 + + kbuild: fix gen_initramfs_list.sh + + Create correct dependencies when specifying your own file with + list of files etc. to include in initramfs. + Reported by: Andre Noll + + Signed-off-by: Sam Ravnborg + +commit 72ee59b5797e5d6fe32b5cf3473660a50a02db40 +Author: Randy Dunlap +Date: Sat Apr 15 11:17:12 2006 -0700 + + kbuild modpost - relax driver data name + + Relax driver data name from *_driver to *driver. + This fixes the 26 section mismatch warnings in drivers/ide/pci. + + Signed-off-by: Randy Dunlap + Signed-off-by: Sam Ravnborg + +commit fca1dff218163ffd34d1e9e0b9b244e8c8803601 +Author: Pavel Roskin +Date: Mon Apr 24 15:55:27 2006 -0400 + + kbuild: removing .tmp_versions considered harmful + + Remove *.mod files but not .tmp_versions for external builds + + When "make install" is run as root, .tmp_versions is re-created and + becomes owned by root. Subsequent "make" run by user fails because + .tmp_versions cannot be removed. + + Signed-off-by: Pavel Roskin + Signed-off-by: Sam Ravnborg + +commit c8d8b837ebe4b4f11e1b0c4a2bdc358c697692ed +Author: Atsushi Nemoto +Date: Tue Apr 25 01:53:43 2006 +0900 + + kbuild: fix modpost segfault for 64bit mipsel kernel + + 64bit mips has different r_info layout. This patch fixes modpost + segfault for 64bit little endian mips kernel. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Sam Ravnborg + +commit 46e678c96bbd775abd05d3ddbe2fd334794f9157 +Author: Jens Axboe +Date: Sun Apr 30 16:36:32 2006 +0200 + + [PATCH] splice: fix bugs with stealing regular pipe pages + + - Check that page has suitable count for stealing in the regular pipes. + - pipe_to_file() assumes that the page is locked on succesful steal, so + do that in the pipe steal hook + - Missing unlock_page() in add_to_page_cache() failure. + + Signed-off-by: Jens Axboe + +commit 81d38428df26377c91e7e193aa4d2fdfdcda300a +Author: Pavel Pisa +Date: Sun Apr 30 15:35:54 2006 +0100 + + [ARM] 3485/1: i.MX: MX1 SD/MMC fix of unintentional double start possibility + + Patch from Pavel Pisa + + The clock starting imxmci_start_clock() function contains hardware + issue workaround, which repeats start attempt, if SDHC does not react on + the first trial. But the second start attempt can be taken even, if the + first succeed and test code misses time limited clock running phase + due to delay caused by schedule to other task or some another device + interrupt. This change enables to detect such situation. + The performance is not issue, because usually at full clock rate + only about six loops in delay cycle are needed. + + Signed-off-by: Pavel Pisa + Acked-by: Sascha Hauer + Signed-off-by: Russell King + +commit 76bbb00288e569e7bd9ec18f45e4f814352260dd +Author: Deepak Saxena +Date: Sun Apr 30 15:34:29 2006 +0100 + + [ARM] 3487/1: IXP4xx: Support non-PCI systems + + Patch from Deepak Saxena + + This patch allows for the addition of IXP4xx systems that do not make + use of the PCI interface by moving the CONFIG_PCI symbol selection to + be platform-specific instead of for all of IXP4xx. If at least one machine + with PCI support is built, the PCI code will be compiled in, but when + building !PCI, this will drastically shrink the kernel size. + + Signed-off-by: Deepak Saxena + Signed-off-by: Russell King + +commit cd95842ca0ffb0e3df3b459832a60f9f4544ed9e +Author: Markus Gutschke +Date: Sun Apr 30 15:34:29 2006 +0100 + + [ARM] 3486/1: Mark memory as clobbered by the ARM _syscallX() macros + + Patch from Markus Gutschke + + In order to prevent gcc from making incorrect optimizations, all asm() + statements that define system calls should report memory as + clobbered. Recent versions of the headers for i386 have been changed + accordingly, but the ARM headers are still defective. + + This patch fixes the bug tracked at + http://bugzilla.kernel.org/show_bug.cgi?id=6205 + + Signed-off-by: Markus Gutschke + Signed-off-by: Russell King + +commit a88d75b257b2b28b26d7d4d2b640f05feb00ad53 +Author: Russell King +Date: Sun Apr 30 11:30:15 2006 +0100 + + [SERIAL] Remove unconditional enable of TX irq for console + + A bug report from Gerd Hoffmann has highlighted that unconditionally + enabling the transmit interrupt at the end of console writes is very + bad. + + In Gerd's case, it causes the test for buggy UARTs to give false + positives, incorrectly identifying ports as buggy when they are not. + + Moreover, if we unconditionally enable the interrupt, and the port + is sharing it's interrupt with other ports, there is the very real + possibility that we'll cause an interrupt storm. (Not all ports use + OUT2 as an interrupt mask.) + + Hence, revert part of f91a3715db2bb44fcf08cec642e68f919b70f7f4 and + all of f5968b37b3ad35b682b574b578843a0361218aff until a better solution + can be found. + + Signed-off-by: Russell King + +commit b32b19b8ffc05cbd3bf91c65e205f6a912ca15d9 +Author: Jon Anders Haugum +Date: Sun Apr 30 11:20:56 2006 +0100 + + [SERIAL] 8250: set divisor register correctly for AMD Alchemy SoC uart + + Alchemy SoC uart have got a non-standard divisor register that needs some + special handling. + + This patch adds divisor read/write functions with test and special + handling for Alchemy internal uart. + + Signed-off-by: Jon Anders Haugum + Signed-off-by: Russell King + +commit 85835f442e5bbf9d3b8f6e574751da8db77016d2 +Author: Sergei Shtylyov +Date: Sun Apr 30 11:15:58 2006 +0100 + + [SERIAL] AMD Alchemy UART: claim memory range + + I've noticed that the 8250/Au1x00 driver (drivers/serial/8250_au1x00.c) + doesn't claim UART memory ranges and uses wrong (KSEG1-based) UART + addresses instead of the physical ones. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Russell King + +commit 68ac64cd3fd89fdaa091701f6ab98a9065e9b1b5 +Author: Russell King +Date: Sun Apr 30 11:13:50 2006 +0100 + + [SERIAL] Clean up serial locking when obtaining a reference to a port + + The locking for the uart_port is over complicated, and can be + simplified if we introduce a flag to indicate that a port is "dead" + and will be removed. + + This also helps the validator because it removes a case of non-nested + unlock ordering. + + Signed-off-by: Russell King + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + +commit b276764091cf241cf0b31e8cb76c67dcf9a9c1d8 +Author: Michael Chan +Date: Sat Apr 29 19:01:06 2006 -0700 + + [TG3]: Update version and reldate + + Update version to 3.57. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit f6d9a2565bc754043f43b8f51b19f77ee0269411 +Author: Michael Chan +Date: Sat Apr 29 19:00:24 2006 -0700 + + [TG3]: Fix bug in nvram write + + Fix bug in nvram write function. If the starting nvram address offset + happens to be the last dword of the page, the NVRAM_CMD_LAST bit will + not get set in the existing code. This patch fixes the bug by changing + the "else if" to "if" so that the last dword condition always gets + checked. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 8e7a22e3eb49042c048f24bab40cf5cf8915487d +Author: Gary Zambrano +Date: Sat Apr 29 18:59:13 2006 -0700 + + [TG3]: Add reset_phy parameter to chip reset functions + + Add a reset_phy parameter to tg3_reset_hw() and tg3_init_hw(). With + the full chip reset during MAC address change, the automatic PHY reset + during chip reset will cause a link down and bonding will not work + properly as a result. With this reset_phy parameter, we can do a chip + reset without link down when changing MAC address or MTU. + + Signed-off-by: Gary Zambrano + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 58712ef9f2cbaaeac5b32ac11810a4bbd0eeacc5 +Author: Michael Chan +Date: Sat Apr 29 18:58:01 2006 -0700 + + [TG3]: Reset chip when changing MAC address + + Do the full chip reset when changing MAC address if ASF is enabled. + + ASF sometimes uses a different MAC address than the driver. Without + the reset, the ASF MAC address may be overwritten when the driver's + MAC address is changed. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit c424cb249dae10fb7f118f89091f1329b62b92f4 +Author: Michael Chan +Date: Sat Apr 29 18:56:34 2006 -0700 + + [TG3]: Add phy workaround + + Add some PHY workaround code to reduce jitter on some PHYs. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit c8e1e82b6a97ad44517517aa58b7b794ead0bf33 +Author: Michael Chan +Date: Sat Apr 29 18:55:17 2006 -0700 + + [TG3]: Call netif_carrier_off() during phy reset + + Add netif_carrier_off() call during tg3_phy_reset(). This is needed + to properly track the netif_carrier state in cases where we do a + PHY reset with interrupts disabled. The SerDes code will not run + properly if the netif_carrier state is wrong. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit c302e6d54e468ee9b1e18152e2e9da06953f3473 +Author: YOSHIFUJI Hideaki +Date: Fri Apr 28 15:59:15 2006 -0700 + + [IPV6]: Fix race in route selection. + + We eliminated rt6_dflt_lock (to protect default router pointer) + at 2.6.17-rc1, and introduced rt6_select() for general router selection. + The function is called in the context of rt6_lock read-lock held, + but this means, we have some race conditions when we do round-robin. + + Signed-off-by; YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit e959d8121fcbfee6ec049cc617e9423d1799f2e4 +Author: Ingo Molnar +Date: Fri Apr 28 15:32:29 2006 -0700 + + [XFRM]: fix incorrect xfrm_policy_afinfo_lock use + + xfrm_policy_afinfo_lock can be taken in bh context, at: + + [] lockdep_acquire_read+0x54/0x6d + [] _read_lock+0x15/0x22 + [] xfrm_policy_get_afinfo+0x1a/0x3d + [] xfrm_decode_session+0x12/0x32 + [] ip_route_me_harder+0x1c9/0x25b + [] ip_nat_local_fn+0x94/0xad + [] nf_iterate+0x2e/0x7a + [] nf_hook_slow+0x3c/0x9e + [] ip_push_pending_frames+0x2de/0x3a7 + [] icmp_push_reply+0x136/0x141 + [] icmp_reply+0x118/0x1a0 + [] icmp_echo+0x44/0x46 + [] icmp_rcv+0x111/0x138 + [] ip_local_deliver+0x150/0x1f9 + [] ip_rcv+0x3d5/0x413 + [] netif_receive_skb+0x337/0x356 + [] process_backlog+0x95/0x110 + [] net_rx_action+0xa5/0x16d + [] __do_softirq+0x6f/0xe6 + [] do_softirq+0x52/0xb1 + + this means that all write-locking of xfrm_policy_afinfo_lock must be + bh-safe. This patch fixes xfrm_policy_register_afinfo() and + xfrm_policy_unregister_afinfo(). + + Signed-off-by: Ingo Molnar + Signed-off-by: David S. Miller + +commit f3111502c065d32dcb021f55e30398aaebd8fb0f +Author: Ingo Molnar +Date: Fri Apr 28 15:30:03 2006 -0700 + + [XFRM]: fix incorrect xfrm_state_afinfo_lock use + + xfrm_state_afinfo_lock can be read-locked from bh context, so take it + in a bh-safe manner in xfrm_state_register_afinfo() and + xfrm_state_unregister_afinfo(). Found by the lock validator. + + Signed-off-by: Ingo Molnar + Signed-off-by: David S. Miller + +commit 83de47cd0c5738105f40e65191b0761dfa7431ac +Author: Hua Zhong +Date: Fri Apr 28 15:26:50 2006 -0700 + + [TCP]: Fix unlikely usage in tcp_transmit_skb() + + The following unlikely should be replaced by likely because the + condition happens every time unless there is a hard error to transmit + a packet. + + Signed-off-by: Hua Zhong + Signed-off-by: David S. Miller + +commit 8dff7c29707b7514043539f5ab5e0a6eb7bd9dcd +Author: Ingo Molnar +Date: Fri Apr 28 15:23:59 2006 -0700 + + [XFRM]: fix softirq-unsafe xfrm typemap->lock use + + xfrm typemap->lock may be used in softirq context, so all write_lock() + uses must be softirq-safe. + + Signed-off-by: Ingo Molnar + Signed-off-by: David S. Miller + +commit a76e07acd0de635122c5e60ccd5e55f9d5082391 +Author: Herbert Xu +Date: Fri Apr 28 15:22:13 2006 -0700 + + [IPSEC]: Fix IP ID selection + + I was looking through the xfrm input/output code in order to abstract + out the address family specific encapsulation/decapsulation code. During + that process I found this bug in the IP ID selection code in xfrm4_output.c. + + At that point dst is still the xfrm_dst for the current SA which + represents an internal flow as far as the IPsec tunnel is concerned. + Since the IP ID is going to sit on the outside of the encapsulated + packet, we obviously want the external flow which is just dst->child. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit da753beaeb1446aa87bcca7e8a0026633a8914f0 +Author: Akinobu Mita +Date: Fri Apr 28 15:21:23 2006 -0700 + + [NET]: use hlist_unhashed() + + Use hlist_unhashed() rather than accessing inside data structure. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit a536e0778781c1f2ce38cf8e1d82ce258f0193c1 +Author: Heiko Carstens +Date: Fri Apr 28 15:19:17 2006 -0700 + + [IPV4]: inet_init() -> fs_initcall + + Convert inet_init to an fs_initcall to make sure its called before any + device driver's initcall. + + Signed-off-by: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 09493abfdbe8144ce0805efac7a8a3c4eb869c12 +Author: Soyoung Park +Date: Fri Apr 28 14:59:44 2006 -0700 + + [NETLINK]: cleanup unused macro in net/netlink/af_netlink.c + + 1 line removal, of unused macro. + ran 'egrep -r' from linux-2.6.16/ for Nprintk and + didn't see it anywhere else but here, in #define... + + Signed-off-by: Soyoung Park + Signed-off-by: David S. Miller + +commit 89bbb0a361cdae50eec863f10a876b58abf7d312 +Author: Stephen Hemminger +Date: Fri Apr 28 12:11:36 2006 -0700 + + [PKT_SCHED] netem: fix loss + + The following one line fix is needed to make loss function of + netem work right when doing loss on the local host. + Otherwise, higher layers just recover. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 43dff98b022ded593e73c3784bac03bc9fc7ec55 +Author: Shaun Pereira +Date: Fri Apr 28 12:00:17 2006 -0700 + + [X25]: fix for spinlock recurse and spinlock lockup with timer handler + + When the sk_timer function x25_heartbeat_expiry() is called by the + kernel in a running/terminating process, spinlock-recursion and + spinlock-lockup locks up the kernel. This has happened with testing + on some distro's and the patch below fixed it. + + Signed-off-by: Shaun Pereira + Signed-off-by: David S. Miller + +commit 991cef7be26ce78fe2bac72bedaf89e002cc2712 +Author: Ralf Baechle +Date: Sat Apr 29 08:52:44 2006 +0800 + + [PATCH] au1200fb: Remove accidentally duplicated content of au1200fb.c + + Content of file au1200fb.c was duplicated. Remove. + + Signed-off-by: Ralf Baechle + Signed-off-by: Antonino Daplas + Signed-off-by: Linus Torvalds + +commit 4661e3eace2c7b8433476b5bf0ee437ab3c7dfd4 +Author: Linus Torvalds +Date: Sat Apr 29 14:27:13 2006 -0700 + + [SCSI] advansys driver: limp along on x86 + + Let people enable the advansys driver on x86-32, even though it's broken + on other architectures due to missing DMA mapping infrastructure. + + It's used by Jeffrey Phillips Freeman and + possibly others. + + Signed-off-by: Linus Torvalds + +commit 543f2a3382bd7abd7380903518c61f00c7c87577 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Sat Apr 29 14:07:49 2006 -0400 + + [PATCH] i386: fix broken FP exception handling + + The FXSAVE information leak patch introduced a bug in FP exception + handling: it clears FP exceptions only when there are already + none outstanding. Mikael Pettersson reported that causes problems + with the Erlang runtime and has tested this fix. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Acked-by: Mikael Pettersson + Signed-off-by: Linus Torvalds + +commit 8fdc19486f4d3b0fc5f1c7ce69fe5f7b1c653e62 +Author: Dmitry Torokhov +Date: Sat Apr 29 01:13:48 2006 -0400 + + Input: make EVIOCGSND return meaningful data + + Signed-off-by: Dmitry Torokhov + +commit 08791e5cf62b6952ca32106aebb79b6066005de4 +Author: Dmitry Torokhov +Date: Sat Apr 29 01:13:21 2006 -0400 + + Input: ressurect EVIOCGREP and EVIOCSREP + + While writing to an event device allows to set repeat rate for an + individual input device there is no way to retrieve current settings + so we need to ressurect EVIOCGREP. Also ressurect EVIOCSREP so we + have a symmetrical interface. + + Signed-off-by: Dmitry Torokhov + +commit 89c9b4805a525bdd4c6e7529d06292f60ac837fc +Author: Dmitry Torokhov +Date: Sat Apr 29 01:12:44 2006 -0400 + + Input: psmouse - fix new device detection logic + + Signed-off-by: Dmitry Torokhov + +commit 6fb8f3acbe833586eb32598d1f844eb9f77c4fba +Author: Arnd Bergmann +Date: Sat Apr 29 02:40:22 2006 +0200 + + [PATCH] powerpc: update cell_defconfig + + reflect the changes to Kconfig since the last update. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit f807221dedbd30726c5dffcd5b5d22ce0ea683cb +Author: Arnd Bergmann +Date: Sat Apr 29 02:40:21 2006 +0200 + + [PATCH] spufs: Disable local interrupts for SPE hash_page calls. + + This patch disables and saves local interrupts during + hash_page processing for SPE contexts. + + We have to do it explicitly in the spu_irq_class_1_bottom + function. For the interrupt handlers, we get the behaviour + implicitly by using SA_INTERRUPT to disable interrupts while + in the handler. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 03054d51a70e8c273df5d9bc31fea6c843eaa1c3 +Author: Anton Blanchard +Date: Sat Apr 29 09:51:06 2006 +1000 + + [PATCH] powerpc: Add cputable entry for POWER6 + + Add a cputable entry for the POWER6 processor. + + The SIHV and SIPR bits in the mmcra have moved in POWER6, so disable + support for that until oprofile is fixed. + + Also tell firmware that we know about POWER6. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 693f7d362055261882659475d2ef022e32edbff1 +Author: shin, jacob +Date: Fri Apr 28 10:54:37 2006 -0500 + + [PATCH] slab: fix crash on __drain_alien_cahce() during CPU Hotplug + + transfer_objects should only be called when all of the cpus in the + node are online. CPU_DEAD notifier callback marks l3->shared to NULL. + + Signed-off-by: Jacob Shin + Signed-off-by: Linus Torvalds + +commit 4de0b1ee1b630318553248c4cfc78358720a5c84 +Author: Antonino A. Daplas +Date: Thu Apr 27 18:40:47 2006 -0700 + + [PATCH] asiliantfb: Add help text in Kconfig + + Add help text in Kconfig + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9587c4bf72bf6cc79e1c471a201c0bd73171fcd6 +Author: Antonino A. Daplas +Date: Thu Apr 27 18:40:39 2006 -0700 + + [PATCH] suspend: Documentation update for IBM Thinkpad X30 + + As reported in Bugzilla Bug 6406, resume from S3 results in a blank screen. + + For the IBM Thinkpad X30 using vesafb as the console driver, successful resume + from S3 requires option acpi_sleep=s3_bios,s3_mode. Update documentation. + + I would presume that, in any hardware, using vesafb as the console driver will + require as a minimum s3_mode. + + Signed-off-by: Antonino Daplas + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a3266a930450287e27a8a14ffe0484992941b9f7 +Author: Martin Schwidefsky +Date: Thu Apr 27 18:40:33 2006 -0700 + + [PATCH] s390: new system calls + + Add sys_set_robust_list, sys_get_robust_list, sys_splice, sys_sync_file and + sys_tee system calls. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3d052595423b4432f4d599c1aeb1949ac0da7314 +Author: Horst Hummel +Date: Thu Apr 27 18:40:28 2006 -0700 + + [PATCH] s390: dasd device identifiers + + Generate new sysfs-attribute 'uid' that contains an device specific unique + identifier. This can be used to identity multiple ALIASES of the same + physical device (PAV). In addition the sysfs-attributes 'vendor' (containing + the manufacturer of the device) and 'alias' (identify alias or base device) is + added. This is first part of PAV support in LPAR (also valid on zVM). + + Signed-off-by: Horst Hummel + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 58268b97f679108d32a882a7fc029585da801975 +Author: Christian Borntraeger +Date: Thu Apr 27 18:40:24 2006 -0700 + + [PATCH] s390: add read_mostly optimization + + Add a read_mostly section and define __read_mostly to prevent cache line + pollution due to writes for mostly read variables. In addition fix the + incorrect alignment of the cache_line_aligned data section. s390 has a + cacheline size of 256 bytes. + + Signed-off-by: Christian Borntraeger + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b73d40c6178f2c8b2d574db566b47f36e3d12072 +Author: Heiko Carstens +Date: Thu Apr 27 18:40:23 2006 -0700 + + [PATCH] s390: instruction processing damage handling + + In case of an instruction processing damage (IPD) machine check in kernel mode + the resulting action is always to stop the kernel. This is not necessarily + the best solution since a retry of the failing instruction might succeed. Add + logic to retry the instruction if no more than 30 instruction processing + damage checks occured in the last 5 minutes. + + Signed-off-by: Heiko Carstens + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b5dec1aa08b77c4217cd5fcaf1e4e177f659b2e +Author: Gerald Schaefer +Date: Thu Apr 27 18:40:22 2006 -0700 + + [PATCH] s390: segment operation error codes + + Print a warning with the z/VM error code if segment_load, segment_type or + segment_save fail to ease the problem determination. + + Signed-off-by: Gerald Schaefer + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2cc924b8ba1e9493ed50f5b793974e2427a15748 +Author: Stefan Bader +Date: Thu Apr 27 18:40:16 2006 -0700 + + [PATCH] s390: tape 3590 changes + + Added some changes that where proposed by Andrew Morton. Added 3592 device + type. + + Signed-off-by: Stefan Bader + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3363fbdd6fb4992ffe6c17c0dd7388ffa22d99e6 +Author: Martin Schwidefsky +Date: Thu Apr 27 18:40:12 2006 -0700 + + [PATCH] s390: futex atomic operations + + Add support for atomic futex operations. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 40ac6b204c20da09b64b6dcc10c68b6e7bd9fadd +Author: Christian Borntraeger +Date: Thu Apr 27 18:40:11 2006 -0700 + + [PATCH] s390: fix slab debugging + + With CONFIG_SLAB_DEBUG=y networking over qeth doesn't work. The problem is + that the qib structure embedded in the qeth_irq structure needs an alignment + of 256 but kmalloc only guarantees an alignment of 8. When using SLAB + debugging the alignment of qeth_irq is not sufficient for the embedded qib + structure which causes all users of qdio (qeth and zfcp) to stop working. + Allocate qeth_irq structure with __get_free_page. That wastes a small amount + of memory (~2500 bytes) per online adapter. + + Signed-off-by: Christian Borntraeger + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 39ccf95e28765a08a9e01be614695d7c570b4e77 +Author: Horst Hummel +Date: Thu Apr 27 18:40:10 2006 -0700 + + [PATCH] s390: dasd ioctl never returns + + The dasd state machine is not designed to enable an unformatted device, since + 'unformatted' is a final state. The BIODASDENABLE ioctl calls + dasd_enable_device() which never returns if the device is in this special + state. Return -EPERM in dasd_increase_state for unformatted devices to make + dasd_enable_device terminate. Note: To get such an unformatted device online + it has to be re-analyzed. This means that the device needs to be disabled + prior to re-enablement. + + Signed-off-by: Horst Hummel + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a3ae39c060be57a4936d2c1d970e4d0c7d320d9c +Author: Andreas Herrmann +Date: Thu Apr 27 18:40:09 2006 -0700 + + [PATCH] s390: qdio memory allocations + + Avoid memory allocation with GFP_KERNEL in qdio_establish/qdio_shutdown. Use + memory pool instead. (Otherwise this can lead to an I/O stall where qdio + waits for a free page and zfcp waits for end of error recovery in low memory + situations.) + + Signed-off-by: Andreas Herrmann + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 28f223782bca914ae65d08234c57c2175ecd7f5d +Author: Laurent Meyer +Date: Thu Apr 27 18:40:07 2006 -0700 + + [PATCH] s390: alternate signal stack handling bug + + If a signal handler has been established with the SA_ONSTACK option but no + alternate stack is provided with sigaltstack(), the kernel still tries to + install the alternate stack. Also when setting an alternate stack with + sigalstack() and the SS_DISABLE flag, the kernel tries to install the + alternate stack on signal delivery. Use the correct conditions sas_ss_flags() + to check if the alternate stack has to be used. + + Signed-off-by: Laurent Meyer + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6dcfca78d4c036c9d012f913e2a622aae218827f +Author: Stefan Bader +Date: Thu Apr 27 18:40:04 2006 -0700 + + [PATCH] s390: enable interrupts on error path + + Interrupts can stay disabled if an error occurred in _chp_add(). Use + spin_unlock_irq on the error paths to reenable interrupts. + + Signed-off-by: Stefan Bader + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 329b785bcee5d001f97a33bdb80de014bb5020b0 +Author: Peter Oberparleiter +Date: Thu Apr 27 18:40:02 2006 -0700 + + [PATCH] s390: fix I/O termination race in cio + + Fix a race condition in the I/O termination logic. The race can cause I/O to + a dasd device to fail with no retry left after turning one channel path to the + device off and on multiple times. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bcff5cd667da6eb3df9173626497e3e69b004e42 +Author: Masami Hiramatsu +Date: Thu Apr 27 18:39:55 2006 -0700 + + [PATCH] kprobe: fix resume execution on i386 + + Fix resume_execution() to handle iret and absolute jump opcode correctly on + i386. + + Signed-off-by: Masami Hiramatsu + Cc: Ananth N Mavinakayanahalli + Cc: "Keshavamurthy, Anil S" + Cc: Prasanna S Panchamukhi + Cc: Jim Keniston + Cc: Yumiko Sugita + Cc: Satoshi Oshima + Cc: Hideo Aoki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bf661987da6f5131475dfe3f51a98de4e2589ed3 +Author: mao, bibo +Date: Thu Apr 27 18:39:44 2006 -0700 + + [PATCH] kprobe cleanup for VM_MASK judgement + + When trap happens in user space, kprobe_exceptions_notify() funtion will + skip it. This patch deletes some unnecessary code for VM_MASK judgement in + eflags. + + Signed-off-by: bibo, mao + Cc: Masami Hiramatsu + Cc: Ananth N Mavinakayanahalli + Acked-by: "Keshavamurthy, Anil S" + Acked-by: Prasanna S Panchamukhi + Cc: Jim Keniston + Cc: Yumiko Sugita + Cc: Satoshi Oshima + Cc: Hideo Aoki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9539d4e79fae8482bc64ced03a46c7c6d711d19e +Author: Andi Kleen +Date: Thu Apr 27 18:39:36 2006 -0700 + + [PATCH] Mark VMSPLIT EMBEDDED + + Running abnormal VM splits causes weird problems - people can set non-standard + splits by accident, then lots of time gets wasted diagnosing it - see the long + "[stable] 2.6.16.6 breaks java... sort of" email thread. + + So we need to make this option harder to set. Use CONFIG_EMBEDDED for this. + + CONFIG_EMBEDDED isn't really the right thing to use, but there's nothing else + obvious and avoiding these problems is more important than Kconfig purity. + + Signed-off-by: Andi Kleen + Cc: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 35076bdfa171cd83d89fcb96568e786f0da91d9f +Author: Ashok Raj +Date: Thu Apr 27 18:39:30 2006 -0700 + + [PATCH] enable X86_PC for HOTPLUG_CPU + + CPU_HOTPLUG has race conditions when we use broadcast mode IPI. + + - First we introduced no_broadcast option + (see include/asm-i386/mach-default/mach_ipi.h) + + - x86_64 solved it by using physical flat mode (same as bigsmp on i386) + since this will not use broadcast shortcuts for IPI. + + - We switched to use bigsmp on i386 so that we can have same handling as + x86_64, but apparently this caused an error message, if kernel was + compiled without X86_GENERICARCH, X86_BIGSMP. The message "You have >8 + CPUS..." which was bogus and misleading, and only indicated one of the + above ARCH wasnt selected. + + So we do not switch to automatic bigsmp for HOTPLUG_CPU support in i386 + until the other related config dependencies for SMP_SUSPEND etc can be done + right. + + Signed-off-by: Ashok Raj + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7f5910ecabd3a36b9c06f73e33b673ccf150f3b4 +Author: Dave Jones +Date: Thu Apr 27 18:39:24 2006 -0700 + + [PATCH] Avoid printing pointless tsc skew msgs + + These messages are kinda silly.. + + CPU#0 had 0 usecs TSC skew, fixed it up. + CPU#1 had 0 usecs TSC skew, fixed it up. + + inspired from: http://bugzilla.kernel.org/attachment.cgi?id=7713&action=view + + Signed-off-by: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1d3d1d3e0356b583b642b016f874e2d1bd578453 +Author: Adrian Bunk +Date: Thu Apr 27 18:39:21 2006 -0700 + + [PATCH] re-add the OSS SOUND_CS4232 option + + A regression in the ALSA driver compared to the OSS driver was reported as + ALSA bug #1520, so let's keep the OSS driver for now. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d698f1c72629ff43d0cb6b9f1d17c491c057a0d9 +Author: Eric Sesterhenn +Date: Thu Apr 27 18:39:20 2006 -0700 + + [PATCH] fix array overrun in drivers/char/mwave/mwavedd.c + + this fixes coverity id #489. + + Since the last element in the array is always ARRAY_SIZE-1 we have to check + for ipcnum >= ARRAY_SIZE() + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1ac3836ce689e594b20c7c9855f64a63751c2d10 +Author: Daniel Drake +Date: Thu Apr 27 18:39:19 2006 -0700 + + [PATCH] tipar oops fix + + If compiled into the kernel, parport_register_driver() is called before the + parport driver has been initalised. + + This means that it is expected that tp_count is 0 after the + parport_register_driver() call() - tipar's attach function will not be + called until later during bootup. + + Signed-off-by: Daniel Drake + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 13e87ec68641fd54f3fa04eef3419d034ed2115a +Author: Andrew Morton +Date: Thu Apr 27 18:39:18 2006 -0700 + + [PATCH] request_irq(): remove warnings from irq probing + + - Add new SA_PROBEIRQ which suppresses the new sharing-mismatch warning. + Some drivers like to use request_irq() to find an unused interrupt slot. + + - Use it in i82365.c + + - Kill unused SA_PROBE. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 47bb789973fed504e4711ec34e63b84e6cbfb4e8 +Author: dean gaudet +Date: Thu Apr 27 18:39:17 2006 -0700 + + [PATCH] off-by-1 in kernel/power/main.c + + There's an off-by-1 in kernel/power/main.c:state_store() ... if your + kernel just happens to have some non-zero data at pm_states[PM_SUSPEND_MAX] + (i.e. one past the end of the array) then it'll let you write anything you + want to /sys/power/state and in response the box will enter S5. + + Signed-off-by: dean gaudet + Acked-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ec448a0a361ce3fa97a32a5c267a680163ffe8c5 +Author: Roland Dreier +Date: Tue Apr 18 09:05:39 2006 -0700 + + [SCSI] srp.h: avoid padding of structs + + Several structs in get padded to a multiple of 8 bytes on + 64-bit architectures and end up with a size that does not match the + definition in the SRP spec: + + SRP spec 64-bit + sizeof (struct indirect_buf) 20 24 + sizeof (struct srp_login_rsp) 52 56 + sizeof (struct srp_rsp) 36 40 + + Fix this by adding __attribute__((packed)) to the offending structs. + + Problem pointed out by Arne Redlich . + + Signed-off-by: Roland Dreier + Signed-off-by: James Bottomley + +commit e5dbfa6621732a110514fb10f9a43f0e8f4befd4 +Author: FUJITA Tomonori +Date: Fri Apr 14 13:52:18 2006 +0900 + + [SCSI] ibmvscsi: fix leak when failing to send srp event + + Signed-off-by: FUJITA Tomonori + Signed-off-by: James Bottomley + +commit 09b03b6c29638eb5c79b02e585cb1b20d91a8ea0 +Author: Vitaly Bordug +Date: Tue Apr 25 20:26:46 2006 +0400 + + [PATCH] ppc32 CPM_UART: Fixed odd address translations + + Current address translation methods can produce wrong results, because + virt_to_bus and vice versa may not produce correct offsets on dma-allocated + memory. The right way is, while tracking both phys and virt address of the + window that has been allocated for boffer descriptors, and use those + numbers to compute the offset and make translation properly. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit 4427d6bf966379304f77b7cc8c92421e6bb95483 +Author: Vitaly Bordug +Date: Tue Apr 25 20:26:43 2006 +0400 + + [PATCH] ppc32: Update board-specific code of the CPM UART users + + This has the relevant updates/additions to the BSP code so that proper + platform_info struct well be passed to the CPM UART drivers. The changes + covered mpc866ads, mpc885ads and mpc8272ads. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit e27987cddd8db3a72a0f4734b5d94d06c7677323 +Author: Vitaly Bordug +Date: Tue Apr 25 20:26:41 2006 +0400 + + [PATCH] ppc32 CPM_UART: Convert to use platform devices + + This is intended to make the driver code more generic and flexible, + to get rid of board-specific layouts within driver, and generic rehaul, + yet keeping compatibility with the existing stuff utilizing it, being + compatible with legacy behavior (but with complaints that legacy mode + used). + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit a73c87bfe98f4d54c919e920a6efb0a116115722 +Author: Vitaly Bordug +Date: Tue Apr 25 20:26:33 2006 +0400 + + [PATCH] ppc32: odd fixes and improvements in ppc_sys + + This consists of offsets fix in ..._devices.c, and update of + ppc_sys_fixup_mem_resource() function to prevent subsequent fixups + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit 2833c28aa0d0326780acfa61149a2a02dcb2c9b4 +Author: Andreas Schwab +Date: Thu Apr 27 15:46:42 2006 +0200 + + [PATCH] powerpc: Wire up *at syscalls + + Wire up *at syscalls. + + This patch has been tested on ppc64 (using glibc's testsuite, both 32bit + and 64bit), and compile-tested for ppc32 (I have currently no ppc32 system + available, but I expect no problems). + + Signed-off-by: Andreas Schwab + Signed-off-by: Paul Mackerras + +commit 30aacebed0f0619f23ce84df7c59ad033ca08d77 +Author: Eugene Surovegin +Date: Tue Apr 25 01:22:44 2006 -0700 + + [PATCH] ppc32: add 440GX erratum 440_43 workaround + + This patch adds workaround for PPC 440GX erratum 440_43. According to + this erratum spurious MachineChecks (caused by L1 cache parity) can + happen during DataTLB miss processing. We disable L1 cache parity + checking for 440GX rev.C and rev.F + + Signed-off-by: Eugene Surovegin + Signed-off-by: Paul Mackerras + +commit 1269277a5e7c6d7ae1852e648a8bcdb78035e9fa +Author: David Woodhouse +Date: Mon Apr 24 23:22:17 2006 +0100 + + [PATCH] powerpc: Use check_legacy_ioport() on ppc32 too. + + Some people report that we die on some Macs when we are expecting to + catch machine checks after poking at some random I/O address. I'd seen + it happen on my dual G4 with serial ports until we fixed those to use + OF, but now other users are reporting it with i8042. + + This expands the use of check_legacy_ioport() to avoid that situation + even on 32-bit kernels. + + Signed-off-by: David Woodhouse + Signed-off-by: Paul Mackerras + +commit f749edae5ebd339eaf22508572233600f717424f +Author: Alan Modra +Date: Mon Apr 24 22:11:51 2006 +0930 + + [PATCH] powerpc64: Fix loading of modules without a .toc section + + Normally, ppc64 module .ko files contain a table-of-contents (.toc) + section, but if the module doesn't reference any static or external + data or external procedures, it is possible for gcc/binutils to + generate a .ko that doesn't have a .toc. Currently the module + loader refuses to load such a module, since it needs the address + of the .toc section to use in relocations. + + This patch fixes the problem by using the address of the .stubs + section instead, which is an acceptable substitute in this situation. + + Signed-off-by: Paul Mackerras + +commit d882995c054ff90706cc339321bfb04b15c5581f +Author: Andreas Schwab +Date: Sun Apr 23 20:32:41 2006 +0200 + + [PATCH] sound/ppc: snd_pmac_toonie_init should be __init + + snd_pmac_toonie_init is only called by __init code and calls __init code + itself. + + Signed-off-by: Andreas Schwab + Signed-off-by: Paul Mackerras + +commit f709bfac48492e289ba78ea1e8c0b3daab264e90 +Author: Paul Mackerras +Date: Fri Apr 28 16:28:35 2006 +1000 + + powerpc/pseries: Tell firmware our capabilities on new machines + + This adds code to call a new firmware method to tell the firmware + what machines and capabilities (such as VMX/Altivec) we support. + This will be needed on POWER5+ and POWER6 machines, and it has no + effect on past and current machines. + + Signed-off-by: Paul Mackerras + +commit f10a04c034c7285a1b15dfa4a83d3e56578e34e8 +Author: David Gibson +Date: Fri Apr 28 15:02:51 2006 +1000 + + [PATCH] powerpc: Fix pagetable bloat for hugepages + + At present, ARCH=powerpc kernels can waste considerable space in + pagetables when making large hugepage mappings. Hugepage PTEs go in + PMD pages, but each PMD page maps 256M and so contains only 16 + hugepage PTEs (128 bytes of data), but takes up a 1024 byte + allocation. With CONFIG_PPC_64K_PAGES enabled (64k base page size), + the situation is worse. Now hugepage PTEs are at the PTE page level + (also mapping 256M), so we store 16 hugepage PTEs in a 64k allocation. + + The PowerPC MMU already means that any 256M region is either all + hugepage, or all normal pages. Thus, with some care, we can use a + different allocation for the hugepage PTE tables and only allocate the + 128 bytes necessary. + + Signed-off-by: Paul Mackerras + +commit 2ea0020250f6aeaec1ed3adf9069973a91eff57c +Author: Michael Reed +Date: Thu Apr 27 16:25:30 2006 -0700 + + [SCSI] qla2xxx: Correct eh_abort recovery logic. + + Fix the driver to return SUCCESS if the firmware or driver doesn't + have a command to abort, i.e., it's already been returned. Without + this patch, error recovery will take the target offline as it tries + harder and harder to get the driver to return the command it no longer + has. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 7384c8bd90a4932517872f9807d34979a6fd29c4 +Author: Jes Sorensen +Date: Thu Apr 27 06:10:35 2006 -0400 + + [IA64] update sn2 defconfig + + Update SN2 defconfig to latest kernel and add QLA FC drivers commonly + found in SN2 boxes. + + Signed-off-by: Jes Sorensen + Signed-off-by: Tony Luck + +commit 189979619f90fd2eb168fbb9c262569176160624 +Author: Russ Anderson +Date: Thu Apr 27 10:07:08 2006 -0500 + + [IA64] Add mca recovery failure messages + + When the mca recovery code encounters a condition that makes + the MCA non-recoverable, print the reason it could not recover. + This will make it easier to identify why the recovery code did + not recover. + + Signed-off-by: Russ Anderson + Signed-off-by: Tony Luck + +commit cda3d4a069b915cf46e640bb6872a9d9aefeaabe +Author: Mike Habeck +Date: Wed Apr 26 12:05:50 2006 -0500 + + [IA64-SGI] fix SGI Altix tioce_reserve_m32() bug + + The following patch fixes a bug in the SGI Altix tioce_reserve_m32() + code. The bug was that we could walking past the end of the CE ASIC + 32/40bit PMU ATE Buffer, resulting in a PIO Reply Error. + + Signed-off-by: Mike Habeck + Signed-off-by: Tony Luck + +commit 1df57c0c21c92a6d4fcfe5304c84151ed9beb7a2 +Author: Cliff Wickman +Date: Tue Apr 25 10:47:48 2006 -0500 + + [IA64] enable dumps to capture second page of kernel stack + + In SLES10 (2.6.16) crash dumping (in my experience, LKCD) is unable to + capture the second page of the 2-page task/stack allocation. + This is particularly troublesome for dump analysis, as the stack traceback + cannot be done. + (A similar convention is probably needed throughout the kernel to make + kernel multi-page allocations detectable for dumping) + + Multi-page kernel allocations are represented by the single page structure + associated with the first page of the allocation. The page structures + associated with the other pages are unintialized. + + If the dumper is selecting only kernel pages it has no way to identify + any but the first page of the allocation. + + The fix is to make the task/stack allocation a compound page. + + Signed-off-by: Cliff Wickman + Signed-off-by: Tony Luck + +commit dd4cb9f8ac9717c9db2b2afc5a82cb95a3d5dec3 +Author: Jack Steiner +Date: Sat Apr 22 09:37:19 2006 -0500 + + [IA64-SGI] - Reduce overhead of reading sn_topology + + MPI programs using certain debug options have a long + startup time. This was traced to a "vmalloc/vfree" in + the code that reads /proc/sgi_sn/sn_topology. On large + systems, vfree requires an IPI to all cpus to do TLB + purging. + + Replace the vmalloc/vfree with kmalloc/kfree. Although + the size of the structure being allocated is unknown, it + will not not exceed 96 bytes. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit f0fe253c4719faf76d40f581cdc0e8aef77273bb +Author: Jack Steiner +Date: Sat Apr 22 09:36:07 2006 -0500 + + [IA64-SGI] - Fix discover of nearest cpu node to IO node + + Fix a bug that causes discovery of the nearest node/cpu to + a TIO (IO node) to fail. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit 5bd982ed0f5ae73bfd9ff452b460a3b08108bfee +Author: Paolo Ciarrocchi +Date: Tue Apr 25 22:47:51 2006 +0200 + + [PATCH] Added URI of "linux kernel development process" + + Signed-off-by: Paolo Ciarrocchi + Signed-off-by: Greg Kroah-Hartman + +commit 5b3ef14e3e9d745a512d65fcb4ef9be541226d80 +Author: Adrian Bunk +Date: Sat Apr 22 12:14:44 2006 +0200 + + [PATCH] Kobject: possible cleanups + + This patch contains the following possible cleanups: + - #if 0 the following unused global function: + - subsys_remove_file() + - remove the following unused EXPORT_SYMBOL's: + - kset_find_obj + - subsystem_init + - remove the following unused EXPORT_SYMBOL_GPL: + - kobject_add_dir + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit bde11d794206ae8d72defd0e8a481181200f7dc4 +Author: Jean Delvare +Date: Tue Apr 18 21:30:22 2006 -0700 + + [PATCH] Fix OCFS2 warning when DEBUG_FS is not enabled + + Fix the following warning which happens when OCFS2_FS is enabled but + DEBUG_FS isn't: + + fs/ocfs2/dlmglue.c: In function `ocfs2_dlm_init_debug': + fs/ocfs2/dlmglue.c:2036: warning: passing arg 5 of `debugfs_create_file' discards qualifiers from pointer target type + + Signed-off-by: Jean Delvare + Cc: Arjan van de Ven + Cc: Joel Becker + Acked-by: Mark Fasheh + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 4d17ffda331ba6030bb8c233c73d6a87954d8ea7 +Author: Kay Sievers +Date: Tue Apr 25 15:37:26 2006 +0200 + + [PATCH] Kobject: fix build error + + This fixes a build error for various odd combinations of CONFIG_HOTPLUG + and CONFIG_NET. + + Signed-off-by: Kay Sievers + Cc: Nigel Cunningham + Cc: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 913e7ec545462b9a49fa308d0c81697236f7d29d +Author: Jon Smirl +Date: Wed Apr 12 19:43:35 2006 -0400 + + [PATCH] Frame buffer: remove cmap sysfs interface + + Remove it as it does not work properly due to sysfs core changes. + + Signed-off-by: Greg Kroah-Hartman + +commit 75cf7456dd87335f574dcd53c4ae616a2ad71a11 +Author: Chris Wedgwood +Date: Tue Apr 18 23:57:09 2006 -0700 + + [PATCH] PCI quirk: VIA IRQ fixup should only run for VIA southbridges + + Alan Cox pointed out that the VIA 'IRQ fixup' was erroneously running + on my system which has no VIA southbridge (but I do have a VIA IEEE + 1394 device). + + This should address that. I also changed "Via IRQ" to "VIA IRQ" + (initially I read Via as a capitalized via (by way/means of). + + Signed-off-by: Chris Wedgwood + Acked-by: Jeff Garzik + Signed-off-by: Greg Kroah-Hartman + +commit f01f4182597a3bb4b6fbf92e041faf7a1016f4b6 +Author: Jesper Juhl +Date: Mon Apr 17 04:02:54 2006 +0200 + + [PATCH] PCI: fix potential resource leak in drivers/pci/msi.c + + The coverity checker spotted (as entry #599) that we might leak `entry' in + drivers/pci/msi.c::msix_capability_init() + This patch should take care of that. + + Signed-off-by: Jesper Juhl + Signed-off-by: Greg Kroah-Hartman + +commit 9b860b8c4bde5949b272968597d1426d53080532 +Author: Ingo Oeser +Date: Tue Apr 18 11:20:55 2006 +0200 + + [PATCH] PCI: Documentation: no more device ids + + Document that we don't like to add more PCI device ids + but are happy to accept PCI vendor ids for linux/include/pci_ids.h + + Original text from Jeff Garzik. + + Signed-off-by: Ingo Oeser + Signed-off-by: Greg Kroah-Hartman + +commit 8b4929e6a01620b55700e102e40e37ef02844849 +Author: Greg Kroah-Hartman +Date: Thu Apr 20 15:50:55 2006 +0900 + + [PATCH] PCI: fix via irq SATA patch + + This device id improperly got added to the VIA chipset list with a + previous patch. Remove it as it is not correct. + + Cc: Grzegorz Janoszka + Cc: Jeff Garzik + Signed-off-by: Greg Kroah-Hartman + +commit a769577b3716c757e354a681aab3524ac6b651be +Author: Takashi Iwai +Date: Thu Apr 27 16:56:07 2006 +0200 + + [ALSA] via82xx - Use DXS_SRC as default for VIA8235/8237/8251 chips + + Use DXS_SRC as the default value for dxs_support option for + VIA8235/8237/8251 chips. These new chips should work well with SRC. + For VIA8233/A/C, the old default DXS_48K is still used to be sure. + + Signed-off-by: Takashi Iwai + +commit e0292bdd306a7e1ef7a681350cf0427688a2791d +Author: Takashi Iwai +Date: Wed Apr 26 17:44:18 2006 +0200 + + [ALSA] hda-codec - Add model entry for ASUS Z62F + + Added a model entry 'laptop-eapd' for ASUS Z62F laptop with + AD1986A codec. + + Signed-off-by: Takashi Iwai + +commit c93dd4451ef68a5494c376944bdff8d75a8625bc +Author: Erik Mouw +Date: Tue Apr 25 13:08:59 2006 +0200 + + [ALSA] PCMCIA sound devices shouldn't depend on ISA + + The ALSA drivers for PCMCIA devices depend on ISA, but modern + laptops can have PCMCIA support without ISA. This patch removes + the dependency. + + Signed-off-by: Erik Mouw + Signed-off-by: Takashi Iwai + +commit d773781cee3e3003c4a77589d327de802b26e101 +Author: Takashi Iwai +Date: Tue Apr 25 13:05:43 2006 +0200 + + [ALSA] hda-codec - Fix capture from line-in on VAIO SZ/FE laptops + + Added the missing line-in capture on VAIO SZ/FE laptops with + STAC 7661 codec. + + Signed-off-by: Takashi Iwai + +commit b7d90a356a43f4609bd6290fc2e1ca4ef79d4458 +Author: Takashi Iwai +Date: Tue Apr 25 12:56:04 2006 +0200 + + [ALSA] Fix Oops at rmmod with CONFIG_SND_VERBOSE_PROCFS=n + + Fixed Oops at rmmod with CONFIG_SND_VERBOSE_PROCFS=n. + Add ifdef to struct fields for optimization and better compile + checks. + + Signed-off-by: Takashi Iwai + +commit 61fb63c096a2e88b87742eaecfe88912b89f57cf +Author: Jaroslav Kysela +Date: Mon Apr 24 21:57:16 2006 +0200 + + [ALSA] PCM core - introduce CONFIG_SND_PCM_XRUN_DEBUG + + This patch makes the XRUN (overrun/underrun) notification code optional. + + Signed-off-by: Jaroslav Kysela + +commit a2bbbc0c3c9554ac70e96ec3effae60124f0f009 +Author: Kenrik Kretzschmar +Date: Mon Apr 24 15:59:38 2006 +0200 + + [ALSA] adding __devinitdata to pci_device_id + + Refering to /Documentation/pci.txt + the struct pci_device_id can be released after loading the module. + + Signed-off-by: Kenrik Kretzschmar + Signed-off-by: Takashi Iwai + +commit 396c9b928d5c24775846a161a8191dcc1ea4971f +Author: Henrik Kretzschmar +Date: Mon Apr 24 15:59:04 2006 +0200 + + [ALSA] add __devinitdata to all pci_device_id + + Signed-off-by: Henrik Kretzschmar + Signed-off-by: Takashi Iwai + +commit 71b2ccc3a2fd6c27e3cd9b4239670005978e94ce +Author: Takashi Iwai +Date: Fri Apr 21 16:09:31 2006 +0200 + + [ALSA] hda-codec - Add codec id for AD1988B codec chip + + Add codec id for AD1988B codec chip. + The functionality is identical with AD1988(A) chip. + + Signed-off-by: Takashi Iwai + +commit 61a7454a229d3516492fc3ff3adddf9f5ac0d396 +Author: Takashi Iwai +Date: Thu Apr 20 16:42:34 2006 +0200 + + [ALSA] hda-codec - Add model entry for ASUS M9 laptop + + Add a model entry to support ASUS M9 laptop with AD1986A codec. + + Signed-off-by: Takashi Iwai + +commit 711ee39bf3e2a69005d64f388441a6f883495f83 +Author: Henrik Kretzschmar +Date: Thu Apr 20 12:37:00 2006 +0200 + + [ALSA] pcxhr - Fix a compiler warning on 64bit architectures + + The patch fixes a conpile warning on 64bit architectures, caused by + different sizes of size_t . Since size_t is unsigned I permited + myself to cange the format, too. + + Signed-off-by: Henrik Kretzschmar + Signed-off-by: Takashi Iwai + +commit c6cc0e3b0c087d350bdc5912ecdfb17e796ae266 +Author: Bastiaan Jacques +Date: Thu Apr 20 12:27:09 2006 +0200 + + [ALSA] via82xx: tweak VT8251 workaround + + Move the workaround for the VT8251 up a bit, and check for STAT_EOL + rather than STAT_ACTIVE. This resolves issues some people were having + with certain ALSA clients (and allows the STAT_ACTIVE check to do what + it was intended to do). + This change was suggested by Andrew Daviel. + + Signed-off-by: Bastiaan Jacques + Signed-off-by: Takashi Iwai + +commit 1a183131fe284e68194e66cc4ff49d5876501eb0 +Author: Takashi Iwai +Date: Tue Apr 18 21:23:47 2006 +0200 + + [ALSA] intel8x0 - Disable ALI5455 SPDIF-input + + Disable the SPDIF-input on ALI5455, which causes Oops. + + Signed-off-by: Takashi Iwai + +commit 8263c65fbee1347b2ab1d8c9380946808d09f579 +Author: Bastiaan Jacques +Date: Tue Apr 18 17:04:04 2006 +0200 + + [ALSA] via82xx: add support for VIA VT8251 (AC'97) + + Add support for VIA VT8251 AC'97. Includes a workaround which ensures sound + won't stop playing after one second of playback. + + Signed-off-by: Bastiaan Jacques + Signed-off-by: Takashi Iwai + +commit 5732e7a2cece461252bfcf2653bb09ab88ba36c5 +Author: Charis Kouzinopoulos +Date: Tue Apr 18 15:42:29 2006 +0200 + + [ALSA] Fix typos and add information about Jack support to Audiophile-Usb.txt + + Signed-off-by: Charis Kouzinopoulos + Signed-off-by: Thibault Le Meur + Signed-off-by: Takashi Iwai + +commit c128b82cf4095bb64aec435cf58d67fb78272f2f +Author: Takashi Iwai +Date: Tue Apr 18 15:01:23 2006 +0200 + + [ALSA] Fix double free in error path of miro driver + + Fixed the double free in error path of miro driver. + + Signed-off-by: Takashi Iwai + +commit 531213a93f0e75b934471bf5567babad4da1ff70 +Author: Takashi Iwai +Date: Tue Apr 18 13:46:08 2006 +0200 + + [ALSA] hda-codec - Add entry for Epox EP-5LDA+ GLi + + Added the SSID entry for Epox EP-5LDA+ GLi with ALC880 codec. + + Signed-off-by: Takashi Iwai + +commit 1d606f1ae5b9d83d8749f21bc04842596104bf55 +Author: Adrian Bunk +Date: Tue Apr 18 13:37:08 2006 +0200 + + [ALSA] sound/pci/: remove duplicate #include's + + There's no reason for #include'ing linux/dma-mapping.h more than once. + + Signed-off-by: Adrian Bunk + Signed-off-by: Takashi Iwai + +commit 8970ccda1ae3c3b4ddd5ce366ca2cd88356d664e +Author: Takashi Iwai +Date: Tue Apr 18 12:50:40 2006 +0200 + + [ALSA] hda-codec - Use model 'hp' for all HP laptops with AD1981HD + + Use model 'hp' for all HP laptops with AD1981HD codec. + + Signed-off-by: Takashi Iwai + +commit a182ee9876c7826d0b8f7789cb5c38c5bfbec441 +Author: Rene Herman +Date: Thu Apr 13 12:57:11 2006 +0200 + + [ALSA] continue on IS_ERR from platform device registration + + I previously only concerned myself with sound/isa. When I now checked + for more platform_device_register_simple() usages in ALSA I found a + couple more drivers that needed the same patches as already submitted + for all the ISA drivers. + This first one is the continue-on-iserr patch for sound/drivers. This + gets them all. + + Signed-off-by: Rene Herman + Signed-off-by: Takashi Iwai + +commit 5c59e09d7e51f5781439aa6f1963076568fd1f4f +Author: Steven Finney +Date: Thu Apr 13 12:49:31 2006 +0200 + + [ALSA] Handle the error correctly in SNDCTL_DSP_SETFMT ioctl + + Handle the error returned from snd_pcm_oss_get_formats() correctly + in SNDCTL_DSP_SETFMT ioctl handler of PCM OSS emulation. + + Signed-off-by: Steven Finney + Signed-off-by: Takashi Iwai + +commit bc56eff1279d2f33a6afe74a673360ae1cd0d838 +Author: Clemens Ladisch +Date: Thu Apr 13 10:16:08 2006 +0200 + + [ALSA] add another Phase 26 quirk + + Add a quirk entry for the TerraTec Phase 26 with yet another product ID. + + Signed-off-by: Clemens Ladisch + +commit c005fb4fb2d23ba29ad21dee5042b2f8451ca8ba +Author: Ju, Seokmann +Date: Thu Apr 27 02:33:06 2006 -0700 + + [SCSI] megaraid_{mm,mbox}: fix a bug in reset handler + + When abort failed, the driver gets reset handleer called. In the reset + handler, driver calls 'scsi_done()' callback for same SCSI command packet + (struct scsi_cmnd) multiple times if there are multiple SCSI command packet + in the pend_list. More over, if there are entry in the pend_lsit with + IOCTL packet associated, the driver returns it to wrong free_list so that, + in turn, the driver could end up with 'NULL pointer dereference..' during + I/O command building with incorrect resource. + + Also, the patch contains several minor/cosmetic changes besides this. + + Signed-off-by: Seokmann Ju + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 6e5882cfa24e1456702e463f6920fc0ca3c3d2b8 +Author: Zachary Amsden +Date: Thu Apr 27 11:32:29 2006 -0700 + + [PATCH] x86/PAE: Fix pte_clear for the >4GB RAM case + + Proposed fix for ptep_get_and_clear_full PAE bug. Pte_clear had the same bug, + so use the same fix for both. Turns out pmd_clear had it as well, but pgds + are not affected. + + The problem is rather intricate. Page table entries in PAE mode are 64-bits + wide, but the only atomic 8-byte write operation available in 32-bit mode is + cmpxchg8b, which is expensive (at least on P4), and thus avoided. But it can + happen that the processor may prefetch entries into the TLB in the middle of an + operation which clears a page table entry. So one must always clear the P-bit + in the low word of the page table entry first when clearing it. + + Since the sequence *ptep = __pte(0) leaves the order of the write dependent on + the compiler, it must be coded explicitly as a clear of the low word followed + by a clear of the high word. Further, there must be a write memory barrier + here to enforce proper ordering by the compiler (and, in the future, by the + processor as well). + + On > 4GB memory machines, the implementation of pte_clear for PAE was clearly + deficient, as it could leave virtual mappings of physical memory above 4GB + aliased to memory below 4GB in the TLB. The implementation of + ptep_get_and_clear_full has a similar bug, although not nearly as likely to + occur, since the mappings being cleared are in the process of being destroyed, + and should never be dereferenced again. + + But, as luck would have it, it is possible to trigger bugs even without ever + dereferencing these bogus TLB mappings, even if the clear is followed fairly + soon after with a TLB flush or invalidation. The problem is that memory above + 4GB may now be aliased into the first 4GB of memory, and in fact, may hit a + region of memory with non-memory semantics. These regions include AGP and PCI + space. As such, these memory regions are not cached by the processor. This + introduces the bug. + + The processor can speculate memory operations, including memory writes, as long + as they are committed with the proper ordering. Speculating a memory write to + a linear address that has a bogus TLB mapping is possible. Normally, the + speculation is harmless. But for cached memory, it does leave the falsely + speculated cacheline unmodified, but in a dirty state. This cache line will be + eventually written back. If this cacheline happens to intersect a region of + memory that is not protected by the cache coherency protocol, it can corrupt + data in I/O memory, which is generally a very bad thing to do, and can cause + total system failure or just plain undefined behavior. + + These bugs are extremely unlikely, but the severity is of such magnitude, and + the fix so simple that I think fixing them immediately is justified. Also, + they are nearly impossible to debug. + + Signed-off-by: Zachary Amsden + Signed-off-by: Linus Torvalds + +commit 509e5e5d206ff7ba08011b61a882d09369ec20c3 +Author: Eric Moore +Date: Wed Apr 26 13:22:37 2006 -0600 + + [SCSI] fusion - bug fix stack overflow in mptbase + + Bug fix for stack overflow in EventDescriptionStr, (a function + for debuging firmware events). We allocated 50 bytes on local stack + for buff[], however there are places in the code where we've attempted + copying in greater than 50 bytes into buff[]. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit f2536cbd12e5182558cce42efd41072bd558596b +Author: Brian King +Date: Wed Apr 26 13:48:11 2006 -0500 + + [SCSI] scsi: Add IBM 2104-DU3 to blist + + Some versions of the IBM 2104-DU3 disk enclosure + have been observed to hang Inquiries to non zero + LUNs to the SES device. This device only has LUN 0, + so this patch adds it to the BLIST to prevent scsi + core from scanning beyond LUN 0. + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit f3e93f735321ea75108b41cb654c16f92d3f264c +Author: James Bottomley +Date: Tue Apr 25 16:48:30 2006 -0500 + + [SCSI] Fix DVD burning issues. + + Some pioneer DVDs are apparently returning odd "not ready" status + codes that the mid-layer doesn't recognise and so passes back to the + user as errors. + + This patch overhauls our not-ready handling and adds transparent retries for: + + format in progress + rebuild in progress + recalculation in progress + operation in progress + Long write in progress + self test in progress + + The Pioneer was actually returning "long write in progress" + + Signed-off-by: James Bottomley + +commit 7e0258fd28762c09b997edb56849ecfa29284b79 +Author: Ian Abbott +Date: Wed Apr 12 15:20:35 2006 +0100 + + [PATCH] USB: ftdi_sio: add support for ASK RDR 400 series card reader + + This patch adds support for an ASK RDR 400 series contactless card + reader to + the ftdi_sio driver's device ID table. The product ID was supplied by + Adriano Couto on the ftdi-usb-sio-devel list. + + Signed-off-by: Ian Abbott + Signed-off-by: Greg Kroah-Hartman + +commit 69737dfaacd000b10fc4a1e9eb518b630b43c3ad +Author: Luiz Fernando N. Capitulino +Date: Tue Apr 11 15:52:41 2006 -0300 + + [PATCH] USB: ftdi_sio: Adds support for iPlus device. + + Adds support in ftdi_sio usbserial driver for USB modems sold by + Plus GSM Company in Poland. + + Signed-off-by: Luiz Fernando Capitulino + Signed-off-by: Greg Kroah-Hartman + +commit cdd3b1565a8d563ed84cf1c2af6cabf461f3c317 +Author: Nathan Bronson +Date: Mon Apr 10 00:05:09 2006 -0400 + + [PATCH] USB: ftdi_sio vendor code for RR-CirKits LocoBuffer USB + + This patch adds recognition of the RR-CirKits LocoBuffer USB + to the existing FTDI driver. http://www.rr-cirkits.com + + Signed-off-by: Nathan Bronson + Signed-off-by: Greg Kroah-Hartman + +commit c67808eee61a01c3128298c5972426a1a67b9093 +Author: Jean Delvare +Date: Sun Apr 9 20:07:35 2006 +0200 + + [PATCH] USB: Use new PCI_CLASS_SERIAL_USB_* defines + + We could use the recently added PCI_CLASS_SERIAL_USB_UHCI, + PCI_CLASS_SERIAL_USB_OHCI and PCI_CLASS_SERIAL_USB_EHCI defines in + more places, for slightly shorter and clearer code. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 9fb81ce63671f9743517f628dac935269f2581a9 +Author: Alan Stern +Date: Fri Apr 14 16:46:28 2006 -0400 + + [PATCH] USB: net2280: set driver data before it is used + + This patch (as671) fixes a bug in the error pathway for the net2280 + probe routine. A failure during probe will cause the driver to call + pci_get_drvdata before the corresponding pci_set_drvdata has been set. + The patch also does a kzalloc conversion. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 658ad5e001a17be5fadaa8d57d1aa7f7c62628c1 +Author: Alan Stern +Date: Fri Apr 14 16:44:11 2006 -0400 + + [PATCH] USB: net2280: check for shared IRQs + + This patch (as670) adds a check for whether a shared IRQ was actually + generated by the net2280 device. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 317e83b842ba39776054219ae29844127876416a +Author: Alan Stern +Date: Fri Apr 14 16:42:03 2006 -0400 + + [PATCH] USB: net2280: send 0-length packets for ep0 + + This patch (as669) fixes a bug in the net2280 driver. Now it will + properly send zero-length packets on ep0 until the control status stage + occurs. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit a29fccd7993a3d411674e148cb0759a017be3e21 +Author: Alan Stern +Date: Fri Apr 14 16:40:00 2006 -0400 + + [PATCH] USB: net2280: Handle STALLs for 0-length control-IN requests + + This patch (as668) fixes a typo in net2280. The handler for 0-length + control-IN requests should check that the endpoint _isn't_ halted before + sending a 0-length packet. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit f430c405ca23dd5a9389d1f62dcdeb1fd6ce6024 +Author: Olivier Blondeau +Date: Sun Apr 16 19:19:25 2006 -0700 + + [PATCH] USB: storage: atmel unusual dev update + + Originally submitted by Olivier Blondeau , with re-diffing + by me. Adds a new atmel unusual_dev entry. + + Signed-off-by: Phil Dibowitz + +commit 2120638354a6881b9c442b10fc21f28ecadc7402 +Author: Phil Dibowitz +Date: Sun Apr 16 19:18:36 2006 -0700 + + [PATCH] USB: Storage: unusual devs update + + This patch removes the Protocol portion of the Iomega Click! device as it's not + needed. Not-needed message reported by Kenneth Crudup + + Signed-off-by: Phil Dibowitz + Signed-off-by: Greg Kroah-Hartman + +commit 58381719845d9ee19a321c2eb69cfa9b7886be9a +Author: Wang Jun +Date: Wed Apr 19 16:32:07 2006 +0800 + + [PATCH] USB: add new iTegno usb CDMA 1x card support for pl2303 + + Add new iTegno usb CDMA 1x card (usbid '0eba:2080') support to pl2303 driver + + Signed-off-by: Wang Jun + Signed-off-by: Greg Kroah-Hartman + +commit 67ca0284f69992ad71ac12dc375f2b158d9d703d +Author: Jesper Juhl +Date: Sun Apr 23 19:59:23 2006 +0200 + + [PATCH] USB: Resource leak fix for whiteheat driver + + We may return from drivers/usb/serial/whiteheat.c::whiteheat_attach() + without freeing `result' if we leave via the no_firmware: label. + + Spotted by the coverity checker as #670 + + Signed-off-by: Jesper Juhl + Signed-off-by: Greg Kroah-Hartman + +commit ee1cca1b0661fa33fd99f2d8ec7e2749432f9b1d +Author: Ralf Baechle +Date: Wed Apr 26 21:33:03 2006 +0100 + + [MIPS] Fix branch emulation for floating-point exceptions. + + In the branch emulation for floating-point exceptions, __compute_return_epc + must determine for bc1f et al which condition code bit to test. This is + based on bits <4:2> of the rt field. The switch statement to distinguish + bc1f et al needs to use only the two low bits of rt, but the old code tests + on the whole rt field. This patch masks off the proper bits. + + Signed-off-by: Win Treese + Signed-off-by: Ralf Baechle + +commit 79e55bcf24ad8f31c3021b6ef21c4ce054fe4e38 +Author: Ralf Baechle +Date: Mon Apr 24 17:15:10 2006 +0100 + + [MIPS] Cleanup inode->r_dev usage. + + imajor()/iminor() should be used instead of accessing r_dev directly. + + Based on patch from Eric Sesterhenn (snakebyte@gmx.de). + + Signed-off-by: Ralf Baechle + +commit b775565952ab8f33a49bfcb2c6dcfaba1e82dee3 +Author: Ralf Baechle +Date: Mon Apr 24 15:00:59 2006 +0100 + + [MIPS] Update MIPS defconfigs. + + Signed-off-by: Ralf Baechle + +commit f7062ddb23d7568c90821118f9b973b3069625c9 +Author: Ralf Baechle +Date: Mon Apr 24 14:58:53 2006 +0100 + + [MIPS] Get rid of CONFIG_ADVANCED. + + It's been a horrible source of confusion and let users to shoot themselves + into both feet with uzis to no end. + + Signed-off-by: Ralf Baechle + +commit 3763120a316b04c29a2b9c6e817e0e4a72005dd4 +Author: Ralf Baechle +Date: Mon Apr 24 13:08:41 2006 +0100 + + [MIPS] Kconfig: Clarify description of CROSSCOMPILE. + + Signed-off-by: Ralf Baechle + +commit 7a8341969fe0df4a1fffa141435e742456270ffd +Author: Chris Dearman +Date: Sat Apr 15 00:31:16 2006 +0100 + + [MIPS] 24K LV: Add core card id. + + Signed-off-by: Ralf Baechle + +commit 2a2c3e451965aca35c2d0d1b2db1dbd1d839c75e +Author: Atsushi Nemoto +Date: Sat Apr 15 00:04:18 2006 +0900 + + [MIPS] Sparse: fix sparse for 64-bit kernels. + + This commit breaks sparse for 64bit kernel. The -m64 option is + required. Also, some macro values (such as _MIPS_TUNE, etc.) contain + double-quote characters so it would be better quoting arguments by + single-quote characters. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 6f8782c4b2ed3cb652f1ad6b6d91890c7f2423ab +Author: Atsushi Nemoto +Date: Mon Apr 17 21:24:49 2006 +0900 + + [MIPS] Use __ffs() instead of ffs() in ip32_irq0(). + + With recent rewrite for generic bitops, ffs() is defined the same way + as the libc and compiler built-in routines (returns int instead of + unsigned long). Use __ffs() for 64bit value. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit bc818247203a7bfc40296a3f5b760de84fb8e0d1 +Author: Atsushi Nemoto +Date: Mon Apr 17 21:19:12 2006 +0900 + + [MIPS] Fix bitops for MIPS32/MIPS64 CPUs. + + With recent rewrite for generic bitops, fls() for 32bit kernel with + MIPS64_CPU is broken. Also, ffs(), fls() should be defined the same + way as the libc and compiler built-in routines (returns int instead of + unsigned long). + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit c0858d82faf96ffc32b96e23927d10844d38e564 +Author: Atsushi Nemoto +Date: Thu Apr 20 00:12:05 2006 +0900 + + [MIPS] Fix ip27 build. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 5dac83030a3f4a3a4d1255b13bd0f7d08e824963 +Author: Ralf Baechle +Date: Mon Apr 24 10:50:02 2006 +0100 + + [MIPS] Oprofile: fix sparse warning. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 49e31ca8387227898710f99476f2217ea154aab0 +Author: Ralf Baechle +Date: Mon Apr 24 10:48:54 2006 +0100 + + [MIPS] Fix oprofile module unloading + + When unloading oprofile module with timer-mode, oprofile_arch_exit + dereferences a NULL pointer. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit eb20796bf6fdb95ccf51440ba2a827149bdc037f +Author: Jens Axboe +Date: Thu Apr 27 11:05:22 2006 +0200 + + [PATCH] splice: make the read-side do batched page lookups + + Use the new find_get_pages_contig() to potentially look up the entire + splice range in one single call. This speeds up generic_file_splice_read() + quite a bit. + + Signed-off-by: Jens Axboe + +commit ebf43500ef148a380bd132743c3fc530111ac620 +Author: Jens Axboe +Date: Thu Apr 27 08:46:01 2006 +0200 + + [PATCH] Add find_get_pages_contig(): contiguous variant of find_get_pages() + + find_get_pages_contig() will break out if we hit a hole in the page cache. + From Andrew Morton, small modifications and documentation by me. + + Signed-off-by: Jens Axboe + +commit eb645a24de82496434cc81171d7f350edb327399 +Author: Jens Axboe +Date: Thu Apr 27 08:44:27 2006 +0200 + + [PATCH] splice: switch to using page_cache_readahead() + + Avoids doing useless work, when the file is fully cached. + + Signed-off-by: Jens Axboe + +commit 2be4d50295e2b6f62c07b614e1b103e280dddb84 +Author: Linus Torvalds +Date: Wed Apr 26 19:19:25 2006 -0700 + + Linux v2.6.17-rc3 + +commit 83d722f7e198b034699b1500d98729beff930efd +Author: Chandra Seetharaman +Date: Mon Apr 24 19:35:21 2006 -0700 + + [PATCH] Remove __devinit and __cpuinit from notifier_call definitions + + Few of the notifier_chain_register() callers use __init in the definition + of notifier_call. It is incorrect as the function definition should be + available after the initializations (they do not unregister them during + initializations). + + This patch fixes all such usages to _not_ have the notifier_call __init + section. + + Signed-off-by: Chandra Seetharaman + Signed-off-by: Linus Torvalds + +commit 649bbaa484bcdce94f40a1b97a6a2ded0549e8a2 +Author: Chandra Seetharaman +Date: Mon Apr 24 19:35:15 2006 -0700 + + [PATCH] Remove __devinitdata from notifier block definitions + + Few of the notifier_chain_register() callers use __devinitdata in the + definition of notifier_block data structure. It is incorrect as the + data structure should be available after the initializations (they do + not unregister them during initializations). + + This was leading to an oops when notifier_chain_register() call is + invoked for those callback chains after initialization. + + This patch fixes all such usages to _not_ have the notifier_block data + structure in the init data section. + + Signed-off-by: Chandra Seetharaman + Signed-off-by: Linus Torvalds + +commit e7edf9cdeddc0cff125e8e658216efb2ff2b2219 +Author: James Morris +Date: Wed Apr 26 02:45:03 2006 -0400 + + [PATCH] LSM: add missing hook to do_compat_readv_writev() + + This patch addresses a flaw in LSM, where there is no mediation of readv() + and writev() in for 32-bit compatible apps using a 64-bit kernel. + + This bug was discovered and fixed initially in the native readv/writev + code [1], but was not fixed in the compat code. Thanks to Al for spotting + this one. + + [1] http://lwn.net/Articles/154282/ + + Signed-off-by: James Morris + Signed-off-by: Al Viro + Signed-off-by: Linus Torvalds + +commit a090d9132c1e53e3517111123680c15afb25c0a4 +Author: Al Viro +Date: Wed Apr 26 07:32:40 2006 +0100 + + [PATCH] protect ext3 ioctl modifying append_only, immutable, etc. with i_mutex + + All modifications of ->i_flags in inodes that might be visible to + somebody else must be under ->i_mutex. That patch fixes ext3 ioctl() + setting S_APPEND and friends. + + Signed-off-by: Al Viro + Signed-off-by: Linus Torvalds + +commit 6ad0013b316367671ef316cff91ab2d912e309c9 +Author: Al Viro +Date: Wed Apr 26 07:28:09 2006 +0100 + + [PATCH] fix mips sys32_p{read,write} + + Switched to use of sys_pread64()/sys_pwrite64() rather than keep duplicating + their guts; among the little things that had been missing there were such as + ret = security_file_permission (file, MAY_READ); + Gotta love the LSM robustness, right? + + Signed-off-by: Al Viro + Signed-off-by: Linus Torvalds + +commit de0bb97aff6743f71abb8ec581238e2bdae9cdd1 +Author: Al Viro +Date: Wed Apr 26 07:26:09 2006 +0100 + + [PATCH] forgotten ->b_data in memcpy() call in ext3/resize.c (oopsable) + + sbi->s_group_desc is an array of pointers to buffer_head. memcpy() of + buffer size from address of buffer_head is a bad idea - it will generate + junk in any case, may oops if buffer_head is close to the end of slab + page and next page is not mapped and isn't what was intended there. + IOW, ->b_data is missing in that call. Fortunately, result doesn't go + into the primary on-disk data structures, so only backup ones get crap + written to them; that had allowed this bug to remain unnoticed until + now. + + Signed-off-by: Al Viro + Signed-off-by: Linus Torvalds + +commit c82ffb07cd1aa356c599999c4f0dc5155a91d318 +Author: Al Viro +Date: Wed Apr 26 07:20:48 2006 +0100 + + [PATCH] fix leak in activate_ep_files() + + Signed-off-by: Al Viro + Signed-off-by: Linus Torvalds + +commit 1ebd32fc54bd04de6b3944587f25513c0681f98e +Author: Jens Axboe +Date: Wed Apr 26 14:40:08 2006 +0200 + + [PATCH] splice: add ->splice_write support for /dev/null + + Useful for testing. + + Signed-off-by: Jens Axboe + +commit 00522fb41a2a9bf0f98a007c0e2b516a3873148c +Author: Jens Axboe +Date: Wed Apr 26 14:39:29 2006 +0200 + + [PATCH] splice: rearrange moving to/from pipe helpers + + We need these for people writing their own ->splice_read/write hooks. + + Signed-off-by: Jens Axboe + +commit 86a0f04387bfa814618bf0c2c8b203899c4fa5d2 +Author: Ayaz Abdulla +Date: Mon Apr 24 18:41:31 2006 -0400 + + [PATCH] forcedeth: fix initialization + + This patch fixes the nic initialization. If the nic was in low power + mode, it brings it back to normal power. Also, it utilizes a new + hardware reset during the init. + + I am resending based on feedback, I corrected the register size mapping + and delay after posted write. + + Signed-Off-By: Ayaz Abdulla + + Signed-off-by: Jeff Garzik + +commit bdf9c27d020ba50b42949c383c1956216c9fd522 +Author: Stephen Hemminger +Date: Tue Apr 25 10:58:54 2006 -0700 + + [PATCH] sky2: version 1.2 + + Update to version 1.2 + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 98712e5e3325247bf22a175d225526c9d5f8439b +Author: Stephen Hemminger +Date: Tue Apr 25 10:58:53 2006 -0700 + + [PATCH] sky2: reset function can be devinit + + The sky2_reset function only called from sky2_probe. + Maybe the compiler was smart enough to figure this out already. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 4a15d56f78936ec15a5d747546f25ace8fef9a03 +Author: Stephen Hemminger +Date: Tue Apr 25 10:58:52 2006 -0700 + + [PATCH] sky2: use ALIGN() macro + + The ALIGN() macro in kernel.h does the same math that the + sky2 driver was using for padding. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit d27ed38765d6e01eaab443a7909f53a37f090e99 +Author: Stephen Hemminger +Date: Tue Apr 25 10:58:51 2006 -0700 + + [PATCH] sky2: add fake idle irq timer + + Add an fake NAPI schedule once a second. This is an attempt to work around + for broken configurations with edge-triggered interrupts. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 734cbc363b159caee158d5a83408c72d98bcacf0 +Author: Stephen Hemminger +Date: Tue Apr 25 10:58:50 2006 -0700 + + [PATCH] sky2: reschedule if irq still pending + + This is a workaround for the case edge-triggered irq's. Several users + seem to have broken configurations sharing edge-triggered irq's. To avoid + losing IRQ's, reshedule if more work arrives. + + The changes to netdevice.h are to extract the part that puts device + back in list into separate inline. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 85ca719e5756d79ea0f10c469e3762462ac45e22 +Author: Stephen Hemminger +Date: Wed Apr 26 02:39:19 2006 -0700 + + [BRIDGE]: allow full size vlan packets + + Need to allow for VLAN header when bridging. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 912d35f86781e64d73be1ef358f703c08905ac37 +Author: Jens Axboe +Date: Wed Apr 26 10:59:21 2006 +0200 + + [PATCH] Add support for the sys_vmsplice syscall + + sys_splice() moves data to/from pipes with a file input/output. sys_vmsplice() + moves data to a pipe, with the input being a user address range instead. + + This uses an approach suggested by Linus, where we can hold partial ranges + inside the pages[] map. Hopefully this will be useful for network + receive support as well. + + Signed-off-by: Jens Axboe + +commit c86d90df2676d9d212c0ab1f3c64e0abdf5b4c09 +Author: Miklos Szeredi +Date: Wed Apr 26 10:49:26 2006 +0200 + + [doc] add paragraph about 'fs' subsystem to sysfs.txt + + Signed-off-by: Miklos Szeredi + +commit 8aa09a50b5d9dbdf627f79e19d72d82994348089 +Author: Miklos Szeredi +Date: Wed Apr 26 10:49:16 2006 +0200 + + [fuse] fix race between checking and setting file->private_data + + BKL does not protect against races if the task may sleep between + checking and setting a value. So move checking of file->private_data + near to setting it in fuse_fill_super(). + + Found by Al Viro. + + Signed-off-by: Miklos Szeredi + +commit 6dbbcb120570d747b00783820ee02d1e1bcf63de +Author: Miklos Szeredi +Date: Wed Apr 26 10:49:06 2006 +0200 + + [fuse] fix deadlock between fuse_put_super() and request_end(), try #2 + + A deadlock was possible, when the last reference to the superblock was + held due to a background request containing a file reference. + + Releasing the file would release the vfsmount which in turn would + release the superblock. Since sbput_sem is held during the fput() and + fuse_put_super() tries to acquire this same semaphore, a deadlock + results. + + The solution is to move the fput() outside the region protected by + sbput_sem. + + Signed-off-by: Miklos Szeredi + +commit 5a5fb1ea74d8b82ca1461b885a1334fb21e037be +Author: Miklos Szeredi +Date: Wed Apr 26 10:48:55 2006 +0200 + + Revert "[fuse] fix deadlock between fuse_put_super() and request_end()" + + This reverts 73ce8355c243a434524a34c05cc417dd0467996e commit. + + It was wrong, because it didn't take into account the requirement, + that iput() for background requests must be performed synchronously + with ->put_super(), otherwise active inodes may remain after unmount. + + The right solution is to keep the sbput_sem and perform iput() within + the locked region, but move fput() outside sbput_sem. + + Signed-off-by: Miklos Szeredi + +commit 016b661e2f717168e600f3c85f29e1a49f88e004 +Author: Jens Axboe +Date: Tue Apr 25 15:42:00 2006 +0200 + + [PATCH] splice: fix offset problems + + Make the move_from_pipe() actors return number of bytes processed, then + move_from_pipe() can decide more cleverly when to move on to the next + buffer. + + This fixes problems with pipe offset and differing file offset. + + Signed-off-by: Jens Axboe + +commit ba5f5d90c45a30e4e9a1bd136acf1b3973c905c8 +Author: Andrew Morton +Date: Tue Apr 25 15:33:34 2006 +0200 + + [PATCH] splice: fix min() warning + + Signed-off-by: Andrew Morton + Signed-off-by: Jens Axboe + +commit bcb49197ed9a2e8a0a8d990723dccfccffa7566f +Author: Auke Kok +Date: Tue Apr 25 22:50:04 2006 -0700 + + e1000: Update truesize with the length of the packet for packet split + + Update skb with the real packet size. + + + Signed-off-by: Jesse Brandeburg + Signed-off-by: Auke Kok + Signed-off-by: John Ronciak + +commit ddc5d3414593e4d7ad7fbd33e7f7517fcc234544 +Author: Dmitry Torokhov +Date: Wed Apr 26 00:14:19 2006 -0400 + + Input: move input_device_id to mod_devicetable.h + + Signed-off-by: Dmitry Torokhov + +commit 77426d7210430b70a7f5b21c05c4e7505528937d +Author: Samuel Thibault +Date: Wed Apr 26 00:14:10 2006 -0400 + + Input: allow using several chords for braille + + For coping with bad keyboards, permit to type a braille pattern by + pressing several chords. By default, only one chord is needed. + + Signed-off-by: Samuel Thibault + Signed-off-by: Dmitry Torokhov + +commit 1a0ccece05efb8a9c04b1130c24a2652239f3bea +Author: Dmitry Torokhov +Date: Wed Apr 26 00:13:57 2006 -0400 + + Input: allow passing NULL to input_free_device() + + Many drivers rely on input_free_device() behaving like kfree(). + + Signed-off-by: Dmitry Torokhov + +commit f11a7c0935637c15416679bd347bbc4eac1ca740 +Author: Richard Purdie +Date: Wed Apr 26 00:13:42 2006 -0400 + + Input: spitzkbd - fix the reversed Address and Calender keys + + Signed-off-by: Richard Purdie + Signed-off-by: Dmitry Torokhov + +commit d5b415c95f0e6510451f1446cea832c1f77bd7ea +Author: Imre Deak +Date: Wed Apr 26 00:13:18 2006 -0400 + + Input: ads7846 - improve filtering for thumb press accuracy + + Providing more accurate coordinates for thumb press requires additional + steps in the filtering logic: + + - Ignore samples found invalid by the debouncing logic, or the ones that + have out of bound pressure value. + - Add a parameter to repeat debouncing, so that more then two consecutive + good readings are required for a valid sample. + + Signed-off-by: Imre Deak + Acked-by: Juha Yrjola + Signed-off-by: Dmitry Torokhov + +commit ae82d5ab05068fccef2329f4607670f24c41606f +Author: Imre Deak +Date: Wed Apr 26 00:12:14 2006 -0400 + + Input: ads7846 - report 0 pressure value along with pen up event + + X touchscreen drivers that don't interpret the designated pen up message + assume a pen up event from a pressure value 0. For these we generate a + pressure 0 message along with the pen up message. + + Signed-off-by: Imre Deak + Acked-by: Juha Yrjola + Signed-off-by: Dmitry Torokhov + +commit 4a6fae1d9c0d879d5d46a2a4962220dbf53ac72b +Author: Jesper Juhl +Date: Sun Apr 23 20:16:02 2006 +0200 + + [SCSI] SCSI: aic7xxx_osm_pci resource leak fix. + + Fix resource leak in + drivers/scsi/aic7xxx/aic7xxx_osm_pci.c::ahc_linux_pci_dev_probe() + + Found by the coverity checker (#668) + + Signed-off-by: Jesper Juhl + Signed-off-by: James Bottomley + +commit 65207fedcf57dcb854a3ebb9da43c745106fe8d5 +Author: Moore, Eric +Date: Fri Apr 21 16:14:35 2006 -0600 + + [SCSI] - fusion - mptfc bug fix's to prevent deadlock situations + + mptbase.h + + bump version number to 3.03.09 + + remove unneeded flags + define workq and remove old fc specific locks + + mptbase.c + + initialize new lock and don't initialize two removed locks + + mptscsih.c + + when firmware reports target is no longer there, return + DID_REQUEUE for fc hosts so that i/o doesn't get killed until + the transport has an opportunity to manage the loss via its + dev loss timer + + when the "eh_abort" routine is called, check to see if the + driver has the command or not before looking to see if a reset + is pending. James Smart and I talked about this and believe + that the API for this routine is: if driver doesn't have + command, return SUCCESS. This change helps prevent a target + from being taken offline. SUCCESS is returned because it's + likely that the command completed after error recovery timed + it out but before it could be aborted. + + provide a routine to queue work to newly created workq, and + use it. + + remove "ioc" from mptscsih_abort() it was only used one time. + the other references were via hd->ioc, so I just moved it.... + net change in references to ioc via hd->ioc is zero + + move hd->resetPending test and hd->timeouts increment to after + the test for whether the command to be aborted remains known + to the driver + + Make certain that the workq exists before queuing work to it. + + mptfc.c + + no longer need to lock rport data structures as I was able to + single thread the code! I fixed up the debug code to + eliminate compilation messages due to type mismatch in the + printk. Got rid of some no longer needed rport flags. + Initialize and destroy the workq used for the rescan work. + + simplify the logic regarding the increment of + fc_rescan_work_count. use post increment and test for zero + vs. pre increment and test for one; eliminate work_count + variable: queue_work can be called with the work_lock held as + it doesn't sleep + + Signed-off-by: Michael Reed + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit bd23e94cd70f18700fc366451a8f1427e56ed137 +Author: Moore, Eric +Date: Mon Apr 17 12:43:04 2006 -0600 + + [SCSI] mptfusion: bug fix's for raid components adding/deleting + + This patch handles case where raid hidden components + are not being removed when power turned off to device + attached to expander, as well as the case of + exposing raid components when power is turned back on + to devices attached to an expander. (This is a repost + of this patch, with mptsas_is_end_device declared + further up in the code.) + + This patch contains some other miscellaneous bug fix's. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 928bd1b4709045355fad8bf858904884c0a1e87f +Author: Russell King +Date: Tue Apr 25 20:41:27 2006 +0100 + + [ARM] vfp: fix leak of VFP_NAN_FLAG into FPSCR + + The VFP code can leak VFP_NAN_FLAG into the FPSCR. It doesn't correspond + to any real FPSCR bit (and overlaps one of the exception flags). + + Bug report from Daniel Jacobowitz + + Signed-off-by: Russell King + +commit c7fd84424f919740880d989cb0459c332da96013 +Author: Richard Purdie +Date: Tue Apr 25 20:36:04 2006 +0100 + + [ARM] 3484/1: Correct AEABI CFLAGS for correct enum handling + + Patch from Richard Purdie + + The AAPCS says that enums can be variably sized depending on the range + of valid values. This is not the accepted behaviour under linux so for + compatibility gcc has an aapcs-linux target, the main difference being + that enums are always of type int. Change the ARM Makefile to use this + target. + + Signed-off-by: Richard Purdie + Signed-off-by: Russell King + +commit 4d5c34ec7b007cfb0771a36996b009f194acbb2f +Author: Ivan Kokshaysky +Date: Tue Apr 25 13:45:19 2006 +0400 + + [PATCH] Alpha: strncpy() fix + + As it turned out after recent SCSI changes, strncpy() was broken - + it mixed up the return values from __stxncpy() in registers $24 and $27. + + Thanks to Mathieu Chouquet-Stringer for tracking down the problem + and providing an excellent test case. + + Signed-off-by: Ivan Kokshaysky + Signed-off-by: Linus Torvalds + +commit 18118cdbfd1f855e09ee511d764d6c9df3d4f952 +Author: Patrick McHardy +Date: Mon Apr 24 17:18:59 2006 -0700 + + [NETFILTER]: ipt action: use xt_check_target for basic verification + + The targets don't do the basic verification themselves anymore so + the ipt action needs to take care of it. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 91536b7ae67710ca888e03ea82c60f0ac073a015 +Author: Dmitry Mishin +Date: Mon Apr 24 17:18:25 2006 -0700 + + [NETFILTER]: x_tables: move table->lock initialization + + xt_table->lock should be initialized before xt_replace_table() call, which + uses it. This patch removes strict requirement that table should define + lock before registering. + + Signed-off-by: Dmitry Mishin + Signed-off-by: Kirill Korotaev + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit e4a79ef811505a8bf8d8edfda8602e23cb2fbdb0 +Author: Patrick McHardy +Date: Mon Apr 24 17:17:49 2006 -0700 + + [NETFILTER]: ip6_tables: remove broken comefrom debugging + + The introduction of x_tables broke comefrom debugging, remove it from + ip6_tables as well (ip_tables already got removed). + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 2c16b774c7a9b1684b0ff10121915903e9f0cf6c +Author: Yasuyuki Kozakai +Date: Mon Apr 24 17:16:59 2006 -0700 + + [NETFILTER]: nf_conntrack: kill unused callback init_conntrack + + Signed-off-by: Yasuyuki Kozakai + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 55fe5866366ae42f259f27ae5962eb267d9ce172 +Author: Patrick McHardy +Date: Mon Apr 24 17:16:28 2006 -0700 + + [NETFILTER]: Fix compat_xt_counters alignment for non-x86 + + Some (?) non-x86 architectures require 8byte alignment for u_int64_t + even when compiled for 32bit, using u_int32_t in compat_xt_counters + breaks on these architectures, use u_int64_t for everything but x86. + + Reported by Andreas Schwab . + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 44adf28f4a27df626d50e54c8d0669df2dd1aa89 +Author: Thomas Voegtle +Date: Mon Apr 24 17:15:54 2006 -0700 + + [NETFILTER]: ULOG target is not obsolete + + The backend part is obsoleted, but the target itself is still needed. + + Signed-off-by: Thomas Voegtle + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit e1bbdebdba615ddd957de81103aa2f7fa0581952 +Author: Yasuyuki Kozakai +Date: Mon Apr 24 17:15:17 2006 -0700 + + [NETFILTER]: nf_conntrack: Fix module refcount dropping too far + + If nf_ct_l3proto_find_get() fails to get the refcount of + nf_ct_l3proto_generic, nf_ct_l3proto_put() will drop the refcount + too far. + + This gets rid of '.me = THIS_MODULE' of nf_ct_l3proto_generic so that + nf_ct_l3proto_find_get() doesn't try to get refcount of it. + It's OK because its symbol is usable until nf_conntrack.ko is unloaded. + + This also kills unnecessary NULL pointer check as well. + __nf_ct_proto_find() allways returns non-NULL pointer. + + Signed-off-by: Yasuyuki Kozakai + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit d8fe3f19203b1f5070358aaa292d33295258b448 +Author: OGAWA Hirofumi +Date: Mon Apr 24 13:48:51 2006 -0700 + + [SPARC]: __NR_sys removal + + __NR_sys_sync_file_range part was lost somewhere... + [glibc is already checking __NR_sync_file_range] + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: David S. Miller + +commit 7c241d37fe0e6442c5cf3b5d73f7f58f2dc66352 +Author: Michael Buesch +Date: Sun Apr 23 13:23:10 2006 +0200 + + [PATCH] bcm43xx: make PIO mode usable + + This patch fixes PIO mode on the softmac bcm43xx + driver. (A dscape patch will follow). + It mainly fixes endianess issues. + This patch is tested on PowerPC32 and i386. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 9eac8f95d1bb2cec96340505bed2d2387780821f +Author: Michael Buesch +Date: Sat Apr 22 17:31:27 2006 +0200 + + [PATCH] bcm43xx: add to MAINTAINERS + + Signed-off-by: John W. Linville + +commit 818667f7c40dd0bd14029b5ac1d0f5282e12310e +Author: Johannes Berg +Date: Thu Apr 20 20:02:03 2006 +0200 + + [PATCH] softmac: fix SIOCSIWAP + + There are some bugs in the current implementation of the SIOCSIWAP wext, + for example that when you do it twice and it fails, it may still try + another access point for some reason. This patch fixes this by introducing + a new flag that tells the association code that the bssid that is in use + was fixed by the user and shouldn't be deviated from. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit dac322e39a2b82871cf514c9a533f24a1b4c7e19 +Author: Pavel Roskin +Date: Mon Apr 17 11:36:43 2006 -0400 + + [PATCH] Fix crash on big-endian systems during scan + + The original code was doing arithmetics on a little-endian value. + Reported by Stelios Koroneos + + Signed-off-by: Pavel Roskin + Signed-off-by: John W. Linville + +commit 301dc3e6f6ea83703fa52919c00e60661da5a8fe +Author: Steve French +Date: Mon Apr 24 16:24:54 2006 +0000 + + [CIFS] Fix compile error when CONFIG_CIFS_EXPERIMENTAL is undefined + + Signed-off-by: Dave Kleikamp + Signed-off-by: Steve French + +commit 3d63abe56be2147891b3438cb3bd37a9be72bda7 +Author: Russell King +Date: Mon Apr 24 11:27:02 2006 +0100 + + [MMC] pxamci: fix data timeout calculation + + The MMC layer gives us two parts for the timeout calculation - a fixed + timeout in nanoseconds, and a card clock-speed dependent part. + + The PXA MMC hardware allows for a timeout based on the fixed host clock + speed only. This resulted in some cards being given a short timeout, + and therefore failing to work. + + Signed-off-by: Russell King + +commit 3b920cef3470b7199acd2dc26e09fb9291131976 +Author: Hyok S. Choi +Date: Mon Apr 24 09:45:35 2006 +0100 + + [ARM] nommu: trivial fixups for head-nommu.S and the Makefile + + This patch fix compilation problem of start-up codes. + (head-nommu.S, arch/arm/kernel/Makefile) + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit 5d23fafb1bf8ef071738026c2e5071a92186d5f8 +Author: Dave Airlie +Date: Sun Apr 23 18:26:40 2006 +1000 + + drm: possible cleanups + + This patch contains the following possible cleanups: + - make the following needlessly global function static: + - drm_bufs.c: drm_addbufs_fb() + - remove the following unused EXPORT_SYMBOL's: + - drm_agpsupport.c: drm_agp_bind_memory + - drm_bufs.c: drm_rmmap_locked + - drm_bufs.c: drm_rmmap + - drm_stub.c: drm_get_dev + + Signed-off-by: Adrian Bunk + Signed-off-by: Dave Airlie + +commit caa98c41c0db9bfda5bc9a0e680f304283089268 +Author: Dave Airlie +Date: Sun Apr 23 18:14:00 2006 +1000 + + drm: fixup r300 scratch on BE machines + + This fixes the r300 scratch stuff to work on PPC, + from Ben Herrenschmidt on IRC. + + Signed-off-by: Dave Airlie + +commit b66ac3ea21f81dea02cdb4e9de66ee6afdc540e4 +Author: Steve French +Date: Sun Apr 23 01:54:50 2006 +0000 + + [CIFS] Fix typo in previous + + Signed-off-by: Steve French + +commit d0e15bed84db7a9b0ea85d2ad9707b5e6d2e38da +Author: Paul Mackerras +Date: Sun Apr 23 10:42:04 2006 +1000 + + powerpc: Fix define_machine so machine_is() works from modules + + machine_is() was always returning 0 when used in a module, because + we weren't exporting the machine definitions. This was why sound + wasn't working on powermacs when CONFIG_SND_POWERMAC=m. Original + fix from Ben Herrenschmidt, further fixed by me. + + Signed-off-by: Paul Mackerras + +commit 93e1b7d42e1edb4ddde6257e9a02513fef26f715 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:39:52 2006 -0700 + + [PATCH] tpm: add HID module parameter + + I recently found that not all BIOS manufacturers are using the specified + generic PNP id in their TPM ACPI table entry. I have added the vendor + specific IDs that I know about and added a module parameter that a user can + specify another HID to the probe list if their device isn't being found by the + default list. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5713556843aee24f484f445db6540f9fef976439 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:39:44 2006 -0700 + + [PATCH] tpm: add interrupt module parameter + + This patch adds a boolean module parameter that allows the user to turn + interrupt support on and off. The default behavior is to attempt to use + interrupts. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cb5354253af2bc30ed449b8be4b3bddf3b3a2746 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:39:31 2006 -0700 + + [PATCH] tpm: spacing cleanups 2 + + Fixes minor spacing issues. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 397c718299d848ff305ecd955838a9bd32f1f881 +Author: Randy Dunlap +Date: Sat Apr 22 02:39:18 2006 -0700 + + [PATCH] tpm_infineon section fixup + + Use __devexit_p() for the exit/remove function to protect against + discarding it. + + WARNING: drivers/char/tpm/tpm_infineon.o - Section mismatch: reference to .exit.text:tpm_inf_pnp_remove from .data between 'tpm_inf_pnp' (at offset 0x20) and 'tpm_inf' + + Signed-off-by: Randy Dunlap + Cc: Kylene Jo Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8b006db604527c566dc1dd0aebae37714143aaef +Author: Kylene Jo Hall +Date: Sat Apr 22 02:39:07 2006 -0700 + + [PATCH] tpm: update bios log code for 1.2 + + The acpi table which contains the BIOS log events was updated for 1.2. + There are now client and server modes as defined in the specifications with + slightly different formats. Additionally, the start field was even too + small for the 1.1 version but had been working anyway. This patch updates + the code to deal with any of the three types of headers probperly (1.1, 1.2 + client and 1.2 server). + + Signed-off-by: Kylie Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b09d53009db21228adde29b468eb4583e66cbe7c +Author: Kylene Jo Hall +Date: Sat Apr 22 02:38:55 2006 -0700 + + [PATCH] tpm: check mem start and len + + The memory start and length values obtained from the ACPI entry need to be + checked and filled in with the default values from the specification if + they don't exist. This patch fills in the default values and uses them + appropriately. + + Signed-off-by: Kylie Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e496f540540f0a0bffcc3f83785f9954dacf1b83 +Author: Marcel Selhorst +Date: Sat Apr 22 02:38:42 2006 -0700 + + [PATCH] tpm: tpm_infineon updated to latest interface changes + + Apply the latest changes in the TPM interface to the Infineon TPM-driver. + + Signed-off-by: Marcel Selhorst + Acked-by: Kylie Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 10685a95301d02fde2b10f6047e405c69d2af82a +Author: Kylene Jo Hall +Date: Sat Apr 22 02:38:32 2006 -0700 + + [PATCH] tpm: use clear_bit + + Use set_bit() and clear_bit() for dev_mask manipulation. + + Signed-off-by: Kylie Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 36b20020e537036c4f9eb5b69140c88ead5da7dc +Author: Kylene Jo Hall +Date: Sat Apr 22 02:38:19 2006 -0700 + + [PATCH] tpm: msecs_to_jiffies cleanups + + The timeout and duration values used in the tpm driver are not exposed to + userspace. This patch converts the storage units to jiffies with + msecs_to_jiffies. They were always being used in jiffies so this + simplifies things removing the need for calculation all over the place. + The change necessitated a type change in the tpm_chip struct to hold + jiffies. + + Signed-off-by: Kylie Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 27084efee0c3dc0eb15b5ed750aa9f1adb3983c3 +Author: Leendert van Doorn +Date: Sat Apr 22 02:38:03 2006 -0700 + + [PATCH] tpm: driver for next generation TPM chips + + The driver for the next generation of TPM chips version 1.2 including support + for interrupts. The Trusted Computing Group has written the TPM Interface + Specification (TIS) which defines a common interface for all manufacturer's + 1.2 TPM's thus the name tpm_tis. + + Signed-off-by: Leendert van Doorn + Signed-off-by: Kylene Hall + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 08e96e486dd1345ae0ad70247387d0d4fd346889 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:37:50 2006 -0700 + + [PATCH] tpm: new 1.2 sysfs files + + Many of the sysfs files were calling the TPM_GetCapability command with array. + Since for 1.2 more sysfs files of this type are coming I am generalizing the + array so there can be one array and the unique parts can be filled in just + before the command is called. + + This updated version of the patch breaks the multi-value sysfs file into + separate files pointed out by Greg. It also addresses the code redundancy and + ugliness in the tpm_show_* functions pointed out on another patch by Dave + Hansen. + + Signed-off-by: Kylene Hall + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9e18ee19179a7742999d0e2d4bfcba75b5562439 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:37:38 2006 -0700 + + [PATCH] tpm: command duration update + + With the TPM 1.2 Specification, each command is classified as short, medium or + long and the chip tells you the maximum amount of time for a response to each + class of command. This patch provides and array of the classifications and a + function to determine how long the response should be waited for. Also, it + uses that information in the command processing to determine how long to poll + for. The function is exported so the 1.2 driver can use the functionality to + determine how long to wait for a DataAvailable interrupt if interrupts are + being used. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e0dd03caf20d040a0a86b6bd74028ec9bda545f5 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:37:26 2006 -0700 + + [PATCH] tpm: return chip from tpm_register_hardware + + Changes in the 1.2 TPM Specification make it necessary to update some fields + of the chip structure in the initialization function after it is registered + with tpm.c thus tpm_register_hardware was modified to return a pointer to the + structure. This patch makes that change and the associated changes in + tpm_atmel and tpm_nsc. The changes to tpm_infineon will be coming in a patch + from Marcel Selhorst. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 90dda520c1962d55a0e1d2571deed0d75fd6d6f1 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:37:15 2006 -0700 + + [PATCH] tpm: chip struct update + + To assist with chip management and better support the possibility of having + multiple TPMs in the system of the same kind, the struct tpm_vendor_specific + member of the tpm_chip was changed from a pointer to an instance. This patch + changes that declaration and fixes up all accesses to the structure member + except in tpm_infineon which is coming in a patch from Marcel Selhorst. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit beed53a1aaeaae4eb93297c23f1598a726716adf +Author: Kylene Jo Hall +Date: Sat Apr 22 02:37:05 2006 -0700 + + [PATCH] tpm: reorganize sysfs files + + Many of the sysfs files were calling the TPM_GetCapability command with array. + Since for 1.2 more sysfs files of this type are coming I am generalizing the + array so there can be one array and the unique parts can be filled in just + before the command is called. + + Signed-off-by: Kylene Hall + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3c2f606a098b07f053904ec8b8f4d0e101c28b35 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:36:56 2006 -0700 + + [PATCH] tpm: spacing cleanups + + The following patch set contains numerous changes to the base tpm driver + (tpm.c) to support the next generation of TPM chips. The changes include new + sysfs files because of more relevant data being available, a function to + access the timeout and duration values for the chip, and changes to make use + of those duration values. Duration in the TPM specification is defined as the + maximum amount of time the chip could take to return the results. Commands + are in one of three categories short, medium and long. Also included are + cleanups of how the commands for the sysfs files are composed to reduce a + bunch of redundant arrays. + + This patch: + + Fix minor spacing issues. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c69a47f1badf40dfa2febac71df98d32b1b56d7 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:36:46 2006 -0700 + + [PATCH] tpm: fix missing string + + A string corresponding to the tcpa_pc_event_id POST_CONTENTS was missing + causing an overflow bug when access was attempted in the get_event_name + function. + + This bug was found by Coverity. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 59e89f3a091d5cf93f4b176aedcfded61ece5252 +Author: Kylene Jo Hall +Date: Sat Apr 22 02:36:35 2006 -0700 + + [PATCH] tpm: fix memory leak + + The eventname was kmalloc'd and not freed in the *_show functions. + + This bug was found by Coverity. + + Signed-off-by: Kylene Hall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b9251b823b5e921c894eb135cb6c64abf483f50e +Author: Jan Kara +Date: Sat Apr 22 02:36:24 2006 -0700 + + [PATCH] Fix reiserfs deadlock + + reiserfs_cache_default_acl() should return whether we successfully found + the acl or not. We have to return correct value even if reiserfs_get_acl() + returns error code and not just 0. Otherwise callers such as + reiserfs_mkdir() can unnecessarily lock the xattrs and later functions such + as reiserfs_new_inode() fail to notice that we have already taken the lock + and try to take it again with obvious consequences. + + Signed-off-by: Jan Kara + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8c4335a87c9785d2102ab23f09393038e1663314 +Author: akpm@osdl.org +Date: Sat Apr 22 02:36:15 2006 -0700 + + [PATCH] Altix snsc: duplicate kobject fix + + from: Greg Howard + + Fix Altix system controller (snsc) device names to include the slot number + of the blade whose associated system controller is the target of the device + interface. Including the slot number avoids a problem we're currently + having where slots within the same enclosure are attempting to create + multiple kobjects with identical names. + + Signed-off-by: Greg Howard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5b20192727ef2c047343a043ee4fbda67e2beef4 +Author: Mike Waychison +Date: Sat Apr 22 02:36:06 2006 -0700 + + [PATCH] x86_64: Fix a race in the free_iommu path + + We do this by removing a micro-optimization that tries to avoid grabbing + the iommu_bitmap_lock spinlock and using a bus-locked operation. + + This still races with other simultaneous alloc_iommu or free_iommu(size > + 1) which both use bus-unlocked operations. + + The end result of this race is eventually ending up with an + iommu_gart_bitmap that has bits errornously set all over, making large + contiguous iommu space allocations fail with 'PCI-DMA: Out of IOMMU space'. + + Signed-off-by: Mike Waychison + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ddbe3eec596fc2c6a513717168217bd19c901880 +Author: Andi Kleen +Date: Sat Apr 22 02:35:57 2006 -0700 + + [PATCH] x86_64: Pass -32 to the assembler when compiling the 32bit vsyscall pages + + This quietens warnings and actually fixes a bug. The unwind tables would + come out wrong without -32, causing pthread cancellation during them to + crash in the gcc runtime. + + The problem seems to only happen with newer binutils (it doesn't happen + with 2.16.91.0.2 but happens wit 2.16.91.0.5) + + Thanks to David Altobelli and Brian Baker + for test case and initial analysis. + + Signed-off-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 304dbdb7a4fbb7f40a6ad5c5836fdd456c233c63 +Author: Lee Schermerhorn +Date: Sat Apr 22 02:35:48 2006 -0700 + + [PATCH] add migratepage address space op to shmem + + Basic problem: pages of a shared memory segment can only be migrated once. + + In 2.6.16 through 2.6.17-rc1, shared memory mappings do not have a + migratepage address space op. Therefore, migrate_pages() falls back to + default processing. In this path, it will try to pageout() dirty pages. + Once a shared memory page has been migrated it becomes dirty, so + migrate_pages() will try to page it out. However, because the page count + is 3 [cache + current + pte], pageout() will return PAGE_KEEP because + is_page_cache_freeable() returns false. This will abort all subsequent + migrations. + + This patch adds a migratepage address space op to shared memory segments to + avoid taking the default path. We use the "migrate_page()" function + because it knows how to migrate dirty pages. This allows shared memory + segment pages to migrate, subject to other conditions such as # pte's + referencing the page [page_mapcount(page)], when requested. + + I think this is safe. If we're migrating a shared memory page, then we + found the page via a page table, so it must be in memory. + + Can be verified with memtoy and the shmem-mbind-test script, both + available at: http://free.linux.hp.com/~lts/Tools/ + + Signed-off-by: Lee Schermerhorn + Acked-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3b5fd59fdd2e656dd4d10f2cedb41a7519b131b2 +Author: Andy Whitcroft +Date: Sat Apr 22 02:35:41 2006 -0700 + + [PATCH] x86_64: sparsemem does not need node_mem_map + + Seems we are trying to init the node_mem_map when we don't need to, for + example when SPARSEMEM is enabled. This causes the error below during + compilation. Use CONFIG_FLAT_NODE_MEM_MAP to gate allocation and init. + + arch/x86_64/mm/numa.c: In function `setup_node_zones': + arch/x86_64/mm/numa.c:191: error: structure has no member + named `node_mem_map' + + Signed-off-by: Andy Whitcroft + Acked-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 73a88814542d3f5b8973f3db9d7f380bd29957c4 +Author: Tilman Schmidt +Date: Sat Apr 22 02:35:30 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset base driver: fix disconnect handling + + Fix a possible Oops in the Siemens Gigaset base driver when the device is + unplugged while an ISDN connection is still active, and makes sure that the + isdn4linux link level (LL) is properly informed if a connection is broken + by the USB cable being unplugged. + + - Avoid unsafe checks of URB status fields outside the URB completion + handlers, keep track of in-use URBs myself instead. + + - If an isochronous transfer URB completes with status==0, also check the + status of the frame descriptors. + + - Verify length of interrupt messages received from the device. + + - Align the length limit on transmitted AT commands with the device + documentation. + + - In case of AT response receive overrun, keep newly arrived instead of old + unread data. + + - Remove redundant check of device ID in the USB probe function. + + - Correct and improve some comments and formatting. + + Signed-off-by: Tilman Schmidt + Acked-by: Hansjoerg Lipp + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 60808233f374aebba26488d06a5f25443f6763c3 +Author: Steve French +Date: Sat Apr 22 15:53:05 2006 +0000 + + [CIFS] Readdir fixes to allow search to start at arbitrary position + in directory + + Also includes first part of fix to compensate for servers which forget + to return . and .. as well as updates to changelog and cifs readme. + + Signed-off-by: Steve French + +commit 45af7a0f2ebad1304cab956e15f0b37318226fcd +Author: Steve French +Date: Fri Apr 21 22:52:25 2006 +0000 + + [CIFS] Use the kthread_ API instead of opencoding lots of hairy code for kernel + thread creation and teardown. + + It does not move the cifsd thread handling to kthread due to problems + found in testing with wakeup of threads blocked in the socket peek api, + but the other cifs kernel threads now use kthread. + Also cleanup cifs_init to properly unwind when thread creation fails. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Steve French + +commit 48b950ff241fca03a6969a5eb6a42a02722678d4 +Author: Daniel Ritz +Date: Fri Apr 14 17:42:13 2006 +0200 + + [PATCH] pcmcia/pcmcia_resource.c: fix crash when using Cardbus cards + + Using the old ioctl interface together with cardbus card gives a NULL + pointer dereference since cardbus devices don't have a struct pcmcia_device. + also s->io[0].res can be NULL as well. + + Fix is to move the pcmcia code after the cardbus code and to check for a null + pointer. + + Signed-off-by: Daniel Ritz + Signed-off-by: Dominik Brodowski + +commit daaeb72bdf22873e6fa6497550c9e1d9a8825fea +Author: Yoichi Yuasa +Date: Thu Apr 6 15:08:29 2006 +0900 + + [PATCH] vrc4171: update config + + This patch updates "depends on" for PCMCIA_VRC4171. + CONFIG_VRC4171 has been removed, so replace it with CPU_VR41XX && ISA. + + Signed-off-by: Yoichi Yuasa + Signed-off-by: Dominik Brodowski + +commit 2aff541c691b28cecb95ce710c367d16c0a84d8c +Author: Dominik Brodowski +Date: Thu Apr 13 19:06:49 2006 +0200 + + [PATCH] pcmcia: fix oops in static mapping case + + As static maps do not have IO resources, this setting oopses. However, as + we do not ever read this value, we can safely remove it. + + Signed-off-by: Dominik Brodowski + +commit 80a55e923c76e022de298929e0c09bcca5c247d9 +Author: Andrew Morton +Date: Mon Apr 10 23:24:57 2006 -0700 + + [PATCH] pcmcia: remove unneeded forward declarations + + Also remove a couple of unneeded typecasts. + + Signed-off-by: Andrew Morton + Signed-off-by: Dominik Brodowski + +commit a0aab14322a74ab5665704c6155bf48fbc38f445 +Author: Dominik Brodowski +Date: Tue Apr 4 11:09:26 2006 +0200 + + [PATCH] pcmcia: do not set dev_node to NULL too early + + If we set dev_node to NULL too early, some drivers which used this to + determine whether unregister_netdev() needs to be called fail when removing + a PCMCIA card. + + Signed-off-by: Dominik Brodowski + +commit 90ff87008df12da7f2486178d0dee13745c1de6b +Author: Komuro +Date: Sun Mar 12 11:32:07 2006 +0900 + + [PATCH] pcmcia: fix comment for pcmcia_load_firmware + + The comment of "pcmcia_load_firmware" is wrong: the + firmware(*.cis) files reside in /lib/firmware/ _not_ + /lib/firmware/cis/ . + + Signed-off-by: komurojun-mbn@nifty.com + Signed-off-by: Dominik Brodowski + +commit 6171b88b436ceb91d602ca570e63a0dcdd56648e +Author: Komuro +Date: Sun Apr 2 17:39:27 2006 +0900 + + [PATCH] pcmcia: unload second device first + + Use list_add instead of list_add_tail for pcmcia_device_add + so that second device of multi-function-card will be unloaded first. + + Signed-off-by: komurojun-mbn@nifty.com + Signed-off-by: Dominik Brodowski + +commit 6542729809baa3674b16a76a68346f449266c6dd +Author: Dominik Brodowski +Date: Tue Apr 4 10:17:52 2006 +0200 + + [PATCH] pcmcia: add new ID to pcnet_cs + + This adds a new ID to pcnet_cs, as noted by Kuro Moji. + + Signed-off-by: Dominik Brodowski + +commit 223232de068593b40d267e340f24c017d31c018a +Author: Kyle McMartin +Date: Fri Apr 21 16:54:23 2006 -0400 + + [PARISC] MAINTAINERS + + Add myself to maintainers and add the parisc trees. + + Acked-by: Matthew Wilcox + Signed-off-by: Kyle McMartin + +commit 1b52d7c2210b9a64c5cba6aded478c8217a8853c +Author: Kyle McMartin +Date: Thu Apr 20 21:16:32 2006 +0000 + + [PARISC] Make ioremap default to _nocache + + Since it is way more work to change most drivers to comply with parisc, take + the easy way out and make ioremap _NO_CACHE by default. This is in line with + what powerpc does. + + Signed-off-by: Kyle McMartin + +commit 6ca773cf8b9dc19989c9b44635292b1ba80f9112 +Author: Kyle McMartin +Date: Thu Apr 20 04:44:07 2006 +0000 + + [PARISC] Add new entries to the syscall table + + Most are easy, but sync_file_range needed special handling when entering + through the 32-bit syscall table. + + Signed-off-by: Kyle McMartin + +commit 2fd83038160531245099c3c5b3511fa4b80765eb +Author: Helge Deller +Date: Thu Apr 20 20:40:23 2006 +0000 + + [PARISC] Further work for multiple page sizes + + More work towards supporing multiple page sizes on 64-bit. Convert + some assumptions that 64bit uses 3 level page tables into testing + PT_NLEVELS. Also some BUG() to BUG_ON() conversions and some cleanups + to assembler. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit d668da80d613def981c573354e1853e38bd0698d +Author: Matthew Wilcox +Date: Mon Apr 3 13:44:17 2006 +0000 + + [PARISC] Fix up hil_kbd.c mismerge + + Signed-off-by: Matthew Wilcox + Signed-off-by: Kyle McMartin + +commit 8ea6947b4b9d918784fa6a1f93ca2882d94b71b6 +Author: Helge Deller +Date: Sun Apr 2 13:28:00 2006 +0000 + + [PARISC] defconfig updates + + Make the defconfig more generally useful. Turn on IPv6, modules, + cardbus, etc. Boots 32bit on 715 with HIL, B160L with sound, + PrecisionBook, and C3000. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit b312c33e362696d873931d8f84a89b3e894077c8 +Author: Grant Grundler +Date: Thu Mar 30 07:13:21 2006 +0000 + + [PARISC] Document that we tolerate "Relaxed Ordering" + + This means "DMA Read returns" can bypass "MMIO Writes". + Violating the PCI specs in this case improves outbound DMA "flows" + and is currently not required by any drivers. + + This is NOT a new behavior. Previous chipsets did this + already and I believe ZX1 PDC was already setting this + for hpux. I just want to further document the behavior. + + Signed-off-by: Grant Grundler + Signed-off-by: Kyle McMartin + +commit 67a5a59d3301949f51f2d617d689f005c6d21470 +Author: Helge Deller +Date: Mon Mar 27 19:52:14 2006 +0000 + + [PARISC] Misc. janitorial work + + Fix a spelling mistake, add a KERN_INFO flag, and fix some whitespace + uglies. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit b2d6b9fb35bf670df8049f0b3d4d306bf2d454da +Author: Helge Deller +Date: Mon Mar 27 19:52:14 2006 +0000 + + [PARISC] EISA regions must be mapped NO_CACHE + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit e74eb808ba64610d4983ddd8b5b9a159d178aa8e +Author: Stuart Brady +Date: Tue Mar 1 23:00:56 2005 +0000 + + [PARISC] OSS ad1889: Match register names with ALSA driver + + Signed-off-by: Stuart Brady + Signed-off-by: Kyle McMartin + +commit 296034f7de8bdf111984ce1630ac598a9c94a253 +Author: Steve French +Date: Fri Apr 21 18:18:37 2006 +0000 + + [CIFS] Don't allow a backslash in a path component + + Unless Posix paths have been negotiated, the backslash, "\", is not a valid + character in a path component. + + Signed-off-by: Dave Kleikamp + Signed-off-by: Steve French + +commit 0bd4fa977f81c914eb8bada00284d0933825900e +Author: Steve French +Date: Fri Apr 21 18:17:42 2006 +0000 + + [CIFS] [CIFS] Do not take rename sem on most path based calls (during + building of full path) to avoid hang rename/readdir hang + + Reported by Alan Tyson + + Signed-off-by: Steve French + +commit c1311af12c7ca176a790a911a3fb6fed1f3bb387 +Author: Brent Casavant +Date: Thu Apr 20 15:38:16 2006 -0500 + + [IA64] IOC4 config option ordering + + SERIAL_SGI_IOC4 and BLK_DEV_SGIIOC4 depend upon SGI_IOC4, and + SERIAL_SGI_IOC3 depends upon SGI_IOC3. Currently the definitions + are out of order in the config sequence. + + Fix by including drivers/sn/Kconfig immediately after SGI_SN, + upon which SGI_IOC4 and SGI_IOC3 depend. + + Signed-off-by: Brent Casavant + Signed-off-by: Tony Luck + +commit e5ecc192dfc5e0b325dd8c99ce4c755714c9acbf +Author: Christoph Lameter +Date: Thu Apr 13 18:23:53 2006 -0700 + + [IA64] Setup an IA64 specific reclaim distance + + RECLAIM_DISTANCE is checked on bootup against the SLIT table distances. + Zone reclaim is important for system that have higher latencies but not for + systems that have multiple nodes on one motherboard and therefore low latencies. + + We found that on motherboard latencies are typically 1 to 1.4 of local memory + access speed whereas multinode systems which benefit from zone reclaim have + usually more than 1.5 times the latency of a local access. + + Set the reclaim distance for IA64 to 1.5 times. + + Signed-off-by: Christoph Lameter + Signed-off-by: Tony Luck + +commit 4d6c58899c1cdac018f92cfa0383bb835a0c80ef +Author: Benjamin Herrenschmidt +Date: Fri Apr 21 15:04:22 2006 +1000 + + [PATCH] powerpc: fix oops in alsa powermac driver + + This fixes an oops in 2.6.16.X when loading the snd_powermac module. The + name of the requested module changed during the 2.6.16 development cycle + from i2c-keylargo to i2c-powermac. + + Signed-off-by: Guido Guenther + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Paul Mackerras + +commit 5ad1bfeaf7a526ea5c5503c8a48e3a5a3efe18f7 +Author: Will Schmidt +Date: Wed Apr 19 16:26:22 2006 -0500 + + [PATCH] powerpc: update {g5,iseries,pseries}_defconfigs + + Default choices for all. + + Signed-off-by: Will Schmidt + Signed-off-by: Paul Mackerras + +commit ea1e847cc202e805769c3c46ba5e5c53714068a1 +Author: Becky Bruce +Date: Tue Apr 18 14:29:34 2006 -0500 + + [PATCH] ppc: Fix powersave code on arch/ppc + + Fix asm_offsets.c and entry.S to work with the new power save code. + Changes in arch/powerpc needed to exist in arch/ppc as well since the + idle code is shared by both ppc and powerpc.. + + Signed-off-by: Becky Bruce + Signed-off-by: Paul Mackerras + +commit 23b2527d5eae89841eb66b46e80ec91980493dda +Author: Arnd Bergmann +Date: Tue Apr 18 15:24:16 2006 +0200 + + [PATCH] powerpc/cell: remove BUILD_BUG_ON and add sys_tee to spu_syscall_table + + Every time a new syscall gets added, a BUILD_BUG_ON in + arch/powerpc/platforms/cell/spu_callbacks.c gets triggered. + Since the addition of a new syscall is rather harmless, + the error should just be removed. + + While we're here, add sys_tee to the list and add a comment + to systbl.S to remind people that there is another list + on powerpc. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 60162e498e220d1f03bbee5bac0a9ddd6de60ae7 +Author: Benjamin Herrenschmidt +Date: Tue Apr 18 14:11:53 2006 +1000 + + [PATCH] powermac: Fix i2c on keywest based chips + + The new i2c implementation for PowerMac has a regression that causes the + hardware to go out of state when probing non-existent devices. While + fixing that, I also found & fixed a couple of other corner cases. This + fixes booting with a pbbuttons version that scans the i2c bus for an LMU + controller among others. Tested on a dual G5 with thermal control (which + has heavy i2c activity) with no problem so far. + + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Paul Mackerras + +commit 28897731318dc8f63f683eed9091e446916ad706 +Author: Olof Johansson +Date: Wed Apr 12 21:52:33 2006 -0500 + + [PATCH] powerpc: Lower threshold for DART enablement to 1GB + + Turn on the DART already at 1GB. This is needed because of crippled + devices in some systems, i.e. Airport Extreme cards, only supporting + 30-bit DMA addresses. + + Otherwise, users with between 1 and 2GB of memory will need to manually + enable it with iommu=force, and that's no good. + + Some simple performance tests show that there's a slight impact of + enabling DART, but it's in the 1-3% range (kernel build with disk I/O + as well as over NFS). + + iommu=off can still be used for those who don't want to deal with the + overhead (and don't need it for any devices). + + Signed-off-by: Olof Johansson + Signed-off-by: Paul Mackerras + +commit 7daa411b810d7eadfaabe3765ec5f827893dbb30 +Author: Olof Johansson +Date: Wed Apr 12 21:05:59 2006 -0500 + + [PATCH] powerpc: IOMMU support for honoring dma_mask + + Some devices don't support full 32-bit DMA address space, which we currently + assume. Add the required mask-passing to the IOMMU allocators. + + Signed-off-by: Olof Johansson + Signed-off-by: Paul Mackerras + +commit a72391e42f0a13116995045b3d492d660f96697d +Author: Satoru Takeuchi +Date: Thu Apr 20 18:49:48 2006 +0900 + + [IA64] eliminate compile time warnings + + This patch removes following compile time warnings: + + drivers/pci/pci-sysfs.c: In function `pci_read_legacy_io': + drivers/pci/pci-sysfs.c:257: warning: implicit declaration of function `ia64_pci_legacy_read' + drivers/pci/pci-sysfs.c: In function `pci_write_legacy_io': + drivers/pci/pci-sysfs.c:280: warning: implicit declaration of function `ia64_pci_legacy_write' + + It also fixes wrong definition of ia64_pci_legacy_write (type of `bus' is not + `pci_dev', but `pci_bus'). + + Signed-Off-By: Satoru Takeuchi + Signed-off-by: Tony Luck + +commit ee6d4b6ef8df79893d6d4a653b16c99bdb6d2784 +Author: Satoru Takeuchi +Date: Thu Apr 20 18:49:41 2006 +0900 + + [IA64] eliminate compile time warnings + + This is a trivial patch to remove following compile time warning: + + arch/ia64/ia32/../../../fs/binfmt_elf.c:508: warning: 'randomize_stack_top' defined but not used + + Signed-off-by: Satoru Takeuchi + Signed-off-by: Tony Luck + +commit 86db2f4239e2556cd37b853c2307aa9d43041458 +Author: Russ Anderson +Date: Thu Apr 20 17:05:43 2006 -0700 + + [IA64-SGI] SN SAL call to inject memory errors + + The SGI Altix SAL provides an interface for modifying + the ECC on memory to create memory errors. The SAL call + can be used to inject memory errors for testing MCA recovery + code. + + Signed-off-by: Russ Anderson (rja@sgi.com) + Signed-off-by: Tony Luck + +commit fef6108d4556917c45cd9ba397c1c7597f3990e1 +Author: Andy Fleming +Date: Thu Apr 20 16:44:29 2006 -0500 + + [PATCH] Fix locking in gianfar + + This patch fixes several bugs in the gianfar driver, including a major one + where spinlocks were horribly broken: + + * Split gianfar locks into two types: TX and RX + * Made it so gfar_start() now clears RHALT + * Fixed a bug where calling gfar_start_xmit() with interrupts off would + corrupt the interrupt state + * Fixed a bug where a frame could potentially arrive, and never be handled + (if no more frames arrived + * Fixed a bug where the rx_work_limit would never be observed by the rx + completion code + * Fixed a bug where the interrupt handlers were not actually protected by + their spinlocks + + Signed-off-by: Andy Fleming + Signed-off-by: Jeff Garzik + +commit 17c281ab3e33be63693687d3db7ac9cf2bbdfd66 +Author: Sergei Shtylyov +Date: Sun Apr 16 19:42:35 2006 +0400 + + [PATCH] NEx000: fix RTL8019AS base address for RBTX4938 + + Correct the base address of the Realtek RTL8019AS chip on the Toshiba RBTX4938 + board -- this should make the driver work at least when CONFIG_PCI is enabled. + + Signed-off-by: Yuri Shpilevsky + Signed-off-by: Sergei Shtylyov + Signed-off-by: Jeff Garzik + +commit 036999d50180a9eaaa79dfb1d7a940824e475f24 +Author: KAMEZAWA Hiroyuki +Date: Thu Apr 20 21:48:02 2006 +0100 + + [ARM] for_each_possible_cpu + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Russell King + +commit 1c97b73e89af9a20e99450c554cffdd9327e827a +Author: Andrew Morton +Date: Thu Apr 20 21:41:18 2006 +0100 + + [ARM] add_memory() build fix + + This is back again. Offending patch is x86_64-mm-hotadd-reserve.patch + + arch/arm/kernel/setup.c:435: error: conflicting types for 'add_memory' + include/linux/memory_hotplug.h:102: error: previous declaration of 'add_memory' was here + arch/arm/kernel/setup.c:435: error: conflicting types for 'add_memory' + include/linux/memory_hotplug.h:102: error: previous declaration of 'add_memory' was here + + Signed-off-by: Andrew Morton + Signed-off-by: Russell King + +commit 4b91ff4f425edb875c8e071d19a2417d23c578a4 +Author: Lennert Buytenhek +Date: Thu Apr 20 21:24:41 2006 +0100 + + [ARM] 3483/1: ixp23xx: update defconfig to 2.6.17-rc2 + + Patch from Lennert Buytenhek + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit d2f9caa1be9cf3c18f0bfe70ca2f55d295942a9b +Author: Lennert Buytenhek +Date: Thu Apr 20 21:24:40 2006 +0100 + + [ARM] 3482/1: ixp2000: update defconfig to 2.6.17-rc2 + + Patch from Lennert Buytenhek + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 67c6024cb4c04b4e9122a97e52cf903252020f9f +Author: Lennert Buytenhek +Date: Thu Apr 20 21:24:39 2006 +0100 + + [ARM] 3481/1: ep93xx: update defconfig to 2.6.17-rc2 + + Patch from Lennert Buytenhek + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 6cc1b6588686190325a960b5a598f4f952dbe23b +Author: Lennert Buytenhek +Date: Thu Apr 20 21:24:38 2006 +0100 + + [ARM] 3480/1: ixp4xx: fix irq2gpio array type + + Patch from Lennert Buytenhek + + The irq2gpio array was recently converted from an array of ints to an + array of chars (by patch 3368/1.) However, this array contains elements + that are -1, and on ARM, the char type is unsigned by default, so this + patch broke the GPIO check in ixp4xx_set_irq_type. + + Change the 'char' to be a 'signed char' to fix this. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Deepak Saxena + Signed-off-by: Russell King + +commit 0d9adec525b87d8ab7e64efeabffb5b3f293056e +Author: Jack Steiner +Date: Tue Apr 18 15:00:45 2006 -0500 + + [IA64] - Fix MAX_PXM_DOMAINS for systems with > 256 nodes + + Correctly size the PXM-related arrays for systems that have more than + 256 nodes. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit 308a878210cde6ab19df9f392c24db53ad6f56bf +Author: Russ Anderson +Date: Tue Apr 18 11:26:34 2006 -0500 + + [IA64] Remove unused variable in sn_sal.h + + cnodeid was being set but not used. The dead code was + left over from a previous version that grabbed a per node lock. + + Signed-off-by: Russ Anderson (rja@sgi.com) + Signed-off-by: Tony Luck + +commit cbf283c048798ada7e062892b21de85fb5727243 +Author: Jesper Juhl +Date: Thu Apr 20 10:11:09 2006 -0700 + + [IA64] Remove redundant NULL checks before kfree + + Signed-off-by: Jesper Juhl + Signed-off-by: Tony Luck + +commit c6180deb1da5d087341fb5a3c1a15e61492dcd6b +Author: Luck, Tony +Date: Tue Apr 18 21:14:22 2006 -0700 + + [IA64] wire up compat_sys_adjtimex() + + Signed-off-by: Andrew Morton + Signed-off-by: Tony Luck + +commit 0b699e36b2d43c1b4288992683e5913d347b5b78 +Author: Eric Dumazet +Date: Thu Apr 20 02:36:48 2006 +0200 + + [PATCH] x86_64: bring back __read_mostly support to linux-2.6.17-rc2 + + It seems latest kernel has a wrong/missing __read_mostly implementation + for x86_64 + + __read_mostly macro should be declared outside of #if CONFIG_X86_VSMP block + + Signed-off-by: Eric Dumazet + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 18bd057b1408cd110ed23281533430cfc2d52091 +Author: Andi Kleen +Date: Thu Apr 20 02:36:45 2006 +0200 + + [PATCH] i386/x86-64: Fix x87 information leak between processes + + AMD K7/K8 CPUs only save/restore the FOP/FIP/FDP x87 registers in FXSAVE + when an exception is pending. This means the value leak through + context switches and allow processes to observe some x87 instruction + state of other processes. + + This was actually documented by AMD, but nobody recognized it as + being different from Intel before. + + The fix first adds an optimization: instead of unconditionally + calling FNCLEX after each FXSAVE test if ES is pending and skip + it when not needed. Then do a x87 load from a kernel variable to + clear FOP/FIP/FDP. + + This means other processes always will only see a constant value + defined by the kernel in their FP state. + + I took some pain to make sure to chose a variable that's already + in L1 during context switch to make the overhead of this low. + + Also alternative() is used to patch away the new code on CPUs + who don't need it. + + Patch for both i386/x86-64. + + The problem was discovered originally by Jan Beulich. Richard + Brunner provided the basic code for the workarounds, with contribution + from Jan. + + This is CVE-2006-1056 + + Cc: richard.brunner@amd.com + Cc: jbeulich@novell.com + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 5dc5cf7dd2723430b6df3d91c5b22af49e063622 +Author: Ingo Molnar +Date: Thu Apr 20 02:43:23 2006 -0700 + + [PATCH] md: locking fix + + - fix mddev_lock() usage bugs in md_attr_show() and md_attr_store(). + [they did not anticipate the possibility of getting a signal] + + - remove mddev_lock_uninterruptible() [unused] + + Signed-off-by: Ingo Molnar + Acked-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 72b38d436e4cd18185de11f4b48a6e62eb104644 +Author: Adrian Bunk +Date: Thu Apr 20 02:43:23 2006 -0700 + + [PATCH] memory_hotplug.h cleanup + + We don't have to #if guard prototypes. + + This also fixes a bug observed by Randy Dunlap due to a misspelled + option in the #if. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 46539264df5b1fcdc2cad585b032a86661fe079d +Author: Adrian Bunk +Date: Thu Apr 20 02:43:22 2006 -0700 + + [PATCH] make the OSS SOUND_VIA82CXXX option available again + + There was a report of a regression in the ALSA driver for the same + hardware. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aafda4e0d0424180023e16f43785f9344ea35719 +Author: Adrian Bunk +Date: Thu Apr 20 02:43:21 2006 -0700 + + [PATCH] update OBSOLETE_OSS_DRIVER schedule and dependencies + + Update the schedule for the removal of drivers depending on + OBSOLETE_OSS_DRIVER as follows: + + - adjust OBSOLETE_OSS_DRIVER dependencie + - from the release of 2.6.16 till the release of 2.6.17: + approx. two months for users to report problems with the ALSA + drivers for the same hardware + - after the release of 2.6.17 (and before 2.6.18): + remove the subset of drivers marked at OBSOLETE_OSS_DRIVER without + known regressions in the ALSA drivers for the same hardware + + Additionally, correct some OBSOLETE_OSS_DRIVER dependencies. + A rationale of the changes is in + http://lkml.org/lkml/2006/1/28/135 + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bf104e641c5a6567cc00d4ae9d8510cef9f63b18 +Author: Arnaud MAZIN +Date: Thu Apr 20 02:43:20 2006 -0700 + + [PATCH] sonypi: correct detection of new ICH7-based laptops + + Add a test to detect the ICH7 based Core Duo SONY laptops (such as the SZ1) + as type3 models. + + Signed-off-by: Arnaud MAZIN < arnaud.mazin@gmail.com> + Acked-by: Stelian Pop + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 962f831f67301265dcd2cd96408d07d95d556aed +Author: Jon Masters +Date: Thu Apr 20 02:43:20 2006 -0700 + + [PATCH] sound: fix hang in mpu401_uart.c + + This fixes a hang in mpu401_uart.c that can occur when the mpu401 interface + is non-existent or otherwise doesn't respond to commands but we issue IO + anyway. snd_mpu401_uart_cmd now returns an error code that is passed up + the stack so that an open() will fail immediately in such cases. + + Eventually discovered after wine/cxoffice would constantly cause hard + lockups on my desktop immediately after loading (emulating Windows too + well). Turned out that I'd recently moved my sound cards around and using + /dev/sequencer now talks to a sound card with a broken MPU. + + This second version changes -EFAULT to -EIO and frees open resources on + error too. Test booted and seems to work ok. + + Signed-off-by: Jon Masters + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c79cfbaccac0ef81ab3e796da1582a83dcef0ff9 +Author: Jean Delvare +Date: Thu Apr 20 02:43:18 2006 -0700 + + [PATCH] i2c-i801: Fix resume when PEC is used + + Fix for bug #6395: + + Fail to resume on Tecra M2 with ADM1032 and Intel 82801DBM + + The BIOS of the Tecra M2 doesn't like it when it has to reboot or resume + after the i2c-i801 driver has left the SMBus in PEC mode. The most simple + fix is to clear the PEC bit after after every transaction. That's what + this driver was doing up to 2.6.15 (inclusive). + + Thanks to Daniele Gaffuri for the very good report. + + Signed-off-by: Jean Delvare + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7daa0c4f51897d5d956a62a2bac438e3b58d85dc +Author: Johannes Goecke +Date: Thu Apr 20 02:43:17 2006 -0700 + + [PATCH] MSI-K8T-Neo2-Fir OnboardSound and additional Soundcard + + On the MSI-K8T-NEO2 FIR ( Athlon-64, Socket 939 with VIA-K8T800- Chipset + and onboard Sound,... ) the BIOS lets you choose "DISABLED" or "AUTO" for + the On-Board Sound Device. + + If you add another PCI-Sound-Card the BIOS disables the on-board device. + + So far I have a Quirk, that does set the correspondent BIT in the + PCI-registers to enable the soundcard. + + But how to ensure that the code is executed ONLY on excactly this kind of + boards (not any other with similar Chipset)? + + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Cc: Lee Revell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 68876baf5e713ef711b6e19a279385e14c9921e3 +Author: Chris Zankel +Date: Thu Apr 20 02:43:15 2006 -0700 + + [PATCH] xtensa: Fix TIOCGICOUNT macro + + Remove the dependence on the async_icount structure in the TIOCGICOUNT + macro for Xtensa. (Thanks Russell and Adrian for pointing this out) + + Signed-off-by: Chris Zankel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0324680064fd89d6ad52e89a4ccf16dec3ea3caa +Author: Thayumanavar Sachithanantham +Date: Thu Apr 20 02:43:15 2006 -0700 + + [PATCH] cs5535_gpio.c: call cdev_del() during module_exit to unmap kobject references and other cleanups + + During module unloading, cdev_del() must be called to unmap cdev related + kobject references and other cleanups(such as inode->i_cdev being set to + NULL) which prevents the OOPS upon subsequent loading, usage and unloading + of modules(as seen in the mail thread + http://marc.theaimsgroup.com/?l=linux-kernel&m=114533640609018&w=2). + + Also, remove unneeded test of gpio_base. + + Signed-off-by: Thayumanavar Sachithanantham + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c16c556e0e460a4e8c3f97ea0d50a1217f7fa449 +Author: Darren Jenkins +Date: Thu Apr 20 02:43:13 2006 -0700 + + [PATCH] fix section mismatch in pm2fb.o + + WARNING: drivers/video/pm2fb.o - Section mismatch: reference + to .init.data: from .text after 'pm2fb_set_par' (at offset 0xd5d) + WARNING: drivers/video/pm2fb.o - Section mismatch: reference + to .init.data: from .text after 'pm2fb_set_par' (at offset 0xd82) + + They are caused because pm2fb_set_par() uses lowhsync and lowvsync which + are marked __devinitdata. + + Signed-off-by: Darren Jenkins + Signed-off-by: Adrian Bunk + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d472be37896b1c41b50f3da124f8b7718ba7797 +Author: Christoph Lameter +Date: Thu Apr 20 02:43:12 2006 -0700 + + [PATCH] Remove cond_resched in gather_stats() + + gather_stats() is called with a spinlock held from check_pte_range. We + cannot reschedule with a lock held. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4409ebe9afabe7db77eaaae9eb3eb05b8315ce4a +Author: Corey Minyard +Date: Thu Apr 20 02:43:12 2006 -0700 + + [PATCH] IPMI maintainer + + Add myself as the IPMI maintainer. + + Signed-off-by: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7522a8423bed9931cbac5502b9c0657bde2700ea +Author: Ananth N Mavinakayanahalli +Date: Thu Apr 20 02:43:11 2006 -0700 + + [PATCH] kprobes: NULL out non-relevant fields in struct kretprobe + + In cases where a struct kretprobe's *_handler fields are non-NULL, it is + possible to cause a system crash, due to the possibility of calls ending up + in zombie functions. Documentation clearly states that unused *_handlers + should be set to NULL, but kprobe users sometimes fail to do so. + + Fix it by setting the non-relevant fields of the struct kretprobe to NULL. + + Signed-off-by: Ananth N Mavinakayanahalli + Acked-by: Jim Keniston + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4f73247f0e53be1bd4aa519476e6261a8e4a64ab +Author: Adrian Bunk +Date: Thu Apr 20 15:45:22 2006 +0200 + + [PATCH] block/elevator.c: remove unused exports + + This patch removes the following unused EXPORT_SYMBOL's: + - elv_requeue_request + - elv_completed_request + + They are only used by the block core, hence they need not be exported. + + Signed-off-by: Adrian Bunk + Signed-off-by: Jens Axboe + +commit 82aa5d6183667aa2a5f3c61e390934b0273d2ad7 +Author: Jens Axboe +Date: Thu Apr 20 13:05:48 2006 +0200 + + [PATCH] splice: fix smaller sized splice reads + + Signed-off-by: Jens Axboe + +commit a0aa7f68afeeb92f6274b395177c20e617c8ed2d +Author: Jens Axboe +Date: Thu Apr 20 13:05:33 2006 +0200 + + [PATCH] Don't inherit ->splice_pipe across forks + + It's really task private, so clear that field on fork after copying + task structure. + + Signed-off-by: Jens Axboe + +commit 7daac4902053045450fa29db42aba19a4581f850 +Author: Coywolf Qi Hunt +Date: Wed Apr 19 10:14:49 2006 +0200 + + [patch] cleanup: use blk_queue_stopped + + This cleanup the source to use blk_queue_stopped. + + Signed-off-by: Coywolf Qi Hunt + Signed-off-by: Jens Axboe + +commit 73af994c7d58dd513922dc9d5cd76b124ec02b1b +Author: Valdis Kletnieks +Date: Wed Apr 19 09:23:09 2006 +0200 + + [PATCH] Document online io scheduler switching + + We added the ability to change a block device's IO elevator scheduler both + at kernel boot and on-the-fly, but we only documented the elevator= boot + parameter. Add a quick how-to on doing it on the fly. + + Signed-off-by: Valdis Kletnieks + Signed-off-by: Andrew Morton + Signed-off-by: Jens Axboe + +commit 18bc89aa25fbfcf467f4ce67f76c7b9893404cac +Author: Jayachandran C +Date: Thu Apr 20 00:14:49 2006 -0700 + + [EBTABLES]: Clean up vmalloc usage in net/bridge/netfilter/ebtables.c + + Make all the vmalloc calls in net/bridge/netfilter/ebtables.c follow + the standard convention. Remove unnecessary casts, and use '*object' + instead of 'type'. + + Signed-off-by: Jayachandran C. + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit dc6de33674608f978ec29f5c2f7e3af458c06f78 +Author: David S. Miller +Date: Thu Apr 20 00:10:50 2006 -0700 + + [NET]: Add skb->truesize assertion checking. + + Add some sanity checking. truesize should be at least sizeof(struct + sk_buff) plus the current packet length. If not, then truesize is + seriously mangled and deserves a kernel log message. + + Currently we'll do the check for release of stream socket buffers. + + But we can add checks to more spots over time. + + Incorporating ideas from Herbert Xu. + + Signed-off-by: David S. Miller + +commit b60b49ea6a3e1f8dcaf4148dad0daab61ab766d2 +Author: Herbert Xu +Date: Wed Apr 19 21:35:00 2006 -0700 + + [TCP]: Account skb overhead in tcp_fragment + + Make sure that we get the full sizeof(struct sk_buff) + plus the data size accounted for in skb->truesize. + + This will create invariants that will allow adding + assertion checks on skb->truesize. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit c42bcefb5891c362b72e47070fbf7973e4eb8e1e +Author: Denis Vlasenko +Date: Tue Apr 18 21:09:22 2006 -0700 + + [SCSI] aic7xxx: ahc_pci_write_config() fix + + Fix ahc_pci_write_config's (wrong order of arguments). + + Signed-off-by: Denis Vlasenko + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 52988410587db6b4992a8c1e6193777e27f37dc7 +Author: Andrew Morton +Date: Tue Apr 18 21:09:10 2006 -0700 + + [SCSI] megaraid: unused variable + + drivers/scsi/megaraid.c: In function `mega_internal_command': + drivers/scsi/megaraid.c:4474: warning: unused variable `flags' + + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 77347ff7554b317a0120cb774b3bd6258a2c4bb4 +Author: Zach Brown +Date: Tue Apr 18 21:09:22 2006 -0700 + + [SCSI] qla2xxx: only free_irq() after request_irq() succeeds + + If qla2x00_probe_one() fails before calling request_irq() but gets to + qla2x00_free_device() then it will mistakenly try to free an irq it didn't + request. It's chosing to free based on ha->pdev->irq which is always set. + + host->irq is set after request_irq() succeeds so let's use that to decide + to free or not. + + This was observed and tested when a silly set of circumstances lead to + firmware loading failing on a 2100. + + Signed-off-by: Zach Brown + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 1a34456bbbdaa939ffa567d15a0797c269f901b7 +Author: Eric Sesterhenn +Date: Tue Apr 18 21:09:20 2006 -0700 + + [SCSI] Overrun in drivers/scsi/sim710.c + + This fixes coverity bug id #480. Since id_array is declared as + id_array[MAX_SLOTS], the check for i>MAX_SLOTS is obviously false. + + Signed-off-by: Eric Sesterhenn + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 36ab26185c0b6060203829bce32eaeab0fa781ae +Author: James Smart +Date: Sat Apr 15 11:53:24 2006 -0400 + + [SCSI] lpfc 8.1.5 : Change version number to 8.1.5 + + Change version number to 8.1.5 + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 071fbd3de93fdbe059d492e6a0b691e84cf7be68 +Author: James Smart +Date: Sat Apr 15 11:53:20 2006 -0400 + + [SCSI] lpfc 8.1.5 : Misc small fixes + + Contains the following misc fixes: + - Fix build warnings + - Race condition in lpfc_workq_post_event() could corrupt phba->work_list. + - nlp_sid was not being initialized properly + - Fix some RSCN handling during the re-discovery after Link Up event. + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 10d4e957e027b96adfed05c3af1d3fd782a242fe +Author: James Smart +Date: Sat Apr 15 11:53:15 2006 -0400 + + [SCSI] lpfc 8.1.5 : Additional fixes to LOGO, PLOGI, and RSCN processing + + Additional fixes to LOGO, PLOGI, and RSCN processing + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit defbcf11ab56e09965b2135d70f44a82a5ab5fc3 +Author: James Smart +Date: Sun Apr 16 22:26:50 2006 -0400 + + [SCSI] lpfc 8.1.5 : Fix cleanup code in the lpfc_pci_probe_one() error code path + + Fix cleanup code in the lpfc_pci_probe_one() error code path. + + This changes the original patch by: + - hardsetting the return value from lpfc_pci_probe_one() to + -ENODEV (negative value) if we fail attach + - removes the checks from lpfc_pci_remove_one() validating the + host and phba pointers as it's no longer needed. + + Signed-off-by: James Bottomley + +commit 82d9a2a2900b17223117dc10b56503acc678c337 +Author: James Smart +Date: Sat Apr 15 11:53:05 2006 -0400 + + [SCSI] lpfc 8.1.5 : Fixed FC protocol violation in handling of PRLO. + + Fixed FC protocol violation in handling of PRLO. + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 4b0b91d4611aba058c16440f9841906853741330 +Author: James Smart +Date: Sat Apr 15 11:53:00 2006 -0400 + + [SCSI] lpfc 8.1.5 : Use asynchronous ABTS completion to speed up abort completions + + Use asynchronous ABTS completion to speed up abort completions + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit a0f9b48dc0954c48a6b0342d9697886be6b0e4d3 +Author: James Smart +Date: Sat Apr 15 11:52:56 2006 -0400 + + [SCSI] lpfc 8.1.5 : Fix Discovery processing for NPorts that hit nodev_tmo during discovery + + Fix Discovery processing for NPorts that hit nodev_tmo during discovery + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 5236467ae72ecd71baa162b7734c57bfe8fa0ff9 +Author: Adrian Bunk +Date: Fri Mar 10 23:24:55 2006 +0100 + + [SCSI] megaraid/megaraid_mm.c: fix a NULL pointer dereference + + This patch fixes a NULL pointer dereference spotted by the Coverity + checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: James Bottomley + +commit 5a7b46b369419493bab4de67b1526e9f76b22a7f +Author: OGAWA Hirofumi +Date: Thu Apr 20 06:41:39 2006 +0900 + + [PATCH] Add more prevent_tail_call() + + Those also break userland regs like following. + + 00000000 : + 0: 0f b7 44 24 0c movzwl 0xc(%esp),%eax + 5: 83 ca ff or $0xffffffff,%edx + 8: 0f b7 4c 24 08 movzwl 0x8(%esp),%ecx + d: 66 83 f8 ff cmp $0xffffffff,%ax + 11: 0f 44 c2 cmove %edx,%eax + 14: 66 83 f9 ff cmp $0xffffffff,%cx + 18: 0f 45 d1 cmovne %ecx,%edx + 1b: 89 44 24 0c mov %eax,0xc(%esp) + 1f: 89 54 24 08 mov %edx,0x8(%esp) + 23: e9 fc ff ff ff jmp 24 + + where the tailcall at the end overwrites the incoming stack-frame. + + Signed-off-by: OGAWA Hirofumi + [ I would _really_ like to have a way to tell gcc about calling + conventions. The "prevent_tail_call()" macro is pretty ugly ] + Signed-off-by: Linus Torvalds + +commit d47f3640fe2ac4da8a8e713a549e6eaf23ac2084 +Author: Johannes Berg +Date: Wed Apr 19 15:42:28 2006 -0700 + + [SUNGEM]: Marvell PHY suspend. + + In a short discussion with Benjamin Herrenschmidt he mentioned + that Marvell PHYs are powered down the same way as the other + ones we currently handle. Thus actually do that, hopefully + saving some power during suspend. + + Signed-off-by: Johannes Berg + Acked-by: Benjamin Herrenschmidt + Signed-off-by: David S. Miller + +commit 5185db09f46ed64d520d09db6e93852e44106628 +Author: David S. Miller +Date: Wed Apr 19 15:37:13 2006 -0700 + + [LLC]: Use pskb_trim_rcsum() in llc_fixup_skb(). + + Kernel Bugzilla #6409 + + If we use plain skb_trim(), that's wrong, because if + the SKB is cloned, and it can be because we unshared + it in the caller, we have to allow reallocation. The + pskb_trim*() family of routines is therefore the most + appropriate here. + + Signed-off-by: David S. Miller + +commit 3672558c6180ca28a7aa46765702467a37e58fc5 +Author: Hua Zhong +Date: Wed Apr 19 15:25:02 2006 -0700 + + [NET]: sockfd_lookup_light() returns random error for -EBADFD + + This applies to 2.6.17-rc2. + + There is a missing initialization of err in sockfd_lookup_light() that + could return random error for an invalid file handle. + + Signed-off-by: Hua Zhong + Signed-off-by: David S. Miller + +commit 2784f40e2774b61d68d232bcf92a9484e99f22b8 +Author: David S. Miller +Date: Wed Apr 19 15:00:01 2006 -0700 + + [SPARC]: __NR_sys_splice --> __NR_splice + + Signed-off-by: David S. Miller + +commit 848ef8555296f25d9226d3bc43ce4028835ed633 +Author: Jean Tourrilhes +Date: Fri Apr 14 10:47:26 2006 -0700 + + [PATCH] wext: Fix RtNetlink ENCODE security permissions + + I've just realised that the RtNetlink code does not check the + permission for SIOCGIWENCODE and SIOCGIWENCODEEXT, which means that + any user can read the encryption keys. The fix is trivial and should + go in 2.6.17 alonside the two other patch I sent you last week. + + Signed-off-by: Jean Tourrilhes + Signed-off-by: John W. Linville + +commit a392149ee14d1631d8632060c1fc3082729f83c8 +Author: Erik Mouw +Date: Thu Apr 13 15:02:27 2006 +0200 + + [PATCH] bcm43xx: iw_priv_args names should be <16 characters + + The room for the names in bcm43xx_priv_wx_args[] are IFNAMSIZ long and + IFNAMSIZ is defined as 16, so the names in bcm43xx_priv_wx_args should + be 15 characters (16 including the trailing \0). This patch fixes that + for the "set_shortpreambl", "get_shortpreambl", "set_swencryption", and + "get_swencryption" private calls. Patch is against 2.6.17-rc1. + + Signed-off-by: Erik Mouw + Signed-off-by: John W. Linville + +commit b35d649cb2110b4e782a8a7e9b625432c863cade +Author: Michael Buesch +Date: Thu Apr 13 02:32:58 2006 +0200 + + [PATCH] bcm43xx: sysfs code cleanup + + This cleans up the bcm43xx sysfs code and makes it compliant + with the unwritten sysfs rules (at least I hope so). + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 8829d55e6b4957770de3f716bafab65ca3680110 +Author: Michael Buesch +Date: Thu Apr 13 02:30:26 2006 +0200 + + [PATCH] bcm43xx: fix pctl slowclock limit calculation + + This fixes coverity bug: + http://marc.theaimsgroup.com/?l=linux-netdev&m=114417628413880&w=2 + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 2230daa0fd50bf82303fd8da96b088310851d803 +Author: Adrian Bunk +Date: Thu Apr 13 02:27:49 2006 +0200 + + [PATCH] bcm43xx: fix dyn tssi2dbm memleak + + This patch fixes a memory leak spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 93fef7dda4002ac8b21a4a2090ca475dc40cc384 +Author: Randy Dunlap +Date: Tue Apr 11 14:32:53 2006 -0700 + + [PATCH] bcm43xx: fix config menu alignment + + Use "depends on" to make all bcm43xx driver options be listed + at the same level. + + Signed-off-by: Randy Dunlap + Signed-off-by: John W. Linville + +commit 4c6f749f74323518825476e3e5ca3b4f03c07873 +Author: Randy Dunlap +Date: Tue Apr 11 14:31:56 2006 -0700 + + [PATCH] bcm43xx wireless: fix printk format warnings + + Fix printk format warnings: + drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:456: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘size_t’ + drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:460: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘size_t’ + drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:476: warning: format ‘%u’ expects type ‘unsigned int’, but argument 3 has type ‘size_t’ + drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:480: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘size_t’ + drivers/net/wireless/bcm43xx/bcm43xx_dma.c:200: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘dma_addr_t’ + drivers/net/wireless/bcm43xx/bcm43xx_dma.c:311: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘dma_addr_t’ + drivers/net/wireless/bcm43xx/bcm43xx_dma.c:733: warning: format ‘%08x’ expects type ‘unsigned int’, but argument 2 has type ‘dma_addr_t’ + + Signed-off-by: Randy Dunlap + Signed-off-by: John W. Linville + +commit 6788a07f8faeb373967cd97b79fb3abec8fccb90 +Author: Johannes Berg +Date: Thu Apr 13 11:41:28 2006 +0200 + + [PATCH] softmac: report when scanning has finished + + Make softmac report a scan event when scanning has finished, that way + userspace can wait for the event to happen instead of polling for the + results. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit feeeaa87e8e6702f57ed3be7904ffd87cc044b82 +Author: Johannes Berg +Date: Thu Apr 13 02:42:42 2006 +0200 + + [PATCH] softmac: fix event sending + + Softmac is sending custom events to userspace already, but it + should _really_ be sending the right WEXT events instead. This + patch fixes that. + + Signed-off-by: Dan Williams + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit 68970ce6ac5ed01b1d10047fd4daba5b40786694 +Author: johannes@sipsolutions.net +Date: Tue Apr 11 10:58:08 2006 +0200 + + [PATCH] softmac: handle iw_mode properly + + Below patch allows using iw_mode auto with softmac. bcm43xx forces managed + so this bug wasn't noticed earlier, but this was one of the problems why + zd1211 didn't work earlier. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit fc242746ea8d87b3032c7a1c9b8eb71c149488a8 +Author: johannes@sipsolutions.net +Date: Tue Apr 11 10:58:07 2006 +0200 + + [PATCH] softmac: dont send out packets while scanning + + Seems we forgot to stop the queue while scanning. Better do that so we + don't transmit packets all the time during background scanning. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit ba2f8c18756b4a99c8cd3ab6526b2ed7a8f18ead +Author: johannes@sipsolutions.net +Date: Tue Apr 11 10:58:06 2006 +0200 + + [PATCH] softmac: return -EAGAIN from getscan while scanning + + Below patch was developed after discussion with Daniel Drake who + mentioned to me that wireless tools expect an EAGAIN return from getscan + so that they can wait for the scan to finish before printing out the + results. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit b79367a5ea28afe2ac659593970c15c9513f1d49 +Author: Michael Buesch +Date: Mon Apr 10 02:39:54 2006 +0200 + + [PATCH] bcm43xx: set trans_start on TX to prevent bogus timeouts + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit a208c4e1ea7a769042be071ae30ba2ad4c844954 +Author: Pavel Roskin +Date: Fri Apr 7 04:10:26 2006 -0400 + + [PATCH] orinoco: fix truncating commsquality RID with the latest Symbol firmware + + Symbol firmware F3.91-71 has an additional word in the commsquality RID. + Extend the receiving buffer by one word to accomodate it. + + Signed-off-by: Pavel Roskin + Signed-off-by: John W. Linville + +commit 9b0b4d8ae82cadd059d01ab93babcaa5e2054b93 +Author: Michael Buesch +Date: Fri Apr 7 01:42:55 2006 +0200 + + [PATCH] softmac: fix spinlock recursion on reassoc + + This fixes a spinlock recursion on receiving a reassoc request. + + On reassoc, the softmac calls back into the driver. This results in a + driver lock recursion. This schedules the assoc workqueue, instead + of calling it directly. + + Probably, we should defer the _whole_ management frame processing + to a tasklet or workqueue, because it does several callbacks into the driver. + That is dangerous. + + This fix should go into linus's tree, before 2.6.17 is released, because it + is remote exploitable (DoS by crash). + + Signed-off-by: John W. Linville + +commit c1783454a31e05b94774951b0b5d1eb9075ebfb4 +Author: Jean Tourrilhes +Date: Tue Apr 4 15:59:46 2006 -0700 + + [PATCH] Revert NET_RADIO Kconfig title change + + 2.6.17-rc1 changed the title for the entry CONFIG_NET_RADIO. I + personally disagree with this change and want it reverted. Patch for + 2.6.17-rc1. + Rationale : WIRELESS_EXT is an invisible option. Therefore, + the only way for a user to enable it is via NET_RADIO. Some users need + to do that for out-of-tree drivers. Therefore it should be mentionned + in the title of the option. + Rationale2 : the option just below is called "Wireless + Extension API over RtNetlink". Some users may confuse this option for + the main "Wireless Extension" option. Therefore reverting this change + help disambiguate the relation between those two options. + + Signed-off-by: Jean Tourrilhes + Signed-off-by: John W. Linville + +commit a417016d1a07e6df0621dbb2926da82642eca823 +Author: Jean Tourrilhes +Date: Tue Apr 4 15:53:43 2006 -0700 + + [PATCH] wext: Fix IWENCODEEXT security permissions + + Check the permissions when user-space try to read the + encryption parameters via SIOCGIWENCODEEXT. This is trivial and + probably should go in 2.6.17... + Bug was found by Brian Eaton , thanks ! + + Signed-off-by: Jean Tourrilhes + Signed-off-by: John W. Linville + +commit 3a1af6ffe4941497071125d3a8bb3e1feee45df1 +Author: Dan Williams +Date: Fri Mar 31 15:13:31 2006 -0500 + + [PATCH] wireless/atmel: send WEXT scan completion events + + Send scan completion events to user space when a scan completes. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 6fcdf565ffb8c661749372115d28efdbe525aeba +Author: Dan Williams +Date: Fri Mar 31 15:08:46 2006 -0500 + + [PATCH] wireless/airo: clean up WEXT association and scan events + + Airo firmware versions >= 5.30.17 send re-association events to the + driver that are currently unrecognized, causing spurious disassociation + events to be sent to user space. Loss of sync due to scan requests also + results in disassociation events sent to user space. This patch traps + those two events; suppressing sync-loss on scan, and sending the correct + association event on re-association notifications. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit e4b5fae8b3fb4134deaa6f66c60255c831e2d7e8 +Author: Randy Dunlap +Date: Mon Mar 27 14:53:41 2006 -0800 + + [PATCH] softmac uses Wiress Ext. + + softmac uses wireless extensions, so let it SELECT that config option; + WARNING: "wireless_send_event" [net/ieee80211/softmac/ieee80211softmac.ko] undefined! + + Signed-off-by: Randy Dunlap + Signed-off-by: John W. Linville + +commit 415dcd95b25b59631656f559570d1a973bf691a9 +Author: Adrian Bunk +Date: Wed Apr 19 00:15:35 2006 +0200 + + IB/mthca: make a function static + + This patch makes the needlessly global mthca_update_rate() static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Roland Dreier + +commit 5494c22ba293a37534591d793f73e445a66196b5 +Author: Roland Dreier +Date: Wed Apr 19 11:40:12 2006 -0700 + + IB/ipath: Fix whitespace + + Signed-off-by: Roland Dreier + +commit ac2ae4c9770de9450a8e881082a54bbb6f09534e +Author: Roland Dreier +Date: Wed Apr 19 11:40:12 2006 -0700 + + IB/ipath: Make more names static + + Make symbols that are only used in a single source file static. + + Signed-off-by: Roland Dreier + +commit 64cb9c6aff273b1cd449e773c937378d68233f8b +Author: Hal Rosenstock +Date: Wed Apr 12 21:29:10 2006 -0400 + + IB/mad: Fix RMPP version check during agent registration + + Only check that RMPP version is not specified when MAD class does not + support RMPP. Just because a class is allowed to use RMPP doesn't + mean that rmpp_version needs to be set for the MAD agent to + register. Checking this was a recent change which was too pedantic. + + Signed-off-by: Hal Rosenstock + Signed-off-by: Roland Dreier + +commit f80887d0b9e1af481dc4a30fc145dfed24ddfd59 +Author: Roland Dreier +Date: Wed Apr 19 11:40:10 2006 -0700 + + IB/srp: Remove request from list when SCSI abort succeeds + + If a SCSI abort succeeds, then the aborted request should to be + removed from the list of pending requests. This fixes list corruption + after an abort occurs. + + Signed-off-by: Roland Dreier + +commit a5f9145bc9c340bda743ad51e09bdea60fa3ddfa +Author: Eric Sesterhenn +Date: Wed Apr 19 13:06:49 2006 -0400 + + SUNRPC: Dead code in net/sunrpc/auth_gss/auth_gss.c + + Hi, + + the coverity checker spotted that cred is always NULL + when we jump to out_err ( there is just one case, when + we fail to allocate the memory for cred ) + This is Coverity ID #79 + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Trond Myklebust + +commit 7451c4f0ee53e36fd74168af8df75b28fd04a2aa +Author: Carsten Otte +Date: Wed Apr 19 13:06:37 2006 -0400 + + NFS: remove needless check in nfs_opendir() + + Local variable res was initialized to 0 - no check needed here. + + Signed-off-by: Carsten Otte + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Trond Myklebust + +commit b9d9506d944865876e67281a4e4269d823ce5381 +Author: John Hawkes +Date: Wed Apr 19 13:06:20 2006 -0400 + + NFS: nfs_show_stats; for_each_possible_cpu(), not NR_CPUS + + Convert a for-loop that explicitly references "NR_CPUS" into the + potentially more efficient for_each_possible_cpu() construct. + + Signed-off-by: John Hawkes + Signed-off-by: Andrew Morton + Signed-off-by: Trond Myklebust + +commit ec535ce154f2eaad3d97f2f20a76a6d8bdac33e5 +Author: Adrian Bunk +Date: Tue Apr 18 13:21:50 2006 -0400 + + NFS: make 2 functions static + + Signed-off-by: Adrian Bunk + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Trond Myklebust + +commit e99170ff3b799a9fd43d538932a9231fac1de9d4 +Author: Trond Myklebust +Date: Tue Apr 18 13:21:42 2006 -0400 + + NFS,SUNRPC: Fix compiler warnings if CONFIG_PROC_FS & CONFIG_SYSCTL are unset + + Signed-off-by: Trond Myklebust + +commit 7866babad542bb5e1dc95deb5800b577abef58dd +Author: Adrian Bunk +Date: Tue Apr 18 13:14:13 2006 -0400 + + NFS: fix PROC_FS=n compile error + + fs/built-in.o: In function `nfs_show_stats':inode.c:(.text+0x15481a): undefined reference to `rpc_print_iostats' + net/built-in.o: In function `rpc_destroy_client': undefined reference to `rpc_free_iostats' + net/built-in.o: In function `rpc_clone_client': undefined reference to `rpc_alloc_iostats' + net/built-in.o: In function `rpc_new_client': undefined reference to `rpc_alloc_iostats' + net/built-in.o: In function `xprt_release': undefined reference to `rpc_count_iostats' + make: *** [.tmp_vmlinux1] Error 1 + + Signed-off-by: Adrian Bunk + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Trond Myklebust + +commit 95cf959b245832ad49bb333bf88f9805244b225d +Author: Trond Myklebust +Date: Tue Apr 18 13:14:06 2006 -0400 + + VFS: Fix another open intent Oops + + If the call to nfs_intent_set_file() fails to open a file in + nfs4_proc_create(), we should return an error. + + Signed-off-by: Trond Myklebust + +commit d4a30e7e66c004da26dfe5229af7c10fe9853a7a +Author: J. Bruce Fields +Date: Tue Apr 18 13:14:02 2006 -0400 + + RPCSEC_GSS: fix leak in krb5 code caused by superfluous kmalloc + + I was sloppy when generating a previous patch; I modified the callers of + krb5_make_checksum() to allocate memory for the buffer where the result is + returned, then forgot to modify krb5_make_checksum to stop allocating that + memory itself. The result is a per-packet memory leak. This fixes the + problem by removing the now-superfluous kmalloc(). + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 6a2a88668e90cd2459d0493e3e3ff17c3557febc +Author: Antonino A. Daplas +Date: Tue Apr 18 22:22:12 2006 -0700 + + [PATCH] fbdev: Fix return error of fb_write + + Fix return code of fb_write(): + + If at least 1 byte was transferred to the device, return number of bytes, + otherwise: + + - return -EFBIG - if file offset is past the maximum allowable offset or + size is greater than framebuffer length + - return -ENOSPC - if size is greater than framebuffer length - offset + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a61bdaad6c696e850d8fa412f1f201cbca51ad30 +Author: Randy Dunlap +Date: Tue Apr 18 22:22:11 2006 -0700 + + [PATCH] savagefb: fix section mismatch warnings + + Fix modpost section mismatch warnings in savagefb driver: + + WARNING: drivers/video/savage/savagefb.o - Section mismatch: reference to .init.text: from .exit.text after 'savagefb_remove' (at offset 0x66) + WARNING: drivers/video/savage/savagefb.o - Section mismatch: reference to .init.text: from .exit.text after 'savagefb_remove' (at offset 0x6e) + WARNING: drivers/video/savage/savagefb.o - Section mismatch: reference to .init.text: from .text.savagefb_resume after 'savagefb_resume' (at offset 0x70) + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 246846fc18ba43c4f31d6e5b208fe6b045d9f7b1 +Author: Randy Dunlap +Date: Tue Apr 18 22:22:10 2006 -0700 + + [PATCH] radeonfb section mismatches + + Marking radeon_pci_register() as __devinit clears up all section + mismatch warnings that are caused by radeon_pci_register() calling + various __devinit function. Is there some reason not to do this? + + WARNING: drivers/video/aty/radeonfb.o - Section mismatch: reference to .init.text: from .text.radeonfb_pci_register after 'radeonfb_pci_register' (at offset 0x628) + WARNING: drivers/video/aty/radeonfb.o - Section mismatch: reference to .init.text: from .text.radeonfb_pci_register after 'radeonfb_pci_register' (at offset 0x6b5) + WARNING: drivers/video/aty/radeonfb.o - Section mismatch: reference to .init.text: from .text.radeonfb_pci_register after 'radeonfb_pci_register' (at offset 0x6bd) + WARNING: drivers/video/aty/radeonfb.o - Section mismatch: reference to .init.text:radeon_probe_screens from .text.radeonfb_pci_register after 'radeonfb_pci_register' (at offset 0x7d6) + WARNING: drivers/video/aty/radeonfb.o - Section mismatch: reference to .init.text:radeon_check_modes from .text.radeonfb_pci_register after 'radeonfb_pci_register' (at offset 0x7e5) + + Signed-off-by: Randy Dunlap + Cc: "Antonino A. Daplas" + Acked-by: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3e42f0b19e94b3e84043088b5367dd0f3c487921 +Author: Jean Delvare +Date: Tue Apr 18 22:22:09 2006 -0700 + + [PATCH] fb: Fix section mismatch in savagefb + + Fix the following section mismatch: + + WARNING: drivers/video/savage/savagefb.o - Section mismatch: reference to .init.data: from .text.savagefb_probe after 'savagefb_probe' (at offset 0x5e2) + + Signed-off-by: Jean Delvare + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0d8a95efd878920e7f791d5bcfb9b70f107aadda +Author: KAI.HSU +Date: Tue Apr 18 22:22:08 2006 -0700 + + [PATCH] alim15x3: ULI M-1573 south Bridge support + + From http://bugzilla.kernel.org/show_bug.cgi?id=6358 + + The alim15x3.c havn't been update for 3 years. Recently when we use this + "ULI M1573" south bridge chip found that can't mount CDROM(VCD) smoothly, + must waiting for a long time. After I check the "ULI M1573" south bridge + datasheet, I found the reason. The reason is the "ULI M1573" version in + the Linux is "0xC7" not "0xC4" anymore So I was modified the source than it + was successed. + + Cc: Bartlomiej Zolnierkiewicz + Acked-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d3a7b202995421631f486313aacf9ab2ad48b2c8 +Author: Adrian Bunk +Date: Tue Apr 18 22:22:07 2006 -0700 + + [PATCH] remove the obsolete IDEPCI_FLAG_FORCE_PDC + + Noted by Sergei Shtylylov + + Signed-off-by: Adrian Bunk + Acked-by: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6e89280184e4990f5ea80d2504af89b6099523c4 +Author: Anatoli Antonovitch +Date: Tue Apr 18 22:22:05 2006 -0700 + + [PATCH] ide: ATI SB600 IDE support + + Add support for the IDE device on ATI SB600 + + Signed-off-by: Felix Kuehling + Acked-by: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Acked-by: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 07fab8da808d0702778da50e5b435e6ba471c903 +Author: Prasanna S Panchamukhi +Date: Tue Apr 18 22:22:03 2006 -0700 + + [PATCH] Switch Kprobes inline functions to __kprobes for sparc64 + + Andrew Morton pointed out that compiler might not inline the functions + marked for inline in kprobes. There-by allowing the insertion of probes + on these kprobes routines, which might cause recursion. + + This patch removes all such inline and adds them to kprobes section + there by disallowing probes on all such routines. Some of the routines + can even still be inlined, since these routines gets executed after the + kprobes had done necessay setup for reentrancy. + + Signed-off-by: Prasanna S Panchamukhi + Acked-by: David S. Miller + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ca269d8b4d020af018e9e7e82b22f965a0e1bd9 +Author: Prasanna S Panchamukhi +Date: Tue Apr 18 22:22:02 2006 -0700 + + [PATCH] Switch Kprobes inline functions to __kprobes for ia64 + + Andrew Morton pointed out that compiler might not inline the functions + marked for inline in kprobes. There-by allowing the insertion of probes + on these kprobes routines, which might cause recursion. + + This patch removes all such inline and adds them to kprobes section + there by disallowing probes on all such routines. Some of the routines + can even still be inlined, since these routines gets executed after the + kprobes had done necessay setup for reentrancy. + + Signed-off-by: Prasanna S Panchamukhi + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 46dbe2f4ef9954e3ed2155995b76e32f31fef6bb +Author: Prasanna S Panchamukhi +Date: Tue Apr 18 22:22:01 2006 -0700 + + [PATCH] Switch Kprobes inline functions to __kprobes for ppc64 + + Andrew Morton pointed out that compiler might not inline the functions + marked for inline in kprobes. There-by allowing the insertion of probes + on these kprobes routines, which might cause recursion. + + This patch removes all such inline and adds them to kprobes section + there by disallowing probes on all such routines. Some of the routines + can even still be inlined, since these routines gets executed after the + kprobes had done necessay setup for reentrancy. + + Signed-off-by: Prasanna S Panchamukhi + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3b60211c1618063cb296439ebaef2041a725ba20 +Author: Prasanna S Panchamukhi +Date: Tue Apr 18 22:22:00 2006 -0700 + + [PATCH] Switch Kprobes inline functions to __kprobes for x86_64 + + Andrew Morton pointed out that compiler might not inline the functions + marked for inline in kprobes. There-by allowing the insertion of probes + on these kprobes routines, which might cause recursion. + + This patch removes all such inline and adds them to kprobes section + there by disallowing probes on all such routines. Some of the routines + can even still be inlined, since these routines gets executed after the + kprobes had done necessay setup for reentrancy. + + Signed-off-by: Prasanna S Panchamukhi + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 34c37e18696ff6a773f0403348342a9fe49df4af +Author: Prasanna S Panchamukhi +Date: Tue Apr 18 22:21:59 2006 -0700 + + [PATCH] Switch Kprobes inline functions to __kprobes for i386 + + Andrew Morton pointed out that compiler might not inline the functions + marked for inline in kprobes. There-by allowing the insertion of probes + on these kprobes routines, which might cause recursion. + + This patch removes all such inline and adds them to kprobes section + there by disallowing probes on all such routines. Some of the routines + can even still be inlined, since these routines gets executed after the + kprobes had done necessay setup for reentrancy. + + Signed-off-by: Prasanna S Panchamukhi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c640be26f7f8b7a826529baa72fad76bd4f6f5a2 +Author: Jan Engelhardt +Date: Tue Apr 18 22:21:58 2006 -0700 + + [PATCH] pnp: fix two messages in manager.c + + The wording of two messages in drivers/pnp/manager.c is incorrect. Fix that. + + Signed-off-by: Jan Engelhardt + Acked-by: Pavel Machek + Signed-off-by: Rafael J. Wysocki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 96766a3caae789cdfd7fc6a50bad4e0759d869b0 +Author: Randy.Dunlap +Date: Tue Apr 18 22:21:57 2006 -0700 + + [PATCH] parport_pc: fix section mismatch warnings (v2) + + From: Randy Dunlap + + Fix all modpost section mismatch warnings in parport_pc: + + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x230) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x283) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x3e6) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x400) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x463) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.text: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x488) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data:superios from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x54c) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_probe_port after 'parport_pc_probe_port' (at offset 0x56a) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x67) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x9f) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0xa7) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data:cards from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x132) + WARNING: drivers/parport/parport_pc.o - Section mismatch: reference to .init.data: from .text.parport_pc_pci_probe after 'parport_pc_pci_probe' (at offset 0x142) + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3fb0cb5d0f8b915a75677e8e8e4a4a4e481f03f7 +Author: Heikki Orsila +Date: Tue Apr 18 22:21:55 2006 -0700 + + [PATCH] Open IPMI BT overflow + + I was looking into random driver code and found a suspicious looking + memcpy() in drivers/char/ipmi/ipmi_bt_sm.c on 2.6.17-rc1: + + if ((size < 2) || (size > IPMI_MAX_MSG_LENGTH)) + return -1; + ... + memcpy(bt->write_data + 3, data + 1, size - 1); + + where sizeof bt->write_data is IPMI_MAX_MSG_LENGTH. It looks like the + memcpy would overflow by 2 bytes if size == IPMI_MAX_MSG_LENGTH. A patch + attached to limit size to (IPMI_MAX_LENGTH - 2). + + Cc: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aa1e816fc92215f94bdfd90107baae8fdc2440d1 +Author: Jesper Juhl +Date: Tue Apr 18 22:21:54 2006 -0700 + + [PATCH] Fix potential NULL pointer deref in gen_init_cpio + + Fix potential NULL pointer deref in gen_init_cpio.c spotted by coverity + checker. This fixes coverity bug #86 + + Without this patch we risk dereferencing a NULL `type' in the + "if ('\n' == *type) {" line. + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9dfb563b07b1aafcd7d40528ebfa7f9ce28f0556 +Author: Randy Dunlap +Date: Tue Apr 18 22:21:53 2006 -0700 + + [PATCH] config: update usage/help info + + Replace outdated help message with a reference to README. Update README + for make *config variants and environment variable info. + + Signed-off-by: Randy Dunlap + Acked-by: Sam Ravnborg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7420884c038f326bdac3a8ded856033523e7684e +Author: Randy Dunlap +Date: Tue Apr 18 22:21:52 2006 -0700 + + [PATCH] IPMI: fix devinit placement + + gcc complains about __devinit in the wrong location: + drivers/char/ipmi/ipmi_si_intf.c:2205: warning: '__section__' attribute does not apply to types + + Signed-off-by: Randy Dunlap + Acked-by: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e1222717932ff7d447af6da03c10a81fb60af7d +Author: Randy Dunlap +Date: Tue Apr 18 22:21:51 2006 -0700 + + [PATCH] Doc: vm/hugetlbpage update-2 + + Add new line of /proc/meminfo output. + + Explain the HugePage_ lines in /proc/meminfo (from Bill Irwin). + + Change KB to kB since the latter is what is used in the kernel. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 73374454558b9caea46a5521fdae312d3d0ed3e1 +Author: Samuel Thibault +Date: Tue Apr 18 22:21:50 2006 -0700 + + [PATCH] apm: fix Armada laptops again + + Fix the "apm: set display: Interface not engaged" error on Armada laptops + again. + + Jordan said: + + I think this is fine. It seems to me that this may be the fault of one or + both of the APM solutions handling this situation in a non-standard way, but + since APM is used very little on the Geode, and I have direct access to our + BIOS folks, if this problem comes up with a customer again, we'll solve it + from the firmware. + + Signed-off-by: Samuel Thibault + Cc: "Jordan Crouse" + Cc: Zachary Amsden + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b514d8c77a6ad9c665c74e6ea7827e5c341095db +Author: Jesper Juhl +Date: Tue Apr 18 22:21:49 2006 -0700 + + [PATCH] voyager: no need to define BITS_PER_BYTE when it's already in types.h + + Signed-off-by: Jesper Juhl + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cca57c5b5ab164e3c96576fc7739c0a30c2eab72 +Author: Tim Chen +Date: Tue Apr 18 22:21:47 2006 -0700 + + [PATCH] Kconfig.debug: Set DEBUG_MUTEX to off by default + + DEBUG_MUTEX flag is on by default in current kernel configuration. + + During performance testing, we saw mutex debug functions like + mutex_debug_check_no_locks_freed (called by kfree()) is expensive as it + goes through a global list of memory areas with mutex lock and do the + checking. For benchmarks such as Volanomark and Hackbench, we have seen + more than 40% drop in performance on some platforms. We suggest to set + DEBUG_MUTEX off by default. Or at least do that later when we feel that + the mutex changes in the current code have stabilized. + + Signed-off-by: Tim Chen + Cc: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ca99c1da080345e227cfb083c330a184d42e27f3 +Author: Dipankar Sarma +Date: Tue Apr 18 22:21:46 2006 -0700 + + [PATCH] Fix file lookup without ref + + There are places in the kernel where we look up files in fd tables and + access the file structure without holding refereces to the file. So, we + need special care to avoid the race between looking up files in the fd + table and tearing down of the file in another CPU. Otherwise, one might + see a NULL f_dentry or such torn down version of the file. This patch + fixes those special places where such a race may happen. + + Signed-off-by: Dipankar Sarma + Acked-by: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fb30d64568fd8f6a21afef987f11852a109723da +Author: Jeff Dike +Date: Tue Apr 18 22:21:44 2006 -0700 + + [PATCH] uml: add missing __volatile__ + + We were missing __volatile__ on some bits of asm in the segfault handlers. + On x86_64, this was messing up the move from %rdx to uc because that was + moved to after the GET_FAULTINFO_FROM_SC, which changed %rdx. + + Also changed the other bit of asm and the one in the i386 handler to + prevent any similar occurrences. + + Signed-off-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 966a082f80a073af1564c5ed6313ef2f0587dde3 +Author: Rob Landley +Date: Tue Apr 18 22:21:43 2006 -0700 + + [PATCH] uml: physical memory map file fixes + + UML really wants shared memory semantics form its physical memory map file, + and the place for that is /dev/shm. So move the default, and fix the error + messages to recognize that this value can be overridden. + + Signed-off-by: Rob Landley + Signed-off-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f983c45ebedcaf686223afaecd8e681e8dcd15a9 +Author: Al Viro +Date: Tue Apr 18 22:21:42 2006 -0700 + + [PATCH] uml: __user annotations + + bits of uml __user annotations lost in merge + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ad28e029789ef46aebdfb9ece01d431ce1c637c8 +Author: Jeff Dike +Date: Tue Apr 18 22:21:41 2006 -0700 + + [PATCH] uml: change sigjmp_buf to jmp_buf + + Clean up the jmpbuf code. Since softints, we no longer use sig_setjmp, so + the UML_SIGSETJMP wrapper now has a misleading name. Also, I forgot to + change the buffers from sigjmp_buf to jmp_buf. + + Signed-off-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4127272c38619c56f0c1aa01d01c7bd757db70a1 +Author: Hirokazu Takata +Date: Tue Apr 18 22:21:38 2006 -0700 + + [PATCH] m32r: update switch_to macro for tuning + + - Remove unnecessary push/pop's of the switch_to() macro + for performance tuning. + - Cosmetic updates: change __inline__ to inline, etc. + + Signed-off-by: Hirokazu Takata + Cc: NIIBE Yutaka + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dd1c1e3e9ed04d33a698925238e527b7051f64b9 +Author: Hirokazu Takata +Date: Tue Apr 18 22:21:34 2006 -0700 + + [PATCH] m32r: Remove a warning in m32r_sio.c + + /project/m32r-linux/kernel/linux-2.6.17-rc1-mm2/linux-2.6.17-rc1-mm2/drivers/serial/m32r_sio.c: In function 'm32r_sio_console_write': + /project/m32r-linux/kernel/linux-2.6.17-rc1-mm2/linux-2.6.17-rc1-mm2/drivers/serial/m32r_sio.c:1060: warning: unused variable 'i' + + Signed-off-by: Hirokazu Takata + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0d34c86c3b75e5fd7cde15c965349b0104e06e53 +Author: Hirokazu Takata +Date: Tue Apr 18 22:21:30 2006 -0700 + + [PATCH] m32r: mappi3 reboot support + + Here is a patch to support a reboot function for M3A-2170(Mappi-III) + evaluation board. + + Signed-off-by: Hayato Fujiwara + Signed-off-by: Hirokazu Takata + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fa372810e51979c5044e036a34015845e9c6aedd +Author: Hirokazu Takata +Date: Tue Apr 18 22:21:25 2006 -0700 + + [PATCH] m32r: update include/asm-m32r/semaphore.h + + This patch updates include/asm-m32r/semaphore.h for good readability and + maintainability. + + Signed-off-by: Hirokazu Takata + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8e8ff02c0b61d9b7c15c7996a2eddbedf51a105b +Author: Hirokazu Takata +Date: Tue Apr 18 22:21:20 2006 -0700 + + [PATCH] m32r: Fix pt_regs for !COFNIG_ISA_DSP_LEVEL2 target + + This modification is required to fix debugging function for m32r targets + with !CONFIG_ISA_DSP_LEVEL2, by unifying 'struct pt_regs' and 'struct + sigcontext' size for all M32R ISA. + + Some m32r processor core with !CONFIG_ISA_DSP_LEVEL2 configuration has only + single accumulator a0 (ex. VDEC2 core, M32102 core, etc.), the others with + CONFIG_ISA_DSP_LEVEL2 has two accumulators, a0 and a1. + + This means there are two variations of thread context. So far, we reduced + and changed stackframe size at a syscall for their context size. However, + this causes a problem that a GDB for processors with CONFIG_ISA_DSP_LEVEL2 + cannot be used for processors with !CONFIG_ISA_DSP_LEVEL2. + + From the viewpoint of GDB support, we should reduce such variation of + stackframe size for simplicity. + + In this patch, dummy members are added to 'struct pt_regs' and 'struct + sigcontext' to adjust their size for !CONFIG_ISA_DSP_LEVEL2. + + This modification is also a one step for a GDB update in future. + Currently, on the m32r, GDB can access process's context by using ptrace + functions in a simple way of register by register access. By unifying + stackframe size, we have a possibility to make use of ptrace functions of + not only a single register access but also block register access, + PTRACE_{GETREGS,PUTREGS}. + + However, for this purpose, we might have to modify stackframe structure + some more; for example, PSW (processor status word) register should be + pre-processed before pushing to stack at a syscall, and so on. In this + case, we must update carefully both kernel and GDB at a time... + + Signed-off-by: Hayato Fujiwara + Signed-off-by: Hirokazu Takata + Cc: Kei Sakamoto + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit efe87d2b822e42975b4da958c9d321cf89bfeb5a +Author: Randy Dunlap +Date: Tue Apr 18 22:21:14 2006 -0700 + + [PATCH] x86 cpuid and msr notifier callback section mismatches + + Fix section mismatch warnings in x86 cpuid and msr notifier callback + functions. We can't have these as init (discarded) code. + + WARNING: arch/x86_64/kernel/cpuid.o - Section mismatch: reference to .init.text: from .data between 'cpuid_class_cpu_notifier' (at offset 0x0) and 'cpuid_fops' + WARNING: arch/x86_64/kernel/msr.o - Section mismatch: reference to .init.text: from .data between 'msr_class_cpu_notifier' (at offset 0x0) and 'msr_fops' + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1bb858f27eadc54e24dfa351fcae724cff426de2 +Author: lepton +Date: Tue Apr 18 22:21:10 2006 -0700 + + [PATCH] asm-i386/atomic.h: local_irq_save should be used instead of local_irq_disable + + atomic_add_return() if CONFIG_M386 can accidentally enable local interrupts. + + Signed-off-by: Lepton Wu + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ab5703b34237da7034800ec2466ceebf88a7e685 +Author: Ron Yorston +Date: Tue Apr 18 22:21:04 2006 -0700 + + [PATCH] selinux: Fix MLS compatibility off-by-one bug + + Fix an off-by-one error in the MLS compatibility code that was causing + contexts with a MLS suffix to be rejected, preventing sharing partitions + between FC4 and FC5. Bug reported in + + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=188068 + + Signed-off-by: Stephen Smalley + Acked-by: James Morris + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dda27d1a55e185b0c5fd184b86ac26c66846f095 +Author: Arthur Othieno +Date: Tue Apr 18 22:20:57 2006 -0700 + + [PATCH] hugetlbfs: add Kconfig help text + + In kernel bugzilla #6248 (http://bugzilla.kernel.org/show_bug.cgi?id=6248), + Adrian Bunk notes that CONFIG_HUGETLBFS is missing Kconfig + help text. + + Signed-off-by: Arthur Othieno + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6aa3001b239b387d98a7f945e4a51edeb59e4f2d +Author: Andrew Morton +Date: Tue Apr 18 22:20:52 2006 -0700 + + [PATCH] page_alloc.c: buddy handling cleanup + + Fix up some whitespace damage. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 013159227b840dfd441bd2e4c8b4d77ffb3cc42e +Author: Dave Peterson +Date: Tue Apr 18 22:20:44 2006 -0700 + + [PATCH] mm: fix mm_struct reference counting bugs in mm/oom_kill.c + + Fix oom_kill_task() so it doesn't call mmput() (which may sleep) while + holding tasklist_lock. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 97c2c9b84d0c1edf4926b13661d5af3f0edccbce +Author: Andrew Morton +Date: Tue Apr 18 22:20:38 2006 -0700 + + [PATCH] oom-kill: mm locking fix + + Dave Peterson points out that badness() is playing with + mm_structs without taking a reference on them. + + mmput() can sleep, so taking a reference here (inside tasklist_lock) is + hard. Fix it up via task_lock() instead. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 75129e297e861e6c61038aa4cdbf604b022de4ff +Author: John Hawkes +Date: Tue Apr 18 22:20:33 2006 -0700 + + [PATCH] mm/slob.c: for_each_possible_cpu(), not NR_CPUS + + Convert for-loops that explicitly reference "NR_CPUS" into the + potentially more efficient for_each_possible_cpu() construct. + + Signed-off-by: John Hawkes + Cc: Matt Mackall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4a3b98a422a20dedf3a2a40c44892d6e7e665157 +Author: Rafael J. Wysocki +Date: Tue Apr 18 22:20:29 2006 -0700 + + [PATCH] swsusp: prevent possible image corruption on resume + + The function free_pagedir() used by swsusp for freeing its internal data + structures clears the PG_nosave and PG_nosave_free flags for each page + being freed. + + However, during resume PG_nosave_free set means that the page in + question is "unsafe" (ie. it will be overwritten in the process of + restoring the saved system state from the image), so it should not be + used for the image data. + + Therefore free_pagedir() should not clear PG_nosave_free if it's called + during resume (otherwise "unsafe" pages freed by it may be used for + storing the image data and the data may get corrupted later on). + + Signed-off-by: Rafael J. Wysocki + Acked-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8db08de4f6ae24e90aedf5125b5ddd52ffff15f4 +Author: David Barksdale +Date: Tue Apr 18 22:20:27 2006 -0700 + + [PATCH] m41t00: fix bitmasks when writing to chip + + Fix the bitmasks used when writing to the M41T00 registers. + + The original code used a mask of 0x7f when writing to each register, + this is incorrect and probably the result of a copy-paste error. As a + result years from 1980 to 1999 will be read back as 2000 to 2019. + + Signed-off-by: David Barksdale + Acked-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b73781c866f671ff5a84d7c840510b43e8731d13 +Author: Jeff Dike +Date: Tue Apr 18 22:20:24 2006 -0700 + + [PATCH] uml: MADV_REMOVE fixes + + MADV_REMOVE fixes - change the test mapping to be MAP_SHARED instead of + MAP_PRIVATE, as MADV_REMOVE on MAP_PRIVATE maps won't work. Also, use + the kernel's definition of MADV_REMOVE instead of hardcoding it if there + isn't a libc definition. + + Signed-off-by: Jeff Dike + Cc: Hugh Dickins + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 676ff453e58c5ff7ddbfebf5a11142e3e4add161 +Author: KAMEZAWA Hiroyuki +Date: Tue Apr 18 22:20:21 2006 -0700 + + [PATCH] for_each_possible_cpu: x86_64 + + for_each_cpu() actually iterates across all possible CPUs. We've had + mistakes in the past where people were using for_each_cpu() where they + should have been iterating across only online or present CPUs. This is + inefficient and possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this + in the future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Acked-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e85d4abe3f43bb5362f384bab0e20ef082ce0b5 +Author: Eric W. Biederman +Date: Tue Apr 18 22:20:16 2006 -0700 + + [PATCH] task: Make task list manipulations RCU safe + + While we can currently walk through thread groups, process groups, and + sessions with just the rcu_read_lock, this opens the door to walking the + entire task list. + + We already have all of the other RCU guarantees so there is no cost in + doing this, this should be enough so that proc can stop taking the + tasklist lock during readdir. + + prev_task was killed because it has no users, and using it will miss new + tasks when doing an rcu traversal. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 181ae4005d0a4010802be534d929b38c42b9ac06 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Tue Apr 18 22:20:13 2006 -0700 + + [PATCH] uml: make 64-bit COW files compatible with 32-bit ones + + This is the minimal fix to make 64-bit UML binaries create 32-bit + compatible COW files and read them. + + I've indeed tested that current code doesn't do this - the code gets + SIGFPE for a division by a value read at the wrong place, where 0 is + found. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9e0267c26e237f84f608a68e579bf4eb89dad819 +Author: Jens Axboe +Date: Wed Apr 19 15:57:31 2006 +0200 + + [PATCH] splice: fixup writeout path after ->map changes + + Since ->map() no longer locks the page, we need to adjust the handling + of those pages (and stealing) a little. This now passes full regressions + again. + + Signed-off-by: Jens Axboe + +commit a4514ebd8e12c63c09ab02be518db545bd1d24af +Author: Jens Axboe +Date: Wed Apr 19 15:57:05 2006 +0200 + + [PATCH] splice: offset fixes + + - We need to adjust *ppos for writes as well. + - Copy back modified offset value if one was passed in, similar to + what sendfile does. + + Signed-off-by: Jens Axboe + +commit 2a27250e6cf47ca1ea3bea0a55e4b7889c097627 +Author: Jens Axboe +Date: Wed Apr 19 15:56:40 2006 +0200 + + [PATCH] tee: link_pipe() must be careful when dropping one of the pipe locks + + We need to ensure that we only drop a lock that is ordered last, to avoid + ABBA deadlocks with competing processes. + + Signed-off-by: Jens Axboe + +commit c4f895cbe1e95aab633207fb19c650b7c984c01a +Author: Jens Axboe +Date: Wed Apr 19 15:56:12 2006 +0200 + + [PATCH] splice: cleanup the SPLICE_F_NONBLOCK handling + + - generic_file_splice_read() more readable and correct + - Don't bail on page allocation with NONBLOCK set, just don't allow + direct blocking on IO (eg lock_page). + + Signed-off-by: Jens Axboe + +commit 91ad66ef4469cb631ec0ccd131b07f16770773f7 +Author: Jens Axboe +Date: Wed Apr 19 15:55:10 2006 +0200 + + [PATCH] splice: close i_size truncate races on read + + We need to check i_size after doing a blocking readpage. + + Signed-off-by: Jens Axboe + +commit 8bbde0e6d52265158ee9625f383500c1a7d09ba9 +Author: Linus Torvalds +Date: Tue Apr 18 20:00:49 2006 -0700 + + Linux v2.6.17-rc2 + +commit d34cb28a3718a7055ed14e2ec058fe3e4574af63 +Author: Ralf Baechle +Date: Wed Apr 19 04:14:30 2006 +0200 + + [MAINTAINERS] The ham radio code now has website at http://www.linux-ax25.org. + +commit 3c68da798a3facbf94d536b1ed7ff6f1e7f4ad8d +Author: Atsushi Nemoto +Date: Sat Apr 8 01:33:31 2006 +0900 + + [MIPS] Use __ffs() instead of ffs() for waybit calculation. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 9200c0b2a07c430bd98c546fc44b94f50e67ac62 +Author: Ralf Baechle +Date: Thu Apr 6 00:44:25 2006 +0100 + + [MIPS] Fix Makefile bugs for MIPS32/MIPS64 R1 and R2. + + This fixes kernel builds with gcc 3.2 (not 64-bit, that is looking like + it is beyond recovery) and 3.3. With these bugs fixed we now also can + get undo 3b4c4996a0c24da9e6f8be764e3950b756b18cc0 and similar bits for + SMTC that were added in 79cc8007b93838a670b164b8a55ab3e735a12a8b. + + Signed-off-by: Ralf Baechle + +commit 7e3bfc7cfc402458b0386086ab650ce811720927 +Author: Ralf Baechle +Date: Wed Apr 5 20:42:04 2006 +0100 + + [MIPS] Handle IDE PIO cache aliases on SMP. + + Signed-off-by: Ralf Baechle + +commit bb12d612d4b2e6dc260fab081f69df783b74289f +Author: Ralf Baechle +Date: Wed Apr 5 09:45:49 2006 +0100 + + [MIPS] Make mips_srs_init static. + + Nothing outside traps.c uses it. + + Signed-off-by: Ralf Baechle + +commit b4ade4bf8811c7267b9f32b4a5d8fcfde714adac +Author: Ralf Baechle +Date: Wed Apr 5 09:45:48 2006 +0100 + + [MIPS] MIPS boards: Set HZ to 100. + + 1000Hz will bring an FPGA CPU down on it's knees and it's even worse on + multithreaded cores. + + Signed-off-by: Ralf Baechle + +commit 8f6539d55919b8e013583df768312a2503f4125d +Author: Ralf Baechle +Date: Wed Apr 5 09:45:48 2006 +0100 + + [MIPS] kgdb: Let gcc compute the array size itself. + + This is the same method as used in the serial driver. + + Signed-off-by: Ralf Baechle + +commit f088fc84f94c1a36943e28ad704a9a740a35f877 +Author: Ralf Baechle +Date: Wed Apr 5 09:45:47 2006 +0100 + + [MIPS] FPU affinity for MT ASE. + + Signed-off-by: Ralf Baechle + +commit 41c594ab65fc89573af296d192aa5235d09717ab +Author: Ralf Baechle +Date: Wed Apr 5 09:45:45 2006 +0100 + + [MIPS] MT: Improved multithreading support. + + Signed-off-by: Ralf Baechle + +commit 2600990e640e3bef29ed89d565864cf16ee83833 +Author: Ralf Baechle +Date: Wed Apr 5 09:45:45 2006 +0100 + + [MIPS] kpsd and other AP/SP improvements. + + Signed-off-by: Ralf Baechle + +commit bce1a28686ed6527977a198f698278b67c6bf9ec +Author: Ralf Baechle +Date: Wed Apr 5 09:45:45 2006 +0100 + + [MIPS] R2: Instruction hazard barrier. + + Signed-off-by: Ralf Baechle + +commit a682a2417007ad6265cd71b97b751753fd10e2fb +Author: Ralf Baechle +Date: Tue Apr 4 16:59:37 2006 +0100 + + [MIPS] Fix genrtc compilation. + + Signed-off-by: Ralf Roesch + Signed-off-by: Ralf Baechle + +commit 193dd2ce2a4a1c5b2e7814544572424d497069db +Author: Ralf Baechle +Date: Tue Apr 4 15:09:06 2006 +0100 + + [MIPS] R2: Implement shadow register allocation without spinlock. + + Signed-off-by: Ralf Baechle + +commit 62a442155ea58a17497b487324b27ec2f2dc5c5c +Author: Yoichi Yuasa +Date: Tue Apr 4 20:48:47 2006 +0900 + + [MIPS] Fix VR41xx build errors. + + Signed-off-by: Ralf Baechle + Signed-off-by: Yoichi Yuasa + +commit 67a3f6de939a5f52e0aea6dcff7778d4bcca0734 +Author: Atsushi Nemoto +Date: Tue Apr 4 17:34:14 2006 +0900 + + [MIPS] Fix tx49_blast_icache32_page_indexed. + + Fix the cache index value in tx49_blast_icache32_page_indexed(). + This is a damage by de62893bc0725f8b5f0445250577cd7a10b2d8f8 commit. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 1cc89038f3921f4d79a9d24c8490aa9c0549e371 +Author: Atsushi Nemoto +Date: Tue Apr 4 13:11:45 2006 +0900 + + [MIPS] Enable SCHED_NO_NO_OMIT_FRAME_POINTER for MIPS. + + MIPS get_wchan() no longer requires -fno-omit-frame-pointer. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 675055bfb5f99be56a20a6a214439adf23591786 +Author: Ralf Baechle +Date: Mon Apr 3 23:32:39 2006 +0100 + + [MIPS] Use "R" constraint for cache_op. + + Gcc might emit an absolute address for the the "m" constraint which + gas unfortunately does not permit. + + Signed-off-by: Ralf Baechle + +commit e4ac58afdfac792c0583af30dbd9eae53e24c78b +Author: Ralf Baechle +Date: Mon Apr 3 17:56:36 2006 +0100 + + [MIPS] Rewrite all the assembler interrupt handlers to C. + + Saves like 1,600 lines of code, is way easier to debug, compilers + frequently do a better job than the cut and paste type of handlers many + boards had. And finally having all the stuff done in a single place + also means alot of bug potencial for the MT ASE is gone. + + The only surviving handler in assembler is the DECstation one; I hope + Maciej will rewrite it. + + Signed-off-by: Ralf Baechle + +commit d35d473c25d43d7db3e5e18b66d558d2a631cca8 +Author: Ralf Baechle +Date: Mon Apr 3 13:17:41 2006 +0100 + + [MIPS] Fix the crime against humanity that mipsIRQ.S is. + + Signed-off-by: Ralf Baechle + +commit fde3505c695e0de8ae7504b58d373db2d0ba498a +Author: Ralf Baechle +Date: Mon Apr 3 14:44:50 2006 +0100 + + [MIPS] Fixup damage done by 22a9835c350782a5c3257343713932af3ac92ee0. + + Signed-off-by: Ralf Baechle + +commit 9c1f1257a364467d091c5166049addaf3e7d7118 +Author: Ralf Baechle +Date: Mon Apr 3 10:17:21 2006 +0100 + + [MIPS] Replace redundant declarations of _end by . + + Signed-off-by: Ralf Baechle + +commit ba8990f2aec85b5b62643aa82a1e71c738efc487 +Author: Ralf Baechle +Date: Mon Apr 3 00:21:30 2006 +0100 + + [MIPS] JMR3927 build fixes for the RTC code. + + Signed-off-by: Ralf Baechle + +commit 67cbeb334ec2f1303dd11930b0eb0379e8e39559 +Author: Ralf Baechle +Date: Sun Apr 2 22:17:09 2006 +0100 + + [MIPS] EV96100: ev96100_cpu_irq needs a struct pt_regs argument. + + Signed-off-by: Ralf Baechle + +commit 2ef2e1d9731bd8b3d8565e31bacd52a7c13a0aed +Author: Ralf Baechle +Date: Sun Apr 2 22:07:36 2006 +0100 + + [MIPS] EV96100: Fix over two year old typo in variable name. + + Signed-off-by: Ralf Baechle + +commit c40b92e09c029ef2cb0b2287cbd222ff14ae3de8 +Author: Ralf Baechle +Date: Sun Apr 2 18:43:09 2006 +0100 + + [MIPS] Ocelot 3: Fix build errors after the recent move of Marvell headers. + + Signed-off-by: Ralf Baechle + +commit 088cf96a692a0369973aa19dcbf36134d9e6a529 +Author: Ralf Baechle +Date: Sun Apr 2 18:06:43 2006 +0100 + + [MIPS] MV6434x: Add prototype of interrupt dispatch function. + + Signed-off-by: Ralf Baechle + +commit ac2384a855c94e1d5467afe20bcb8ca23f0f3853 +Author: Ralf Baechle +Date: Sun Apr 2 13:48:57 2006 +0100 + + [MIPS] it8172: Fix build of serial driver. + + Signed-off-by: Ralf Baechle + +commit ed00e87fd09f113dd9e79672b835734801f2a9ea +Author: Ralf Baechle +Date: Sun Apr 2 13:47:51 2006 +0100 + + [MIPS] ITE: Glue build. + + Signed-off-by: Ralf Baechle + +commit 13626a887fad4220bc7ca85f4b42ca8cfb805e11 +Author: Ralf Baechle +Date: Sun Apr 2 13:17:58 2006 +0100 + + [MIPS] MV6434x: The name of the CPP symbol is __mips__, not __MIPS__. + + Signed-off-by: Ralf Baechle + +commit b56bce9a25e8c117794fe74c1b9bf790de10d554 +Author: Ralf Baechle +Date: Sun Apr 2 13:16:45 2006 +0100 + + [MIPS] Jaguar: Fix build errors after the recent move of Marvell headers. + + Some things were renamed because the PPC variant of the MV-643XX now + uses the same header and the Jaguar code didn't catch up on that. + + Signed-off-by: Ralf Baechle + +commit 0428657d874edf228fcd5396bb0e095b806e954c +Author: Ralf Baechle +Date: Sun Apr 2 13:14:42 2006 +0100 + + [MIPS] ITE8172: Fix build error due to missmatching prototypes. + + Signed-off-by: Ralf Baechle + +commit f13b68e8174657b0253ca7cf263521ed3ac19125 +Author: Ralf Baechle +Date: Sun Apr 2 13:13:19 2006 +0100 + + [MIPS] Fix CONFIG_LIMITED_DMA build. + + This fix a build error for the Momentum Jaguar ATX eval board. + + Signed-off-by: Ralf Baechle + +commit 41d4f0e61283f6807553c129416fc20766a7043f +Author: Ralf Baechle +Date: Sat Apr 1 21:25:28 2006 +0100 + + [MIPS] PNX8550 build fix. + + Signed-off-by: Ralf Baechle + +commit 93373ed4d87fb02554ce020d929388ac16913664 +Author: Ralf Baechle +Date: Sat Apr 1 21:17:45 2006 +0100 + + [MIPS] Rewrite spurious_interrupt from assembler to C. + + Signed-off-by: Ralf Baechle + +commit c9e321e095384f25f2b7ffef456794cfa876dafc +Author: Ralf Baechle +Date: Sat Apr 1 20:43:58 2006 +0100 + + [MIPS] Fix breakage due to the grand makefile crapectomy. + + It's cc-option not cc-options. + + Signed-off-by: Ralf Baechle + +commit e49ed7f5917de5baa9e25cf8af332b3b35724e51 +Author: Ralf Baechle +Date: Sat Apr 1 07:49:52 2006 +0100 + + [MIPS] Sort out duplicate exports. + + Signed-off-by: Ralf Baechle + +commit a8d587a71b76328447de165b12495650721b9286 +Author: Ralf Baechle +Date: Sat Apr 1 07:49:21 2006 +0100 + + [MIPS] Wire up sync_file_range(2). + + Signed-off-by: Ralf Baechle + +commit f115da9cd60ccd5f27941dcf9fe8038ae9486a77 +Author: Ralf Baechle +Date: Fri Mar 31 09:27:20 2006 +0100 + + [MIPS] Wire splice syscall. + + Signed-off-by: Ralf Baechle + +commit 84ada9f85686a6bfdbd65c24fd23ef5d641b0776 +Author: Ralf Baechle +Date: Thu Mar 30 21:27:47 2006 +0100 + + [MIPS] More SHT_* and SHF_* ELF definitions. + + Signed-off-by: Ralf Baechle + +commit 91b05e6776e173da5ce7c96d67b3ad186c4fa49f +Author: Ralf Baechle +Date: Wed Mar 29 18:53:00 2006 +0100 + + [MIPS] Fix vectored interrupt support in TLB exception handler generator. + + Signed-off-by: Ralf Baechle + +commit 15c4f67ab81b07d3b579a11fc4a30da84c0d4858 +Author: Ralf Baechle +Date: Wed Mar 29 18:51:06 2006 +0100 + + [MIPS] Provide access functions for c0_badvaddr. + + Signed-off-by: Ralf Baechle + +commit ff3eab2a985f8efac239768fe7dda8fffc028ded +Author: Ralf Baechle +Date: Wed Mar 29 14:12:58 2006 +0100 + + [MIPS] Some formatting fixes. + + Signed-off-by: Ralf Baechle + +commit 7acb783ecd5273a864cfb588ed63c0df0e217a9e +Author: Ralf Baechle +Date: Wed Mar 29 14:11:22 2006 +0100 + + [MIPS] Fixup printk in mips_srs_init. + + Signed-off-by: Ralf Baechle + +commit e76038dcc06fc22134abdc554338d444f87791c6 +Author: Ralf Baechle +Date: Wed Mar 29 14:10:09 2006 +0100 + + [MIPS] Remove redundant initialization of sr_allocated. + + Signed-off-by: Ralf Baechle + +commit b4d05cb9cbbf206ab0dc2c1740938b87b3d3ee44 +Author: Ralf Baechle +Date: Wed Mar 29 14:09:14 2006 +0100 + + [MIPS] Make set_vi_srs_handler static. + + Signed-off-by: Ralf Baechle + +commit 6fd11a2173709cd598345e15382af480979cf4fc +Author: Ralf Baechle +Date: Fri Mar 24 13:21:50 2006 +0000 + + [MIPS] Cleanup free_initmem the same way as i386 did. + + Signed-off-by: Ralf Baechle + +commit 18b68e1561ff464c9b773f96e535d724c352fb8a +Author: Yoichi Yuasa +Date: Wed Mar 22 11:22:09 2006 +0900 + + [MIPS] Added tb0287_defconfig back. + + Signed-off-by: Yoichi Yuasa + Signed-off-by: Ralf Baechle + +commit f2a1585244681b92fd416d071a85de0db79235d2 +Author: Jean-Luc Léger +Date: Tue Apr 18 16:19:53 2006 -0700 + + [SPARC64]: Fix dependencies of HUGETLB_PAGE_SIZE_64K + + This patch fixes dependencies of HUGETLB_PAGE_SIZE_64K + + Signed-off-by: Jean-Luc Léger + Signed-off-by: David S. Miller + +commit 63903ca6af3d9424a0c2b176f927fa7e7ab2ae8e +Author: Jesper Juhl +Date: Tue Apr 18 14:51:44 2006 -0700 + + [NET]: Remove redundant NULL checks before [kv]free + + Redundant NULL check before kfree removal + from net/ + + Signed-off-by: Jesper Juhl + Acked-by: James Morris + Signed-off-by: David S. Miller + +commit 40daafc80b0f6a950c9252f9f1a242ab5cb6a648 +Author: Dmitry Mishin +Date: Tue Apr 18 14:50:10 2006 -0700 + + unaligned access in sk_run_filter() + + This patch fixes unaligned access warnings noticed on IA64 + in sk_run_filter(). 'ptr' can be unaligned. + + Signed-off-By: Dmitry Mishin + Signed-off-By: Kirill Korotaev + Signed-off-by: David S. Miller + +commit b809739a1b455396c21de13bcbf6669faf82f747 +Author: YOSHIFUJI Hideaki +Date: Tue Apr 18 14:48:45 2006 -0700 + + [IPV6]: Clean up hop-by-hop options handler. + + - Removed unused argument (nhoff) for ipv6_parse_hopopts(). + - Make ipv6_parse_hopopts() to align with other extension header + handlers. + - Removed pointless assignment (hdr), which is not used afterwards. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit e5d25a90886d62d88fdd7cd5c3375f4fe436be64 +Author: YOSHIFUJI Hideaki +Date: Tue Apr 18 14:47:44 2006 -0700 + + [IPV6] XFRM: Fix decoding session with preceding extension header(s). + + We did not correctly decode session with preceding extension + header(s). This was because we had already pulled preceding + headers, skb->nh.raw + 40 + 1 - skb->data was minus, and + pskb_may_pull() failed. + + We now have IP6CB(skb)->nhoff and skb->h.raw, and we can + start parsing / decoding upper layer protocol from current + position. + + Tracked down by Noriaki TAKAMIYA + and tested by Kazunori Miyazawa . + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit e3cae904d7df4f86ea1d13d459e667d389cc35e3 +Author: YOSHIFUJI Hideaki +Date: Tue Apr 18 14:46:52 2006 -0700 + + [IPV6] XFRM: Don't use old copy of pointer after pskb_may_pull(). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit ec6700958a776a83681ecb11239c0525730c42ba +Author: YOSHIFUJI Hideaki +Date: Tue Apr 18 14:46:26 2006 -0700 + + [IPV6]: Ensure to have hop-by-hop options in our header of &sk_buff. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit ef5cb9738b488140eb6c3f32fffab08f39a4905e +Author: Herbert Xu +Date: Tue Apr 18 13:24:14 2006 -0700 + + [TCP]: Fix truesize underflow + + There is a problem with the TSO packet trimming code. The cause of + this lies in the tcp_fragment() function. + + When we allocate a fragment for a completely non-linear packet the + truesize is calculated for a payload length of zero. This means that + truesize could in fact be less than the real payload length. + + When that happens the TSO packet trimming can cause truesize to become + negative. This in turn can cause sk_forward_alloc to be -n * PAGE_SIZE + which would trigger the warning. + + I've copied the code DaveM used in tso_fragment which should work here. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 9180053cacfec4aa233a6cabf1256960e75b0abd +Author: Adrian Bunk +Date: Wed Apr 19 00:07:28 2006 +0200 + + [CPUFREQ] powernow-k8.c: fix a check-after-use + + This patch fixes a check-after-use introduced by commit + 4211a30349e8d2b724cfb4ce2584604f5e59c299 and spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: Dave Jones + +commit 3aee086bd3ecce968283798ce4a73966c7ed44e3 +Author: Tobias Klauser +Date: Mon Apr 10 19:20:12 2006 +0200 + + [CPUFREQ] Remove duplicate check in powernow-k8 + + Remove a duplicate NULL pointer check introduced by commit + 4211a30349e8d2b724cfb4ce2584604f5e59c299 + + Signed-off-by: Tobias Klauser + Signed-off-by: Dave Jones + +commit 7b14dedd1fe72f33e128ed1b0cbf96d06acc7e9c +Author: Adrian Bunk +Date: Tue Apr 18 17:06:13 2006 +0200 + + [CPUFREQ] drivers/cpufreq/cpufreq.c: static functions mustn't be exported + + This patch removes the EXPORT_SYMBOL_GPL of the static function cpufreq_parse_governor(). + + Signed-off-by: Adrian Bunk + Signed-off-by: Dave Jones + +commit 7970e08bf066900efcd7794a1a338c11eb8f5141 +Author: Thomas Renninger +Date: Thu Apr 13 15:14:04 2006 +0200 + + [CPUFREQ] If max_freq got reduced (e.g. by _PPC) a write to sysfs scaling_governor let cpufreq core stuck at low max_freq for ever + + The previous patch had bugs (locking and refcount). + + This one could also be related to the latest DELL reports. + But they only slip into this if a user prog (e.g. powersave daemon does when + AC got (un) plugged due to a scheme change) echos something to + /sys/../cpufreq/scaling_governor + while the frequencies got limited by BIOS. + + This one works: + + Subject: Max freq stucks at low freq if reduced by _PPC and sysfs gov access + + The problem is reproducable by(if machine is limiting freqs via BIOS): + - Unplugging AC -> max freq gets limited + - echo ${governor} >/sys/.../cpufreq/scaling_governor (policy->user_data.max + gets overridden with policy->max and will never come up again.) + + This patch exchanged the cpufreq_set_policy call to __cpufreq_set_policy and + duplicated it's functionality but did not override user_data.max. + The same happens with overridding min/max values. If freqs are limited and + you override the min freq value, the max freq global value will also get + stuck to the limited freq, even if BIOS allows all freqs again. + Last scenario does only happen if BIOS does not reduce the frequency + to the lowest value (should never happen, just for correctness...) + + drivers/cpufreq/cpufreq.c | 17 +++++++++++++++-- + 1 files changed, 15 insertions(+), 2 deletions(-) + + Signed-off-by: Thomas Renninger + Signed-off-by: "Pallipadi, Venkatesh" + Signed-off-by: Dave Jones + +commit 608c783aaa0abe39e3672f65b786cdade8db6df9 +Author: Richard Purdie +Date: Tue Apr 18 23:18:54 2006 +0100 + + [ARM] 3479/1: Corgi SSP: Fix potential concurrent access problem + + Patch from Richard Purdie + + corgi_ssp_probe() should not access GPDR directly but should use + pxa_gpio_mode() which has appropriate locking and other safeguards. + + Signed-off-by: Richard Purdie + Signed-off-by: Russell King + +commit 7ea3bbbc8997df1ae7dc4e736d163dabc00f4721 +Author: Richard Purdie +Date: Tue Apr 18 23:18:53 2006 +0100 + + [ARM] 3478/1: SharpSL SCOOP: Fix potenial build failure + + Patch from Richard Purdie + + Move platform_scoop_config from the SharpSL scoop PCMCIA driver to + the SCOOP driver. This avoids build failures when PCMCIA is not built + or is modular (scoop.c itself cannot be modular). + + Signed-off-by: Richard Purdie + Signed-off-by: Russell King + +commit 385910f2b275a636238f70844f1b6da9fda6f2da +Author: Linus Torvalds +Date: Tue Apr 18 13:22:59 2006 -0700 + + x86: be careful about tailcall breakage for sys_open[at] too + + Came up through a quick grep for other cases similar to the ftruncate() + one in commit 0a489cb3b6a7b277030cdbc97c2c65905db94536. + + Also, add a comment, so that people who read the code understand why we + do what looks like a no-op. + + (Again, this won't actually matter to any sane user, since libc will + save and restore the register gcc stomps on, but it's still wrong to + stomp on it) + + Signed-off-by: Linus Torvalds + +commit 0a489cb3b6a7b277030cdbc97c2c65905db94536 +Author: Linus Torvalds +Date: Tue Apr 18 13:02:48 2006 -0700 + + x86: don't allow tail-calls in sys_ftruncate[64]() + + Gcc thinks it owns the incoming argument stack, but that's not true for + "asmlinkage" functions, and it corrupts the caller-set-up argument stack + when it pushes the third argument onto the stack. Which can result in + %ebx getting corrupted in user space. + + Now, normally nobody sane would ever notice, since libc will save and + restore %ebx anyway over the system call, but it's still wrong. + + I'd much rather have "asmlinkage" tell gcc directly that it doesn't own + the stack, but no such attribute exists, so we're stuck with our hacky + manual "prevent_tail_call()" macro once more (we've had the same issue + before with sys_waitpid() and sys_wait4()). + + Thanks to Hans-Werner Hilse for reporting + the issue and testing the fix. + + Signed-off-by: Linus Torvalds + +commit 102e41fd9dfee357b71e21a38eec3c86ff557bc1 +Author: Andi Kleen +Date: Tue Apr 18 12:35:22 2006 +0200 + + [PATCH] i386: Move CONFIG_DOUBLEFAULT into arch/i386 where it belongs. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit f1233ab2cebb22a98df55de206a33a6693e3a78b +Author: Andi Kleen +Date: Tue Apr 18 12:35:19 2006 +0200 + + [PATCH] x86_64: Add tee and sync_file_range + + tee was already there for some reason for native 64bit, but + sys_sync_file_range was missing. Also add it to the compat layer. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 6fa679fdea22cd96287d4aa11ee771bcd46c6dfb +Author: Andi Kleen +Date: Tue Apr 18 12:35:16 2006 +0200 + + [PATCH] x86_64: Increase NUMA hash function nodemap + + Needed for some big Opteron systems to compute a numa hash function + They have more than 12 bits significant address. + + TBD switch this over to dynamic allocation or use better hash + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 8bcc5280e68878d2b989c91d98305109e391c86a +Author: Vivek Goyal +Date: Tue Apr 18 12:35:13 2006 +0200 + + [PATCH] x86_64: x86_64 add crashdump trigger points + + o Start booting into the capture kernel after an Oops if system is in a + unrecoverable state. System will boot into the capture kernel, if one is + pre-loaded by the user, and capture the kernel core dump. + + o One of the following conditions should be true to trigger the booting of + capture kernel. + - panic_on_oops is set. + - pid of current thread is 0 + - pid of current thread is 1 + - Oops happened inside interrupt context. + + Signed-off-by: Vivek Goyal + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 87cb23a48c208f31ab87c7a2aad37dbb355575f3 +Author: Andi Kleen +Date: Tue Apr 18 12:35:10 2006 +0200 + + [PATCH] i386/x86-64: Fix ACPI disabled LAPIC handling mismerge + + The patch I submitted earlier to fix disabled LAPIC handling in ACPI + was mismerged for some reason I still don't quite understand. Parts + of it was applied to the wrong function. + + This patch fixes it up. + + Cc: len.brown@intel.com + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit d16e86243ecf6f8fb97b5b7d685e0afa77a123e5 +Author: Andi Kleen +Date: Tue Apr 18 12:35:07 2006 +0200 + + [PATCH] x86_64: Update defconfig + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit be3b075354e170368a0d29558cae492205e80a64 +Author: OGAWA Hirofumi +Date: Tue Apr 18 19:18:31 2006 +0200 + + [PATCH] cfq: Further rbtree traversal and cfq_exit_queue() race fix + + In current code, we are re-reading cic->key after dead cic->key check. + So, in theory, it may really re-read *after* cfq_exit_queue() seted NULL. + + To avoid race, we copy it to stack, then use it. With this change, I + guess gcc will assign cic->key to a register or stack, and it wouldn't + be re-readed. + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Jens Axboe + +commit f39224a8c1828bdd327539da72a53d8a13595838 +Author: Paul Mackerras +Date: Tue Apr 18 21:49:11 2006 +1000 + + powerpc: Use correct sequence for putting CPU into nap mode + + We weren't using the recommended sequence for putting the CPU into + nap mode. When I changed the idle loop, for some reason 7447A cpus + started hanging when we put them into nap mode. Changing to the + recommended sequence fixes that. + + The complexity here is that the recommended sequence is a loop that + keeps putting the cpu back into nap mode. Clearly we need some way + to break out of the loop when an interrupt (external interrupt, + decrementer, performance monitor) occurs. Here we use a bit in + the thread_info struct to indicate that we need this, and the exception + entry code notices this and arranges for the exception to return + to the value in the link register, thus breaking out of the loop. + We use a new `local_flags' field in the thread_info which we can + alter without needing to use an atomic update sequence. + + The PPC970 has the same recommended sequence, so we do the same thing + there too. + + This also fixes a bug in the kernel stack overflow handling code on + 32-bit, since it was causing a value that we needed in a register to + get trashed. + + Signed-off-by: Paul Mackerras + +commit d253258c80117c2afaa644554e613201992e4ee9 +Author: Jayachandran C +Date: Mon Apr 10 23:18:28 2006 -0700 + + drm: Fix further issues in drivers/char/drm/via_irq.c + + Fix de-reference of 'dev_priv' before NULL check. + + Signed-off-by: Jayachandran C. + Cc: Dave Airlie + Signed-off-by: Andrew Morton + +commit 031de96af0e7ed6ad4a7ec2b74a77bf9782f966e +Author: Adrian Bunk +Date: Mon Apr 10 23:18:27 2006 -0700 + + drivers/char/drm/drm_memory.c: possible cleanups + + - #if 0 the following unused global function: + - drm_ioremap_nocache() + + - make the following needlessly global functions static: + - agp_remap() + - drm_lookup_map() + + Signed-off-by: Adrian Bunk + Cc: Dave Airlie + Signed-off-by: Andrew Morton + +commit dbecf3ab40b5a6cc4499543778cd9f9682c0abad +Author: OGAWA Hirofumi +Date: Tue Apr 18 09:45:18 2006 +0200 + + [PATCH 2/2] cfq: fix cic's rbtree traversal + + When queue dies, we set cic->key=NULL as dead mark. So, when we + traverse a rbtree, we must check whether it's still valid key. if it + was invalidated, drop it, then restart the traversal from top. + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Jens Axboe + +commit fba822722e3f9d438fca8fd9541d7ddd447d7a48 +Author: OGAWA Hirofumi +Date: Tue Apr 18 09:44:06 2006 +0200 + + [PATCH 1/2] iosched: fix typo and barrier() + + On rmmod path, cfq/as waits to make sure all io-contexts was + freed. However, it's using complete(), not wait_for_completion(). + + I think barrier() is not enough in here. To avoid the following case, + this patch replaces barrier() with smb_wmb(). + + cpu0 visibility cpu1 + [ioc_gnone=NULL,ioc_count=1] + + ioc_gnone = &all_gone NULL,ioc_count=1 + atomic_read(&ioc_count) NULL,ioc_count=1 + wait_for_completion() NULL,ioc_count=0 atomic_sub_and_test() + NULL,ioc_count=0 if ( && ioc_gone) + [ioc_gone==NULL, + so doesn't call complete()] + &all_gone,ioc_count=0 + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Jens Axboe + +commit a9a5cd5d2a57fb76dbae2115450f777b69beccf7 +Author: Alexey Kuznetsov +Date: Mon Apr 17 15:39:23 2006 +0400 + + [PATCH] IPC: access to unmapped vmalloc area in grow_ary() + + grow_ary() should not copy struct ipc_id_ary (it copies new->p, not + new). Due to this, memcpy() src pointer could hit unmapped vmalloc page + when near page boundary. + + Found during OpenVZ stress testing + + Signed-off-by: Alexey Kuznetsov + Signed-off-by: Kirill Korotaev + Signed-off-by: Linus Torvalds + +commit 69cf0fac6052c5bd3fb3469a41d4216e926028f8 +Author: Hugh Dickins +Date: Mon Apr 17 22:46:32 2006 +0100 + + [PATCH] Fix MADV_REMOVE protection checking + + madvise_remove needs to respect file and mmap protections. + + Signed-off-by: Hugh Dickins + [ Will the real CVE-2006-1524 stand up, please.. ] + Signed-off-by: Linus Torvalds + +commit d2c962b8530b84f4e035df8ade7e35f353a57cbe +Author: Stephen Hemminger +Date: Mon Apr 17 17:27:11 2006 -0700 + + [IPV4]: ip_route_input panic fix + + This fixes http://bugzilla.kernel.org/show_bug.cgi?id=6388 + The bug is caused by ip_route_input dereferencing skb->nh.protocol of + the dummy skb passed dow from inet_rtm_getroute (Thanks Thomas for seeing + it). It only happens if the route requested is for a multicast IP + address. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit b78b6af66a5fbaf17d7e6bfc32384df5e34408c8 +Author: Hugh Dickins +Date: Wed Apr 12 14:34:27 2006 -0700 + + [PATCH] shmat: stop mprotect from giving write permission to a readonly attachment (CVE-2006-1524) + + I found that all of 2.4 and 2.6 have been letting mprotect give write + permission to a readonly attachment of shared memory, whether or not IPC + would give the caller that permission. + + SUS says "The behaviour of this function [mprotect] is unspecified if the + mapping was not established by a call to mmap", but I don't think we can + interpret that as allowing it to subvert IPC permissions. + + I haven't tried 2.2, but the 2.2.26 source looks like it gets it right; and + the patch below reproduces that behaviour - mprotect cannot be used to add + write permission to a shared memory segment attached readonly. + + This patch is simple, and I'm sure it's what we should have done in 2.4.0: + if you want to go on to switch write permission on and off with mprotect, + just don't attach the segment readonly in the first place. + + However, we could have accumulated apps which attach readonly (even though + they would be permitted to attach read/write), and which subsequently use + mprotect to switch write permission on and off: it's not unreasonable. + + I was going to add a second ipcperms check in do_shmat, to check for + writable when readonly, and if not writable find_vma and clear VM_MAYWRITE. + But security_ipc_permission might do auditing, and it seems wrong to + report an attempt for write permission when there has been none. Or we + could flag the vma as SHM, note the shmid or shp in vm_private_data, and + then get mprotect to check. + + But the patch below is a lot simpler: I'd rather stick with it, if we can + convince ourselves somehow that it'll be safe. + + Signed-off-by: Hugh Dickins + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit ca1e0484d9fe8a9048ac32b0f9894545f43704e8 +Author: Mike Miller +Date: Mon Apr 10 15:38:07 2006 -0700 + + [PATCH] cciss: bug fix for crash when running hpacucli + + Fix a crash when running hpacucli with multiple logical volumes on a cciss + controller. We were not properly initializing the disk->queue and causing + a fault. + + Thanks to Hasso Tepper for reporting the problem. Thanks to Steve Cameron + for root causing the problem. Most of the patch just moves things around. + The fix is a one-liner. + + Signed-off-by: Mike Miller + Signed-off-by: Stephen Cameron + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 75616cf9854b83eb83a968b1338ae0ee11c9673c +Author: Ananiev, Leonid I +Date: Mon Apr 10 22:54:38 2006 -0700 + + [PATCH] ext3: Fix missed mutex unlock + + Missed unlock_super()call is added in error condition code path. + + Signed-off-by: Leonid Ananiev + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 2436f039d26a91e5404974ee0cb789b17db46168 +Author: Stephen Rothwell +Date: Mon Apr 10 00:17:20 2006 -0700 + + [PATCH] Fix block device symlink name + + As noted further on the this file, some block devices have a / in their + name, so fix the "block:..." symlink name the same as the /sys/block name. + + Signed-off-by: Stephen Rothwell + Cc: Al Viro + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 66e0a9888b774af625ce544f7c6597c7506d07db +Author: Randy Dunlap +Date: Wed Apr 5 12:03:45 2006 -0700 + + [PATCH] isd200: limit to BLK_DEV_IDE + + Limit USB_STORAGE_ISD200 to whatever BLK_DEV_IDE and USB_STORAGE + are set to (y, m) since isd200 calls ide_fix_driveid() in the + BLK_DEV_IDE code. + + Signed-off-by: Randy Dunlap + Signed-off-by: Greg Kroah-Hartman + +commit 5fdfd42e3a69e8a686fcfb6381616464945471e8 +Author: David S. Miller +Date: Mon Apr 17 13:34:44 2006 -0700 + + [SPARC64]: Export pcibios_resource_to_bus(). + + SYM2 driver uses it. + + Signed-off-by: David S. Miller + +commit 67ab7f596b6adbaef5abc539dbee822e298a36e1 +Author: Russell King +Date: Sat Apr 15 20:46:11 2006 +0100 + + [SERIAL] Update serial driver documentation + + Improve serial driver documentation: + - Remove CVS id. + - Update pointer to reference driver documentation. + - Add comments about new uart_write_console function. + - Add TIOCM_LOOP modem control bit description. + - Add commentry about enable_ms method being called multiple times. + - Add commentry about startup/shutdown method calling. + - Mention that dereferencing port->info after shutdown is invalid. + + Signed-off-by: Russell King + +commit 463b158aab247b600e4e93614b7b8f42a66331c9 +Author: Nicolas Pitre +Date: Sat Apr 15 16:10:43 2006 +0100 + + [ARM] 3477/1: ARM EABI: undefine removed syscalls + + Patch from Nicolas Pitre + + Avoid confusion for libraries assuming that a given syscall is available + when corresponding symbol is defined. + + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit 2c5362007bc0a46461a9d94958cdd53bb027004c +Author: David Brownell +Date: Fri Apr 14 18:05:38 2006 -0700 + + Fix AT91RM9200 build breakage + + The at91_cf driver got out of sync with certain changes in the PCMCIA + layer, notably getting rid of some duplication of data ... causing the + version merged to kernel.org to fail compiling. + + This patch gives the at91_cf platform device a new iomem resource, using + it so this new pcmcia scheme works. It also cleans up some whitepsace + bugs that have accumulated over time (mostly too-long lines). + + Signed-off-by: David Brownell + Signed-off-by: Linus Torvalds + +commit 64541d19702cfdb7ea946fdc20faee849f6874b1 +Author: Eric W. Biederman +Date: Fri Apr 14 12:43:15 2006 -0600 + + [PATCH] kill unushed __put_task_struct_cb + + Somehow in the midst of dotting i's and crossing t's during + the merge up to rc1 we wound up keeping __put_task_struct_cb + when it should have been killed as it no longer has any users. + Sorry I probably should have caught this while it was + still in the -mm tree. + + Having the old code there gets confusing when reading + through the code and trying to understand what is + happening. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Linus Torvalds + +commit 1f60245479ca6d4d3f2cf4a47c7dd18caf5afdf2 +Author: H. Peter Anvin +Date: Fri Apr 14 17:25:30 2006 -0700 + + [efficeon-agp] Add missing memory mask + + Original patch by Benjamin Herrenschmidt after debugging by Brian Hinz. + + Cc: Benjamin Herrenschmidt + Cc: Brian Hinz + Signed-off-by: H. Peter Anvin + Signed-off-by: Linus Torvalds + +commit 3d9dd7564d5d7c28eb87b14c13a23806484667f3 +Author: Zach Brown +Date: Fri Apr 14 16:04:18 2006 -0700 + + [PATCH] ip_output: account for fraggap when checking to add trailer_len + + During other work I noticed that ip_append_data() seemed to be forgetting to + include the frag gap in its calculation of a fragment that consumes the rest of + the payload. Herbert confirmed that this was a bug that snuck in during a + previous rework. + + Signed-off-by: Zach Brown + Signed-off-by: David S. Miller + +commit 08d099974a09faf4cb11ffc46da87073fa132fc0 +Author: Linus Walleij +Date: Fri Apr 14 16:03:33 2006 -0700 + + [IRDA]: smsc-ircc2, smcinit support for ALi ISA bridges + + From: Linus Walleij + + This patch enables support for ALi ISA bridges when we run the smcinit + code. It is needed to properly configure some Toshiba laptops. + + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 269690ac164fc0a7c2de03e7e0d2f554104d1516 +Author: Samuel Ortiz +Date: Fri Apr 14 16:02:07 2006 -0700 + + [IRDA]: irda-usb, unregister netdev when patch upload fails + + In the STIR421x case, when the firmware upload fails, we need to + unregister_netdev. Otherwise we hit a BUG on free_netdev(), if sysfs + is enabled. + + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 4909e488f65fc729fc0f8d42bd1600c56a8bd83c +Author: Stephen Hemminger +Date: Fri Apr 14 16:01:26 2006 -0700 + + [ATM] clip: add module info + + Add module information + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 5ff765f3d0b9367319d29ab0c0f55349da2fd53e +Author: Stephen Hemminger +Date: Fri Apr 14 16:00:59 2006 -0700 + + [ATM] clip: notifier related cleanups + + Cleanup some code around notifier. Don't need (void) casts to ignore + return values, and use C90 style initializer. Just ignore unused device + events. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit dcdb02752ff13a64433c36f2937a58d93ae7a19e +Author: Stephen Hemminger +Date: Fri Apr 14 16:00:25 2006 -0700 + + [ATM] clip: get rid of PROC_FS ifdef + + Don't need the ifdef here since create_proc_entry() is stubbed to + always return NULL. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit e49e76db031fdfaadb4907a319ea3a1dc9d2925f +Author: Stephen Hemminger +Date: Fri Apr 14 15:59:37 2006 -0700 + + [ATM] clip: run through Lindent + + Run CLIP driver through Lindent script to fix formatting. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 2d9073922bc73f8cb847ce354f0896205f6981a1 +Author: Stephen Hemminger +Date: Fri Apr 14 15:56:02 2006 -0700 + + [ATM]: Clip timer race. + + By inspection, the clip idle timer code is racy on SMP. + Here is a safe version of timer management. + Untested, I don't have ATM hardware. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 5ecdd0f67c624714ccd5358e1cc88324f86f0e10 +Author: Sam Ravnborg +Date: Fri Apr 14 23:54:13 2006 +0200 + + kbuild: fix false section mismatch warnings + + Darren Jenkins pointed out a + number of false positives where we referenced variables + from a _driver variable. + Fix it by check for that pattern and ignore it. + + Randy.Dunlap pointed out a similar + set of warnings for a number of scsi drivers. + In scsi world they misname their variables *_template or + *_sht so add these to list of variables that may have references + to .init.text with no warning. + + Randy.Dunlap also pointed out a scsi driver + with many references to .exit.text from .rodata. This is compiler + generated references and we already ignore these for .init.text, so + ignore them for .exit.text also. + + Signed-off-by: Sam Ravnborg + +commit 5fdef394953d8660c70cc27b27db421582c42bf9 +Author: David S. Miller +Date: Fri Apr 14 15:29:32 2006 -0700 + + [SPARC]: Hook up sys_tee() into syscall tables. + + Signed-off-by: David S. Miller + +commit f3a0592b37b83e56a7f47826f552b35a2c3b2fc9 +Author: Stephen Hemminger +Date: Fri Apr 14 15:07:27 2006 -0700 + + [ATM]: clip causes unregister hang + + If Classical IP over ATM module is loaded, its neighbor table gets + populated when permanent neighbor entries are created; but these entries + are not flushed when the device is removed. Since the entry never gets + flushed the unregister of the network device never completes. + + This version of the patch also adds locking around the reference to + the atm arp daemon to avoid races with events and daemon state changes. + (Note: barrier() was never really safe) + + Bug-reference: http://bugzilla.kernel.org/show_bug.cgi?id=6295 + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit b8a99520f78e23e47f9efffeb0060c1385064ff6 +Author: Jamal Hadi Salim +Date: Fri Apr 14 15:05:16 2006 -0700 + + [XFRM]: Add documentation for async events. + + Documentation to describe asynchronous xfrm events to help people + writting HA code in user space. + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit 2717096ab41eacdbf07352dca6826b59470eb39a +Author: Jamal Hadi Salim +Date: Fri Apr 14 15:03:05 2006 -0700 + + [XFRM]: Fix aevent timer. + + Send aevent immediately if we have sent nothing since last timer and + this is the first packet. + + Fixes a corner case when packet threshold is very high, the timer low + and a very low packet rate input which is bursty. + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit 6c97e72a162648eaf7c401cfc139493cefa6bed2 +Author: Adrian Bunk +Date: Wed Apr 12 13:57:59 2006 -0700 + + [IPV4]: Possible cleanups. + + This patch contains the following possible cleanups: + - make the following needlessly global function static: + - arp.c: arp_rcv() + - remove the following unused EXPORT_SYMBOL's: + - devinet.c: devinet_ioctl + - fib_frontend.c: ip_rt_ioctl + - inet_hashtables.c: inet_bind_bucket_create + - inet_hashtables.c: inet_bind_hash + - tcp_input.c: sysctl_tcp_abc + - tcp_ipv4.c: sysctl_tcp_tw_reuse + - tcp_output.c: sysctl_tcp_mtu_probing + - tcp_output.c: sysctl_tcp_base_mss + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit 7676f83aeb774e7a3abe6af06ec92b29488b5b79 +Author: James Bottomley +Date: Fri Apr 14 09:47:59 2006 -0500 + + [SCSI] scsi_transport_sas: don't scan a non-existent end device + + Any end device that can't support any of the scanning protocols + shouldn't be scanned, so set its id to -1 to prevent + scsi_scan_target() being called for it. + + Signed-off-by: James Bottomley + +commit 78a596b4490e17b9990d87b9d468ef5bb70daa10 +Author: Adrian Bunk +Date: Fri Mar 31 01:38:12 2006 -0800 + + [PATCH] remove kernel/power/pm.c:pm_unregister() + + Since the last user is removed in -mm, we can now remove this long deprecated + function. + + Signed-off-by: Adrian Bunk + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 21440d313358043b0ce5e43b00ff3c9b35a8616c +Author: David Brownell +Date: Sat Apr 1 10:21:52 2006 -0800 + + [PATCH] dma doc updates + + This updates the DMA API documentation to address a few issues: + + - The dma_map_sg() call results are used like pci_map_sg() results: + using sg_dma_address() and sg_dma_len(). That's not wholly obvious + to folk reading _only_ the "new" DMA-API.txt writeup. + + - Buffers allocated by dma_alloc_coherent() may not be completely + free of coherency concerns ... some CPUs also have write buffers + that may need to be flushed. + + - Cacheline coherence issues are now mentioned as being among issues + which affect dma buffers, and complicate/prevent using of static and + (especially) stack based buffers with the DMA calls. + + I don't think many drivers currently need to worry about flushing write + buffers, but I did hit it with one SOC using external SDRAM for DMA + descriptors: without explicit writebuffer flushing, the on-chip DMA + controller accessed descriptors before the CPU completed the writes. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 2d1e1c754d641bb8a32f0ce909dcff32906830ef +Author: Jean Delvare +Date: Sat Apr 1 16:46:35 2006 +0200 + + [PATCH] PCI: Add PCI quirk for SMBus on the Asus A6VA notebook + + The Asus A6VA notebook was reported to need a PCI quirk to unhide + the SMBus. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 40d8b89b06cd03c2856eafb94a1f11d5a113a9d4 +Author: Grzegorz Janoszka +Date: Tue Mar 21 11:57:19 2006 +0100 + + [PATCH] arch/i386/pci/irq.c - new VIA chipsets (fwd) + + I use 2.6.15.6 Linux kernel and found some problems. I have about 100 + Linux boxes (all with the same (binary the same) kernel). Last time I have + upgraded all those boxes from 2.4.32 to 2.6.15.6 (first 2.6.15.1, next .2, + .4 and .6) and I have found some problems on VIA based PC's. Probably the + reason of this is that some VIA chipsets are unrecognized by IRQ router. + + In line 586 there is: /* FIXME: add new ones for 8233/5 */ + + There were only a few of chipsets ID's there, some of my VIA chipsets were + not present and kernel used default IRQ router. + + I have added three entries, so that the code looks like: + + case PCI_DEVICE_ID_VIA_82C596: + case PCI_DEVICE_ID_VIA_82C686: + case PCI_DEVICE_ID_VIA_8231: + case PCI_DEVICE_ID_VIA_8233A: + case PCI_DEVICE_ID_VIA_8235: + case PCI_DEVICE_ID_VIA_8237: + case PCI_DEVICE_ID_VIA_8237_SATA: + /* FIXME: add new ones for 8233/5 */ + r->name = "VIA"; + r->get = pirq_via_get; + r->set = pirq_via_set; + return 1; + } + + The kernel goes fine but I haven't testes it for weeks, I'm just a moment + after reboot :) + One thing is different (better?): + Using previus kernel I had: + PCI: Via IRQ fixup for 0000:00:0f.1, from 255 to 0 + now I have: + PCI: Via IRQ fixup for 0000:00:0f.1, from 255 to 11 + + Maybe it is good idea to add there some more VIA chipsets? + The ones I have added seem to be OK. + + From: Grzegorz Janoszka + Acked-by: Martin Mares + Signed-off-by: Greg Kroah-Hartman + +commit e6ad00576f8896b8209ba7ff47b23661614be64c +Author: John Rose +Date: Thu Mar 23 14:21:14 2006 -0600 + + [PATCH] PCI: rpaphp: remove init error condition + + The init function for the RPA PCI Hotplug driver returns -ENODEV in the + case that no hotplug-capable slots are detected in the system. This is + bad, since hot-capable slots can be added after boot to a purely virtual + POWER partition. This is also bad because DLPAR I/O operations depend + on the rpaphp module. + + Change the rpaphp init module to return success for the case of + partitions that own no hotplug-capable slots at boot. Such slots can be + dynamically added after boot. + + Signed-off-by: John Rose + Signed-off-by: Greg Kroah-Hartman + +commit e778272dd547d53dedf92240e8b3dbdee44b87b6 +Author: Roland Dreier +Date: Thu Mar 30 12:55:10 2006 -0800 + + [PATCH] PCI: fix sparse warning about pci_bus_flags + + Sparse warns about casting to a __bitwise type. However, it's correct + to do when defining the enum for pci_bus_flags_t, so add a __force to + quiet the warnings. This will fix getting + + include/linux/pci.h:100:26: warning: cast to restricted type + + from sparse all over the build. + + Signed-off-by: Roland Dreier + Signed-off-by: Greg Kroah-Hartman + +commit 5da594b1c523dffa19ebe7630e1ca285f439bd03 +Author: John W. Linville +Date: Mon Mar 20 14:33:56 2006 -0500 + + [PATCH] pci_ids.h: correct naming of 1022:7450 (AMD 8131 Bridge) + + The naming of the constant defined for PCI ID 1022:7450 does not seem + to match the information at http://pciids.sourceforge.net/: + + http://pci-ids.ucw.cz/iii/?i=1022 + + There 1022:7450 is listed as "AMD-8131 PCI-X Bridge" while 1022:7451 + is listed as "AMD-8131 PCI-X IOAPIC". Yet, the current definition for + 0x7450 is PCI_DEVICE_ID_AMD_8131_APIC. It seems to me like that name + should map to 0x7451, while a name like PCI_DEVICE_ID_AMD_8131_BRIDGE + should map to 0x7450. + + Signed-off-by: John W. Linville + Signed-off-by: Greg Kroah-Hartman + +commit 41017f0cac925e4a6bcf3359b75e5538112d4216 +Author: Shaohua Li +Date: Wed Feb 8 17:11:38 2006 +0800 + + [PATCH] PCI: MSI(X) save/restore for suspend/resume + + Add MSI(X) configure sapce save/restore in generic PCI helper. + + Signed-off-by: Shaohua Li + Signed-off-by: Greg Kroah-Hartman + +commit 4f705ae3e94ffaafe8d35f71ff4d5c499bb06814 +Author: Bjorn Helgaas +Date: Mon Apr 3 17:09:22 2006 -0700 + + [PATCH] DMI: move dmi_scan.c from arch/i386 to drivers/firmware/ + + dmi_scan.c is arch-independent and is used by i386, x86_64, and ia64. + Currently all three arches compile it from arch/i386, which means that ia64 + and x86_64 depend on things in arch/i386 that they wouldn't otherwise care + about. + + This is simply "mv arch/i386/kernel/dmi_scan.c drivers/firmware/" (removing + trailing whitespace) and the associated Makefile changes. All three + architectures already set CONFIG_DMI in their top-level Kconfig files. + + Signed-off-by: Bjorn Helgaas + Cc: Andi Kleen + Cc: "Luck, Tony" + Cc: Andrey Panin + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 026694920579590c73b5c56705d543568ed5ad41 +Author: Andrew Morton +Date: Thu Mar 23 01:38:34 2006 -0800 + + [PATCH] pm: print name of failed suspend function + + Print more diagnostic info to help identify the source of power management + suspend failures. + + Example: + + usb_hcd_pci_suspend(): pci_set_power_state+0x0/0x1af() returns -22 + pci_device_suspend(): usb_hcd_pci_suspend+0x0/0x11b() returns -22 + suspend_device(): pci_device_suspend+0x0/0x34() returns -22 + + Work-in-progress. It needs lots more suspend_report_result() calls sprinkled + everywhere. + + Cc: Patrick Mochel + Cc: Pavel Machek + Cc: Nigel Cunningham + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 372254018eb1b65ee69210d11686bfc65c8d84db +Author: Ryan Wilson +Date: Wed Mar 22 16:26:25 2006 -0500 + + [PATCH] driver core: driver_bind attribute returns incorrect value + + The manual driver <-> device binding attribute in sysfs doesn't return + the correct value on failure or success of driver_probe_device. + driver_probe_device returns 1 on success (the driver accepted the + device) or 0 on probe failure (when the driver didn't accept the + device but no real error occured). However, the attribute can't just + return 0 or 1, it must return the number of bytes consumed from buf + or an error value. Returning 0 indicates to userspace that nothing + was written (even though the kernel has tried to do the bind/probe and + failed). Returning 1 indicates that only one character was accepted in + which case userspace will re-try the write with a partial string. + + A more correct version of driver_bind would return count (to indicate + the entire string was consumed) when driver_probe_device returns 1 + and -ENODEV when driver_probe_device returns 0. This patch makes that + change. + + Signed-off-by: Ryan Wilson + Signed-off-by: Greg Kroah-Hartman + +commit a14388904ca67197c9a531dba2358d8131697865 +Author: Jayachandran C +Date: Mon Apr 3 12:31:53 2006 -0700 + + [PATCH] driver core: fix unnecessary NULL check in drivers/base/class.c + + This patch tries to fix an issue in drivers/base/class.c, please + review and apply if correct. + + Patch Description: + "parent_class" is checked for NULL already, so removed the unnecessary + check. + + Signed-off-by: Jayachandran C. + Signed-off-by: Greg Kroah-Hartman + +commit d4d7e5dffc4844ef51fe11f497bd774c04413a00 +Author: Kay Sievers +Date: Fri Mar 24 20:45:35 2006 +0100 + + [PATCH] BLOCK: delay all uevents until partition table is scanned + + [BLOCK] delay all uevents until partition table is scanned + + Here we delay the annoucement of all block device events until the + disk's partition table is scanned and all partition devices are already + created and sysfs is populated. + + We have a bunch of old bugs for removable storage handling where we + probe successfully for a filesystem on the raw disk, but at the + same time the kernel recognizes a partition table and creates partition + devices. + Currently there is no sane way to tell if partitions will show up or not + at the time the disk device is announced to userspace. With the delayed + events we can simply skip any probe for a filesystem on the raw disk when + we find already present partitions. + + Signed-off-by: Kay Sievers + Signed-off-by: Greg Kroah-Hartman + +commit 0f836ca4c122f4ef096110d652a6326fe34e6961 +Author: Alan Stern +Date: Fri Mar 31 11:52:25 2006 -0500 + + [PATCH] driver core: safely unbind drivers for devices not on a bus + + This patch (as667) changes the __device_release_driver() routine to + prevent it from crashing when it runs across a device not on any bus. + This seems logical, inasmuch as the corresponding bus_add_device() + routine has an explicit check allowing it to accept such devices. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 4508a7a734b111b8b7e39986237d84acb1168dd0 +Author: NeilBrown +Date: Mon Mar 20 17:53:53 2006 +1100 + + [PATCH] sysfs: Allow sysfs attribute files to be pollable + + It works like this: + Open the file + Read all the contents. + Call poll requesting POLLERR or POLLPRI (so select/exceptfds works) + When poll returns, + close the file and go to top of loop. + or lseek to start of file and go back to the 'read'. + + Events are signaled by an object manager calling + sysfs_notify(kobj, dir, attr); + + If the dir is non-NULL, it is used to find a subdirectory which + contains the attribute (presumably created by sysfs_create_group). + + This has a cost of one int per attribute, one wait_queuehead per kobject, + one int per open file. + + The name "sysfs_notify" may be confused with the inotify + functionality. Maybe it would be nice to support inotify for sysfs + attributes as well? + + This patch also uses sysfs_notify to allow /sys/block/md*/md/sync_action + to be pollable + + Signed-off-by: Neil Brown + Signed-off-by: Greg Kroah-Hartman + +commit e97b81ddbb8b8c72b85330ac4a454a4513dcba8a +Author: Mark M. Hoffman +Date: Thu Mar 23 16:50:25 2006 +0100 + + [PATCH] i2c-parport: Make type parameter mandatory + + This patch forces the user to specify what type of adapter is present when + loading i2c-parport or i2c-parport-light. If none is specified, the driver + init simply fails - instead of assuming adapter type 0. + + This alleviates the sometimes lengthy boot time delays which can be caused + by accidentally building one of these into a kernel along with several i2c + slave drivers that have lengthy probe routines (e.g. hwmon drivers). + + Kconfig and documentation updated accordingly. + + Signed-off-by: Mark M. Hoffman + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 3cb8e1a92ef7588d3acdecf493ddddd0dd71a709 +Author: Mark M. Hoffman +Date: Thu Mar 23 16:49:34 2006 +0100 + + [PATCH] i2c-sis96x: Remove an init-time log message + + This patch removes an init-time kernel log message. + http://marc.theaimsgroup.com/?l=linux-kernel&m=114232987208628&w=3 + + Signed-off-by: Mark M. Hoffman + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit ac987c1f65cedd98d953e14ba219db2f8cc009d4 +Author: Jean Delvare +Date: Thu Mar 23 16:38:21 2006 +0100 + + [PATCH] w83792d: Be quiet on misdetection + + Make the w83792d driver keep quiet when misdetecting a chip. This can + happen, and the user doesn't need to know. + + Also renumber the messages, and add one, for consistency. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 8c750c0bd2fa6f73cd3cd3f1a58d48f94de343b6 +Author: Mark A. Greer +Date: Fri Mar 31 23:06:03 2006 +0200 + + [PATCH] i2c: convert m41t00 to use a workqueue + + The m41t00 i2c/rtc driver currently uses a tasklet to schedule + interrupt-level writes to the rtc. This patch causes the driver + to use a workqueue instead. + + Signed-off-by: Mark A. Greer + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 524465df2accf54604cb89c04dbaab0c8aaa5bb4 +Author: Jean Delvare +Date: Fri Mar 31 23:05:01 2006 +0200 + + [PATCH] i2c: convert ds1374 to use a workqueue + + A tasklet is not suitable for what the ds1374 driver does: neither sleeping + nor mutex operations are allowed in tasklets, and ds1374_set_tlet may do + both. + + We can use a workqueue instead, where both sleeping and mutex operations + are allowed. + + Signed-off-by: Jean Delvare + Acked-by: Randy Vinson + Signed-off-by: Greg Kroah-Hartman + +commit f9814802dfec8feaf51ba873d7eac1a05ee65842 +Author: Greg Kroah-Hartman +Date: Thu Apr 13 08:09:52 2006 -0700 + + [PATCH] USB: add driver for funsoft usb serial device + + Cc: David Clare + Signed-off-by: Greg Kroah-Hartman + +commit 69a4bf7c9525e5c92c0ecda0db0373f30162b28f +Author: Paul Fulghum +Date: Wed Apr 12 23:41:59 2006 +0200 + + [PATCH] USB: remove __init from usb_console_setup + + This prevents an Oops if booted with "console=ttyUSB0" but without a + USB-serial dongle, and plugged one in afterwards. + + Signed-off-by: Greg Kroah-Hartman + +commit e853bf4af372afdae732c48be04a6b154f2de3d4 +Author: Tomasz Kazmierczak +Date: Thu Apr 6 22:07:12 2006 +0200 + + [PATCH] USB: pl2303: added support for OTi's DKU-5 clone cable + + This patch adds support for a clone of Nokia DKU-5 cable made by + Ours Technology Inc for Nokia phones with PopPort (Nokia 3100 and others). + The cable uses PL2303 USB-to-serial converter from Prolific Technology Inc. + + Signed-off-by: Tomasz Kazmierczak + Signed-off-by: Greg Kroah-Hartman + +commit 3799c40189570133f9bb3176be24f0edb0e823c6 +Author: Ben Dooks +Date: Sun Apr 2 01:45:00 2006 +0100 + + [PATCH] USB: S3C2410: use clk_enable() to ensure 48MHz to OHCI core + + Get the "usb-bus" clock and ensure it is enabled + when the OHCI core is in use. + + It seems that a few bootloaders do not enable the + UPLL at startup, which stops the OHCI core having + a 48MHz bus clock. The improvements to the clock + framework for the s3c24xx now allow the USB PLL + to be started and stopped when being used. + + Signed-off-by: Ben Dooks + Signed-off-by: Greg Kroah-Hartman + +commit bfb25849f00d0b8453191ee12125738b5f5c9146 +Author: Jeffrey Vandenbroucke sign +Date: Tue Mar 28 15:21:36 2006 -0800 + + [PATCH] hid-core.c: fix "input irq status -32 received" for Silvercrest USB Keyboard + + When not using this patch, the kernel will continuously return "input irq + status -32 received", while making the keyboard unusable. This can be + easely resolved using HID_QUIRK_NOGET. Vendor-ID and Device-ID should be + applied to hid-core.c, and making an entry to make use of it. + + Signed-off-by: Jeffrey Vandenbroucke + Cc: Alan Stern + Cc: Greg KH + Cc: David Brownell + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 8e32640672bdcb01e0d83f087f09dd65fcbc3275 +Author: Alan Stern +Date: Tue Apr 4 14:47:44 2006 -0400 + + [PATCH] USB: UHCI: don't track suspended ports + + Someone recently posted a bug report where it turned out that uhci-hcd + was disagreeing with the UHCI controller over whether or not a port was + suspended: The driver thought it wasn't and the hardware thought it was. + This patch (as665) fixes the problem and simplifies the driver by + removing the internal state-tracking completely. Now the driver just + asks the hardware whether a port is suspended. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 01e89506351b84ac6f39eb70f99c71483768ca60 +Author: Michael Downey +Date: Mon Apr 3 08:58:07 2006 -0600 + + [PATCH] USB: keyspan-remote bugfix + + Signed-off-by: Michael Downey + Signed-off-by: Greg Kroah-Hartman + +commit 48b1be6ac080c3bb5ad3e529d8816953507790ab +Author: David Hollis +Date: Tue Mar 28 20:15:42 2006 -0500 + + [PATCH] USB: Rename ax8817x_func() to asix_func() and add utility functions to reduce bloat + + Now that the ASIX code is supporting more than just the AX88172 devices, + make the utility function names more generic: ax8817x_func -> asix_func. + Functions that are chip specific now indicate as such: ax88772_func. + + Additionally, pull some common routines used in initialization and such + into simple functions to reduce the verbosity of certain functions such + as + the bind() routines and to make the error handling consistent across the + board. + + Signed-off-by: David Hollis + Signed-off-by: Greg Kroah-Hartman + +commit 9fc4831cc3e063019079581ff5062f9790d9b0c7 +Author: Pete Zaitcev +Date: Sun Apr 2 10:21:26 2006 -0800 + + [PATCH] USB: linux/usb/net2280.h common definitions + + Move common definitions for NET2280 to , so that I can + use them in prism54usb (it is not merged yet, but I plan to do it soon). + + Signed-off-by: Pete Zaitcev + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit e1394b49ee70bd8686acaf969e4d61b57da1c263 +Author: David Brownell +Date: Sun Apr 2 10:20:43 2006 -0800 + + [PATCH] USB: g_ether, highspeed conformance fix + + Be sure to record the peripheral's ep0 maxpacket size BEFORE using + that to initialize the (high speed) device qualifier; that helps a + lot with USBCV testing. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 8b5249019352eecd49fb00004d583904e891e7b1 +Author: David Brownell +Date: Sun Apr 2 10:20:15 2006 -0800 + + [PATCH] USB: usbtest: scatterlist OUT data pattern testing + + Previously, scatterlist tests didn't write patterned data. Given how many + corner cases are addresed by them, this was a significant gap in Linux-USB + test coverage. Moreover, when peripherals checked for correct data patterns, + false error reports would drown out the true ones. + + This adds the pattern on the way OUT from the host, so scatterlist tests can + now be used to uncover bugs like host TX or peripheral RX paths failing for + back-to-back short packets. It's easy enough to get an error there with at + least one of the {DMA,PIO}{RX,TX} code paths, or run into hardware races + that need to be defended against. + + Note this patch doesn't add checking for correct data patterns on the way + IN from peripherals, just a FIXME for later. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 68ba61b89c10b3412c7ee05cd649303ba5a588d1 +Author: David Brownell +Date: Sun Apr 2 20:26:21 2006 -0800 + + [PATCH] USB: at91 usb driver supend/resume fixes + + AT91: the two USB drivers (OHCI, UDC) got out of sync with various + usbcore and driver model PM updates; fix. + + Also minor fixes to ohci: whitespace/style, MODULE_ALIAS so coldplug works + using /sys/.../modalias, and turn off _both_ clocks during suspend. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 35fcca442aca1a8d927b697e7e15d3f655958bd7 +Author: David Brownell +Date: Sun Apr 2 10:19:43 2006 -0800 + + [PATCH] USB: gadget zero poisons OUT buffers + + Fill OUT buffers with 0x55 before RX, so that controller driver + bugs that mangle data can be more readily detected during testing. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 984163338a24198863116ccf3e7762fd1fc3c663 +Author: David Brownell +Date: Sun Apr 2 10:19:23 2006 -0800 + + [PATCH] USB: gadgetfs highspeed bugfix + + This catches up to a change in the Kconfig support for highspeed modes; + the change predated 2.6.10, and anyone using gadgetfs on a highspeed + device would see the kernel wrongly reject the alternate descriptors. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 51400f1d6ef7ca871b584117527f7c6b12bf182b +Author: David Brownell +Date: Sun Apr 2 10:19:08 2006 -0800 + + [PATCH] USB: rndis_host whitespace/comment updates + + This adds a "avoid proprietary protocols" warnoff, identifying several + of the known deficiencies in Microsoft's excuse-for-specification, and + fixes some whitespace bugs. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 68dcc688d1f042842a8fb523e4a584b3211181d1 +Author: David Brownell +Date: Sun Apr 2 10:18:53 2006 -0800 + + [PATCH] USB: net2280 short rx status fix + + Some patch broke short-OUT packet handling for net2280, making it report + illegal status values. This updates the status code so it's correct. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 42795410c325108d59d0b1e750657197a7374c04 +Author: David Brownell +Date: Sun Apr 2 10:18:34 2006 -0800 + + [PATCH] USB: fix gadget_is_musbhdrc() + + I submitted the wrong version of the patch teaching about the driver + for Mentor's Highspeed Dual Role Controller (HDRC), whoops! This + uses the right name for that driver. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 89ccbdc91bc5a433fa256c0136fbe181d7c5d474 +Author: David Brownell +Date: Sun Apr 2 10:18:09 2006 -0800 + + [PATCH] USB: otg hub support is optional + + USB OTG devices are not required to support external hubs. This adds a + configuration option to disable that support. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 4d45e21867bee51e3bb42e95bc2929231d7c8192 +Author: matthieu castet +Date: Sun Apr 2 18:45:46 2006 +0200 + + [PATCH] USB: UEAGLE : memory leack fix + + this patch fix leak of memory allocated to intr if allocation of + sc->urb_int fails. + Found by the Coverity checker. + + Signed-off-by: Duncan Sands + Signed-off-by: Matthieu CASTET + Signed-off-by: Greg Kroah-Hartman + +commit 584958c3d2985396bdb6f96ae632971b43f6f984 +Author: matthieu castet +Date: Sun Apr 2 18:44:48 2006 +0200 + + [PATCH] USB: UEAGLE : null pointer dereference fix + + this patch fix potential null pointer dereference. Found by the + Coverity checker. + + Signed-off-by: Duncan Sands + Signed-off-by: Matthieu CASTET + Signed-off-by: Greg Kroah-Hartman + +commit 22fcceb546227a4c557d1844c1796c13a5086c9f +Author: matthieu castet +Date: Sun Apr 2 18:44:20 2006 +0200 + + [PATCH] USB: UEAGLE : support geode + + - increase ack timeout for slow system (geode 233MHz where HZ=100) + - reset the cmv ack flag when rebooting + + Signed-off-by: Matthieu CASTET + Signed-off-by: Greg Kroah-Hartman + +commit 2a99b50719d3bff0a090fa8daf56d519c338296c +Author: matthieu castet +Date: Sun Apr 2 18:43:53 2006 +0200 + + [PATCH] USB: UEAGLE : cosmetic + + - improve debug trace in order to make easy to solve user problems. + - indent some code + - increase version number + + Signed-off-by: Matthieu CASTET + Signed-off-by: Greg Kroah-Hartman + +commit 87ed0aeba8d59fe5d68df8d10ba469d63b254914 +Author: Adrian Bunk +Date: Tue Apr 4 09:56:04 2006 +0200 + + [PATCH] USB: drivers/usb/core/: remove unused exports + + This patch removes the following unused EXPORT_SYMBOL's: + - hub.c: usb_set_device_state + - usb.c: usb_alloc_dev + - usb.c: usb_disconnect + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit 016534cffc5847e2a75b25d10f8c52edec6c8cb7 +Author: Petko Manolov +Date: Thu Mar 30 09:59:22 2006 +0300 + + [PATCH] USB: pegasus driver bugfix + + Attached is a patch that fixes nasty bug, which i am afraid was there + for a long time. It was spotted by Andre Draszik . + + From: Petko Manolov + Signed-off-by: Greg Kroah-Hartman + +commit 999a6a6a2a24cf2e9fafc9b47ee263835f59b4a1 +Author: Ping Cheng +Date: Wed Mar 29 16:34:16 2006 -0800 + + [PATCH] USB: add new wacom devices to usb hid-core list + + This patch adds support for DTF 521, Intuos3 12x12 and 12x19 + + Signed-off-by: Ping Cheng + Acked-by: Vojtech Pavlik + Signed-off-by: Greg Kroah-Hartman + +commit 7d3fe085f9cdd3d3eea0154ea02e2f6b4a8f3974 +Author: Ping Cheng +Date: Wed Mar 29 16:33:49 2006 -0800 + + [PATCH] USB: wacom tablet driver update + + This patch adds support for DTF 521, Intuos3 12x12, and 12x19; + fixes minor data report bugs. + + Signed-off-by: Ping Cheng + Acked-by: Vojtech Pavlik + Signed-off-by: Greg Kroah-Hartman + +commit aafe5bd6ec341edfaf3233d272febbb8862a7251 +Author: Alan Stern +Date: Fri Mar 31 11:46:43 2006 -0500 + + [PATCH] USB: g_file_storage: use module_param_array_named macro + + Randy Dunlap pointed out that there now is a module_param_array_named + macro available. This patch (as666) updates g_file_storage to make use of + it. It also adds a comment listing the specifications documents used in + the design of the driver's SCSI operation (at Pat LaVarre's request). + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 5e32b5767fca231e1c84b84e877a26766c27510f +Author: Daniel Ritz +Date: Sat Apr 1 18:19:28 2006 +0200 + + [PATCH] usb/input: remove Kconfig entries of old touchscreen drivers in favour of usbtouchscreen + + Signed-off-by: Daniel Ritz + Signed-off-by: Greg Kroah-Hartman + +commit 1d3e20236d7a5678d44602171bbd153c57c8c4bc +Author: Daniel Ritz +Date: Wed Mar 29 22:41:07 2006 +0200 + + [PATCH] USB: usbtouchscreen: unified USB touchscreen driver + + A new single driver for various USB touchscreen devices. It currently + supports: + - eGalax TouchKit + - PanJit TouchSet + - 3M/Microtouch + - ITM Touchscreens + + Support for the diffent devices can be enabled/disable when CONFIG_EMBEDDED + is set. + + Sizes for comparision: + text data bss dec hex filename + 2942 724 4 3670 e56 touchkitusb.ko + 2647 660 0 3307 ceb mtouchusb.ko + 2448 628 0 3076 c04 itmtouch.ko + 4145 1012 12 5169 1431 usbtouchscreen.ko + + Signed-off-by: Daniel Ritz + Signed-off-by: Greg Kroah-Hartman + +commit 62a13db346bb6ef80c112d373733d3e873dad90b +Author: Folkert van Heusden +Date: Tue Mar 28 20:41:26 2006 +0900 + + [PATCH] USB: add support for Papouch TMU (USB thermometer) + + This patch adds support for new vendor (papouch) and one of their + devices - TMU (a USB thermometer). + + More information: + vendor homepage: + http://www.papouch.com/en/ + product homepage (Polish): + http://www.papouch.com/shop/scripts/_detail.asp?katcislo=0188 + + This patch is based on the submission from Folkert van Heusden [1]. + Then reviseted by Kalin KOZHUHAROV [2] and retested by Folkert. + + [1] http://article.gmane.org/gmane.linux.kernel/392970 + [2] http://article.gmane.org/gmane.linux.kernel/393386 + + Signed-off-by: Folkert van Heusden + Signed-off-by: Kalin KOZHUHAROV + Signed-off-by: Greg Kroah-Hartman + +commit fb9ac9bda9aee5a42d44f4b503bdbd7c414ac201 +Author: Adrian Bunk +Date: Sat Mar 25 18:03:38 2006 +0100 + + [PATCH] USB: input/: proper prototypes + + This patch adds proper prototypes in a header file for some global + functions. + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit 75e2df603de69dba67dd64ab34a2313fdc52a4dd +Author: Adrian Bunk +Date: Sat Mar 25 18:01:53 2006 +0100 + + [PATCH] USB: pci-quirks.c: proper prototypes + + This patch adds a header file with proper prototypes for two functions + in drivers/usb/host/pci-quirks.c. + + Signed-off-by: Adrian Bunk + Acked-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 1ce7dd26e0f0e34bb75ec56f7f546151af34fcf9 +Author: Luiz Fernando Capitulino +Date: Fri Mar 24 17:12:31 2006 -0300 + + [PATCH] USB serial: Converts port semaphore to mutexes. + + The usbserial's port semaphore used to synchronize serial_open() + and serial_close() are strict mutexes, convert them to the mutex + implementation. + + Signed-off-by: Luiz Capitulino + Signed-off-by: Greg Kroah-Hartman + +commit 14cd5f8e85e90c9dead2393377b9a2c23131e0ce +Author: Alan Stern +Date: Thu Mar 23 15:07:25 2006 -0500 + + [PATCH] USB: g_file_storage: add comment about buffer allocation + + This patch (as664) adds a comment to file_storage.c, noting that the + driver is slightly non-portable because it assumes that a buffer + allocated for a bulk-in endpoint will also be useable for a bulk-out + endpoint. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 70ffe6e14d7c5db84b92841471ce6fd0200010cd +Author: Alan Stern +Date: Thu Mar 23 15:05:16 2006 -0500 + + [PATCH] USB: g_file_storage: Set short_not_ok for bulk-out transfers + + I'm told that some UDC hardware may work better if it knows that + receiving a short packet should always cause an error. Accordingly, + this patch (as663) sets the short_not_ok flag for bulk-out transfers in + g_file_storage. Oddly enough, there are no circumstances where that + driver can legally receive a shorter-than-expected bulk-out packet. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 7e1c0b86aca9d42fa4de3fdad17c57bb462fe1e2 +Author: Ian Abbott +Date: Tue Mar 21 14:55:20 2006 +0000 + + [PATCH] USB: ftdi_sio: add support for Eclo COM to 1-Wire USB adapter + + This patch adds support for the Eclo COM to 1-Wire USB adapter + to the + ftdi_sio driver's device ID table. Details were provided by Martin + Grill on the ftdi-sio-usb-devel mailing list and I (Ian Abbott) + confirmed it matched the INF file in the Eclo's Windows driver package. + + Signed-off-by: Ian Abbott + Signed-off-by: Greg Kroah-Hartman + +commit f096e0434c717d7a2aa1614e0be0d1b7c64bec29 +Author: Ben Dooks +Date: Tue Mar 21 22:54:47 2006 +0000 + + [PATCH] USB: cleanups for ohci-s3c2410.c + + Fix compile errors due to functions not being + defined static + + Signed-off-by: Ben Dooks + Signed-off-by: Greg Kroah-Hartman + +commit 950ee4c8f094feecd3add994a2cf4fd335ca509b +Author: Guennadi Liakhovetski +Date: Sun Mar 19 20:49:14 2006 +0100 + + [PATCH] USB: net2282 and net2280 software compatibility + + Below is a patch to gadgets/net2280.[ch] which adds support for the + net2282 controller. The original code was kindly provided by PLX + Technology, I just merged it with the current net2280 driver in the + kernel. Tested on 2.6.15.6, but only with 2282. I did the merge, so + that the behaviour for the 2280 is unaffected (except for short delays + for extra checks). + + Signed-off-by: G. Liakhovetski + Signed-off-by: Greg Kroah-Hartman + + Support for net2282 in net2280 driver. + +commit f043ca43c1ae354346f72dc5826d820d5619f0b2 +Author: Samuel Thibault +Date: Wed Apr 12 02:21:25 2006 +0200 + + [PATCH] Enhancing accessibility of lxdialog + + For easily getting fairly good accessibility, the TTY cursor should + always be left at the focus location. This patch fixes the checklist by + just having the list refreshed after the dialog box (hence the cursor + position remains in the list). + + Signed-off-by: Samuel Thibault + Signed-off-by: Linus Torvalds + +commit e57a5059846e55d82b86d96dde40e988598601b3 +Author: Roland McGrath +Date: Wed Apr 12 16:30:20 2006 -0700 + + [PATCH] fix non-leader exec under ptrace + + This reverts most of commit 30e0fca6c1d7d26f3f2daa4dd2b12c51dadc778a. + It broke the case of non-leader MT exec when ptraced. + I think the bug it was intended to fix was already addressed by commit + 788e05a67c343fa22f2ae1d3ca264e7f15c25eaf. + + Signed-off-by: Roland McGrath + Acked-by: Oleg Nesterov + Signed-off-by: Linus Torvalds + +commit c06511d12d720b23c8dffff23004f0a888698f20 +Author: Eric W. Biederman +Date: Fri Apr 14 04:05:55 2006 -0600 + + [PATCH] de_thread: Don't change our parents and ptrace flags. + + This is two distinct changes. + - Not changing our real parents. + - Not changing our ptrace parents. + + Not changing our real parents is trivially correct because both tasks + have the same real parents as they are part of a thread group. Now that + we demote the leader to a thread there is no longer any reason to change + it's parentage. + + Not changing our ptrace parents is a user visible change if someone + looks hard enough. I don't think user space applications will care or + even notice. + + In the practical and I think common case a debugger will have attached + to all of the threads using the same ptrace flags. From my quick skim + of strace and gdb that appears to be the case. Which if true means + debuggers will not notice a change. + + Before this point we have already generated a ptrace event in do_exit + that reports the leaders pid has died so de_thread is visible to a + debugger. Which means attempting to hide this case by copying flags + around appears excessive. + + By not doing anything it avoids all of the weird locking issues between + de_thread and ptrace attach, and removes one case from consideration for + fixing the ptrace locking. + + This only addresses Oleg's first concern with ptrace_attach, that of the + problems caused by reparenting. Oleg's second concern is essentially a + race between ptrace_attach and release_task that causes an oops when we + get to force_sig_specific. There is nothing special about de_thread + with respect to that race. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Linus Torvalds + +commit 3c0c25b97c7d020ef07f6366cf1d668a8e980c7c +Author: Moore, Eric +Date: Thu Apr 13 16:08:17 2006 -0600 + + [SCSI] mptfusion - fix panic in mptsas_slave_configure + + Driver panic when RAID logical volume was present when driver + loaded, or when a RAID logical volume was created on the fly. + + This issue was created in due to recent scsi_transport_sas change, + when sas_read_port_mode_page was added into the mptsas drivers + slave_config entry point. + + This new API expects that all sdev's to be assocated to an rphy, however + that is not the case for logical volumes, as they are created using + scsi_add_device, instead of sas_rphy_add(). + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit ace1d816a13ff42d4f41989862552032f9c19853 +Author: Robin Holt +Date: Thu Apr 13 15:34:45 2006 -0700 + + [IA64] Make show_mem() skip holes in a pgdat + + This patch modifies ia64's show_mem() to walk the vmem_map page tables and + rapidly skip forward across regions where the page tables are missing. + This prevents the pfn_valid() check from causing numerous unnecessary + page faults. + + Without this patch on a 512 node 512 cpu system where every node has four + memory holes, the show_mem() call takes 1 hour 18 minutes. With this + patch, it takes less than 3 seconds. + + Signed-off-by: Robin Holt + Signed-off-by: Tony Luck + +commit 356a5c1c6fdfb8eed6dbb3979d90c7cc7060017a +Author: Keith Owens +Date: Tue Apr 11 14:59:41 2006 +1000 + + [IA64] ia64_wait_for_slaves() incorrectly reports MCA + + ia64_wait_for_slaves() was changed in 2.6.17-rc1 to report the slave + state. It incorrectly assumes that all slaves are for MCA, but + ia64_wait_for_slaves() is also called from the INIT monarch handler. + The existing message is very misleading, so correct it. + + Signed-off-by: Keith Owens + Signed-off-by: Tony Luck + +commit 20ac94378de59d61dc39f10ed5530485e4ac8c07 +Author: Eric W. Biederman +Date: Thu Apr 13 04:49:07 2006 -0600 + + [PATCH] do_SAK: Don't recursively take the tasklist_lock + + By calling send_sig do_SAK is recursively taking the + tasklist_lock, which is silly. + + In addition I just audited the kernel and this was the only + place where tasklist_lock is taken inside of task_lock. + + So this one line change is a general worthwhile cleanup and + it increases our options on how to fix the ptrace_attach races. + + Signed-off-by: Linus Torvalds + +commit 1e08dcb39c6b95ec84fc8bad97d5bdce879b76c9 +Author: adam radford +Date: Tue Apr 11 11:25:09 2006 -0700 + + [SCSI] 3ware 9000 disable local irqs during kmap_atomic + + Equivalent of the same patch for the 3w-xxxx driver. + + Signed-off-by: Adam Radford + Signed-off-by: James Bottomley + +commit e36e0c80137af8f012528938dab2970c26d5ec4c +Author: Tejun Heo +Date: Tue Apr 11 17:27:53 2006 +0900 + + [SCSI] SCSI: fix scsi_kill_request() busy count handling + + scsi_kill_request() completes requests via normal SCSI completion path + which decrements busy counts; however, requests which get passed to + scsi_kill_request() aren't holding busy counts and scsi_kill_request() + don't increment them before invoking completion path resulting in + incorrect busy counts. Bump up busy counts before invoking completion + path. + + Signed-off-by: Tejun Heo + Signed-off-by: James Bottomley + +commit aedf349773e5877d716a89368d512b9baa3e8c7b +Author: James Smart +Date: Mon Apr 10 10:14:05 2006 -0400 + + [SCSI] FC transport: fixes for workq deadlocks + + As previously reported via Michael Reed, the FC transport took a hit + in 2.6.15 (perhaps a little earlier) when we solved a recursion error. + There are 2 deadlocks occurring: + - With scan and the delete items sharing the same workq, flushing the + workq for the delete code was getting it stalled behind a very long + running scan code path. + - There's a deadlock where scsi_remove_target() has to sit behind + scsi_scan_target() due to contention over the scan_lock(). + + This patch resolves the 1st deadlock and significantly reduces the + odds of the second. So far, we have only replicated the 2nd deadlock + on a highly-parallel SMP system. More on the 2nd deadlock in a following + email. + + This patch reworks the transport to: + - Only use the scsi host workq for scanning + - Use 2 other workq's internally. One for deletions, the other for + scheduled deletions. Originally, we tried this with a single workq, + but the occassional flushes of the scheduled queues was hitting the + second deadlock with a slightly higher frequency. In the future, we'll + look at the LLDD's and the transport to see if we can get rid of this + extra overhead. + - When moving to the other workq's we tightened up some object states + and some lock handling. + - Properly syncs adds/deletes + - minor code cleanups + - directly reference fc_host_attrs, rather than through attribute + macros + - flush the right workq on delayed work cancel failures. + + Large kudos to Michael Reed who has been working this issue for the last + month. + + Signed-off-by: James Bottomley + +commit b0d2364887e94c880680f1e17943cd660bcf8979 +Author: Hannes Reinecke +Date: Fri Apr 7 13:47:03 2006 +0200 + + [SCSI] aic79xx: target hotplug fixes + + When a target is added aic79xx tries to be overly clever: it changes + the command on the fly to TEST UNIT READY and tries to requeue the + original command. Sadly this breaks SCSI compability and of course + the midlayer is getting a bit confused by it. + + So we're just removing that bit of code and let the midlayer deal with + it. It's clever enough by now. And the driver code is getting simpler. + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 441f987ca4cdca9c72aaf32fdd0d0ca9ebf46e94 +Author: FUJITA Tomonori +Date: Sun Mar 26 10:19:10 2006 +0900 + + [SCSI] ibmvscsi: remove drivers/scsi/ibmvscsi/srp.h + + It's no longer needed after the convrsion to use the linux srp.h file. + + Signed-off-by: FUJITA Tomonori + Signed-off-by: James Bottomley + +commit f41b5cec9bd6fec1b11b74500f5fb9c3e6e808b2 +Author: Hannes Reinecke +Date: Mon Apr 3 08:19:34 2006 +0200 + + [SCSI] aic79xx bus reset update + + As James B. correctly noted, ahd_reset_channel() in + ahd_linux_bus_reset() should be protected by ahd_lock(). However, the + main reason for not doing so was a deadlock with the interesting + polling mechanism to detect the end a bus reset. + + This patch replaces the polling mechanism with a saner signalling via + flags; it also gives us the benefit of detecting any multiple calls to + ahd_reset_channel(). + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 183b73ae7c9e4e19fa95d88e1778481899a65210 +Author: Jordi Caubet +Date: Wed Apr 12 17:44:27 2006 +0200 + + [PATCH] spufs: fix context-switch decrementer code + + We found that when the 'decrementer' is saved, the PPE saves the current + time 'csa->suspend_time'. When restoring the 'decrementer', (Step 34) + decrementer seems to be adjusted with the number of cycles th= at a spu + thread has not been running. + + In that code it is missing a substract ('-') because 'delta_time' is + assigned a not substracted(see bellow). + + Acked-by: Mark Nutter + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit f48b8296b3152bb45c07c544ce072eaa59dfbc7c +Author: Olaf Hering +Date: Tue Apr 11 20:42:08 2006 +0200 + + [PATCH] powerpc32: Set cpu explicitly in kernel compiles + + Compile the 32bit kernel with -mcpu=powerpc. This reduces the imagesize + when a compiler is used that defaults to -mtune=power4. It inserts lots + of nops to please the 64bit cpu instruction scheduling. But all these nops + are not needed for 32bit kernels. + + Example with SLES10 gcc 4.1.0 and arch/powerpc/configs/pmac32_defconfig: + + vmlinux vmlinux.strip vmlinux.gz + -O2 4980515 4187528 1846829 + -Os 4618801 3827084 1673333 + -O2 -mcpu=powerpc 4738851 3945868 1816253 + -Os -mcpu=powerpc 4532785 3741068 1664688 + + Signed-off-by: Olaf Hering + Signed-off-by: Paul Mackerras + +commit b055a9e10fd05c7fdd87904a50c1f413aea10ec4 +Author: Linas Vepstas +Date: Thu Apr 6 15:41:41 2006 -0500 + + [PATCH] powerpc/pseries: bugfix: balance calls to pci_device_put + + Repeated calls to eeh_remove_device() can result in multiple + (and thus unbalanced) calls to pci_dev_put(). Make sure the + pci_device_put() is called only once (since there was only + one call to the matching pci_device_get()). + + Signed-off-by: Linas Vepstas + Signed-off-by: Paul Mackerras + +commit 6f806ceed53776ae5e04c8b334dc9daa0932ad1e +Author: Michael Ellerman +Date: Fri Apr 7 13:56:21 2006 +1000 + + [PATCH] powerpc: Fix machine detection in prom_init.c + + In e8222502ee6157e2713da9e0792c21f4ad458d50 the detection of machine types + in prom_init broke for some machines. We should be checking /device_type + instead of /model. This should make Power3 and Power4 boot again. Haven't + been able to test this. We also need to relocate before comparing. + + Signed-off-by: Michael Ellerman + Signed-off-by: Michael Neuling + Signed-off-by: Paul Mackerras + +commit 132058f78a1bc8cce2c5a40245365938d51832fe +Author: Vitaly Bordug +Date: Mon Apr 3 15:26:32 2006 +0400 + + [PATCH] ppc32: Fix string comparing in platform_notify_map + + Fixed odd function behavior when dev->bus_id does not contain '.' - it + compared that case 0 characters of the string and hereby reported success and + executed callback. Now bus_id's are compared correctly, extra callback + triggering eliminated. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit 49c28e4e40be73019481f3c13a5966e0cc8f5a9d +Author: Anton Blanchard +Date: Sun Apr 2 20:18:32 2006 +1000 + + [PATCH] powerpc: Avoid __initcall warnings + + Fix __initcall return in proc_rtas_init and rtas_init. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit ddafddcfc78aab994cf95922befc54d98aaf371b +Author: Anton Blanchard +Date: Sun Apr 2 19:54:09 2006 +1000 + + [PATCH] powerpc: Ensure runlatch is off in the idle loop + + Since external and decrementer interrupts set the runlatch on, we need + to ensure its set off again in the idle loop. At the moment we dont turn + it off in the inner loop. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 4d7db04a7a69099accd84984a78c64d2178252f1 +Author: James Bottomley +Date: Fri Mar 31 20:07:45 2006 -0600 + + [SCSI] add SCSI_UNKNOWN and LUN transfer limit restrictions + + Original From: Ingo Flaschberger + + To support the RA4100 array from Compaq. + + This patch now correctly handles SCSI_UNKNOWN types with regard to + BLIST_REPORTLUNS2 (allow it) and cdb[1] LUN inclusion (don't). + + It also allows a BLIST_MAX_512 flag to restrict the maximum transfer + length to 512 blocks (apparently this is an RA4100 problem). + + Signed-off-by: James Bottomley + +commit d637c4543fdc86cbef5805c679d24bb665172a7d +Author: Matthew Wilcox +Date: Wed Mar 29 14:45:18 2006 -0700 + + [SCSI] sym2: Fix build when spinlock debugging is enabled + + When spinlock debugging is turned on, a struct completion grows beyond the + size allowed for the scsi_pointer. So move the struct completion back onto + the stack. The additional memory barriers are to keep us from completing + a random piece of kernel stack if the command happens to complete after + the error handling has finished. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 80286d478c2b0e07959e79cf34591a4061ff1797 +Author: Brian King +Date: Wed Mar 29 09:37:49 2006 -0600 + + [SCSI] ipr: Bump version + + Bump ipr driver version to 2.1.3 + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit c65130967186dc53c0c66793cfe640521dcdada2 +Author: Brian King +Date: Wed Mar 29 09:37:43 2006 -0600 + + [SCSI] ipr: Reset device cleanup + + Encapsulate some more of the device reset processing in + preparation for SATA support. + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit fb3ed3cb4b8ba84e5b0899ef752495f213973843 +Author: Brian King +Date: Wed Mar 29 09:37:37 2006 -0600 + + [SCSI] ipr: printk macro cleanup/removal + + Remove some unused printk macros, make some more robust, and + convert some to use standard printk macros when possible. + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit fe964d0a4bfa7c25e75c53d81acbf53099777e9e +Author: Brian King +Date: Wed Mar 29 09:37:29 2006 -0600 + + [SCSI] ipr: Simplify status area dumping + + Simplify the dumping of the command status area by + removing some device specific information that has proven + to not be worthwhile. + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit e4fbf44ed0618acce4a06010ed9fa9c02e06e36a +Author: Brian King +Date: Wed Mar 29 09:37:22 2006 -0600 + + [SCSI] ipr: Fixup device type check + + Fixup a check used by the ipr driver to determine if a given + device is a SCSI disk. Due to the addition of support for + attaching SATA devices, this check needs to be more robust. + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit 1121b794a384bc317fe36e967b82308b0e2c3852 +Author: Brian King +Date: Wed Mar 29 09:37:16 2006 -0600 + + [SCSI] ipr: Disk remove path cleanup + + Instead of NULLing the resource entry pointer when a disk + goes away to prevent any new commands being sent to it, + set the adapter resource handle to an invalid value so + new ops getting sent to it will fail with a selection timeout + response. This patch is needed for future SATA patches. + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit c06bb7f514567efa39062a781679120e51caa818 +Author: Douglas Gilbert +Date: Tue Mar 28 14:48:22 2006 -0500 + + [SCSI] sg: fix leak when dio setup fails + + when the sg driver is unable to setup direct IO, free that scatter + gather list prior to falling back to indirect IO + + Further to this thread started by Bryan Holty: + http://marc.theaimsgroup.com/?l=linux-scsi&m=114306885116728&w=2 + + Here is the reworked patch again. This time it has been + tested with a program provided by Bryan. + + Signed-off-by: Douglas Gilbert + Signed-off-by: James Bottomley + +commit d6159c17c2c76963a8067d1e1ac3c4c36c05e674 +Author: James Bottomley +Date: Mon Mar 27 16:45:34 2006 -0600 + + [SCSI] expose sas internal class for the domain transport + + necessary to make the domain class use the internal structures + + Signed-off-by: James Bottomley + +commit 530bba6fa898318fbf111d91402d49b1c538e3cd +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 14:50:58 2006 -0800 + + [SCSI] for_each_possible_cpu: scsi + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit ac05165179f45d47da6cb54fdedb33e9df87781d +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Version 2.2.3 + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 14ac8bf58d8ad46d8cd9e5db025beb9f8da24854 +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Enable clustering and large transfers + + This patch enables clustering and sets max_sectors to 0xffff to enable + reading and writing of large blocks with tapes (and large transfers with + sg). This change is needed after the sg and st drivers started using + chained bios through scsi_request_async() in 2.6.16. + + Signed-off-by: Kai Makisara + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit b4e93a739ed1352664defd41d5e4f82afa29b928 +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Simplify error handling + + Use wait_for_completion_timeout() instead of using a timer (as + Christoph Hellwig did for aic7xxx). + + That lets me eliminate the sym_eh_wait structure; the struct completion, + the old_done pointer and the to_do flag can be folded into the sym_ucmd + (which overrides the scsi_pointer in scsi_cmnd). + + The sym_eh_done() function becomes much simpler as the timeout handling + is done in sym_eh_handler() directly. + + The host_lock can be unlocked earlier, and I cache the host in + a local variable to make accesses to it quicker. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit c2349df918cdfd47dfe6afaaeed9f504b83255d0 +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Allow nvram settings to determine bus mode + + The PDC code can set the bus mode, but we were ignoring that setting. + Also move the code that determines bus mode into its own function. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 92d578b94c3c6263777687d8f2653c2a63d922bf +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Use SPI messages where possible + + Now sym2 is using spi_print_msg, we don't need to have our own messages + for IGNORE WIDE RESIDUE and MODIFY DATA POINTER, so provide the option + of passing NULL for the label. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 3bea15a76eecc03729bf74d6ab2a1f849c08423e +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Disable sym2 driver queueing + + Undef SYM_OPT_HANDLE_DEVICE_QUEUEING. + Call sym_put_start_queue instead of sym_start_next_ccbs. + Turn asserts into checks that we can send the command to the adapter, + and return busy from queuecommand if we can't. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 76789f01768bb4cef706f4c9e7e2f3f4eb8c1431 +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Mark div_10M array const + + Patch below is one out of a large series to mark kernel data const when + possible, goal is to use .rodata and avoid false sharing + + Signed-off-by: Arjan van de Ven + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit ab19d52bec6c1b266228417b58ae6f36f3ea097c +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Simplify error handling a bit + + - to_do was never set to SYM_EH_DO_COMPLETE, so remove that code + - move the spinlocks inside the common error handler code path + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit b6d105d7ee188040a6e5eb86101e7476d94b3076 +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:44 2006 -0500 + + [SCSI] Use pcibios_resource_to_bus() + + We had our own code (pci_get_base_address()) to get the bus address of + a BAR. We can get this using pcibios_resource_to_bus() instead. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 1f61d82490a26dbcde903b33e24f6d11b758b64c +Author: Matthew Wilcox +Date: Tue Mar 28 11:03:43 2006 -0500 + + [SCSI] Change Kconfig option from IOMAPPED to MMIO + + Most of the Kconfig options for switching between IO Port and MMIO + operations use the opposite sense from sym2. Really, this option + should be set at a chipset level rather than per-driver. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 92aab6464be735139f9ea38fd039c3b84c722630 +Author: Mike Anderson +Date: Mon Mar 27 09:37:28 2006 -0800 + + [SCSI] sas transport: ref count update + + Fix puts so that release functions will be called. + + Signed-off-by: Mike Anderson + Signed-off-by: James Bottomley + +commit 9a72f976d29091e4f4dfa08ed404ef84a56b0d47 +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:37 2006 -0800 + + [SCSI] aacraid: Driver version update + + Received from Mark Salyzyn + + Fix module param + Update driver version. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit 3d2f98a66571d1aa8d66aab1a97bad6ffff61b24 +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:33 2006 -0800 + + [SCSI] aacraid: Fix parenthesis placement error + + Received from Mark Salyzyn + + On 64 bit machines, when a 32 bit application tries to acquire the AIF, + they will always get and EFAULT error response from the driver. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit d1ad94ad773c34a5a3491f9dcc0a97e264f971f6 +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:29 2006 -0800 + + [SCSI] aacraid: Show max channel and max id is sysfs + + Received from Mark Salyzyn + + Add max_channel and max_id sysfs parameters. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit dc4adbf41385486b0c73e7382ce73f0e8b873243 +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:26 2006 -0800 + + [SCSI] aacraid: Re-start helper thread if it dies + + Received from Mark Salyzyn + + Since the helper thread for the driver can be killed unceremoniously by + an application, we detect the loss of the helper and restart it. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit 1241f3593a8857fab4259b6aa9d17f26e7de3a86 +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:23 2006 -0800 + + [SCSI] aacraid: General driver cleanup + + Received from Mark Salyzyn + + Remove superfluous code, optimize code, harden code, cast code, correct + some text, use msleep instead of schedule_timeout_interruptible. No + bugs. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit 53926274f24e5c852dbe8f89dea16b7822549472 +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:19 2006 -0800 + + [SCSI] aacraid: Fix extra unregister_chrdev + + Received from Mark Salyzyn + + If there are no aacraid controllers, we do not create the raid + controller chrdev, thus when the driver is unloaded it performs a + superfluous deregistration. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit 95433badf0ff8dbc2caf14bc69c984841539715f +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:15 2006 -0800 + + [SCSI] aacraid: Fix error in max_channel field + + Received from Mark Salyzyn + + The max_channel field is set one too large. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit e61b17fd3ae270c0ca83d12c8276b73e50466db9 +Author: Mark Haverkamp +Date: Mon Mar 27 09:44:11 2006 -0800 + + [SCSI] aacraid: Error path cleanup + + Received from Mark Salyzyn + + Some of the error return paths during initialization resulted in a zero + report to caller + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit 31876f328f22435c21cfc27f0c871a4a4b22f9db +Author: Mark Haverkamp +Date: Mon Mar 27 09:43:55 2006 -0800 + + [SCSI] aacraid: Add timeout for events + + Received from Mark Salyzyn + + Plug and play actions resulting from event sequences shall time out if + they take longer than 30 seconds to complete. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit 77d644d4d70c9ad5df51792575f43a950525c9aa +Author: Mark Haverkamp +Date: Mon Mar 27 09:43:40 2006 -0800 + + [SCSI] aacraid: Track command ownership in driver + + Received from Mark Salyzyn + + The loss of the ownership flags, despite their flaws, in the scsi + command were sorely missed and are reinstated more accurately in the + aacraid driver to track commands and permit us to properly handle error + recovery actions. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit e5718774f12234c7c9be8944001cfd109ba955e1 +Author: Mark Haverkamp +Date: Mon Mar 27 09:43:25 2006 -0800 + + [SCSI] aacraid: Use scmd_ functions + + Received from Mark Salyzyn + + Clean up the remaining scsi id access methods, drop ID_LUN_TO_CONTAINER + macro. + + Signed-off-by: Mark Haverkamp + Signed-off-by: James Bottomley + +commit ef265673434680f2307ceafae4a2badc657e94cc +Author: FUJITA Tomonori +Date: Sun Mar 26 03:57:14 2006 +0900 + + [SCSI] ibmvscsi: convert the ibmvscsi driver to use include/scsi/srp.h + + Signed-off-by: FUJITA Tomonori + Signed-off-by: James Bottomley + +commit 9b833e428ad24dc7cec2c0c7e6898caa91449c95 +Author: Dave C Boutcher +Date: Thu Mar 23 13:47:07 2006 -0600 + + [SCSI] ibmvscsi: prevent scsi commands being sent in invalid state + + There is a window where we can be re-enabling an adapter, but + still allow SCSI commands to be sent to the target. This fix + sets our window (request_limit) to -1 as soon as we know the + adapter is being reenabled, and closes a very teeny tiny + window where we could set the window back to 1 before we + grab a lock. + + Signed-off-by: Dave Boutcher + Signed-off-by: James Bottomley + +commit 18c49b8cd69c360735df2cc6eeeb2593c01a81e8 +Author: Mike Christie +Date: Wed Mar 22 16:04:38 2006 -0600 + + [SCSI] fix sg leak when scsi_execute_async fails + + Doug found a bug where if scsi_execute_async fails, we are leaking + sg resources. scsi_do_req never failed so we did not have to handle + that case before. + + Signed-off-by: Mike Christie + Signed-off-by: James Bottomley + +commit 21b2f0c803adaf00fce1b606c50b49ae8b106773 +Author: Christoph Hellwig +Date: Wed Mar 22 17:52:04 2006 +0100 + + [SCSI] unify SCSI_IOCTL_SEND_COMMAND implementations + + We currently have two implementations of this obsolete ioctl, one in + the block layer and one in the scsi code. Both of them have drawbacks. + + This patch kills the scsi layer version after updating the block version + with the missing bits: + + - argument checking + - use scatterlist I/O + - set number of retries based on the submitted command + + This is the last user of non-S/G I/O except for the gdth driver, so + getting this in ASAP and through the scsi tree would be nie to kill + the non-S/G I/O path. Jens, what do you think about adding a check + for non-S/G I/O in the midlayer? + + Thanks to Or Gerlitz for testing this patch. + + Signed-off-by: Christoph Hellwig + Signed-off-by: James Bottomley + +commit 765fcab23d0a79ed7aab8da79766f5873d936f1b +Author: James Bottomley +Date: Tue Mar 28 12:04:40 2006 -0600 + + [SCSI] remove qlogicfc + + All participants agree that qla2xxx can now successfully replace this. + + Signed-off-by: James Bottomley + +commit f6835543440c85f20c86c5b006e8404fe6a78109 +Author: Ben Dooks +Date: Thu Apr 13 09:57:15 2006 +0100 + + [ARM] 3475/1: S3C2410: fix spelling mistake in SMDK partition table + + Patch from Ben Dooks + + Fix bad spelling of partition + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit c91e468a48a2afd2a2b0c2e29a35d6b8c51ea682 +Author: Andreas Schwab +Date: Tue Mar 28 18:10:38 2006 +0200 + + [PATCH] Use pci_set_consistent_dma_mask in ixgb driver + + The ixgb driver is using pci_alloc_consistent, thus is should also use + pci_set_consistent_dma_mask. This allows the driver to work on SGI + systems. + + In case of an error during probing it should also disable the device again. + + Signed-off-by: Andreas Schwab + Signed-off-by: Jeff Garzik + +commit 43f2f10444c008296cc8de68a72fd87b33b50452 +Author: Stephen Hemminger +Date: Wed Apr 5 17:47:15 2006 -0700 + + [PATCH] sky2: bad memory reference on dual port cards + + Sky2 driver will oops referencing bad memory if used on + a dual port card. The problem is accessing past end of + MIB counter space. + + Applies for both 2.6.17 and 2.6.16 (with fuzz) + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 94843566d7119e049a72618a3c939d5c2be022c7 +Author: Dale Farnsworth +Date: Tue Apr 11 18:24:26 2006 -0700 + + [PATCH] mv643xx_eth: Fix tx_timeout to only conditionally wake tx queue + + After resetting the hardware on a tx_timeout, call netif_wake_queue() + only if we have free tx descriptors. + + Also, attempt to recover if mv643xx_eth_start_xmit() is called when + there are fewer free tx descriptors than expected. + + The BUG_ON() call we are replacing was hit on a tx_timeout that + called netif_wake_queue(), indirectly via netif_device_attach(), + even though we did not have enough free tx descriptors. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 5c5374087707d7848cb13f15e7c175daf346301c +Author: Brent Cook +Date: Tue Apr 11 18:23:15 2006 -0700 + + [PATCH] mv643xx_eth: Always free completed tx descs on tx interrupt + + Fix the tx interrupt handler to free completed tx descriptors even + when NAPI is enabled. Otherwise, the tx queue would fill up resulting + in poor performance and "NETDEV WATCHDOG: : transmit timed out" + messages. + + Signed-off-by: Brent Cook + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit e19360f2945f54eb44ae170ec9c33910d29834a2 +Author: Randy Dunlap +Date: Mon Apr 10 23:22:06 2006 -0700 + + [PATCH] net drivers: fix section attributes for gcc + + If CONFIG_HOTPLUG=n, gcc doesn't like some __initdata to be const (rodata) + and other __initdata not const, so make the non-const __initdata const. + + gcc errors: + drivers/net/bnx2.c:66: error: version causes a section type conflict + drivers/net/starfire.c:338: error: version causes a section type conflict + drivers/net/typhoon.c:137: error: version causes a section type conflict + drivers/net/natsemi.c:241: error: version causes a section type conflict + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 037998d1e979e88a140ef32c5d28730f6ca8a96f +Author: Adrian Bunk +Date: Mon Apr 10 23:22:07 2006 -0700 + + [PATCH] remove drivers/net/hydra.h + + Remove drivers/net/hydra.h which is both unused and covered by a 4 clause + BSD licence (not by the UCB). + + Signed-off-by: Adrian Bunk + Acked-By: Geert Uytterhoeven + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 0761be4f5f9efb5f72a5f9771f2ed5845a974c46 +Author: Adrian Bunk +Date: Mon Apr 10 23:22:21 2006 -0700 + + [PATCH] drivers/net/via-rhine.c: make a function static + + Signed-off-by: Adrian Bunk + Signed-off-by: Roger Luethi + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit d220c37e0a3c9a47ae00e87e044d963b3ea040bc +Author: Dan Aloni +Date: Mon Apr 10 23:20:22 2006 -0700 + + [PATCH] sata_mv: properly print HC registers + + Currently it crashes when trying to dump the registers. This is an obvious + one-liner fix I suppose. + + Signed-off-by: Dan Aloni + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 10badc215493a435e2dbdc691386f2650a1778de +Author: Jeff Garzik +Date: Wed Apr 12 18:04:32 2006 -0400 + + [netdrvr b44] trim trailing whitespace + +commit 8056bfafb8a845f3035e7aae5ffe405df118bc12 +Author: Gary Zambrano +Date: Mon Apr 10 12:05:40 2006 -0700 + + [PATCH] b44: increase version to 1.00 + + + Signed-off-by: Jeff Garzik + +commit 2b474cf53870abf1bbad631c3368b9efc9b5ba9d +Author: Gary Zambrano +Date: Mon Apr 10 12:02:21 2006 -0700 + + [PATCH] b44: disable default tx pause + + Disable default tx pause frame support. + The b44 controller has a bug that generates excessive tx pause + frames. + + Signed-off-by: Gary Zambrano + Signed-off-by: Jeff Garzik + +commit 4be5de25259de21894df5e2fecc30da8252dee8c +Author: Roger Luethi +Date: Tue Apr 4 20:49:16 2006 +0200 + + [PATCH] via-rhine: execute bounce buffers code on Rhine-I only + + Patch suggested by Yang Wu (pin xue ). + + Signed-off-by: Roger Luethi + Signed-off-by: Jeff Garzik + +commit ff768cd7139ab368bc2b97e7bd6fa592f20e1950 +Author: Komuro +Date: Sun Apr 9 11:21:10 2006 +0900 + + [PATCH] network: axnet_cs.c: add missing 'PRIV' in ei_rx_overrun + + Signed-off-by: komurojun-mbn@nifty.com + Signed-off-by: Jeff Garzik + +commit 5636f72794b42d31b2660064ef2c17f90816b3b1 +Author: Stephen Hemminger +Date: Tue Apr 11 10:28:21 2006 -0700 + + [PATCH] dlink pci cards using wrong driver + + This patch fixes the problem of some Dlink cards picking the wrong + driver. It looks like these cards use Yukon 1 chipset, not Yukon 2. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 59fef3b1e96217c6e736372ff8cc95cbcca1b6aa +Author: Jack Morgenstein +Date: Tue Apr 11 18:16:27 2006 +0300 + + IB/mthca: Fix max_srq_sge returned by ib_query_device for Tavor devices + + The driver allocates SRQ WQEs size with a power of 2 size both for + Tavor and for memfree. For Tavor, however, the hardware only requires + the WQE size to be a multiple of 16, not a power of 2, and the max + number of scatter-gather allowed is reported accordingly by the + firmware (and this is the value currently returned by + ib_query_device() and ibv_query_device()). + + If the max number of scatter/gather entries reported by the FW is used + when creating an SRQ, the creation will fail for Tavor, since the + required WQE size will be increased to the next power of 2, which + turns out to be larger than the device permitted max WQE size (which + is not a power of 2). + + This patch reduces the reported SRQ max wqe size so that it can be used + successfully in creating an SRQ on Tavor HCAs. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Roland Dreier + +commit dcccdd938ef0c5d96145957217b814b14bd46cdc +Author: Rene Herman +Date: Tue Apr 11 14:09:37 2006 +0200 + + [ALSA] unregister platform device again if probe was unsuccessful + + Unregister the platform device again if the probe was unsuccessful. + + This restores the behaviour of not loading the driver on probe() failure. + + Signed-off-by: Rene Herman + Signed-off-by: Takashi Iwai + +commit d0ac642d76c79c5cc673c4cdfe43e926379784e1 +Author: Rene Herman +Date: Tue Apr 11 14:08:33 2006 +0200 + + [ALSA] continue on IS_ERR from platform device registration + + Continue with the next one on error from device registration. + + This would seem the correct thing to do, even if it's not the probe() + error that we're getting. + + Signed-off-by: Rene Herman + Signed-off-by: Takashi Iwai + +commit 12831c15f35dcc9f55fa63d50fd4892c7c6a0a1c +Author: Adrian Bunk +Date: Tue Apr 11 11:12:46 2006 +0200 + + [ALSA] sound/core/pcm.c: make snd_pcm_format_name() static + + Modules: PCM Midlevel + + This patch makes the needlessly global snd_pcm_format_name() static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Takashi Iwai + +commit 73864fc634932bc827f852557f637fade0227381 +Author: Takashi Iwai +Date: Mon Apr 10 19:41:16 2006 +0200 + + [ALSA] ac97 - Add entry for VIA VT1618 codec + + Modules: AC97 Codec + + Added the missing entry for VIA VT1618 codec. + No particular patch is needed, though. + + Signed-off-by: Takashi Iwai + +commit e09222831336a6ae53ea09076d113a58931950cf +Author: Takashi Iwai +Date: Mon Apr 10 19:09:01 2006 +0200 + + [ALSA] hda-codec - Add support of ASUS U5A with AD1986A codec + + Modules: HDA Codec driver + + Add the model entry to support of ASUS U5A with AD1986A codec. + + Signed-off-by: Takashi Iwai + +commit 2462321bfe59b9c22ca1ec4ba8665a1aeac6bab5 +Author: Eric Sesterhenn +Date: Mon Apr 10 14:42:00 2006 +0200 + + [ALSA] Overrun in sound/pci/au88x0/au88x0_pcm.c + + Modules: au88x0 driver + + since idx is used as an index for vortex_pcm_prettyname[VORTEX_PCM_LAST], + it should not be equal to VORTEX_PCM_LAST. This fixes coverity bug id #572 + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Takashi Iwai + +commit 99e80e4d0c7755d688e9db205016a0608fa989b4 +Author: Dale Sedivec +Date: Mon Apr 10 11:34:44 2006 +0200 + + [ALSA] au88x0 - clean up __devinit/__devexit + + Modules: au88x0 driver + + Removed all use of __devinit/__devexit and init.h from headers. Any + attributes given in the prototype but not in the function definition have + been moved to the definition. + + An exception is vortex_eq_free: I removed the __devexit attribute because + vortex_eq_free is called from vortex_core_shutdown, and + vortex_core_shutdown may be called from __devinit snd_vortex_create. + + Compile tested with allyesconfig and allmodconfig. + + Signed-off-by: Dale Sedivec + Signed-off-by: Takashi Iwai + +commit a29b6c8895edbd9921837b592bcd125cee64fc84 +Author: Ashley Clark +Date: Mon Apr 10 11:31:03 2006 +0200 + + [ALSA] hda-codec - Adds HDA support for Intel D945Pvs board with subdevice id 0x0707 + + Modules: HDA Codec driver + + This patch adds the entry for the 5-stack pin-config for the STAC + chip on the Intel D945Pvs board with subdevice id 0x0707. + + With this patch against 1.0.11rc4 in the linux kernel 2.6.17-rc1, I'm + able to successfully output over the optical port and analog ports. + + Signed-off-by: Ashley Clark + Signed-off-by: Takashi Iwai + +commit be28e7ccd34efff2160ab7d6712d248053c36461 +Author: Coywolf Qi Hunt +Date: Mon Apr 10 10:47:11 2006 +0200 + + [ALSA] hda-codec - support HP Compaq Presario B2800 laptop with AD1986A codec + + Modules: HDA Codec driver + + This adds the support for HP Compaq Presario B2800 laptop with AD1986A codec. + + Signed-off-by: Coywolf Qi Hunt + Signed-off-by: Takashi Iwai + +commit 5b0e498537cbaeca06b4a1935be1ea2c93d4e05b +Author: James Courtier-Dutton +Date: Sun Apr 9 22:45:58 2006 +0200 + + [ALSA] emu10k1: Add some descriptive text. + + Modules: EMU10K1/EMU10K2 driver + + Signed-off-by: James Courtier-Dutton + +commit a26e9d9dc710dd157beca914bb56d2fed8a29d60 +Author: Takashi Iwai +Date: Thu Apr 6 19:59:21 2006 +0200 + + [ALSA] via82xx - Add a dxs entry for ECS K8T890-A + + Modules: VIA82xx driver + + Added a dxs_support entry for ECS K8T890-A board. + + Signed-off-by: Takashi Iwai + +commit f556e6f6ef55d343727372e4ab35adb716c2bb4e +Author: Takashi Iwai +Date: Thu Apr 6 19:58:43 2006 +0200 + + [ALSA] hda-codec - Add another HP laptop with AD1981HD + + Modules: HDA Codec driver + + Added the SSID of another HP laptop for the model 'hp' with AD1981HD. + + Signed-off-by: Takashi Iwai + +commit 1576274d30286dd048967176dc8e75e192051ff5 +Author: Takashi Iwai +Date: Thu Apr 6 19:47:42 2006 +0200 + + [ALSA] Fix Oops of PCM OSS emulation + + Modules: PCM Midlevel,ALSA<-OSS emulation + + Fix Oops of PCM OSS emulation occuring when multiple playback is used. + + Signed-off-by: Takashi Iwai + +commit bbdc1b7dbe41578da7c9a6266cf450abe97e4ca7 +Author: OGAWA Hirofumi +Date: Thu Apr 6 19:42:40 2006 +0200 + + [ALSA] pcm_oss: fix snd_pcm_oss_release() oops + + Modules: ALSA<-OSS emulation + + Fix Oops due to a typo in snd_pcm_oss.c. + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Takashi Iwai + +commit c9e617a563ad646239270fa2222cdb06966cf1fa +Author: Imre Deak +Date: Tue Apr 11 23:44:05 2006 -0400 + + Input: ads7846 - handle IRQs that were latched during disabled IRQs + + The pen down IRQ will toggle during each X,Y,Z measurement cycle. + Even though the IRQ is disabled it will be latched and delivered + when after enable_irq. Thus in the IRQ handler we must avoid + starting a new measurement cycle when such an "unwanted" IRQ happens. + Add a get_pendown_state platform function, which will probably + determine this by reading the current GPIO level of the pen IRQ pin. + + Move the IRQ reenabling from the SPI RX function to the timer. After + the last power down message the pen IRQ pin is still active for a + while and get_pendown_state would report incorrectly a pen down state. + + When suspending we should check the ts->pending flag instead of + ts->pendown, since the timer can be pending regardless of ts->pendown. + Also if ts->pending is set we can be sure that the timer is running, + so no need to rearm it. Similarly if ts->pending is not set we can + be sure that the IRQ is enabled (and the timer is not). + + Signed-off-by: Imre Deak + Signed-off-by: David Brownell + Signed-off-by: Dmitry Torokhov + +commit 7de90a8cb9c51145d7f60d8db17ce0fa07d1b281 +Author: Imre Deak +Date: Tue Apr 11 23:43:55 2006 -0400 + + Input: ads7846 - miscellaneous fixes + + - Add disable attribute to support device locking mode where + unintentional touch event shouldn't wake up the system; + - Update comments; + - Add missing spin_lock_init; + - Do device resume with the lock held; + - Do cleanup calls / free memory in the reverse order of initialization. + + Signed-off-by: Imre Deak + Signed-off-by: David Brownell + Signed-off-by: Dmitry Torokhov + +commit c4febb94dae915da4423b81c487eabed9cef5cba +Author: Juha Yrjola +Date: Tue Apr 11 23:42:25 2006 -0400 + + Input: ads7846 - use msleep() instead of udelay() in suspend + + Sometimes a polling loop had a hard time changing state without + pre-emption enabled. Use msleep instead, it's better anyway. + + Signed-off-by: Juha Yrjola + Signed-off-by: David Brownell + Signed-off-by: Dmitry Torokhov + +commit 0b7018aae7e1798f55f736b9a77c201708aa0e33 +Author: Imre Deak +Date: Tue Apr 11 23:42:03 2006 -0400 + + Input: ads7846 - debouncing and rudimentary sample filtering + + Some touchscreens seem to oscillate heavily for a while after touching + the screen.  Implement support for sampling the screen until we get two + consecutive values that are close enough. + + Signed-off-by: Imre Deak + Signed-off-by: Juha Yrjola + Signed-off-by: David Brownell + Signed-off-by: Dmitry Torokhov + +commit 53a0ef89e95c725f3faab98573770aeb7429c1a3 +Author: Imre Deak +Date: Tue Apr 11 23:41:49 2006 -0400 + + Input: ads7846 - power down ADC a bit later + + Submit a seperate request for powering down the ADC in ads7846, + doing it after the last read request. Otherwise some of the read + values are incorrect. + + Signed-off-by: Imre Deak + Signed-off-by: Juha Yrjola + Signed-off-by: David Brownell + Signed-off-by: Dmitry Torokhov + +commit 438f2a7401ec5d8f85923a7c3e6da444f097a3a1 +Author: Imre Deak +Date: Tue Apr 11 23:41:32 2006 -0400 + + Input: ads7846 - add pen_down sysfs attribute + + It's handy for userspace diagnostics to see the pen down status, to + see whether the touchscreen is "stuck" (shortcircuited). + + Signed-off-by: Imre Deak + Signed-off-by: Juha Yrjola + Signed-off-by: David Brownell + Signed-off-by: Dmitry Torokhov + +commit 052bb88e180d010f7da7186e6f21eea3be82a903 +Author: Eric Sesterhenn +Date: Tue Apr 11 17:29:17 2006 -0700 + + [ISDN]: Static overruns in drivers/isdn/i4l/isdn_ppp.c + + Coverity found some static overruns in isdn_ppp.c (bug id #519) At several + places slot is compared <0 and > ISDN_MAX_CHANNELS and then used to index + ippp_table[ISDN_MAX_CHANNELS] A value of slot = ISDN_MAX_CHANNELS would run + over the end of the array. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 8db60bcf3021921e2d10d158641792d640e52fe8 +Author: Adrian Bunk +Date: Tue Apr 11 17:28:33 2006 -0700 + + [WAN]: Remove broken and unmaintained Sangoma drivers. + + The in-kernel Sangoma drivers are both not compiling and marked as BROKEN + since at least kernel 2.6.0. + + Sangoma offers out-of-tree drivers, and David Mandelstam told me Sangoma + does no longer maintain the in-kernel drivers and prefers to provide them + as a separate installation package. + + This patch therefore removes these drivers. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 7ad4d2f6901437ba4717a26d395a73ea362d25c6 +Author: Jayachandran C +Date: Tue Apr 11 17:25:38 2006 -0700 + + [BRIDGE] ebtables: fix allocation in net/bridge/netfilter/ebtables.c + + Allocate an array of 'struct ebt_chainstack *', the current code allocates + array of 'struct ebt_chainstack'. + + akpm: converted to use the + + foo = alloc(sizeof(*foo)) + + form. Which would have prevented this from happening in the first place. + + akpm: also removed unneeded typecast. + + akpm: what on earth is this code doing anyway? cpu_possible_map can be + sparse.. + + Signed-off-by: Jayachandran C. + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit b8282dcf0417bbc8a0786c129fdff9cc768f8f3c +Author: Eric Sesterhenn +Date: Mon Apr 10 16:43:03 2006 -0700 + + [DCCP]: Fix leak in net/dccp/ipv4.c + + we dont free req if we cant parse the options. + This fixes coverity bug id #1046 + + Signed-off-by: Eric Sesterhenn + Signed-off-by: David S. Miller + +commit b7595b4955b5178e28906838cc3e8efa62d8caee +Author: Stephen Hemminger +Date: Mon Apr 10 16:38:47 2006 -0700 + + [BRIDGE]: receive link-local on disabled ports. + + This change allows link local packets (like 802.3ad and Spanning Tree + Protocol) to be processed even when the bridge is not using the port. + It fixes the chicken-egg problem for bridging a bonded device, and + may also fix problems with spanning tree failover. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit f6596f9d2b4f0255f6cd68c76b85fe4cec6352af +Author: Zach Brown +Date: Mon Apr 10 16:05:34 2006 -0700 + + [IPv6] reassembly: Always compute hash under the fragment lock. + + This closes a race where an ipq6hashfn() caller could get a hash value + and race with the cycling of the random seed. By the time they got to + the read_lock they'd have a stale hash value and might not find + previous fragments of their datagram. + + This matches the previous patch to IPv4. + + Signed-off-by: Zach Brown + Signed-off-by: David S. Miller + +commit 56cf34ff0795692327234963dcdcc2cdeec2bb3d +Author: Miklos Szeredi +Date: Tue Apr 11 21:16:51 2006 +0200 + + [fuse] Direct I/O should not use fuse_reset_request + + It's cleaner to allocate a new request, otherwise the uid/gid/pid + fields of the request won't be filled in. + + Signed-off-by: Miklos Szeredi + +commit 4858cae4f0904681eab58a16891c22397618a2a2 +Author: Miklos Szeredi +Date: Tue Apr 11 21:16:38 2006 +0200 + + [fuse] Don't init request twice + + Request is already initialized in fuse_request_alloc() so no need to + do it again in fuse_get_req(). + + Signed-off-by: Miklos Szeredi + +commit 9bc5dddad1294955e70eeb87325ba1505fb5fe2e +Author: Miklos Szeredi +Date: Tue Apr 11 21:16:09 2006 +0200 + + [fuse] Fix accounting the number of waiting requests + + Properly accounting the number of waiting requests was forgotten in + "clean up request accounting" patch. + + Signed-off-by: Miklos Szeredi + +commit 73ce8355c243a434524a34c05cc417dd0467996e +Author: Miklos Szeredi +Date: Tue Apr 11 21:14:26 2006 +0200 + + [fuse] fix deadlock between fuse_put_super() and request_end() + + A deadlock was possible, when the last reference to the superblock was + held due to a background request containing a file reference. + + Releasing the file would release the vfsmount which in turn would + release the superblock. Since sbput_sem is held during the fput() and + fuse_put_super() tries to acquire this same semaphore, a deadlock + results. + + The chosen soltuion is to get rid of sbput_sem, and instead use the + spinlock to ensure the referenced inodes/file are released only once. + Since the actual release may sleep, defer these outside the locked + region, but using local variables instead of the structure members. + + This is a much more rubust solution. + + Signed-off-by: Miklos Szeredi + +commit 0f6e439c12646c4631d543d9b49092a396a949c5 +Author: Ben Dooks +Date: Tue Apr 11 18:20:06 2006 +0100 + + [ARM] 3474/1: S3C2440: USB rate writes wrong var to CLKDIVN + + Patch from Ben Dooks + + The wrong variable is written back to CLKDIVN + register if the USB PLL speed is above 94MHz + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit a145410dccdb44f81d3b56763ef9b6f721f4e47c +Author: Oleg Nesterov +Date: Tue Apr 11 22:18:58 2006 +0400 + + [PATCH] __group_complete_signal: remove bogus BUG_ON + + Commit e56d090310d7625ecb43a1eeebd479f04affb48b + + [PATCH] RCU signal handling + + made this BUG_ON() unsafe. This code runs under ->siglock, + while switch_exec_pids() takes tasklist_lock. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Linus Torvalds + +commit 70524490ee2ea1bbf6cee6c106597b3ac25a3fc2 +Author: Jens Axboe +Date: Tue Apr 11 15:51:17 2006 +0200 + + [PATCH] splice: add support for sys_tee() + + Basically an in-kernel implementation of tee, which uses splice and the + pipe buffers as an intelligent way to pass data around by reference. + + Where the user space tee consumes the input and produces a stdout and + file output, this syscall merely duplicates the data inside a pipe to + another pipe. No data is copied, the output just grabs a reference to the + input pipe data. + + Signed-off-by: Jens Axboe + +commit cbb7e577e732f576b9f399bc2600bdc0626c68dc +Author: Jens Axboe +Date: Tue Apr 11 14:57:50 2006 +0200 + + [PATCH] splice: pass offset around for ->splice_read() and ->splice_write() + + We need not use ->f_pos as the offset for the file input/output. If the + user passed an offset pointer in through sys_splice(), just use that and + leave ->f_pos alone. + + Signed-off-by: Jens Axboe + +commit cde227afe6b997dce08bcfc2aa6e373fb56857b0 +Author: mao, bibo +Date: Tue Apr 11 12:54:54 2006 +0200 + + [PATCH] x86_64: inline function prefix with __always_inline in vsyscall + + In vsyscall function do_vgettimeofday(), some functions are declared as + inlined, which is a hint for gcc to compile the function inlined but it + not forced. Sometimes compiler does not compile the function as + inlined, so here inline is replaced by __always_inline prefix. + + It does not happen in gcc compiler actually, but it possibly happens. + + Signed-off-by: bibo mao + Signed-off-by: Linus Torvalds + +commit 44b940c299dfaaf25b7aad683ff55cb213502ddd +Author: Andi Kleen +Date: Tue Apr 11 12:54:51 2006 +0200 + + [PATCH] x86_64: Fix embarassing typo in mmconfig bus check + + Surprising that it still worked at all with this - yes it was + tested. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit ecc16ba96fd5b1a1c1988f0a2b05ff954bdff728 +Author: Andi Kleen +Date: Tue Apr 11 12:54:48 2006 +0200 + + [PATCH] i386/x86-64: Remove checks for value == NULL in PCI config space access + + Nobody should pass NULL here. Could in theory make it a BUG, + but the NULL pointer oops will do as well. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 3d8a4d795cc1ffa6be5371629ca6c3431af4c2d5 +Author: Andi Kleen +Date: Tue Apr 11 12:54:45 2006 +0200 + + [PATCH] i386: Remove bogus special case code from AMD core parsing + + It's not actually needed and would break non power of two number + of cores. + + Follows similar earlier x86-64 patch. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit e4cff6ac78e9c3bbb90c0e01b20418eeae0c6b52 +Author: Siddha, Suresh B +Date: Tue Apr 11 12:54:42 2006 +0200 + + [PATCH] x86_64: fix sync before RDTSC on Intel cpus + + Commit c818a18146997d1356a4840b0c01f1168c16c8a4 didn't do the expected + thing. This fix will remove the additional sync(cpuid) before RDTSC on + Intel platforms.. + + Signed-off-by: Suresh Siddha + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 97a4d00388db4f0bfa37425b31d7d9751ea649db +Author: Andi Kleen +Date: Tue Apr 11 12:54:39 2006 +0200 + + [PATCH] x86_64: Remove check for canonical RIP + + As pointed out by Linus it is useless now because entry.S should + handle it correctly in all cases. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 0fcd270901f731342df64816f277ae7adbd67130 +Author: Andi Kleen +Date: Tue Apr 11 12:54:36 2006 +0200 + + [PATCH] x86-64/i386: Don't process APICs/IO-APICs in ACPI when APIC is disabled. + + When nolapic was passed or the local APIC was disabled + for another reason ACPI would still parse the IO-APICs + until these were explicitely disabled with noapic. + + Usually this resulted in a non booting configuration unless + "nolapic noapic" was used. + + I also disabled the local APIC parsing in this case, although + that's only cosmetic (suppresses a few printks) + + This hopefully makes nolapic work in all cases. + + Cc: Len Brown + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 6dde432553551ae036aae12c2b940677d36c9a5b +Author: Matthias Urlichs +Date: Tue Apr 11 05:01:44 2006 +0200 + + [PATCH] Overrun in option-card USB driver + + Since the arrays are declared as in_urbs[N_IN_URB] + and out_urbs[N_OUT_URB], both for loops go one + over the end of the array. This fixes coverity id #555. + + Signed-off-by: Eric Sesterhenn + Signed-Off-By: Matthias Urlichs + Signed-Off-By: Linus Torvalds + +commit 397eeab321e87d8c1ef928b58f256513e6f481dc +Author: Antonino A. Daplas +Date: Mon Apr 10 22:55:49 2006 -0700 + + [PATCH] fbdev: Use logo with depth of 4 or less for static pseudocolor + + Since the visual STATIC_PSEUDOCOLOR has a read-only colormap, use logos + with 16 colors only since these logos use the console palette. This has a + higher likelihood that the logo will display correctly. + + Signed-of-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 89ec4c238e7a3d7e660291f3f1a8181381baad77 +Author: Antonino A. Daplas +Date: Mon Apr 10 22:55:48 2006 -0700 + + [PATCH] vesafb: Fix incorrect logo colors in x86_64 + + Bugzilla Bug 6299: + + A pixel size of 8 bits produces wrong logo colors in x86_64. + + The driver has 2 methods for setting the color map, using the protected + mode interface provided by the video BIOS and directly writing to the VGA + registers. The former is not supported in x86_64 and the latter is enabled + only in i386. + + Fix by enabling the latter method in x86_64 only if supported by the BIOS. + If both methods are unsupported, change the visual of vesafb to + STATIC_PSEUDOCOLOR. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ac50ab3e45436900b5d73edd0c6b0744af560535 +Author: Andrew Morton +Date: Mon Apr 10 22:55:47 2006 -0700 + + [PATCH] sparc32 vga support + + sparc32 lacks vga.h, so lots of fbdev drivers won't compile. There are no + sparc32 systems with PCI slots, so it's a bit moot. + + The patch gives sparc32 a copy of the sparc64 vga.h. It fixes sparc32 + allmodconfig without mucking up fbdev Kconfig and gives us wider compile + coverage. + + Cc: "Antonino A. Daplas" + Acked-by: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f2e782efb0876214c77a48e8e67248125f1607c1 +Author: Andrew Morton +Date: Mon Apr 10 22:55:45 2006 -0700 + + [PATCH] atyfb is bust on sparc32 + + Heaps of build errors - disable it to keep sparc32 allmodconfig happy. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9ec85c03d045d5ec24d6f15649a68646aefe88ba +Author: Adrian Bunk +Date: Mon Apr 10 22:55:45 2006 -0700 + + [PATCH] video/aty/atyfb_base.c: fix an off-by-one error + + Fix an obvious of-by-one error spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 358dd55aa3a77fbbae482b83d96733d9ad441d05 +Author: NeilBrown +Date: Mon Apr 10 22:55:42 2006 -0700 + + [PATCH] knfsd: nfsd4: grant delegations more frequently + + Keep unused openowners around for at least one lease period, to avoid the need + for as many open confirmations and to allow handing out more delegations. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ef0f3390ebedac78bff1936bbb26606bca83e891 +Author: NeilBrown +Date: Mon Apr 10 22:55:41 2006 -0700 + + [PATCH] knfsd: nfsd4: limit number of delegations handed out. + + It's very easy for the server to DOS itself by just giving out too many + delegations. + + For now we just solve the problem with a dumb hard limit. Eventually we'll + want a smarter policy. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4e2fd495b520b51e4ba83340f13520b7f07e3743 +Author: NeilBrown +Date: Mon Apr 10 22:55:39 2006 -0700 + + [PATCH] knfsd: nfsd4: add missing rpciod_down() + + We should be shutting down rpciod for the callback channel when we shut down + the server. + + Also note that we do rpciod_up() and create the callback client *before* + setting cb_set--the cb_set only determines whether the initial null was + succesful. So cb_set is not a reliable determiner of whether we need to clean + up, only cb_client is. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 541e0e09814594e907e18fb8d9fc9b746aa4b18a +Author: NeilBrown +Date: Mon Apr 10 22:55:38 2006 -0700 + + [PATCH] knfsd: nfsd4: nfsd4_probe_callback cleanup + + Some obvious cleanup. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e8d5c29482dc56de5971ddc99c6e7f69e4d16f6 +Author: NeilBrown +Date: Mon Apr 10 22:55:37 2006 -0700 + + [PATCH] knfsd: nfsd4: fix laundromat shutdown race + + We need to make sure the laundromat work doesn't reschedule itself just when + we try to cancel it. Also, we shouldn't be waiting for it to finish running + while holding the state lock, as that's a potential deadlock. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6f54e2d0d3a904e55c9c50b78542072f6c42080e +Author: J. Bruce Fields +Date: Mon Apr 10 22:55:36 2006 -0700 + + [PATCH] knfsd: svcrpc: WARN() instead of returning an error from svc_take_page + + Every caller of svc_take_page ignores its return value and assumes it + succeeded. So just WARN() instead of returning an ignored error. This would + have saved some time debugging a recent nfsd4 problem. + + If there are still failure cases here, then the result is probably that we + overwrite an earlier part of the reply while xdr-encoding. + + While the corrupted reply is a nasty bug, it would be worse to panic here and + create the possibility of a remote DOS; hence WARN() instead of BUG(). + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Cc: Ingo Oeser + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dfee55f06213a23b250ea63ba41caa461cdd5e72 +Author: NeilBrown +Date: Mon Apr 10 22:55:34 2006 -0700 + + [PATCH] knfsd: svcrpc: gss: don't call svc_take_page unnecessarily + + We're using svc_take_page here to get another page for the tail in case one + wasn't already allocated. But there isn't always guaranteed to be another + page available. + + Also fix a typo that made us check the tail buffer for space when we meant to + be checking the head buffer. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bb6e8a9f4005237401a45f1ea43db060ea5f9725 +Author: NeilBrown +Date: Mon Apr 10 22:55:33 2006 -0700 + + [PATCH] knfsd: nfsd4: fix corruption on readdir encoding with 64k pages + + Fix corruption on readdir encoding with 64k pages. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6ed6decccf544970664757464cfb67e081775e6a +Author: NeilBrown +Date: Mon Apr 10 22:55:32 2006 -0700 + + [PATCH] knfsd: nfsd4: fix corruption of returned data when using 64k pages + + In v4 we grab an extra page just for the padding of returned data. The + formula that the rpc server uses to allocate pages for the response doesn't + take into account this extra page. + + Instead of adjusting those formulae, we adopt the same solution as v2 and v3, + and put the "tail" data in the same page as the "head" data. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f0e2993e9e73e8f38b05a89c98b9db94fec2199d +Author: NeilBrown +Date: Mon Apr 10 22:55:31 2006 -0700 + + [PATCH] knfsd: nfsd4: remove nfsd_setuser from putrootfh + + Since nfsd_setuser() is already called from any operation that uses the + current filehandle (because it's called from fh_verify), there's no reason to + call it from putrootfh. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 54cceebb679a8d10fa382422aa2035cdc65fe7ce +Author: NeilBrown +Date: Mon Apr 10 22:55:30 2006 -0700 + + [PATCH] knfsd: nfsd: nfsd_setuser doesn't really need to modify rqstp->rq_cred. + + In addition to setting the processes filesystem id's, nfsd_setuser also + modifies the value of the rq_cred which stores the id's that originally came + from the rpc call, for example to reflect root squashing. + + There's no real reason to do that--the only case where rqstp->rq_cred is + actually used later on is in the NFSv4 SETCLIENTID/SETCLIENTID_CONFIRM + operations, and there the results are the opposite of what we want--those two + operations don't deal with the filesystem at all, they only record the + credentials used with the rpc call for later reference (so that we may require + the same credentials be used on later operations), and the credentials + shouldn't vary just because there was or wasn't a previous operation in the + compound that referred to some export + + This fixes a bug which caused mounts from Solaris clients to fail. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cd15654963cf7e4dd938a403de3ec5bcd09f8350 +Author: NeilBrown +Date: Mon Apr 10 22:55:27 2006 -0700 + + [PATCH] knfsd: nfsd: oops exporting nonexistent directory + + Export a directory that does not exist: + exportfs -orw,fsid=0,insecure,no_subtree_check client:/home/NFS4 + + Try to mount from client with nfs4. Mount hangs (I'm not sure why - + that's another issue). + + While client is hung, back on server + + mkdir /home/NFS4 + + The server panics in dput. I traced the problem back to svc_export_parse() + calling path_release() even though path_lookup() failed (it happens to fill in + the nameidata structure with a negative dentry - so the test after out: + succeeds). + + After patching, an recreating the problem, the client mount still takes some + time before finally exiting with a message "couldn't read superblock". + + Here is a simple patch to resolve this issue: + + Signed-off-by: Frank Filz + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b5872b0dcc0501035d5ae53c60f8cbbb3798da8a +Author: NeilBrown +Date: Mon Apr 10 22:55:26 2006 -0700 + + [PATCH] knfsd: nfsd4: fix acl xattr length return + + We should be using the length from the second vfs_getxattr, in case it + changed. (Note: there's still a small race here; we could end up returning + -ENOMEM if the length increased between the first and second call. I don't + know whether it's worth spending a lot of effort to fix that.) + + This makes XFS ACLs usable on NFS exports, which they currently aren't, since + XFS appears to be returning a too-large value for vfs_getxattr() when it's + passed a NULL buffer. So there's probably an XFS bug here too, though since + getxattr with a NULL buffer is usually used to decide how much memory to + allocate, it may be a fairly harmless bug in most cases. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b905b7b0a054d2ab3e0c9304def998546c93f6b5 +Author: NeilBrown +Date: Mon Apr 10 22:55:25 2006 -0700 + + [PATCH] knfsd: nfsd4: better nfs4acl errors + + We're returning -1 in a few places in the NFSv4<->POSIX acl translation code + where we could return a reasonable error. + + Also allows some minor simplification elsewhere. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 249920527f9e6e5c305538bbf1ea882ee7dc1c06 +Author: NeilBrown +Date: Mon Apr 10 22:55:24 2006 -0700 + + [PATCH] knfsd: nfsd4: Wrong error handling in nfs4acl + + this fixes coverity id #3. Coverity detected dead code, since the == -1 + comparison only returns 0 or 1 to error. Therefore the if ( error < 0 ) + statement was always false. Seems that this was an if( error = nfs4... ) + statement some time ago, which got broken during cleanup. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e465a77f943f51df1a169426df879340bd0db3f3 +Author: Adrian Bunk +Date: Mon Apr 10 22:55:23 2006 -0700 + + [PATCH] fs/nfsd/nfs4state.c: make a struct static + + Signed-off-by: Adrian Bunk + Cc: Marc Eshel + Cc: Andy Adamson + Cc: J. Bruce Fields + Cc: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d5b9026a670fdb404e6e2e2e0a1b447e9ea9c1f6 +Author: NeilBrown +Date: Mon Apr 10 22:55:22 2006 -0700 + + [PATCH] knfsd: locks: flag NFSv4-owned locks + + Use the fl_lmops field to identify which locks are ours, instead of trying to + look them up in our private hash. This is safer and more efficient. + + Earlier versions of this patch used a lock flag instead, but Trond pointed out + that adding a new flag for each lock manager wasn't going to scale well, and + suggested this approach instead; a separate patch converts lockd to using + fl_lmops in the same way. + + In the NFSv4 case this looks like a bit of a hack, since the NFSv4 server + isn't currently actually defining a lock_manager_operations struct, so we end + up defining one *just* to serve as a cookie to identify our locks. + + But it works, and we actually do expect to start using the + lock_manager_operations at some point anyway. + + Signed-off-by: Marc Eshel + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7775f4c85dcbd1175f21b2fbb7221c79ec70b722 +Author: NeilBrown +Date: Mon Apr 10 22:55:20 2006 -0700 + + [PATCH] knfsd: Correct reserved reply space for read requests. + + NFSd makes sure there is enough space to hold the maximum possible reply + before accepting a request. The units for this maximum is (4byte) words. + However in three places, particularly for read request, the number given is + a number of bytes. + + This means too much space is reserved which is slightly wasteful. + + This is the sort of patch that could uncover a deeper bug, and it is not + critical, so it would be best for it to spend a while in -mm before going + in to mainline. + + (akpm: target 2.6.17-rc2, 2.6.16.3 (approx)) + + Discovered-by: "Eivind Sarto" + Signed-off-by: Neil Brown + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit df2487cff5e5be2877594f269b014652536d68bb +Author: Adrian Bunk +Date: Mon Apr 10 22:55:19 2006 -0700 + + [PATCH] ISDN_DRV_GIGASET should select, not depend on CRC_CCITT + + CRC_CCITT is an internal helper function that should be select'ed. + + Signed-off-by: Adrian Bunk + Acked-by: Tilman Schmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f4675c7016484220a62069d87958a2873d92f159 +Author: Adrian Bunk +Date: Mon Apr 10 22:55:19 2006 -0700 + + [PATCH] isdn/gigaset/common.c: fix a memory leak + + Fix a memory leak spotted by the Coverity checker if + (!try_module_get(owner)). + + Signed-off-by: Adrian Bunk + Acked-by: Tilman Schmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8ca445df3a3291c2bdd95b91142c079700a688be +Author: Adrian Bunk +Date: Mon Apr 10 22:55:18 2006 -0700 + + [PATCH] drivers/isdn/gigaset/common.c: small cleanups + + - make the needlessly global gigaset_get_cs_by_tty() static + - remove the unused EXPORT_SYMBOL_GPL(gigaset_debugdrivers) + + Signed-off-by: Adrian Bunk + Acked-by: Tilman Schmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 69049cc87dccb1e6fb54aa25c63033efac805dbd +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:16 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: make some variables non-atomic + + With Hansjoerg Lipp + + Replace some atomic_t variables in the Gigaset drivers by non-atomic ones, + using spinlocks instead to assure atomicity, as proposed in discussions on the + linux-kernel mailing list. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 27d1ac2ef7d0b9250ca9fd2ef506e12866ce8fdf +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:15 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: add README + + With Hansjoerg Lipp + + Add a README file for the Siemens Gigaset drivers to the Documentation/isdn + directory. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 70440cf24ce6841fc5a01c38e2a732cf0bc2792a +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:14 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: remove forward references + + With Hansjoerg Lipp + + Remove four unnecessary forward function declarations and an obsolete E-mail + address from the Siemens Gigaset drivers. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 443e1f45ac1fee498e3ff053c61fcc54024ee6ee +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:13 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: remove private version of __skb_put() + + With Hansjoerg Lipp + + Remove the private version of __skb_put() from the Siemens Gigaset drivers. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit abfd1dc7c18e4be89715071a524324c7b2515565 +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:12 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: mutex conversion + + With Hansjoerg Lipp + + Convert the semaphores used by the Gigaset drivers to mutexes. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 01371500b245ae63f542d74140a3d8ccb74d0318 +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:11 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: eliminate from_user argument + + With Hansjoerg Lipp + + Eliminate the from_user argument from a debugging function, thus easing the + job of sparse. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 714e8236e5ea9d39169761c546274ceb7eeb765f +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:09 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: uninline + + With Hansjoerg Lipp + + Uninline a function which was slightly too big to warrant inlining. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d48c77841a71ba552ef4e6a862642073652f4473 +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:08 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: remove IFNULL macros + + With Hansjoerg Lipp + + Remove the IFNULL debugging macros from the Gigaset drivers. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b1d47464c947f08125dc4ac4a2321ced9e2fed29 +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:07 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: sysfs usage + + With Hansjoerg Lipp + + Correct the way the Gigaset drivers create their sysfs entries. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 784d5858aac58c06608def862d73ae9a32f5ee23 +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:04 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: logging usage + + With Hansjoerg Lipp + + Improve error reporting of the Gigaset drivers, by using the + dev_err/dev_warn/dev_info macros from device.h instead of err/warn/info from + usb.h whereever possible. + + Also rename the private dbg macro to gig_dbg in order to avoid confusion with + the macro of the same name in usb.h. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ec81b5e6294088dc4738d0e8c2316c0dc081215c +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:03 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: timer usage + + With Hansjoerg Lipp + + Correct timer usage in the Gigaset drivers to take advantage of the existing + setup_timer() function, and use milliseconds as unit. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bd0d6ef944f992c584152dbfca99188107bf2f8d +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:02 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: Kconfig correction + + With Hansjoerg Lipp + + Remove the restriction to build the Gigaset drivers as modules only. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 917f5085ddb3498033551e711fb22f48ddeb8378 +Author: Tilman Schmidt +Date: Mon Apr 10 22:55:00 2006 -0700 + + [PATCH] isdn4linux: Siemens Gigaset drivers: code cleanup + + With Hansjoerg Lipp + + Source code formatting cleanups for the Siemens Gigaset drivers, such as line + length, comments, removal of unused declarations, and typo corrections. It + does not introduce any functional changes. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 08a53cdce62d37d918530bbbf726cc01b21dc3d1 +Author: Miklos Szeredi +Date: Mon Apr 10 22:54:59 2006 -0700 + + [PATCH] fuse: account background requests + + The previous patch removed limiting the number of outstanding requests. This + patch adds a much simpler limiting, that is also compatible with file locking + operations. + + A task may have at most one synchronous request allocated. So these requests + need not be otherwise limited. + + However the number of background requests (release, forget, asynchronous + reads, interrupted requests) can grow indefinitely. This can be used by a + malicous user to cause FUSE to allocate arbitrary amounts of unswappable + kernel memory, denying service. + + For this reason add a limit for the number of background requests, and block + allocations of new requests until the number goes bellow the limit. + + Also use this mechanism to block all requests until the INIT reply is + received. + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ce1d5a491f0ee50560416a73faa5e4ddbab074bd +Author: Miklos Szeredi +Date: Mon Apr 10 22:54:58 2006 -0700 + + [PATCH] fuse: clean up request accounting + + FUSE allocated most requests from a fixed size pool filled at mount time. + However in some cases (release/forget) non-pool requests were used. File + locking operations aren't well served by the request pool, since they may + block indefinetly thus exhausting the pool. + + This patch removes the request pool and always allocates requests on demand. + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a87046d822f2d982d25b24c4a644d34f22d4888a +Author: Miklos Szeredi +Date: Mon Apr 10 22:54:56 2006 -0700 + + [PATCH] fuse: consolidate device errors + + Return consistent error values for the case when the opened device file has no + mount associated yet. + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d713311464bcca73c990d1a1b5c9467eae87f5b4 +Author: Miklos Szeredi +Date: Mon Apr 10 22:54:55 2006 -0700 + + [PATCH] fuse: use a per-mount spinlock + + Remove the global spinlock in favor of a per-mount one. + + This patch is basically find & replace. The difficult part has already been + done by the previous patch. + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0720b315976447cba3f0c3e211223b8cb82b0f93 +Author: Miklos Szeredi +Date: Mon Apr 10 22:54:55 2006 -0700 + + [PATCH] fuse: simplify locking + + This is in preparation for removing the global spinlock in favor of a + per-mount one. + + The only critical part is the interaction between fuse_dev_release() and + fuse_fill_super(): fuse_dev_release() must see the assignment to + file->private_data, otherwise it will leak the reference to fuse_conn. + + This is ensured by the fput() operation, which will synchronize the assignment + with other CPU's that may do a final fput() soon after this. + + Also redundant locking is removed from fuse_fill_super(), where exclusion is + already ensured by the BKL held for this function by the VFS. + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e5ac1d1e70a8c19a65a959d73650203df7a2e168 +Author: Jeff Dike +Date: Mon Apr 10 22:54:53 2006 -0700 + + [PATCH] fuse: add O_NONBLOCK support to FUSE device + + I don't like duplicating the connected and list_empty tests in fuse_dev_readv, + but this seemed cleaner than adding the f_flags test to request_wait. + + Signed-off-by: Jeff Dike + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 385a17bfc3cb035333c8a91eddc78a6e04c4625e +Author: Jeff Dike +Date: Mon Apr 10 22:54:52 2006 -0700 + + [PATCH] fuse: add O_ASYNC support to FUSE device + + This adds asynchronous notification to FUSE - a FUSE server can request + O_ASYNC on a /dev/fuse file descriptor and receive SIGIO when there is input + available. + + One subtlety - fuse_dev_fasync, which is called when O_ASYNC is requested, + does no locking, unlink the other methods. I think it's unnecessary, as the + fuse_conn.fasync list is manipulated only by fasync_helper and kill_fasync, + which provide their own locking. It would also be wrong to use the fuse_lock, + as it's a spin lock and fasync_helper can sleep. My one concern with this is + the fuse_conn going away underneath fuse_dev_fasync - sys_fcntl takes a + reference on the file struct, so this seems not to be a problem. + + Signed-off-by: Jeff Dike + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7025d9ad10a38dadef8b286e0092731c2d3cdc53 +Author: Miklos Szeredi +Date: Mon Apr 10 22:54:50 2006 -0700 + + [PATCH] fuse: fix fuse_dev_poll() return value + + fuse_dev_poll() returned an error value instead of a poll mask. Luckily (or + unluckily) -ENODEV does contain the POLLERR bit. + + There's also a race if filesystem is unmounted between fuse_get_conn() and + spin_lock(), in which case this event will be missed by poll(). + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d3406ffa4af8af1d7c14cff06e003eb0a557d4ad +Author: Miklos Szeredi +Date: Mon Apr 10 22:54:49 2006 -0700 + + [PATCH] fuse: fix oops in fuse_send_readpages() + + During heavy parallel filesystem activity it was possible to Oops the kernel. + The reason is that read_cache_pages() could skip pages which have already been + inserted into the cache by another task. Occasionally this may result in zero + pages actually being sent, while fuse_send_readpages() relies on at least one + page being in the request. + + So check this corner case and just free the request instead of trying to send + it. + + Reported and tested by Konstantin Isakov. + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3e16f6afb267c0256416d481862ce8019c33417d +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:48 2006 -0700 + + [PATCH] RTC subsystem: VR41XX cleanup + + Clean up kconfig entry for the rtc-vr41xx. + + Signed-off-by: Alessandro Zummo + Cc: Yoichi Yuasa + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8417eb7a168eee8b9baa744ee5c591868e85529a +Author: Yoichi Yuasa +Date: Mon Apr 10 22:54:47 2006 -0700 + + [PATCH] RTC subsystem: VR41XX driver + + This patch updates VR4100 series RTC driver. + + * This driver supports new RTC subsystem. + * Simple set time/read time test worked fine. + + Signed-off-by: Yoichi Yuasa + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2260a25c93cb356e834f1ab08b419f9897c977b7 +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:46 2006 -0700 + + [PATCH] RTC subsystem: SA1100 cleanup + + - convert printks to dev_xxx + + - remove messages in excess + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d1d65b7712016ca5ff2e44470eb13e772999de94 +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:45 2006 -0700 + + [PATCH] RTC subsystem: compact error messages + + Move registration error message from drivers to core. + + Signed-off-by: Alessandro Zummo + Cc: Lennert Buytenhek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8289607249ad25ecfc9a3742873fcd8f319d5b09 +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:44 2006 -0700 + + [PATCH] RTC subsystem: RS5C372 sysfs fix + + Fix sysfs show() return code + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit adfb4341259f2f89baac2316a8a3660b63c1103b +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:43 2006 -0700 + + [PATCH] RTC subsystem: fix proc output + + Move the "24hr: yes" proc output from drivers to rtc proc code. This is + required because the time value in the proc output is always in 24hr mode + regardless of the driver. + + Signed-off-by: Alessandro Zummo + Cc: Lennert Buytenhek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f90a65060e6a71a818abc3584ac64f986b838fba +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:42 2006 -0700 + + [PATCH] RTC subsystem: whitespaces and error messages cleanup + + - fix whitespace + + - remove some debugging in excess + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 015aefbb87f9e6bd5d3c82ece97f7a7ba8f9b66c +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:42 2006 -0700 + + [PATCH] RTC subsystem: X1205 sysfs cleanup + + Fix sysfs show() return code + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3903586ab0eeaf363bd33633f0ae4846f03e2db5 +Author: Alessandro Zummo +Date: Mon Apr 10 22:54:41 2006 -0700 + + [PATCH] RTC subsystem: DS1672 cleanup + + - removed a duplicate error message + - bumped driver version + - removed some debugging messages in excess + - refined the formatting + - adjusted copyright notice + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8a95b252d194ea57c3d2c16ec2a25b1b70e36cad +Author: Kumar Gala +Date: Mon Apr 10 22:54:39 2006 -0700 + + [PATCH] RTC subsystem: DS1672 oscillator handling + + * Always enable the oscillator when we set the time + * If the oscillator is disable when we probe the RTC report back a warning + to the user + * Added sysfs attribute to represent the state of the oscillator + + Signed-off-by: Kumar Gala + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 389ed39b9711bbe5210d5e118e1f1af36ca88b7c +Author: Ananiev, Leonid I +Date: Mon Apr 10 22:54:38 2006 -0700 + + [PATCH] ext3: Fix missed mutex unlock + + Missed unlock_super()call is added in error condition code path. + + Signed-off-by: Leonid Ananiev + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d93c2efc93f61c95808e303982f12fe6f5987270 +Author: Eric Sesterhenn +Date: Mon Apr 10 22:54:37 2006 -0700 + + [PATCH] Overrun in cdrom/aztcd.c + + This fixes coverity bug id #473. After the for loop i==16 if we didn't find a + cdrom. So we should check for i==16 first before checking the array element. + + Signed-off-by: Eric Sesterhenn + Cc: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e60b6e2f747e94358fed9a23afd6abd738de4bf7 +Author: Eric Sesterhenn +Date: Mon Apr 10 22:54:36 2006 -0700 + + [PATCH] Wrong out of range check in drivers/char/applicom.c + + This fixes coverity bug id #469. The out of range check didnt work as + intended, as seen by the printk(), which states that boardno has to be 1 <= + boardno <= MAX_BOARD. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fd5403c79bc21819f6e0c40ba098cea8b6a418bd +Author: Coywolf Qi Hunt +Date: Mon Apr 10 22:54:35 2006 -0700 + + [PATCH] page-writeback comment fixes + + Signed-off-by: Coywolf Qi Hunt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7551d9a20b3cfbac9f8a28b7d909c4b15a94924f +Author: Andrew Morton +Date: Mon Apr 10 22:54:34 2006 -0700 + + [PATCH] 3ware: kmap_atomic() fix + + We must disable local IRQs while holding KM_IRQ0 or KM_IRQ1. Otherwise, an + IRQ handler could use those kmap slots while this code is using them, + resulting in memory corruption. + + Thanks to Nick Orlov for reporting. + + Cc: + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b3f28a9a26d9e8a02119cc8d1604fdb891c23697 +Author: Andrew Morton +Date: Mon Apr 10 22:54:32 2006 -0700 + + [PATCH] hdaps: use ENODEV + + Use ENODEV when the hdaps hardware isn't there, not ENXIO. + + Cc: Jean Delvare + Cc: Robert Love + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4791c03d2c3b9b6822784f6d7c8e5bbadb1f35ae +Author: Corey Minyard +Date: Mon Apr 10 22:54:31 2006 -0700 + + [PATCH] ipmi: fix event queue limit + + The event handler mechanism in the IPMI driver had a limit on the number of + received events, but the counts were not being updated. Update the counts + to impose a limit. This is not a critical fix, as this function (the + sending of the events) has to be turned on by the user, anyway. This + avoids problems if they forget to turn it back off. + + Signed-off-by: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 091e881d0e55496d8887b61446ae1c598b0995b6 +Author: Arnd Bergmann +Date: Mon Apr 10 22:54:31 2006 -0700 + + [PATCH] inotify: check for NULL inode in inotify_d_instantiate + + The spufs file system creates files in a directory before instantiating the + directory itself, which causes a NULL pointer access in + inotify_d_instantiate since c32ccd87bfd1414b0aabfcd8dbc7539ad23bcbaa. + + I'd like to keep this behavior since it means that the user will not have + access to files in the directory before I know that I succeed in creating + everything in it. This patch adds a simple check for the inode to keep + that working. + + Signed-off-by: Arnd Bergmann + Acked-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 68250ba5df4c9d00d3064a0ba9a894035436916b +Author: Vivek Goyal +Date: Mon Apr 10 22:54:30 2006 -0700 + + [PATCH] kdump: enable CONFIG_PROC_VMCORE by default + + Everybody seems to be using /proc/vmcore as a method to access the kernel + crash dump. Hence probably it makes sense to enable CONFIG_PROC_VMCORE by + default if CONFIG_CRASH_DUMP is selected. This makes kdump configuration + further easier for a user. + + Signed-off-by: Vivek Goyal + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5ac90c9f78953b1a2ac937cc5a2f90c3521a710e +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:54:28 2006 -0700 + + [PATCH] module support: record in vermagic ability to unload a module + + An UML user reported (against 2.6.13.3/UML) he got kernel Oopses when + trying to rmmod (on a kernel with module unloading enabled) a module + compiled with module unloading disabled. As crashing is a very correct + thing to do in that case, a solution is altering the vermagic string to + include this too. + + Possibly, however, the code should not crash in this case, even if the + module didn't support unloading - it should simply abort the module + removal. In this case, fixing that bug would be a better solution. I've + not investigated though. + + (akpm: a bit marginal - root screwed up and shot himself in the foot). + + Cc: Hayim Shaul + Cc: Rusty Russell + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7ad04b0d0ebed1844522dd83cca0ef838d1ac673 +Author: Martin Michlmayr +Date: Mon Apr 10 22:54:27 2006 -0700 + + [PATCH] parport: remove duplicate entry for NETMOS_9835 + + Remove a duplicated entry from parport_serial_pci_tbl. + + Signed-off-by: Martin Michlmayr + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d45aebbfa4d0682ec9b15c3687835ac1f5f01f50 +Author: Randy Dunlap +Date: Mon Apr 10 22:54:26 2006 -0700 + + [PATCH] kexec: update MAINTAINERS + + Eric is the kexec maintainer. + + Signed-off-by: Randy Dunlap + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1a26feb9622f1b1bc5e4f5f60f65557b73c38cbf +Author: David Howells +Date: Mon Apr 10 22:54:26 2006 -0700 + + [PATCH] Keys: Improve usage of memory barriers and remove IRQ disablement + + Remove an unnecessary memory barrier (implicit in rcu_dereference()) from + install_session_keyring(). + + install_session_keyring() is also rearranged a little to make it slightly + more efficient. + + As install_*_keyring() may schedule (in synchronize_rcu() or + keyring_alloc()), they may not be entered with interrupts disabled - and so + there's no point saving the interrupt disablement state over the critical + section. + + exec_keys() will also be invoked with interrupts enabled, and so that doesn't + need to save the interrupt state either. + + Signed-off-by: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 25a80759c5c237f0ecf57eb11fdd4efb21079c88 +Author: Geert Uytterhoeven +Date: Mon Apr 10 22:54:25 2006 -0700 + + [PATCH] Update contact info for Geert Uytterhoeven + + Update contact info for Geert Uytterhoeven + + Signed-off-by: Geert Uytterhoeven + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c14038c39ddd9c14225907a05a6ac4d91d645ef1 +Author: David Howells +Date: Mon Apr 10 22:54:24 2006 -0700 + + [PATCH] Improve data-dependency memory barrier example in documentation + + In the memory barrier document, improve the example of the data dependency + barrier situation by: + + (1) showing the initial values of the variables involved; and + + (2) repeating the instruction sequence description, this time with the data + dependency barrier actually shown to make it clear what the revised + sequence actually is. + + Signed-off-by: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dbc8700e27a94621de9d22c506c67913e0121501 +Author: David Howells +Date: Mon Apr 10 22:54:23 2006 -0700 + + [PATCH] Fix memory barrier docs wrt atomic ops + + Fix the memory barrier documentation to attempt to describe atomic ops + correctly. + + atomic_t ops that return a value _do_ imply smp_mb() either side, and so + don't actually require smp_mb__*_atomic_*() special barriers. + + Also explains why special barriers exist in addition to normal barriers. + + Further fix the memory barrier documents to portray bitwise operation + memory barrier effects correctly following Nick Piggin's comments. + + It makes the point that any atomic op that both modifies some state in + memory and returns information on that state implies memory barriers on + both sides. + + Signed-off-by: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 235963b2edc080b577000031b9ad75804dd83c88 +Author: Randy Dunlap +Date: Mon Apr 10 22:54:22 2006 -0700 + + [PATCH] Doc: fix mtrr userspace programs to build cleanly + + Fix mtrr-add.c and mtrr-show.c in Doc/mtrr.txt to build cleanly. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8c37bea1a0506f45111c64bac4325173e066b22d +Author: Randy Dunlap +Date: Mon Apr 10 22:54:21 2006 -0700 + + [PATCH] docs: laptop-mode.txt source file build + + Fix C source file in Doc/laptop-mode.txt to compile. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 56b146d36db933844011d5026c6f55593037c7b8 +Author: Tobias Klauser +Date: Mon Apr 10 22:54:21 2006 -0700 + + [PATCH] Last DMA_xBIT_MASK cleanups + + These are the last conversions of pci_set_dma_mask(), + pci_set_consistent_dma_mask() and pci_dma_supported() to use DMA_xBIT_MASK + constants from linux/dma-mapping.h + + Signed-off-by: Tobias Klauser + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 31cc48bfeef7a021d6e29f3454a4505edcfd6daa +Author: Mark Bellon +Date: Mon Apr 10 22:54:20 2006 -0700 + + [PATCH] MPBL0010 driver sysfs permissions wide open + + The MPBL0010 Telco clock driver (drivers/char/tlclk.c) uses 0222 (anyone + can write) permissions on its writable sysfs entries. Alter the + permissions to 0220 (owner and group can write). + + The use case for this driver is to configure the fail over behavior of the + clock hardware. That should be done by the more privileged users. + + Signed-off-by: Mark Bellon + Acked-by: "Gross, Mark" + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 14a6283eb5c1c70e6deee985c85dcce884150737 +Author: Paul Fulghum +Date: Mon Apr 10 22:54:19 2006 -0700 + + [PATCH] tty release_dev(): remove dead code + + Remove dead code from tty_io.c release_dev() + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9453a5adaf32aa0b31d1491819a083d403f645c1 +Author: Paul Fulghum +Date: Mon Apr 10 22:54:18 2006 -0700 + + [PATCH] ptmx: fix duplicate idr_remove + + Remove duplicate call to idr_remove() in ptmx_open. + + Error during open can result in call to release_dev() followed by call to + idr_remove(). release_dev already calls idr_remove so the second call can + cause a stack dump in idr_remove()->sub_remove() flagging an attempt to + release an already released entry. + + I reproduces this on a machine with a misconfigured X server (attempting to + restart multiple times rapidly) getting the same error as the 1st link + below. + + This also seems to be related to: + http://marc.theaimsgroup.com/?l=selinux&m=110536513426735&w=2 + http://marc.theaimsgroup.com/?l=selinux&m=110596994916785&w=2 + + The stack dump can occur on close (as well as open) as shown + in the 1st instance above, possible from something like: + + process A - open (index=0), open fail to out1, + release_dev calls idr_remove (index 0), down(sem) sleeps + process B - open (index=0), open OK (idr allocated) + process A - wake and call idr_remove on index 0 + ... + process B - close, release_dev, stack dump on idr_remove (index=0) + because entry already removed + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit acc8dadc0b3f007e6e60da77feb2efe2a19c5cda +Author: Joern Engel +Date: Mon Apr 10 22:54:17 2006 -0700 + + [PATCH] Remove blkmtd + + Remove the blkmtd driver. + + - An alternative exists (block2mtd) that hasn't had bug report for > 1 year. + + - Most embedded people tend to use ancient kernels with custom patches from + mtd cvs and elsewhere, so the 1 year warning period neither helps nor hurts + them too much. + + - It's in the way of klibc. The problems caused by pulling blkmtd support + are fairly low, while the problems caused by delaying klibc can be fairly + substantial. At best, this would be a severe burden on hpa's time. + + Signed-off-by: Joern Engel + Acked-by: Thomas Gleixner + Cc: "H. Peter Anvin" + Cc: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f5e902817fee1589badca1284f49eecc0ef0c200 +Author: Roland McGrath +Date: Mon Apr 10 22:54:16 2006 -0700 + + [PATCH] process accounting: take original leader's start_time in non-leader exec + + The only record we have of the real-time age of a process, regardless of + execs it's done, is start_time. When a non-leader thread exec, the + original start_time of the process is lost. Things looking at the + real-time age of the process are fooled, for example the process accounting + record when the process finally dies. This change makes the oldest + start_time stick around with the process after a non-leader exec. This way + the association between PID and start_time is kept constant, which seems + correct to me. + + Signed-off-by: Roland McGrath + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 491d4bed8051c655c7664b85446e13901463eb63 +Author: Andrew Morton +Date: Mon Apr 10 22:54:14 2006 -0700 + + [PATCH] sys_kexec_load() naming fixups + + __NR_sys_kexec_load should be __NR_kexec_load. Mainly affects users of the + _syscallN() macros, and glibc is already checking for __NR_kexec_load. + + Cc: Ulrich Drepper + Cc: "Eric W. Biederman" + Cc: Mikael Starvik + Cc: David Howells + Cc: Yoshinori Sato + Cc: Hirokazu Takata + Cc: Paul Mundt + Cc: Kazumoto Kojima + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5ef37b196467bf2f9d41e5579dd388c08b800f7c +Author: Joe Korty +Date: Mon Apr 10 22:54:13 2006 -0700 + + [PATCH] add cpu_relax to hrtimer_cancel + + Add a cpu_relax() to the hand-coded spinwait in hrtimer_cancel(). + + Signed-off-by: Joe Korty + Acked-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2395140ee2bffe38b1c8a59318f62882b797f5e6 +Author: Davide Libenzi +Date: Mon Apr 10 22:54:12 2006 -0700 + + [PATCH] uniform POLLRDHUP handling between epoll and poll/select + + As reported by Michael Kerrisk, POLLRDHUP handling was not consistent + between epoll and poll/select, since in epoll it was unmaskeable. This + patch brings uniformity in POLLRDHUP handling. + + Signed-off-by: Davide Libenzi + Cc: Michael Kerrisk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0f6c840d774d669baf4727c0499ab0674826429f +Author: Robert Love +Date: Mon Apr 10 22:54:11 2006 -0700 + + [PATCH] hdaps: support new Lenovo machines + + Add support for forthcoming Lenovo-branded machines to the HDAPS driver. + + Signed-off-by: Robert Love + Cc: Jean Delvare + Cc: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 80e8ff634169be3fc2ac48f258cc7638e898cd46 +Author: Vivek Goyal +Date: Mon Apr 10 22:54:10 2006 -0700 + + [PATCH] kdump proc vmcore size oveflow fix + + A couple of /proc/vmcore data structures overflow with 32bit systems having + memory more than 4G. This patch fixes those. + + Signed-off-by: Ken'ichi Ohmichi + Signed-off-by: Vivek Goyal + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4c416ab71164dc8d3f800a942fb18c4e67f67897 +Author: Jan-Benedict Glaw +Date: Mon Apr 10 22:54:09 2006 -0700 + + [PATCH] Silence a const vs non-const warning + + lib/string.c: In function 'memcpy': + lib/string.c:470: warning: initialization discards qualifiers from pointer = + target type + + Signed-off-by: Jan-Benedict Glaw + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b04eb6aa08ecc3e24df2f78ebc486011ebd74feb +Author: Mitchell Blank Jr +Date: Mon Apr 10 22:54:08 2006 -0700 + + [PATCH] select: don't overflow if (SELECT_STACK_ALLOC % sizeof(long) != 0) + + If SELECT_STACK_ALLOC is not a multiple of sizeof(long) then stack_fds[] + would be shorter than SELECT_STACK_ALLOC bytes and could overflow later in + the function. Fixed by simply rearranging the test later to work on + sizeof(stack_fds) Currently SELECT_STACK_ALLOC is 256 so this doesn't + happen, but it's nasty to have things like this hidden in the code. What + if later someone decides to change SELECT_STACK_ALLOC to 300? + + Signed-off-by: Mitchell Blank Jr + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a9cdf410ca8f59b52bc7061a6751050010c7cc5b +Author: Keith Owens +Date: Mon Apr 10 22:54:07 2006 -0700 + + [PATCH] Reinstate const in next_thread() + + Before commit 47e65328a7b1cdfc4e3102e50d60faf94ebba7d3, next_thread() took + a const task_t. Reinstate the const qualifier, getting the next thread + never changes the current thread. + + Signed-off-by: Keith Owens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 49b6e2ad00435209503863932d03470f825e0a1a +Author: Dave Jones +Date: Mon Apr 10 22:54:06 2006 -0700 + + [PATCH] Remove extraneous \n in doubletalk init printk. + + Doubletalk printk's an extraneous \n + + Signed-off-by: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 00fbc6dfe7c4487f812829bff79c3121c8fd3bca +Author: Eric Van Hensbergen +Date: Mon Apr 10 22:54:06 2006 -0700 + + [PATCH] 9p: handle sget() failure + + Handle a failing sget() in v9fs_get_sb(). + + Signed-off-by: Christoph Hellwig + Signed-off-by: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e1a2509023785bd3199ac068ab80155aeba01265 +Author: Andrew Morton +Date: Mon Apr 10 22:54:05 2006 -0700 + + [PATCH] make tty_insert_flip_string_flags() a non gpl export + + We changed the wrong symbol. It's tty_insert_flip_string_flags() which is + called from the previously-non-GPL'ed now-inlined tty_insert_flip_char(). + + Fix that up, and uninline tty_schedule_flip() while we're there. + + Cc: Tobias Powalowski + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d824e66a9a427faf69c58f98dd7e1c3d1bb51c61 +Author: Christoph Hellwig +Date: Mon Apr 10 22:54:04 2006 -0700 + + [PATCH] build kernel/irq/migration.c only if CONFIG_GENERIC_PENDING_IRQ is set + + Signed-off-by: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f6422f17d3a480f21917a3895e2a46b968f56a08 +Author: Herbert Poetzl +Date: Mon Apr 10 22:54:03 2006 -0700 + + [PATCH] vfs: propagate mnt_flags into do_loopback/vfsmount + + The mnt_flags are propagated into do_loopback(), so that they can be stored + with the vfsmount + + Signed-off-by: Herbert Poetzl + Acked-by: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fb5035dbbea8826cdbeb5c43d7605255eb6f0baa +Author: Ben Dooks +Date: Mon Apr 10 22:54:02 2006 -0700 + + [PATCH] leds: re-layout include/linux/leds.h + + Lay out the structure definitions in include/linux/leds.h to be aligned as + much as possible. Also minor updates to the comments to make them more + concise. + + Signed-off-by: Ben Dooks + Acked-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 24f51e81745861c70da2255ce30c7078aed2d20e +Author: Ben Dooks +Date: Mon Apr 10 22:54:01 2006 -0700 + + [PATCH] leds: reorganise Kconfig + + Reorganise the drivers/leds Kconfig file to have the LED trigger enable + with the triggers themselves. + + Also add comments to divide up the sections into the drivers and triggers + + Signed-off-by: Ben Dooks + Acked-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit baa351eaf3a309f5ff50a77c63d234d93bce3f62 +Author: Ben Dooks +Date: Mon Apr 10 22:54:01 2006 -0700 + + [PATCH] leds: fix IDE disk trigger name + + The IDE Disk LED trigger has the same name as the timer trigger. + + Signed-off-by: Ben Dooks + Acked-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 54bdc470100b9d8ffd349a3ebe23013c25affddf +Author: Ben Dooks +Date: Mon Apr 10 22:54:00 2006 -0700 + + [PATCH] S3C24XX GPIO LED support + + GPIO LED support for Samsung S3C24XX SoC series processors. + + Signed-off-by: Ben Dooks + Acked-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aa7271076ae6547d7f370ad7e91ef86fdb318f17 +Author: Adrian Bunk +Date: Mon Apr 10 22:53:59 2006 -0700 + + [PATCH] the scheduled unexport of panic_timeout + + Implement the scheduled unexport of panic_timeout. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ba6edfcd1708da2e665f14eee76e87f39448ec40 +Author: Andrew Morton +Date: Mon Apr 10 22:53:58 2006 -0700 + + [PATCH] timer initialisation fix + + We need the boot CPU's tvec_bases[] entry to be initialised super-early in + boot, for early_serial_setup(). That runs within setup_arch(), before even + per-cpu areas are initialised. + + The patch changes tvec_bases to use compile-time initialisation, and adds a + separate array `tvec_base_done' to keep track of which CPU has had its + tvec_bases[] entry initialised (because we can no longer use the zeroness of + that tvec_bases[] entry to determine whether it has been initialised). + + Thanks to Eugene Surovegin for diagnosing this. + + Cc: Eugene Surovegin + Cc: Jan Beulich + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5246d0503130fa58904c8beb987fcf93b96d8ab6 +Author: Andrew Morton +Date: Mon Apr 10 22:53:57 2006 -0700 + + [PATCH] sync_file_range(): use unsigned for flags + + Ulrich suggested that the `flags' arg to sync_file_range() become unsigned. + + Cc: Ulrich Drepper + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8833d328caf009f8da58337e17a2cf5d52993a7c +Author: Kyle McMartin +Date: Mon Apr 10 22:53:57 2006 -0700 + + [PATCH] Clean up arch-overrides in linux/string.h + + Some string functions were safely overrideable in lib/string.c, but their + corresponding declarations in linux/string.h were not. Correct this, and + make strcspn overrideable. + + Odds of someone wanting to do optimized assembly of these are small, but + for the sake of cleanliness, might as well bring them into line with the + rest of the file. + + Signed-off-by: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 894b5779ceeabdce139068310e58bcf51ed9bb22 +Author: Kyle McMartin +Date: Mon Apr 10 22:53:56 2006 -0700 + + [PATCH] No arch-specific strpbrk implementations + + While cleaning up parisc_ksyms.c earlier, I noticed that strpbrk wasn't + being exported from lib/string.c. Investigating further, I noticed a + changeset that removed its export and added it to _ksyms.c on a few more + architectures. The justification was that "other arches do it." + + I think this is wrong, since no architecture currently defines + __HAVE_ARCH_STRPBRK, there's no reason for any of them to be exporting it + themselves. Therefore, consolidate the export to lib/string.c. + + Signed-off-by: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c80d79d746cc48bd94b0ce4f6d4f3c90cd403aaf +Author: Yasunori Goto +Date: Mon Apr 10 22:53:53 2006 -0700 + + [PATCH] Configurable NODES_SHIFT + + Current implementations define NODES_SHIFT in include/asm-xxx/numnodes.h for + each arch. Its definition is sometimes configurable. Indeed, ia64 defines 5 + NODES_SHIFT values in the current git tree. But it looks a bit messy. + + SGI-SN2(ia64) system requires 1024 nodes, and the number of nodes already has + been changeable by config. Suitable node's number may be changed in the + future even if it is other architecture. So, I wrote configurable node's + number. + + This patch set defines just default value for each arch which needs multi + nodes except ia64. But, it is easy to change to configurable if necessary. + + On ia64 the number of nodes can be already configured in generic ia64 and SN2 + config. But, NODES_SHIFT is defined for DIG64 and HP'S machine too. So, I + changed it so that all platforms can be configured via CONFIG_NODES_SHIFT. It + would be simpler. + + See also: http://marc.theaimsgroup.com/?l=linux-kernel&m=114358010523896&w=2 + + Signed-off-by: Yasunori Goto + Cc: Hirokazu Takata + Cc: "Luck, Tony" + Cc: Andi Kleen + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Cc: Ivan Kokshaysky + Cc: Richard Henderson + Cc: Kyle McMartin + Cc: Russell King + Cc: Ralf Baechle + Cc: Jack Steiner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 653edba1a8b2ed018bdfb078131324dfbfe1dd6a +Author: Frank Gevaerts +Date: Mon Apr 10 22:53:51 2006 -0700 + + [PATCH] hdaps: add support for Thinkpad R52 + + This adds support for my Thinkpad R52, which for some reason is not matched + by the "ThinkPad R52" line. + + Signed-off-by: Frank Gevaerts + Cc: Robert Love + Cc: Dmitry Torokhov + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5bd1db65ec3d21db6d34e96679c7443c18e135c5 +Author: Dave Jones +Date: Mon Apr 10 22:53:51 2006 -0700 + + [PATCH] S390: fix implicit declaration of (un)likely. + + include/asm/atomic.h:94: warning: implicit declaration of function 'unlikely' + include/asm/atomic.h:97: warning: implicit declaration of function 'likely' + + Signed-off-by: Dave Jones + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b068b43ba4a2aa576f8c0db3dc59ba529d8a6cdd +Author: Adrian Bunk +Date: Mon Apr 10 22:53:50 2006 -0700 + + [PATCH] arch/s390/Makefile: remove -finline-limit=10000 + + -finline-limit might have been required for older compilers, but nowadays + it does no longer make sense. + + Signed-off-by: Adrian Bunk + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f976069a3a4f9f79ef816223cccb1efa5c4f51ed +Author: Peter Oberparleiter +Date: Mon Apr 10 22:53:49 2006 -0700 + + [PATCH] s390: minor tape fixes + + Cleanup of minor bugs found by a source code checker. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7220fe8b7915af4ffcd42d73c285c5898734d087 +Author: Horst Hummel +Date: Mon Apr 10 22:53:48 2006 -0700 + + [PATCH] s390: dasd proc entries + + The proc_mkdir calls in the dasd driver are not check for NULL pointers. Add + code to check the pointers and bail out if one of the proc entries could not + be created. + + Signed-off-by: Horst Hummel + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 25ee4cf831fcc2855927c175d246a25e5ebe5902 +Author: Peter Oberparleiter +Date: Mon Apr 10 22:53:47 2006 -0700 + + [PATCH] s390: fail-fast requests on quiesced devices + + Using the fail-fast flag in i/o requests on a dasd disk which has been + quiesced leads to kernel panics. Modify the request start function to only + work on requests in a valid state. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dafd87aaef7d95a6ad3ff92e0d512e5b166c0716 +Author: Horst Hummel +Date: Mon Apr 10 22:53:47 2006 -0700 + + [PATCH] s390: dasd device offline messages + + The dasd driver sometimes print the misleading message "Can't offline dasd + device with open count = 0". The reason why it can't offline the device in + this case is that the device is still in the startup phase. Print a more + meaningful message. + + Signed-off-by: Horst Hummel + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 06fbcb104ad16c22eb5718ae598b306c777be8af +Author: Peter Oberparleiter +Date: Mon Apr 10 22:53:46 2006 -0700 + + [PATCH] s390: increase cio_trace debug event size + + Debugging events in cio_trace/hex_ascii are truncated for some trace entries. + Increase trace event size to 16 bytes to cover longer text events, make + CIO_HEX_EVENT an inline function that loops to cover bigger hex events. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a7fbf6bba7f1f0616b0223a8b1cba91fffe607f5 +Author: Cornelia Huck +Date: Mon Apr 10 22:53:45 2006 -0700 + + [PATCH] s390: wrong return codes in cio_ignore_proc_init() + + cio_ignore_proc_init() returns 1 in case of success and 0 in case of failure. + The caller tests for != 0, so better return 0 in case of success and -ENOENT + in case of failure. + + Signed-off-by: Cornelia Huck + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit da074d0ac8ccae1068dc227ef9893c2510d23bd8 +Author: Peter Oberparleiter +Date: Mon Apr 10 22:53:44 2006 -0700 + + [PATCH] s390: invalid check after kzalloc() + + Typo. After the call to kzalloc() for kdb->key_maps the test for NULL checks + the wrong variable. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0664299743d213e59ea70b2cf2e4a81ee367e80b +Author: Peter Oberparleiter +Date: Mon Apr 10 22:53:43 2006 -0700 + + [PATCH] s390: ebdic to ascii conversion tables + + Make the length of ebcdic<->ascii conversion arrays known. This avoid + warnings with source code checking tools. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bdc7f159096856dac570e2659d6381841e0aaa78 +Author: Martin Schwidefsky +Date: Mon Apr 10 22:53:42 2006 -0700 + + [PATCH] s390: update default configuration + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 52c7378236103ce5fbfb7b3e6ac46aa9de9f970d +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:41 2006 -0700 + + [PATCH] uml: avoid warnings for diffent names for an unsigned quadword + + Since on some 64-bit systems __u64 is rightfully defined to unsigned long and + GCC recognizes anyway unsigned long and unsigned long long as different, fix + some types back to being unsigned long long to avoid warnings and errors (for + prototype mismatch) on those systems. + + Thanks to the report by Wesley Emeneker wesleyemeneker (at) google (dot) com + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 40dbb8676ed0d4c7a40596c7ef8c1c7acde9d972 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:40 2006 -0700 + + [PATCH] uml: fix parallel make early failure on clean tree + + Parallel make failed once for me - fix this by adding the appropriate command + (mkdir before creating a link in that dir). + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Sam Ravnborg + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dbdb4c06b73599dc162b2cad1af304b498baa107 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:39 2006 -0700 + + [PATCH] uml: local_irq_save, not local_save_flags + + The call to local_save_flags seems bogus since it is followed by + local_irq_restore, and it's intended to lock the list from concurrent + mconsole_interrupt invocations. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 87276f721a9407a4a152b09265dc079f37674672 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:39 2006 -0700 + + [PATCH] uml: fix big stack user + + Switch this proc from storing 4k of data (a whole path) on the stack to + keeping it on the heap. + + Maybe it's not called in process context but only in early boot context (where + in UML you have a normal process stack on the host) but just to be safe, fix + it. + + While at it some little readability simplifications. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d84a19ce52a7b01dc7318ea3a8223dfe44cccb6f +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:38 2006 -0700 + + [PATCH] uml: fix failure path after conversion + + Little fix for error paths in this code. + + - Some bug come from conversion to os-Linux (open() doesn't follow the + kernel -errno return convention, while the old code called os_open_file() + which followed it). This caused the wrong return code to be printed. + + - Then be more precise about what happened and do some whitespace fixes. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b1c332c9e813cbee6ca77c3a66ee4d312eb96770 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:37 2006 -0700 + + [PATCH] uml: fix hang on run_helper() failure on uml_net + + Fix an hang on a pipe when run_helper() fails when called by change_tramp() + (i.e. when calling uml_net) - reproduced the bug and verified this fixes it. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e6fb54abb8a36703f54b7e27a756a3df6667c37b +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:36 2006 -0700 + + [PATCH] uml: move outside spinlock call not needing it + + Move a call to kfree on a local variable out of a spinlock - there's no need + to have it in. Done on a just merged patch. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ccea15f45eb0ab12d658f88b5d4be005cb2bb1a7 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:35 2006 -0700 + + [PATCH] uml: support sparse for userspace files + + Make sparse checker work for userspace files - it normally gets -nostdinc + separately, so avoid having it for userspace files. Also, add -D$(SUBARCH) + for multiarch hosts (i.e. AMD64 with compatibility headers). + + It works, the only problem is a bit of bogus warnings for system headers, but + they're not too many. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f53389d8af6a73034e40eace6034622c03ed707b +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:34 2006 -0700 + + [PATCH] uml: fix critical typo for TT mode + + Noticed this for a compilation-time warning, so I'm fixing it even for TT mode + - this is not put_user, but copy_to_user, so we need a pointer to sp, not sp + itself (we're trying to write the word pointed to by the "sp" var.). + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5b0e94787f1b8fdcd370fc6303579d171b941080 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:34 2006 -0700 + + [PATCH] uml: fix "extern-vs-static" proto conflict in TLS code + + Move the prototype from arch-generic to arch-specific includes because on + x86_64 these functions are two static inlines. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c45ad16f0b64f5fdc64cb0e86aa548d7f4d60c1 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:33 2006 -0700 + + [PATCH] uml: fix some double export warnings + + Some functions are exported twice in current code - remove the excess export. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 802e307795c9cf57e91389d65cb87bfe6d03a89e +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:32 2006 -0700 + + [PATCH] uml: fix format errors + + Now that GCC warns about format errors, fix them. Nothing able to cause a + crash, however. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9cf85b3af2dbef8d4af4604d5eaf8ca090475b7a +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:31 2006 -0700 + + [PATCH] uml: request format warnings to GCC for appropriate functions + + Add the format attribute to prototypes so GCC warns about improper usage. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6dad2d3faac21d487ffd1d15268b1802feeb3e72 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:31 2006 -0700 + + [PATCH] uml: fix 2 harmless cast warnings for 64-bit + + Fix two harmless warnings in 64-bit compilation (the 2nd doesn't trigger for + now because of a missing __attribute((format)) for cow_printf, but next + patches fix that). + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f2ea394082c5d1682e6a131c5981085b8752c6e9 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:30 2006 -0700 + + [PATCH] uml: safe migration path to the correct V3 COW format + + - Correct the layout of all header versions - make all them well-specified + for any external event. As we don't have 1-byte or 2-byte wide fields, the + 32-bit layout (historical one) has no extra padding, so we can safely add + __attribute__((packed)). + + - Add detection and reading of the broken 64-bit COW format which has been + around for a while - to allow safe migration to the correct 32-bit format. + Safe detection is possible, thanks to some luck with the existing format, + and it works in practice. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cda402b283c34a24b091f78eee116963e9494762 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Mon Apr 10 22:53:29 2006 -0700 + + [PATCH] uml: make 64-bit COW files compatible with 32-bit ones + + This is the minimal fix to make 64-bit UML binaries create 32-bit compatible + COW files and read them. I've indeed tested that current code doesn't do this + - the code gets SIGFPE for a division by a value read at the wrong place, + where 0 is found. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Cc: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 60baa1583959e8b15e2823ef9e1cc00fd7ea929c +Author: Jeff Dike +Date: Mon Apr 10 22:53:28 2006 -0700 + + [PATCH] uml: memory hotplug cleanups + + Change memory hotplug to use GFP_NOWAIT instead of GFP_ATOMIC, so that it + will grab memory without sleeping, but doesn't try to use the emergency + pools. + + A small list initialization suggested by Daniel Phillips - don't initialize + lists which are just about to be list_add-ed. + + Signed-off-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7b04d7170e9af805cac19f97b28fff10db897893 +Author: Jeff Dike +Date: Mon Apr 10 22:53:27 2006 -0700 + + [PATCH] Add GFP_NOWAIT + + Introduce GFP_NOWAIT, as an alias for GFP_ATOMIC & ~__GFP_HIGH. + + This also changes XFS, which is the only in-tree user of this idiom that I + could find. The XFS piece is compile-tested only. + + Signed-off-by: Jeff Dike + Acked-by: Nathan Scott + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a5d2f46a97cf8e23f5da17dec50a972642ac409f +Author: Jeff Dike +Date: Mon Apr 10 22:53:26 2006 -0700 + + [PATCH] UML: TLS fixlets + + Two small TLS fixes - + + arch/um/os-Linux/sys-i386/tls.c uses errno and -E* so it should include + errno.h + __setup_host_supports_tls returns 1, but as an initcall, it should return 0 + + Signed-off-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 73830056f56afe4b7d418debbf9ecb64e3d9b0ae +Author: Hirokazu Takata +Date: Mon Apr 10 22:53:25 2006 -0700 + + [PATCH] m32r: Remove symbols exported twice + + Remove multi-exported symbols from arch/m32r/kernel/m32r_ksyms.c. + + WARNING: vmlinux: 'enable_irq' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'disable_irq' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'disable_irq_nosync' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'synchronize_irq' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'memchr' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strstr' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'memscan' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'memcmp' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'memmove' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strnlen' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strchr' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strncmp' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strcmp' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strncat' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strcat' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strncpy' exported twice. Previous export was in vmlinux + WARNING: vmlinux: 'strcpy' exported twice. Previous export was in vmlinux + + Signed-off-by: Hirokazu Takata + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bad7af550e90ab82e74024357438d77b561e1b5f +Author: Hirokazu Takata +Date: Mon Apr 10 22:53:23 2006 -0700 + + [PATCH] Remove unused prepare_to_switch macro + + Remove unused prepare_to_switch() macros. + + Signed-off-by: Hirokazu Takata + Cc: Mikael Starvik + Cc: David Howells + Cc: Yoshinori Sato + Cc: Miles Bader + Cc: Chris Zankel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 04dfd0de4ec04aaf7d9d42439c972c642a15a75c +Author: Hirokazu Takata +Date: Mon Apr 10 22:53:20 2006 -0700 + + [PATCH] m32r: security fix of {get,put}_user macros + + Update {get,put}_user macros for m32r kernel. + - Modify get_user to use __get_user_asm macro, instead of __get_user_x macro. + - Remove arch/m32r/lib/{get,put}user.S. + - Some cosmetic updates. + + I would like to thank NIIBE Yutaka for his reporting about the m32r kernel's + security problem in {get,put}_user macros. + + There were no address checking for user space access in {get,put}_user macros. + ;-) + + Signed-off-by: Hirokazu Takata + Cc: NIIBE Yutaka + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c1c4e541888947947bc46a18a9a5543a259ed62 +Author: Hirokazu Takata +Date: Mon Apr 10 22:53:18 2006 -0700 + + [PATCH] m32r: Fix cpu_possible_map and cpu_present_map initialization for SMP kernel + + This patch fixes a boot problem of the m32r SMP kernel 2.6.16-rc1-mm3 or + later. + + In this patch, cpu_possible_map is statically initialized, and cpu_present_map + is also copied from cpu_possible_map in smp_prepare_cpus(), because the m32r + architecture has not supported CPU hotplug yet. + + Signed-off-by: Hayato Fujiwara + Signed-off-by: Hirokazu Takata + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 917b1f78a9871a1985004df09ed1eb2e0dc3bf4f +Author: Brian Uhrain says +Date: Mon Apr 10 22:53:16 2006 -0700 + + [PATCH] alpha: SMP boot fixes + + I've encountered two problems with 2.6.16 and newer kernels on my API CS20 + (dual 833MHz Alpha 21264b processors). The first is the kernel OOPSing + because of a NULL pointer dereference while trying to populate SysFS with the + CPU information. The other is that only one processor was being brought up. + I've included a small Alpha-specific patch that fixes both problems. + + The first problem was caused by the CPUs never being properly registered using + register_cpu(), the way it's done on other architectures. + + The second problem has to do with the removal of hwrpb_cpu_present_mask in + arch/alpha/kernel/smp.c. In setup_smp() in the 2.6.15 kernel sources, + hwrpb_cpu_present_mask has a bit set for each processor that is probed, and + afterwards cpu_present_mask is set to the cpumask for the boot CPU. In the + same function of the same file in the 2.6.16 sources, instead of + hwrpb_cpu_present_mask being set, cpu_possible_map is updated for each probed + CPU. cpu_present_mask is still set to the cpumask of the boot CPU afterwards. + The problem lies in include/asm-alpha/smp.h, where cpu_possible_map is + #define'd to be cpu_present_mask. + + Cleanups from: Ivan Kokshaysky + + - cpu_present_mask and cpu_possible_map are essentially the same thing + on alpha, as it doesn't support CPU hotplug; + - allocate "struct cpu" only for present CPUs, like sparc64 does. + Static array of "struct cpu" is just a waste of memory. + + Signed-off-by: Brian Uhrain + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1c08ca89b07eeca241fcf1ec297d3ef173a999a9 +Author: Jordan Crouse +Date: Mon Apr 10 22:53:15 2006 -0700 + + [PATCH] Enable TSC for AMD Geode GX/LX + + Geode GX/LX should enable X86_TSC. Pointed out by Adrian Bunk. + + Signed-off-by: Jordan Crouse + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit edd711f3810f46787593fb79eda9a9fbb82cbb62 +Author: Adrian Bunk +Date: Mon Apr 10 22:53:14 2006 -0700 + + [PATCH] i386: move SMP option above subarch selection + + Since several subarchs depend on SMP, the SMP option should be above the + subarch selection. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dc8cbaed57f773a2b3cee40c15ec4f1e17b08046 +Author: Randy Dunlap +Date: Mon Apr 10 22:53:14 2006 -0700 + + [PATCH] mptspec: remove duplicate #include + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c0ec31ad334fb83e53f2130eacbb44a639f77967 +Author: Randy Dunlap +Date: Mon Apr 10 22:53:13 2006 -0700 + + [PATCH] mpparse: prevent table index out-of-bounds + + John Z. Bohach found this bug: + + If the board has more than 32 PCI busses on it, the mptable bus array will + overwrite its bounds for the PCI busses, and stomp on anything that's after + it. + + Prevent possible table overflow and unknown data corruption. Code is in an + __init section so it will be discarded after init. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e39632faa0efbddc3aed4f8658f2fa0a8afa2717 +Author: Randy Dunlap +Date: Mon Apr 10 22:53:12 2006 -0700 + + [PATCH] menu: relocate DOUBLEFAULT option + + Move the DOUBLEFAULT option from the top-level menu to the EMBEDDED menu. + Only applicable to X86_32. + + Signed-off-by: Randy Dunlap + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7bee5c0fd2b25d185650cbfa049823e03f648c09 +Author: Randy Dunlap +Date: Mon Apr 10 22:53:11 2006 -0700 + + [PATCH] i386: print EIP/ESP last + + Print summary registers (EIP and SS:ESP only) as last death info. This + makes this important data visible in case it had scrolled off the top of + the display. Similar to what x86_64 does. Suggested by Andi Kleen. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6cf272acd59e4e7a17b969adcdf413e15754bfe4 +Author: Ashok Raj +Date: Mon Apr 10 22:53:07 2006 -0700 + + [PATCH] swsusp: don't require bigsmp + + Switching to automatic bigsmp causes a misleading error message, that more + then 8 cpus are detected, and user needs to select either X86_GENERICARCH + or X86_BIGSMP to handle. + + Reason is we switched to bigsmp to avoid IP race when new cpu is comming + up. [bigsmp is nothing but using physical flat mode that can work for 1 .. + 255 cpus] [default is X86_PC, that uses logical flat mode up to 8 CPUs + max] Current x86_64 code uses bigsmp as default when hotplug is enabled. + + It would be preferable to make bigsmp as default, and work the dependencies + of other related code like SMP_SUSPEND, and some related to memory hotplug + code for i386. + + Current logical flat mode doesnt use shortcuts that cause the race by using + the send_IPI_mask() instead of shortcuts when HOTPLUG_CPU is enabled. + + In the meantime this patch is the path of lease resistance. + + We will switch to bigsmp default sometime soon, when we get to work it again. + + Signed-off-by: Ashok Raj + Cc: Pavel Machek + Cc: "Rafael J. Wysocki" + Cc: Nigel Cunningham + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3016b421534e2fa8a5eede1c12a3eba6164822f4 +Author: Hyok S. Choi +Date: Mon Apr 10 22:53:06 2006 -0700 + + [PATCH] frv: define MMU mode specific syscalls as 'cond_syscall' and clean up unneeded macros + + For some architectures, a few syscalls are not linked in noMMU mode. In + that case, the MMU depending syscalls are needed to be defined as + 'cond_syscall'. For example, ARM architecture selectively links sys_mlock + by the mode configuration. + + In case of FRV, it has been managed by #ifdef CONFIG_MMU macro in + arch/frv/kernel/entry.S. However these conditional macros are just + duplicates if they were defined as cond_syscall. Compilation test is done + with FRV toolchains for both of MMU and noMMU mode. + + Signed-off-by: Hyok S. Choi + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 21a26d49d1ab3163b589bf913dd9176e921eb1d7 +Author: Randy Dunlap +Date: Mon Apr 10 22:53:04 2006 -0700 + + [PATCH] hugetlbfs doc. update + + Fix typos, spelling, etc., in Doc/vm/hugetlbpage.txt. + + Signed-off-by: Randy Dunlap + Cc: David Gibson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 64a3ca5f7ec2606b03be4a65736164a5373732ed +Author: Adrian Bunk +Date: Mon Apr 10 22:53:03 2006 -0700 + + [PATCH] mm/migrate.c: don't export a static function + + EXPORT_SYMBOL'ing of a static function is not a good idea. + + Signed-off-by: Adrian Bunk + Cc: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 91fc8ab3c6312931d64c72845ee2f93a0f87f1a5 +Author: Andy Whitcroft +Date: Mon Apr 10 22:53:01 2006 -0700 + + [PATCH] page flags: add commentry regarding field reservation + + Add some documentation regarding the utilisation of the flags field in + struct page. This field is overloaded for per page bits and to hold node, + zone and SPARSEMEM information. Make it clear which areas are used for + what and how many bits are in each area. + + Signed-off-by: Andy Whitcroft + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d5ddc79bcaab6975e7671805c3578407dc33b764 +Author: Hideo AOKI +Date: Mon Apr 10 22:53:01 2006 -0700 + + [PATCH] overcommit: use totalreserve_pages for nommu + + This patch is an enhancement of OVERCOMMIT_GUESS algorithm in + __vm_enough_memory() in mm/nommu.c. + + When the OVERCOMMIT_GUESS algorithm calculates the number of free pages, + the algorithm subtracts the number of reserved pages from the result + nr_free_pages(). + + Signed-off-by: Hideo Aoki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d9f78396583244258080f3369889644c06c37c8 +Author: Hideo AOKI +Date: Mon Apr 10 22:53:00 2006 -0700 + + [PATCH] overcommit: use totalreserve_pages + + This patch is an enhancement of OVERCOMMIT_GUESS algorithm in + __vm_enough_memory() in mm/mmap.c. + + When the OVERCOMMIT_GUESS algorithm calculates the number of free pages, + the algorithm subtracts the number of reserved pages from the result + nr_free_pages(). + + Signed-off-by: Hideo Aoki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cb45b0e966cbe747b6189c15b108901cc7d6c97c +Author: Hideo AOKI +Date: Mon Apr 10 22:52:59 2006 -0700 + + [PATCH] overcommit: add calculate_totalreserve_pages() + + These patches are an enhancement of OVERCOMMIT_GUESS algorithm in + __vm_enough_memory(). + + - why the kernel needed patching + + When the kernel can't allocate anonymous pages in practice, currnet + OVERCOMMIT_GUESS could return success. This implementation might be + the cause of oom kill in memory pressure situation. + + If the Linux runs with page reservation features like + /proc/sys/vm/lowmem_reserve_ratio and without swap region, I think + the oom kill occurs easily. + + - the overall design approach in the patch + + When the OVERCOMMET_GUESS algorithm calculates number of free pages, + the reserved free pages are regarded as non-free pages. + + This change helps to avoid the pitfall that the number of free pages + become less than the number which the kernel tries to keep free. + + - testing results + + I tested the patches using my test kernel module. + + If the patches aren't applied to the kernel, __vm_enough_memory() + returns success in the situation but autual page allocation is + failed. + + On the other hand, if the patches are applied to the kernel, memory + allocation failure is avoided since __vm_enough_memory() returns + failure in the situation. + + I checked that on i386 SMP 16GB memory machine. I haven't tested on + nommu environment currently. + + This patch adds totalreserve_pages for __vm_enough_memory(). + + Calculate_totalreserve_pages() checks maximum lowmem_reserve pages and + pages_high in each zone. Finally, the function stores the sum of each + zone to totalreserve_pages. + + The totalreserve_pages is calculated when the VM is initilized. + And the variable is updated when /proc/sys/vm/lowmem_reserve_raito + or /proc/sys/vm/min_free_kbytes are changed. + + Signed-off-by: Hideo Aoki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e23ca00bf1b1c6c0f04702cb4d29e275ab8dc330 +Author: Christoph Lameter +Date: Mon Apr 10 22:52:57 2006 -0700 + + [PATCH] Some page migration fixups + + - Remove sparse comment + + - Remove duplicated include + + - Return the correct error condition in migrate_page_remove_references(). + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1e624196f43c3a62122959e15c5f03572cdadb5d +Author: Ram Gupta +Date: Mon Apr 10 22:52:57 2006 -0700 + + [PATCH] mm: fix bug in brk() + + The code checks for newbrk with oldbrk which are page aligned before making + a check for the memory limit set of data segment. If the memory limit is + not page aligned in that case it bypasses the test for the limit if the + memory allocation is still for the same page. + + Signed-off-by: Ram Gupta + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d6fef9da19b7acd46e04b7dbbba726b3febeca94 +Author: Luke Yang +Date: Mon Apr 10 22:52:56 2006 -0700 + + [PATCH] nommu: use compound page in slab allocator + + The earlier patch to consolidate mmu and nommu page allocation and + refcounting by using compound pages for nommu allocations had a bug: + kmalloc slabs who's pages were initially allocated by a non-__GFP_COMP + allocator could be passed into mm/nommu.c kmalloc allocations which really + wanted __GFP_COMP underlying pages. Fix that by having nommu pass + __GFP_COMP to all higher order slab allocations. + + Signed-off-by: Luke Yang + Acked-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fb7faf3313d527bf68ba2e7ff3a2b6ebf201af73 +Author: Ravikiran G Thirumalai +Date: Mon Apr 10 22:52:54 2006 -0700 + + [PATCH] slab: add statistics for alien cache overflows + + Add a statistics counter which is incremented everytime the alien cache + overflows. alien_cache limit is hardcoded to 12 right now. We can use + this statistics to tune alien cache if needed in the future. + + Signed-off-by: Alok N Kataria + Signed-off-by: Ravikiran Thirumalai + Signed-off-by: Shai Fultheim + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5b74ada7eea1b0064d2b72384827853f349d803a +Author: Ravikiran G Thirumalai +Date: Mon Apr 10 22:52:53 2006 -0700 + + [PATCH] slab: allocate node local memory for off-slab slabmanagement + + Allocate off-slab slab descriptors from node local memory. + + Signed-off-by: Alok N Kataria + Signed-off-by: Ravikiran Thirumalai + Signed-off-by: Shai Fultheim + Acked-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a283a52520569195c2d26d75455cddab758f530b +Author: KAMEZAWA Hiroyuki +Date: Mon Apr 10 22:52:52 2006 -0700 + + [PATCH] for_each_possible_cpu: sparc64 + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + for sparc64. + + Signed-off-by: KAMEZAWA Hiroyuki + Acked-by: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fff8efe7b71efd88829782be64dc42c25c70ad53 +Author: KAMEZAWA Hiroyuki +Date: Mon Apr 10 22:52:51 2006 -0700 + + [PATCH] for_each_possible_cpu: sparc + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Acked-by: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6f912042256c12b0927438122594f5379b364f5d +Author: KAMEZAWA Hiroyuki +Date: Mon Apr 10 22:52:50 2006 -0700 + + [PATCH] for_each_possible_cpu: network codes + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu under /net + + Signed-off-by: KAMEZAWA Hiroyuki + Acked-by: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dd7ba3b8b15f9c65366986d723ae83254d8d78b7 +Author: Adrian Bunk +Date: Mon Apr 10 22:52:49 2006 -0700 + + [PATCH] arch/i386/mach-voyager/voyager_cat.c: named initializers + + This patch switches arch/i386/mach-voyager/voyager_cat.c to using named + initializers for struct resource. + + Besides a fixing compile error in Greg's tree, it makes the code more + readable. + + Signed-off-by: Adrian Bunk + Cc: James Bottomley + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6f91fe88e4e28b40b4f08d99e0ea6d17b70e9567 +Author: NeilBrown +Date: Mon Apr 10 22:52:48 2006 -0700 + + [PATCH] md: make sure 64bit fields in version-1 metadata are 64-bit aligned + + reshape_position is a 64bit field that was not 64bit aligned. So swap with + new_level. + + NOTE: this is a user-visible change. However: + - The bad code has not appeared in a released kernel + - This code is still marked 'experimental' + - This only affects version-1 superblock, which are not in wide use + - These field are only used (rather than simply reported) by user-space + tools in extemely rare circumstances : after a reshape crashes in the + first second of the reshape process. + + So I believe that, at this stage, the change is safe. Especially if people + heed the 'help' message on use mdadm-2.4.1. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 54404e72cd3758e465fb6362f6d71e22b705c589 +Author: Christoph Lameter +Date: Mon Apr 10 22:52:47 2006 -0700 + + [PATCH] Fix NULL pointer dereference in node_read_numastat() + + zone_pcp() only returns valid values if the processor is online. + + Change node_read_numastat() to only scan online processors. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 29ff2db55196717e2e67e0f04adc833ee7edd491 +Author: Andrew Morton +Date: Mon Apr 10 22:52:46 2006 -0700 + + [PATCH] select() warning fixes + + fs/select.c: In function `core_sys_select': + fs/select.c:339: warning: assignment from incompatible pointer type + fs/select.c:376: warning: comparison of distinct pointer types lacks a cast + + By using a void* we can remove lots of casts rather than adding more. + + Cc: Jes Sorensen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8a5bc075b8d8cf7a87b3f08fad2fba0f5d13295e +Author: Mike Galbraith +Date: Mon Apr 10 22:52:45 2006 -0700 + + [PATCH] sched: don't awaken RT tasks on expired array + + RT tasks are being awakened on the expired array when expired_starving() is + true, whereas they really should be excluded. Fix. + + Signed-off-by: Mike Galbraith + Acked-by: Ingo Molnar + Cc: Con Kolivas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5ce74abe788a26698876e66b9c9ce7e7acc25413 +Author: Mike Galbraith +Date: Mon Apr 10 22:52:44 2006 -0700 + + [PATCH] sched: fix interactive task starvation + + Fix a starvation problem that occurs when a stream of highly interactive tasks + delay an array switch for extended periods despite EXPIRED_STARVING(rq) being + true. AFAIKT, the only choice is to enqueue awakening tasks on the expired + array in this case. + + Without this patch, it can be nearly impossible to remotely login to a busy + server, and interactive shell commands can starve for minutes. + + Also, convert the EXPIRED_STARVING macro into an inline function which humans + can understand. + + Signed-off-by: Mike Galbraith + Acked-by: Ingo Molnar + Cc: Nick Piggin + Acked-by: Con Kolivas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d1195c516a9acd767cb541f914be2c6ddcafcfc1 +Author: Pekka J Enberg +Date: Tue Apr 11 14:21:59 2006 +0200 + + [PATCH] vfs: add splice_write and splice_read to documentation + + This patch adds the new splice_write and splice_read file operations to + Documentation/filesystems/vfs.txt. + + Signed-off-by: Pekka Enberg + Signed-off-by: Jens Axboe + +commit 7519fdc90fe577cb966ab1ce2bf51ac639f05a0e +Author: OGAWA Hirofumi +Date: Tue Apr 11 14:00:04 2006 +0200 + + [PATCH] Remove sys_ prefix of new syscalls from __NR_sys_* + + On i386, we don't use sys_ prefix for __NR_*. This patch removes it + [FWIW, _syscall*() macros will generate foo() instead of sys_foo().] + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Jens Axboe + +commit 88e6faefaeed40a162041d85689e94595756d4c3 +Author: Andrew Morton +Date: Tue Apr 11 13:59:36 2006 +0200 + + [PATCH] splice: warning fix + + From: Andrew Morton + + net/socket.c:148: warning: initialization from incompatible pointer type + + extern declarations in .c files! Bad boy. + + Cc: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Jens Axboe + +commit 341b446bc5aa36d1d5b8159c1e66716b5d89024d +Author: Ingo Molnar +Date: Tue Apr 11 13:57:45 2006 +0200 + + [PATCH] another round of fs/pipe.c cleanups + + make pipe.c a bit more readable and hackable. + + Signed-off-by: Ingo Molnar + Signed-off-by: Jens Axboe + +commit 73d62d83ec3627782ba6f55defc76f3ffbef46ee +Author: Ingo Molnar +Date: Tue Apr 11 13:57:21 2006 +0200 + + [PATCH] splice: comment styles + + - capitalize consistently + - end sentences in one way or another + - update comment text to match the implementation + + Signed-off-by: Ingo Molnar + Signed-off-by: Jens Axboe + +commit c2058e0611c2fb4a00e63db61ef3a638cf760a98 +Author: Jens Axboe +Date: Tue Apr 11 13:56:34 2006 +0200 + + [PATCH] splice: add Ingo as addition copyright holder + + The comment is also somewhat out of date, correct that as well. + + Signed-off-by: Jens Axboe + +commit 49570e9b29a3d78950b5eba6b73bdcca955f0877 +Author: Jens Axboe +Date: Tue Apr 11 13:56:09 2006 +0200 + + [PATCH] splice: unlikely() optimizations + + Also corrects a few comments. Patch mainly from Ingo, changes by me. + + Signed-off-by: Ingo Molnar + Signed-off-by: Jens Axboe + +commit 6f767b0425f5902e4817648632230b512e81c963 +Author: Jens Axboe +Date: Tue Apr 11 13:53:56 2006 +0200 + + [PATCH] splice: speedups and optimizations + + - Kill the local variables that cache ->nrbufs, they just take up space. + + - Only set do_wakeup for a real pipe. This is a big win for direct splicing. + + - Kill i_mutex lock around ->f_pos update, regular io paths don't do this + either. + + Signed-off-by: Jens Axboe + +commit 923f4f23940d2361e8d5c4245982163a8e9d1c91 +Author: Ingo Molnar +Date: Tue Apr 11 13:53:33 2006 +0200 + + [PATCH] pipe.c/fifo.c code cleanups + + more code cleanups after the macro conversion: + + - standardize on 'struct pipe_inode_info *pipe' variable names + - introduce 'pipe' temporaries to reduce mass inode->i_pipe dereferencing + + Signed-off-by: Ingo Molnar + Signed-off-by: Jens Axboe + +commit 9aeedfc4712ed58d9f7ae41596185c72b8dc97e8 +Author: Ingo Molnar +Date: Tue Apr 11 13:53:10 2006 +0200 + + [PATCH] get rid of the PIPE_*() macros + + get rid of the PIPE_*() macros. Scripted transformation. + + Signed-off-by: Ingo Molnar + Signed-off-by: Jens Axboe + +commit 7480a90435673b4c717b6caf1350ec577d5f1adf +Author: Jens Axboe +Date: Tue Apr 11 13:52:47 2006 +0200 + + [PATCH] splice: speedup __generic_file_splice_read + + Using find_get_page() is a lot faster than find_or_create_page(). This + gets splice a lot closer to sendfile() for fd -> socket transfers. + + Signed-off-by: Jens Axboe + +commit b92ce55893745e011edae70830b8bc863be881f9 +Author: Jens Axboe +Date: Tue Apr 11 13:52:07 2006 +0200 + + [PATCH] splice: add direct fd <-> fd splicing support + + It's more efficient for sendfile() emulation. Basically we cache an + internal private pipe and just use that as the intermediate area for + pages. Direct splicing is not available from sys_splice(), it is only + meant to be used for sendfile() emulation. + + Additional patch from Ingo Molnar to avoid the PIPE_BUFFERS loop at + exit for the normal fast path. + + Signed-off-by: Jens Axboe + +commit b5ac4817de3032796c558b0a32062e7392b5ea60 +Author: Roman Zippel +Date: Sun Apr 9 17:27:28 2006 +0200 + + kconfig: fix typo in change count initialization + + Configuration needs saving when either of these conditions is true. + + Signed-off-by: Roman Zippel + Signed-off-by: Sam Ravnborg + +commit 94f2505be3b6afaf50129e949b1840bc4dd0b3e8 +Author: Roman Zippel +Date: Sun Apr 9 17:27:14 2006 +0200 + + kconfig: recenter menuconfig + + Move the menuconfig output more into the centre again, it's using a + fixed position depending on the window width using the fact that the + menu output has to work in a 80 chars terminal. + + Signed-off-by: Roman Zippel + Signed-off-by: Sam Ravnborg + +commit 59c6a3f4d745584f2f78cdf1f5e221a19518926c +Author: Roman Zippel +Date: Sun Apr 9 17:26:50 2006 +0200 + + kconfig: revert conf behaviour change + + After the last patch fixed the real problem, revert this needless behaviour + change of conf, which only hid the real problem. + + Signed-off-by: Roman Zippel + Signed-off-by: Sam Ravnborg + +commit 40aee729b350672c2550640622416a855e27938f +Author: Roman Zippel +Date: Sun Apr 9 17:26:39 2006 +0200 + + kconfig: fix default value for choice input + + The wrong default value can cause conf to end up in endless loop for choice + questions. + + Signed-off-by: Roman Zippel + Signed-off-by: Sam Ravnborg + +commit eaaae38c1ac4ccbec6d2de7255b0538f38fb29d6 +Author: Eric Sesterhenn +Date: Tue Apr 11 00:54:16 2006 +0200 + + kbuild: fix NULL dereference in scripts/mod/modpost.c + + before is NULL in this case, concluding from the surrounding code + it seems that after is the right one to use. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Sam Ravnborg + +commit 71378be91f5473e89c8be170c6e49edda3bdbb67 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Apr 7 16:16:40 2006 +0200 + + kbuild: fix mode of checkstack.pl and other files. + + Make it executable like it should be. Do the same for other files intended to be + executed by the user - the ones called by the build process needn't be + executable as they already work (as argument to their interpreter). + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Sam Ravnborg + +commit d39a206bc35d46a3b2eb98cd4f34e340d5e56a50 +Author: Sam Ravnborg +Date: Tue Apr 11 13:24:32 2006 +0200 + + kbuild: rebuild initramfs if content of initramfs changes + + initramfs.cpio.gz being build in usr/ and included in the + kernel was not rebuild when the included files changed. + + To fix this the following was done: + - let gen_initramfs.sh generate a list of files and directories included + in the initramfs + - gen_initramfs generate the gzipped cpio archive so we could simplify + the kbuild file (Makefile) + - utilising the kbuild infrastructure so when uid/gid root mapping changes + the initramfs will be rebuild + + With this change we have a much more robust initramfs generation. + + Signed-off-by: Sam Ravnborg + +commit 019ff2d57b0bbe77d1eca19f5b634e5e7ff2a0b8 +Author: Nathan Scott +Date: Tue Apr 11 15:45:05 2006 +1000 + + [XFS] Fix a problem in aligning inode allocations to stripe unit + boundaries. + + SGI-PV: 951862 + SGI-Modid: xfs-linux-melb:xfs-kern:25726a + + Signed-off-by: Nathan Scott + +commit 8c0b5113a55c698f3190ec85925815640f1c2049 +Author: Nathan Scott +Date: Tue Apr 11 15:12:45 2006 +1000 + + [XFS] Fix utime(2) in the case that no times parameter was passed in. + + SGI-PV: 949858 + SGI-Modid: xfs-linux-melb:xfs-kern:25717a + + Signed-off-by: Jes Sorensen + Signed-off-by: Nathan Scott + +commit 58829e490ee805f1c8b3009abc90e2a1a7a0d278 +Author: David Chinner +Date: Tue Apr 11 15:11:20 2006 +1000 + + [XFS] Fix an inode use-after-free durin an unpin. When reclaiming inodes + that have been unlinked, we may need to execute transactions during + reclaim. By the time the transaction has hit the disk, the linux inode and + xfs vnode may already have been freed so we can't reference them safely. + Use the known xfs inode state to determine if it is safe to reference the + vnode and linux inode during the unpin operation. + + SGI-PV: 946321 + SGI-Modid: xfs-linux-melb:xfs-kern:25687a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit 1fc5d959d88a5f77aa7e4435f6c9d0e2d2236704 +Author: David Chinner +Date: Tue Apr 11 15:11:12 2006 +1000 + + [XFS] Fix inode reclaim scalability regression. When a filesystem has + millions of inodes cached and has sparse cluster population, removing + inodes from the cluster hash consumes excessive amounts of CPU time. + Reduce the CPU cost by making removal O(1) via use of a double linked list + for the hash chains. + + SGI-PV: 951551 + SGI-Modid: xfs-linux-melb:xfs-kern:25683a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit 8272145c05c6d01a34f5114357c5e8093fb66472 +Author: Nathan Scott +Date: Tue Apr 11 15:10:55 2006 +1000 + + [XFS] Fix a writepage regression where we accidentally stopped honouring + nonblock mode with the new IO path code (since 2.6.16). + + SGI-PV: 951662 + SGI-Modid: xfs-linux-melb:xfs-kern:25676a + + Signed-off-by: Nathan Scott + +commit e50bd16fe49689bc5fb54fca5ed8b568dfba65c6 +Author: Nathan Scott +Date: Tue Apr 11 15:10:45 2006 +1000 + + [XFS] Fix superblock validation regression for the zero imaxpct case. + Thanks to kjamieson for noticing. + + SGI-PV: 951661 + SGI-Modid: xfs-linux-melb:xfs-kern:25675a + + Signed-off-by: Nathan Scott + +commit de12a7878c11f3b282d640888aa635e0711d0b5e +Author: Eric W. Biederman +Date: Mon Apr 10 17:16:49 2006 -0600 + + [PATCH] de_thread: Don't confuse users do_each_thread. + + Oleg Nesterov spotted two interesting bugs with the current de_thread + code. The simplest is a long standing double decrement of + __get_cpu_var(process_counts) in __unhash_process. Caused by + two processes exiting when only one was created. + + The other is that since we no longer detach from the thread_group list + it is possible for do_each_thread when run under the tasklist_lock to + see the same task_struct twice. Once on the task list as a + thread_group_leader, and once on the thread list of another + thread. + + The double appearance in do_each_thread can cause a double increment + of mm_core_waiters in zap_threads resulting in problems later on in + coredump_wait. + + To remedy those two problems this patch takes the simple approach + of changing the old thread group leader into a child thread. + The only routine in release_task that cares is __unhash_process, + and it can be trivially seen that we handle cleaning up a + thread group leader properly. + + Since de_thread doesn't change the pid of the exiting leader process + and instead shares it with the new leader process. I change + thread_group_leader to recognize group leadership based on the + group_leader field and not based on pids. This should also be + slightly cheaper then the existing thread_group_leader macro. + + I performed a quick audit and I couldn't see any user of + thread_group_leader that cared about the difference. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Linus Torvalds + +commit 530515a06f90c0831732709efee4a99497bd2b7c +Author: jacob.shin@amd.com +Date: Fri Apr 7 19:49:51 2006 +0200 + + [CPUFREQ] x86_64: Proper null pointer check in powernow_k8_get + + This prevents crashes on dual core system when enough ticks are lost. + + Replaces earlier patch by me. + + (Duplicate null data check in powernowk8_get() removed -- davej) + + arch/i386/kernel/cpu/cpufreq/powernow-k8.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + + Signed-off-by: Thomas Renninger + Signed-off-by: Andi Kleen + Signed-off-by: Dave Jones + +commit b40fc4923ee3352c44ac2c0bd5f4d6018d6c4ad7 +Author: Andi Kleen +Date: Fri Apr 7 19:49:48 2006 +0200 + + [CPUFREQ] x86_64: Revert earlier powernow-k8 change + + (Better fix to be applied in next patch) + + Signed-off-by: Andi Kleen + Signed-off-by: Dave Jones + +commit 1356c1948da967bc1d4c663762bfe21dfcec4b2f +Author: Catalin Marinas +Date: Mon Apr 10 21:32:46 2006 +0100 + + [ARM] 3473/1: Use numbers 0-15 for the VFP double registers + + Patch from Catalin Marinas + + This patch changes the double registers numbering to 0-15 from even 0-30, + in preparation for future VFP extensions. It also fixes the VFP_REG_ZERO + bug (value 16 actually represents the 8th double register with the original + numbering). + + The original mcrr/mrrc on CP10 were generating FMRRS/FMSRR instead of + FMRRD/FMDRR. The patch changes to CP11 for the correct instructions. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit bb54a335ae6d282a4f177c7b35cd149aa9b0b9be +Author: Catalin Marinas +Date: Mon Apr 10 21:32:42 2006 +0100 + + [ARM] 3472/1: Use the D variants of FLDMIA/FSTMIA on ARMv6 + + Patch from Catalin Marinas + + The X variants are deprecated starting with ARMv6. Using the D variants, + the fpmx_state in vfp_hard_struct is no longer needed. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit 1320a80d1d2587545f39bc0d2dc3adaf390250ef +Author: Catalin Marinas +Date: Mon Apr 10 21:32:39 2006 +0100 + + [ARM] 3471/1: FTOSI functions should return 0 for NaN + + Patch from Catalin Marinas + + The NaN case was dealed with by the "exponent >= ... + 32" condition but it + was not setting the value "d" to 0. + + Signed-off-by: Ken'ichi Kuromusha + Signed-off-by: Russell King + +commit adeff42236aec0601ec979d1a41cd6d9cf5a8c05 +Author: Catalin Marinas +Date: Mon Apr 10 21:32:35 2006 +0100 + + [ARM] 3470/1: Clear the HWCAP bits for the disabled kernel features + + Patch from Catalin Marinas + + Glibc interprets the HWCAP bits and decides on what features to use. + However, even if the features are present in the hardware, they are not + always supported by the kernel and hence the corresponding bits have to be + cleared from the elf_hwcap variable. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit ce684df05a531904ea055d01aeee75321fa0db1e +Author: Michael S. Tsirkin +Date: Mon Apr 10 13:17:43 2006 -0700 + + IB/cache: Use correct pointer to calculate size + + When allocating gid_cache, use kmalloc(sizeof *gid_cache, ...) rather + than kmalloc(sizeof *pkey_cache, ...). It doesn't really matter which + one is used, since the size ends up the same either way, but it's much + better to say what we mean. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 1b72373491a061be6d456d219a4e2d054ac2aaad +Author: Jeff Garzik +Date: Mon Apr 10 14:56:39 2006 -0400 + + [libata] sata_mv: fix can_queue line accidentally removed in scsi-eh patch + +commit 65714b918415e06c92426f6544b2296dae694590 +Author: Adrian Bunk +Date: Sun Mar 26 14:25:52 2006 +0200 + + [PATCH] CONFIGFS_FS must depend on SYSFS + + This patch fixes the a compile error with CONFIG_SYSFS=n + + Configfs is creating, as a matter of policy, the /sys/kernel/config + mountpoint. This means it requires CONFIG_SYSFS. + + Signed-off-by: Adrian Bunk + Signed-off-by: Joel Becker + Signed-off-by: Mark Fasheh + +commit cbca692c246874a3cc1b5a9b694add4c39e8bc18 +Author: Eric Sesterhenn +Date: Thu Mar 23 00:36:54 2006 +0100 + + [PATCH] Bogus NULL pointer check in fs/configfs/dir.c + + We check the "group" pointer after we dereference it. This check is + bogus, as it cannot be NULL coming in. + + Signed-off-by: Joel Becker + Signed-off-by: Mark Fasheh + +commit 9227c33de80ac01f269ed33624990ce84358e419 +Author: Christoph Hellwig +Date: Sat Apr 1 19:21:04 2006 +0200 + + [PATCH] move ->eh_strategy_handler to the transport class + + Overriding the whole EH code is a per-transport, not per-host thing. + Move ->eh_strategy_handler to the transport class, same as + ->eh_timed_out. + + Downside is that scsi_host_alloc can't check for the total lack of EH + anymore, but the transition period from old EH where we needed it is + long gone already. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Jeff Garzik + +commit 676165a8af7167f488abdcce6851a9bc36e83254 +Author: Nick Piggin +Date: Mon Apr 10 11:21:48 2006 +1000 + + [PATCH] Fix buddy list race that could lead to page lru list corruptions + + Rohit found an obscure bug causing buddy list corruption. + + page_is_buddy is using a non-atomic test (PagePrivate && page_count == 0) + to determine whether or not a free page's buddy is itself free and in the + buddy lists. + + Each of the conjuncts may be true at different times due to unrelated + conditions, so the non-atomic page_is_buddy test may find each conjunct to + be true even if they were not both true at the same time (ie. the page was + not on the buddy lists). + + Signed-off-by: Martin Bligh + Signed-off-by: Rohit Seth + Signed-off-by: Nick Piggin + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Linus Torvalds + +commit f697f74a6b189702474b2fd457e1f9365fa213e3 +Author: Roland Dreier +Date: Mon Apr 10 09:43:59 2006 -0700 + + IPoIB: Use spin_lock_irq() instead of spin_lock_irqsave() + + We know ipoib_flush_paths() is called from plain process context with + interrupts enabled, since it does wait_for_completion(). So there's + no need to use spin_lock_irqsave() -- spin_lock_irq() is fine. + + Signed-off-by: Roland Dreier + +commit a30bb96c6f5aca6513e4dbd94962da03d14b20a9 +Author: Eli Cohen +Date: Wed Apr 5 15:59:34 2006 +0300 + + IPoIB: Close race in ipoib_flush_paths() + + ib_sa_cancel_query() must be called with priv->lock held since + a completion might arrive and set path->query to NULL. + + Signed-off-by: Eli Cohen + Signed-off-by: Roland Dreier + +commit abf45dbb5b256dab439ca3b6b71191ecfddf9cb6 +Author: Michael S. Tsirkin +Date: Wed Apr 5 15:47:16 2006 +0300 + + IB/mthca: Disable tuning PCI read burst size + + The PCI spec recommends against drivers playing with a device's PCI + read burst size, and says that systems software should configure it. + And we actually have users that report that changing it from the + default set by BIOS hurts performance and/or stability for them. On + the other hand, the Mellanox Programmer's Reference Manual recommends + turning it up all the way to the maximum value. Some tests conducted + here in the lab do not show performance improvement from this tuning, + but this might be just me. + + As a work-around, make this tuning an option, off by default (safe + value), with an eye towards removing it completely one day if no one + complains. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 0f4852513fb07405ce88da40d8c497060561246e +Author: Shirley Ma +Date: Mon Apr 10 09:43:58 2006 -0700 + + IPoIB: Make send and receive queue sizes tunable + + Make IPoIB's send and receive queue sizes tunable via module + parameters ("send_queue_size" and "recv_queue_size"). This allows the + queue sizes to be enlarged to fix disastrously bad performance on some + platforms and workloads, without bloating memory usage when large + queues aren't needed. + + Signed-off-by: Shirley Ma + Signed-off-by: Roland Dreier + +commit f2de3b06126ddb07d0e4617225d74dce0855add3 +Author: Eli Cohen +Date: Wed Apr 5 14:59:40 2006 +0300 + + IPoIB: Wait for join to finish before freeing mcast struct + + ipoib_mcast_restart_task() might free an mcast object while a join + request is still outstanding, leading to an oops when the query + completes. Fix this by waiting for query to complete, similar to what + ipoib_stop_thread() is doing. The wait for mcast completion code is + consolidated in wait_for_mcast_join(). + + Signed-off-by: Eli Cohen + Signed-off-by: Roland Dreier + +commit bf6a9e31cfa768ce0a8e18474b3ca808641d9243 +Author: Jack Morgenstein +Date: Mon Apr 10 09:43:47 2006 -0700 + + IB: simplify static rate encoding + + Push translation of static rate to HCA format into low-level drivers, + where it belongs. For static rate encoding, use encoding of rate + field from IB standard PathRecord, with addition of value 0, for + backwards compatibility with current usage. The changes are: + + - Add enum ib_rate to midlayer includes. + - Get rid of static rate translation in IPoIB; just use static rate + directly from Path and MulticastGroup records. + - Update mthca driver to translate absolute static rate into the + format used by hardware. This also fixes mthca's static rate + handling for HCAs that are capable of 4X DDR. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Roland Dreier + +commit c3a9d6541f84ac3ff566982d08389b87c1c36b4e +Author: David Howells +Date: Mon Apr 10 15:15:21 2006 +0100 + + [Security] Keys: Fix oops when adding key to non-keyring + + This fixes the problem of an oops occuring when a user attempts to add a + key to a non-keyring key [CVE-2006-1522]. + + The problem is that __keyring_search_one() doesn't check that the + keyring it's been given is actually a keyring. + + I've fixed this problem by: + + (1) declaring that caller of __keyring_search_one() must guarantee that + the keyring is a keyring; and + + (2) making key_create_or_update() check that the keyring is a keyring, + and return -ENOTDIR if it isn't. + + This can be tested by: + + keyctl add user b b `keyctl add user a a @s` + + Signed-off-by: David Howells + Signed-off-by: Linus Torvalds + +commit 529565dcb1581c9a1e3f6df1c1763ca3e0f0d512 +Author: Ingo Molnar +Date: Mon Apr 10 15:18:58 2006 +0200 + + [PATCH] splice: add optional input and output offsets + + add optional input and output offsets to sys_splice(), for seekable file + descriptors: + + asmlinkage long sys_splice(int fd_in, loff_t __user *off_in, + int fd_out, loff_t __user *off_out, + size_t len, unsigned int flags); + + semantics are straightforward: f_pos will be updated with the offset + provided by user-space, before the splice transfer is about to begin. + Providing a NULL offset pointer means the existing f_pos will be used + (and updated in situ). Providing an offset for a pipe results in + -ESPIPE. Providing an invalid offset pointer results in -EFAULT. + + Signed-off-by: Ingo Molnar + Signed-off-by: Jens Axboe + +commit 3a326a2ce88e71d00ac0d133e314a3342a7709f8 +Author: Ingo Molnar +Date: Mon Apr 10 15:18:35 2006 +0200 + + [PATCH] introduce a "kernel-internal pipe object" abstraction + + separate out the 'internal pipe object' abstraction, and make it + usable to splice. This cleans up and fixes several aspects of the + internal splice APIs and the pipe code: + + - pipes: the allocation and freeing of pipe_inode_info is now more symmetric + and more streamlined with existing kernel practices. + + - splice: small micro-optimization: less pointer dereferencing in splice + methods + + Signed-off-by: Ingo Molnar + + Update XFS for the ->splice_read/->splice_write changes. + + Signed-off-by: Jens Axboe + +commit 0b749ce3802428007a37870eb51ba3c0bdf90857 +Author: Jens Axboe +Date: Mon Apr 10 09:05:04 2006 +0200 + + [PATCH] splice: be smarter about calling do_page_cache_readahead() + + We don't want to call into the read-ahead logic unless we are at the + start of a page, _or_ we have multiple pages to read. + + Signed-off-by: Jens Axboe + +commit 49d0b21be21efc07526d637e0ae935019667e532 +Author: Jens Axboe +Date: Mon Apr 10 09:04:41 2006 +0200 + + [PATCH] splice: optimize the splice buffer mapping + + We don't really need to lock down the pages, just make sure they + are uptodate. + + Signed-off-by: Jens Axboe + +commit 16c523ddabcce5d3d817f4a2491d628f84dfaaa1 +Author: Jens Axboe +Date: Mon Apr 10 09:03:58 2006 +0200 + + [PATCH] splice: cleanup __generic_file_splice_read() + + The whole shadow/pages logic got overly complex, and this simpler + approach is actually faster in testing. + + Signed-off-by: Jens Axboe + +commit c0bd1f650bd06a43435808d44f1e9520ea806206 +Author: Jens Axboe +Date: Mon Apr 10 09:03:32 2006 +0200 + + [PATCH] splice: only call wake_up_interruptible() when we really have to + + __wake_up_common() is pretty heavy in the kernel profiles, this brings + it down to a more acceptable level. + + Signed-off-by: Jens Axboe + +commit 9aefe431f5a000884db7ae74ac208de814fe5913 +Author: Dave Jones +Date: Mon Apr 10 09:02:40 2006 +0200 + + [PATCH] splice: potential !page dereference + + We can get to out: with a NULL page, which we probably + don't want to be calling page_cache_release() on. + + Signed-off-by: Dave Jones + Signed-off-by: Jens Axboe + +commit c7f21e4f5a3d4e378e4d453b2be209dcfd1bb964 +Author: Jens Axboe +Date: Mon Apr 10 09:01:01 2006 +0200 + + [PATCH] splice: mark the io page as accessed + + We should do that, since we do the LRU manipulation ourselves now. Suggested + by Nick Piggin. + + Signed-off-by: Jens Axboe + +commit 68491d5892defca59ad4f604cace2b1e30889c14 +Author: David S. Miller +Date: Thu Apr 6 20:28:11 2006 -0700 + + [SPARC64]: Set ARCH_SELECT_MEMORY_MODEL + + Otherwise the build breaks with EXPERIMENTAL disabled + because SPARSEMEM will not get selected properly. See + mm/Kconfig for how that works. + + Signed-off-by: David S. Miller + +commit aa1d1a0af6022f02fb601508d3feaabafd405299 +Author: David S. Miller +Date: Thu Apr 6 16:54:33 2006 -0700 + + [SPARC64]: smp_call_function() fixups... + + 1) Take doc-book function comment from i386 implementation. + 2) cacheline align call_lock, taken from powerpc + 3) Need memory barrier after setting call_data + 4) Remove timeout + + Signed-off-by: David S. Miller + +commit 731bbe431f7dbbcbdc5293cfb187a916c375e83b +Author: David S. Miller +Date: Tue Apr 4 16:54:40 2006 -0700 + + [SPARC64]: Translate PTRACE_GETEVENTMSG for 32-bit tasks. + + Signed-off-by: David S. Miller + +commit 1608a96e7998bffd10fcb2440e8175cfb703fd95 +Author: David S. Miller +Date: Sun Apr 2 19:31:30 2006 -0700 + + [SPARC64]: Update defconfig. + + Signed-off-by: David S. Miller + +commit 955c054f7905e0a9ee4483b03f866f61e6929bec +Author: David S. Miller +Date: Sat Apr 1 23:29:56 2006 -0800 + + [SPARC64]: Print out return PC in cheetah_log_errors(). + + This makes debugging things a little bit easier. + + Signed-off-by: David S. Miller + +commit 1759e58ed2684b7a01cbb96864f23d18884f42ba +Author: David S. Miller +Date: Sat Apr 1 23:28:10 2006 -0800 + + [SPARC64]: Add dummy PTRACE_PEEKUSR for gdb. + + GDB uses a PTRACE_PEEKUSR call with offset 0 to see + if a thread is alive, so provide a success return for + this particular special case. + + Signed-off-by: David S. Miller + +commit b1a7ffcb7a047e99ab02424e651e0492f36095f7 +Author: Denis Vlasenko +Date: Sun Apr 9 22:48:59 2006 -0700 + + [IPV6]: Deinline few large functions in inet6 code + + Deinline a few functions which produce 200+ bytes of code. + + Size Uses Wasted Name and definition + ===== ==== ====== ================================================ + 429 3 818 __inet6_lookup include/net/inet6_hashtables.h + 404 2 384 __inet6_lookup_established include/net/inet6_hashtables.h + 206 3 372 __inet6_hash include/net/inet6_hashtables.h + + Signed-off-by: Denis Vlasenko + Signed-off-by: David S. Miller + +commit 55c0022e53452360064ea264c41410c70565d9f8 +Author: David S. Miller +Date: Sun Apr 9 22:43:55 2006 -0700 + + [IPV4] ip_fragment: Always compute hash with ipfrag_lock held. + + Otherwise we could compute an inaccurate hash due to the + random seed changing. + + Noticed by Zach Brown and patch is based upon some feedback + from Herbert Xu. + + Signed-off-by: David S. Miller + +commit 19910d1aec0b2b96ff4b4a93e2aed0d32643e850 +Author: Patrick McHardy +Date: Sun Apr 9 22:38:29 2006 -0700 + + [NETFILTER]: Fix DNAT in LOCAL_OUT + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 9b591cbd4e0fc2911d105d88d354124467b2cc08 +Author: David S. Miller +Date: Sun Apr 9 22:37:18 2006 -0700 + + [X25]: Restore skb->dev setting in x25_type_trans(). + + Noticed by Pascal Schlafer. + + Signed-off-by: David S. Miller + +commit 9469d458b90bfb9117cbb488cfa645d94c3921b1 +Author: Sergey Vlasov +Date: Sun Apr 9 22:32:48 2006 -0700 + + [NET]: Fix hotplug race during device registration. + + From: Thomas de Grenier de Latour + + On Sun, 9 Apr 2006 21:56:59 +0400, + Sergey Vlasov wrote: + + > However, show_address() does not output anything unless + > dev->reg_state == NETREG_REGISTERED - and this state is set by + > netdev_run_todo() only after netdev_register_sysfs() returns, so in + > the meantime (while netdev_register_sysfs() is busy adding the + > "statistics" attribute group) some process may see an empty "address" + > attribute. + + I've tried the attached patch, suggested by Sergey Vlasov on + hotplug-devel@, and as far as i can test it works just fine. + + Signed-off-by: David S. Miller + +commit 30aaa154fc21ad1ee4400e28009732a04a80862f +Author: Adrian Bunk +Date: Sun Apr 9 22:29:17 2006 -0700 + + [IPV6]: Unexport secure_ipv6_port_ephemeral + + This patch removes the unused EXPORT_SYMBOL(secure_ipv6_port_ephemeral). + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit 503e4faad18baa62bb818537b920ad939749823e +Author: Brian Haley +Date: Fri Apr 7 15:00:06 2006 -0700 + + [NETFILTER]: Fix build with CONFIG_NETFILTER=y/m on IA64 + + Can't build with CONFIG_NETFILTER=y/m on IA64, there's a missing + #include in net/ipv6/netfilter.c + + net/ipv6/netfilter.c: In function `nf_ip6_checksum': + net/ipv6/netfilter.c:92: warning: implicit declaration of function + `csum_ipv6_magic' + + Signed-off-by: Brian Haley + Signed-off-by: David S. Miller + +commit 77d04bd957ddca9d48a664e28b40f33993f4550e +Author: Andrew Morton +Date: Fri Apr 7 14:52:59 2006 -0700 + + [NET]: More kzalloc conversions. + + Signed-off-by: David S. Miller + +commit 31380de95cc3183bbb379339e67f83d69e56fbd6 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Thu Apr 6 22:38:28 2006 -0700 + + [NET] kzalloc: use in alloc_netdev + + Noticed this use, fixed it. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: David S. Miller + +commit 83b950c89c8cc0dcc1b079c638be25915c9945f1 +Author: Jamal Hadi Salim +Date: Thu Apr 6 22:24:22 2006 -0700 + + [PKT_SCHED] act_police: Rename methods. + + Rename policer specific _generic_ methods to be specific to + _act_police_ + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit bbadf503d7c7e6efe0a4cd731f8855ba08276215 +Author: Michael Chan +Date: Thu Apr 6 21:46:34 2006 -0700 + + [TG3]: Speed up SRAM access (2nd version) + + Speed up SRAM read and write functions if possible by using MMIO + instead of config. cycles. With this change, the post reset signature + done at the end of D3 power change must now be moved before the D3 + power change. + + IBM reported a problem on powerpc blades during ethtool self test that + was caused by the memory test taking excessively long. Config. cycles + are very slow on powerpc and the memory test can take more than 10 + seconds to complete using config. cycles. + + David Miller informed me that an earlier version of the patch caused + problems on sparc64 systems with built-in tg3 chips. This version + fixes the problem by excluding all SUN built-in tg3 chips from doing + MMIO SRAM access. + + TG3_FLAG_EEPROM_WRITE_PROT is also set unconditionally when + TG3_FLG2_SUN_570X is set. This should be sane as all SUN chips are + built-in and do not require Vaux switching. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit d2d746f83b74022a50d28f7f0f496842c9cde330 +Author: Michael Chan +Date: Thu Apr 6 21:45:39 2006 -0700 + + [TG3]: Kill some less useful flags + + Kill the TG3_FLAG_NO_{TX|RX}_PSEUDO_CSUM flags because they are not + very useful. This will free up some bits for new flags. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 7a43c9955178f1cc88374abe1186c0f2ef21e040 +Author: Patrick McHardy +Date: Thu Apr 6 16:16:51 2006 -0700 + + [NETFILTER]: H.323 helper: remove changelog + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 96f6bf82ea3abc77d255d5d554df5f349651f6de +Author: Patrick McHardy +Date: Thu Apr 6 14:19:24 2006 -0700 + + [NETFILTER]: Convert conntrack/ipt_REJECT to new checksumming functions + + Besides removing lots of duplicate code, all converted users benefit + from improved HW checksum error handling. Tested with and without HW + checksums in almost all combinations. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 422c346fad806e2abaeffac686860ebc98dfe33e +Author: Patrick McHardy +Date: Thu Apr 6 14:18:43 2006 -0700 + + [NETFILTER]: Add address family specific checksum helpers + + Add checksum operation which takes care of verifying the checksum and + dealing with HW checksum errors and avoids multiple checksum + operations by setting ip_summed to CHECKSUM_UNNECESSARY after + successful verification. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit bce8032ef3cc58170ab3550e9e271dba7b4c4764 +Author: Patrick McHardy +Date: Thu Apr 6 14:18:09 2006 -0700 + + [NETFILTER]: Introduce infrastructure for address family specific operations + + Change the queue rerouter intrastructure to a generic usable + infrastructure for address family specific operations as a base for + some cleanups. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a0aed49bdb2bbb4234789f241cffb607fd2e213d +Author: Patrick McHardy +Date: Thu Apr 6 14:17:27 2006 -0700 + + [NETFILTER]: Fix IP_NF_CONNTRACK_NETLINK dependency + + When NAT is built as a module, ip_conntrack_netlink can not be linked + statically. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a0b7db5e86d30f470dc1849f4fa44ff77a813091 +Author: Jing Min Zhao +Date: Thu Apr 6 14:15:33 2006 -0700 + + [NETFILTER]: H.323 helper: add parameter 'default_rrq_ttl' + + default_rrq_ttl is used when no TTL is included in the RRQ. + + Signed-off-by: Jing Min Zhao + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 51d42f5e4ee43fc98aa0c7a2a104808bb602276f +Author: Jing Min Zhao +Date: Thu Apr 6 14:14:59 2006 -0700 + + [NETFILTER]: H.323 helper: make get_h245_addr() static + + Signed-off-by: Jing Min Zhao + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 0f249685fde399c01e51a63f2bdfe4a667db083c +Author: Jing Min Zhao +Date: Thu Apr 6 14:14:11 2006 -0700 + + [NETFILTER]: H.323 helper: change EXPORT_SYMBOL to EXPORT_SYMBOL_GPL + + Signed-off-by: Jing Min Zhao + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 48bfee5fad0e46f4f18d46285efceba39e897482 +Author: Jing Min Zhao +Date: Thu Apr 6 14:13:42 2006 -0700 + + [NETFILTER]: H.323 helper: move some function prototypes to ip_conntrack_h323.h + + Move prototypes of NAT callbacks to ip_conntrack_h323.h. Because the + use of typedefs as arguments, some header files need to be moved as + well. + + Signed-off-by: Jing Min Zhao + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 32292a7ff1d9306841a8da6ea286847b1070cc6a +Author: Patrick McHardy +Date: Thu Apr 6 14:11:30 2006 -0700 + + [NETFILTER]: Fix section mismatch warnings + + Fix section mismatch warnings caused by netfilter's init_or_cleanup + functions used in many places by splitting the init from the cleanup + parts. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 964ddaa10de8f3aeed12bc2a30726514ff309e64 +Author: Patrick McHardy +Date: Thu Apr 6 14:09:49 2006 -0700 + + [NETFILTER]: Clean up hook registration + + Clean up hook registration by makeing use of the new mass registration and + unregistration helpers. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 972d1cb1427946f4980240363aac4e73fb375290 +Author: Patrick McHardy +Date: Thu Apr 6 14:09:12 2006 -0700 + + [NETFILTER]: Add helper functions for mass hook registration/unregistration + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 137dc0233fba0bfa19679bdd96eb104f0e659c5a +Author: Samuel Ortiz +Date: Wed Apr 5 22:39:14 2006 -0700 + + [IRDA]: Support for Sigmatel STIR421x chip + + This patch enables support for the Sigmatel's STIR421x IrDA chip. + Once patched with Sigmatel's firmware, this chip "almost" follows the + USB-IrDA spec. Thus this patch is against irda-usb.[ch]. + + The code has been tested by Nick Fedchik on an STIR4210 chipset based + dongle. + + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit c1e14a6ea2ae34993f431d2eb9a0f228ac3574eb +Author: Linus Walleij +Date: Wed Apr 5 22:33:59 2006 -0700 + + [IRDA]: smcinit merged into smsc-ircc driver + + This patch integrates the smcinit code into the smsc-ircc driver. + Some laptops have their smsc-ircc chip not properly configured by the + BIOS and needs some preconfiguration. Currently, this can be done from + userspace with smcinit, a utility that comes with the irda-utils + package. It messes with ioports and PCI settings, from userspace. Now + with this patch, if we happen to be on one of the known to be faulty + laptops, we preconfigure the chip from the driver. + + Patch from Linus Walleij + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 45af08be6d120690d379cb8421ebaf9d9f86ba52 +Author: Herbert Xu +Date: Wed Apr 5 22:31:19 2006 -0700 + + [INET]: Use port unreachable instead of proto for tunnels + + This patch changes GRE and SIT to generate port unreachable instead of + protocol unreachable errors when we can't find a matching tunnel for a + packet. + + This removes the ambiguity as to whether the error is caused by no + tunnel being found or by the lack of support for the given tunnel + type. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit cdee5751bf91d02616aaf30a5affef56105e3b79 +Author: Eric Sesterhenn +Date: Wed Apr 5 22:28:14 2006 -0700 + + [BLUETOOTH] sco: Possible double free. + + this fixes coverity bug id #1068. + hci_send_sco() frees skb if (skb->len > hdev->sco_mtu). + Since it returns a negative error value only in this case, we + can directly return here. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: David S. Miller + +commit ad96b485b4224785bcca478cfba02d06c46ee575 +Author: Adrian Bunk +Date: Wed Apr 5 22:21:04 2006 -0700 + + [TG3]: Fix a memory leak. + + This patch fixes a memory leak (buf wasn't freed) spotted by the + Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit e3a5cd9edff9a7a20de3c88c9d479704da98fb85 +Author: Adrian Bunk +Date: Wed Apr 5 22:19:47 2006 -0700 + + [NET]: Fix an off-by-21-or-49 error. + + This patch fixes an off-by-21-or-49 error ;-) spotted by the Coverity + checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit d938ab44c0c5418bb74a97b422a070e2cdccce22 +Author: Randy Dunlap +Date: Tue Apr 4 20:11:56 2006 -0700 + + [NET] netconsole: set .name in struct console + + Set .name in netconsole's struct console to identify the + struct's owner. + + Signed-off-by: Randy Dunlap + Acked-by: Matt Mackall + Signed-off-by: David S. Miller + +commit 50fba2aa7cefa6b0e1768cb350c9e69042320c03 +Author: Herbert Xu +Date: Tue Apr 4 13:50:45 2006 -0700 + + [INET]: Move no-tunnel ICMP error to tunnel4/tunnel6 + + This patch moves the sending of ICMP messages when there are no IPv4/IPv6 + tunnels present to tunnel4/tunnel6 respectively. Please note that for now + if xfrm4_tunnel/xfrm6_tunnel is loaded then no ICMP messages will ever be + sent. This is similar to how we handle AH/ESP/IPCOMP. + + This move fixes the bug where we always send an ICMP message when there is + no ip6_tunnel device present for a given packet even if it is later handled + by IPsec. It also causes ICMP messages to be sent when no IPIP tunnel is + present. + + I've decided to use the "port unreachable" ICMP message over the current + value of "address unreachable" (and "protocol unreachable" by GRE) because + it is not ambiguous unlike the other ones which can be triggered by other + conditions. There seems to be no standard specifying what value must be + used so this change should be OK. In fact we should change GRE to use + this value as well. + + Incidentally, this patch also fixes a fairly serious bug in xfrm6_tunnel + where we don't check whether the embedded IPv6 header is present before + dereferencing it for the inside source address. + + This patch is inspired by a previous patch by Hugo Santos . + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 2e2f7aefa8a8ba4adb6ecee8cbb43fbe9ca4cc89 +Author: Patrick McHardy +Date: Tue Apr 4 13:42:35 2006 -0700 + + [NETFILTER]: Fix fragmentation issues with bridge netfilter + + The conntrack code doesn't do re-fragmentation of defragmented packets + anymore but relies on fragmentation in the IP layer. Purely bridged + packets don't pass through the IP layer, so the bridge netfilter code + needs to take care of fragmentation itself. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 550e29bc96e6f1ced2bca82dace197b009434367 +Author: Robert Olsson +Date: Tue Apr 4 12:53:35 2006 -0700 + + [FIB_TRIE]: Fix leaf freeing. + + Seems like leaf (end-nodes) has been freed by __tnode_free_rcu and not + by __leaf_free_rcu. This fixes the problem. Only tnode_free is now + used which checks for appropriate node type. free_leaf can be removed. + + Signed-off-by: Robert Olsson + Signed-off-by: David S. Miller + +commit 8bf4b8a1083694d5aac292f92705ddd3aec29be6 +Author: Herbert Xu +Date: Tue Apr 4 12:51:05 2006 -0700 + + [IPSEC]: Check x->encap before dereferencing it + + We need to dereference x->encap before dereferencing it for encap_type. + If it's absent then the encap_type is zero. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 7359036d5cdb86d14cfeb06d0e5a1d68f85cf8b7 +Author: Ben Dooks +Date: Sun Apr 9 22:21:10 2006 +0100 + + [ARM] 3469/1: S3C24XX: clkout missing hclk selector + + Patch from Ben Dooks + + The clkout0/1 output parent code is missing the + HCLK option, and does not set clk->parent field + after updating the clock field + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 13011d08346d9d649119cc6ef519209c6f33f1e8 +Author: Ben Dooks +Date: Sun Apr 9 22:21:09 2006 +0100 + + [ARM] 3468/1: S3C2410: SMDK common include fix + + Patch from Ben Dooks + + common-smdk.c does not include its own header file + defining the exported prototypes. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 67d4d8352b5a78df422a956657d9be4b860680ab +Author: Tony Lindgren +Date: Sun Apr 9 22:21:05 2006 +0100 + + [ARM] 3461/1: ARM: OMAP: Fix clk_get() when using id and name + + Patch from Tony Lindgren + + Recent change to use both id and name when available was + not necessarily returning the right clock as it also searched + for clock name afterwards. This caused MMC to break on H2 and + H3 boards. + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 50e5629aa956c8c82015c90554a9a3fbf54cb404 +Author: Tony Lindgren +Date: Sun Apr 9 22:21:02 2006 +0100 + + [ARM] 3460/1: ARM: OMAP: Remove unnecessary nop_release() + + Patch from Tony Lindgren + + Remove unnecessary omap_nop_release() as noted by RMK. + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 932355797530f5bd4e1355a2c384e9f3ccc3dcbc +Author: Lennert Buytenhek +Date: Sun Apr 9 22:20:57 2006 +0100 + + [ARM] 3459/1: ixp23xx: fix debug serial macros for big-endian operation + + Patch from Lennert Buytenhek + + The debug-8250 macros do byte accesses, which means that if we're in + big-endian mode, we need to logically OR the UART address with 3, as + the LSB byte lane (where UART data and status is transferred) has the + highest byte address in the word when we are in big-endian mode. + + It's unclear why this problem didn't surface earlier. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 67644726317a8274be4a3d0ef85b9ccebaa90304 +Author: Dave Jones +Date: Sun Apr 2 23:34:19 2006 -0700 + + [SELINUX] Fix build after ipsec decap state changes. + + security/selinux/xfrm.c: In function 'selinux_socket_getpeer_dgram': + security/selinux/xfrm.c:284: error: 'struct sec_path' has no member named 'x' + security/selinux/xfrm.c: In function 'selinux_xfrm_sock_rcv_skb': + security/selinux/xfrm.c:317: error: 'struct sec_path' has no member named 'x' + + Signed-off-by: Dave Jones + Signed-off-by: David S. Miller + Signed-off-by: Linus Torvalds + +commit 66004a6ca23f2a2408b32cbe27fda0389fb8f9dc +Author: Linus Torvalds +Date: Sun Apr 9 12:14:02 2006 -0700 + + Move request_standard_resources() back to before PCI probing + + This effectively undoes the PCI resource allocation changes done in + commit b408cbc704352eccee301e1103b23203ba1c3a0e, but leaves the cleanups + of that commit in place. + + We're going back to marking the resources reported by e820 busy _before_ + doing PCI probing, so that any PCI resource that clashes with the BIOS- + reported memory map will be reloacted to a non-clashing area. + + The reason? Larry Finger reports that his laptop has the cardbus + controller set up by the BIOS so that it conflicts with the e820 memory + map, and needs to be relocated. See + + http://bugzilla.kernel.org/show_bug.cgi?id=6337 + + for more details. + + We'll have to work out how to handle the fbcon problem that caused that + commit in the first place in some other way. + + Cc: Ivan Kokshaysky + Cc: Greg Kroah-Hartman + Cc: Antonino A. Daplas + Cc: + Tested-by: Larry Finger + Signed-off-by: Linus Torvalds + +commit b8feb47f992d314c956add15c1118430120635bb +Author: Andi Kleen +Date: Fri Apr 7 19:50:34 2006 +0200 + + [PATCH] x86_64: Update 32-bit system call table + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 67d53ea5a3d42aadeb1584e757ca4660c0e8a810 +Author: Andi Kleen +Date: Fri Apr 7 19:50:31 2006 +0200 + + [PATCH] x86_64: Eliminate IA32_NR_syscalls define + + Or rather compute it based on the table length automatically. + + This also has the intended side effect of not warning for new system calls + anymore. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit bbd3aff89d4b34ef17a748e4c001ecc5b43e3e55 +Author: Sam Ravnborg +Date: Fri Apr 7 19:50:28 2006 +0200 + + [PATCH] x86_64: fix CONFIG_REORDER + + Fix CONFIG_REORDER. + + The value of cflags-y was assined to CFLAGS before cflags-y was assigned + the value used for CONFIG_REORDER. + + Use cflags-y for all CFLAGS options in the Makefile to avoid this + happening again. + + Signed-off-by: Sam Ravnborg + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 97c2803c9c694cafbd9f5e43a25903e0abf25188 +Author: John Blackwood +Date: Fri Apr 7 19:50:25 2006 +0200 + + [PATCH] x86_64: Plug GS leak in arch_prctl() + + In linux-2.6.16, we have noticed a problem where the gs base value + returned from an arch_prtcl(ARCH_GET_GS, ...) call will be incorrect if: + + - the current/calling task has NOT set its own gs base yet to a + non-zero value, + + - some other task that ran on the same processor previously set their + own gs base to a non-zero value. + + In this situation, the ARCH_GET_GS code will read and return the + MSR_KERNEL_GS_BASE msr register. + + However, since the __switch_to() code does NOT load/zero the + MSR_KERNEL_GS_BASE register when the task that is switched IN has a zero + next->gs value, the caller of arch_prctl(ARCH_GET_GS, ...) will get back + the value of some previous tasks's gs base value instead of 0. + + Change the arch_prctl() ARCH_GET_GS code to only read and return + the MSR_KERNEL_GS_BASE msr register if the 'gs' register of the calling + task is non-zero. + + Side note: Since in addition to using arch_prctl(ARCH_SET_GS, ...), + a task can also setup a gs base value by using modify_ldt() and write + an index value into 'gs' from user space, the patch below reads + 'gs' instead of using thread.gs, since in the modify_ldt() case, + the thread.gs value will be 0, and incorrect value would be returned + (the task->thread.gs value). + + When the user has not set its own gs base value and the 'gs' + register is zero, then the MSR_KERNEL_GS_BASE register will not be + read and a value of zero will be returned by reading and returning + 'task->thread.gs'. + + The first patch shown below is an attempt at implementing this + approach. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit e48c4729d23a026f3711d5e36add5cce894b4913 +Author: Andi Kleen +Date: Fri Apr 7 19:50:21 2006 +0200 + + [PATCH] i386: Remove printk about reboot fixups at reboot + + Printk doesn't have any value + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit b20367a6c2a0cd937cb1f0a8cf848f1402fef99c +Author: Jordan Hargrave +Date: Fri Apr 7 19:50:18 2006 +0200 + + [PATCH] x86_64: Fix drift with HPET timer enabled + + If the HPET timer is enabled, the clock can drift by ~3 seconds a day. + This is due to the HPET timer not being initialized with the correct + setting (still using PIT count). + + If HZ changes, this drift can become even more pronounced. + + HPET patch initializes tick_nsec with correct tick_nsec settings for + HPET timer. + + Vojtech comments: + + "It's not entirely correct (it assumes the HPET ticks totally + exactly), but it's significantly better than assuming the PIT error + there." + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 49c93e84d8b2d602a07c302c7e3cd4fa09095fbb +Author: Andi Kleen +Date: Fri Apr 7 19:50:15 2006 +0200 + + [PATCH] i386/x86-64: Return defined error value for bad PCI config space accesses + + Mostly to get better handling when a extended config space + access has to fallback to Type1. + + Cc: gregkh@suse.de + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 8c30b1a74aed4041f183e183a149b7dfbdc6c20e +Author: Andi Kleen +Date: Fri Apr 7 19:50:12 2006 +0200 + + [PATCH] i386/x86_64: Check if MCFG works for the first 16 busses + + Previously only the first bus would be checked against Type 1. + + Why 16? Checking all would need too much memory and we + can assume that systems with more than 16 busses have better than + average quality BIOS. + + This is an additional defense against bad MCFG tables. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit e405d067298b2b960bf20318e91ed842157c65bc +Author: Ravikiran G Thirumalai +Date: Fri Apr 7 19:50:09 2006 +0200 + + [PATCH] x86_64: Fixup read_mostly section on internode cache line size for vSMP + + Fixup the read mostly section to start at internode cacheline boundary. + + Signed-off-by: Ravikiran Thirumalai + Signed-off-by: Shai Fultheim + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 3d34ee6891e274dfb6a22930546d37738cdbe9c4 +Author: Andi Kleen +Date: Fri Apr 7 19:50:06 2006 +0200 + + [PATCH] x86_64: Don't return error for HPET initialization in initcall + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit ac04dcaf6f567307fbeef9c3c1fff35280e53f02 +Author: Andi Kleen +Date: Fri Apr 7 19:50:03 2006 +0200 + + [PATCH] x86_64: Don't export strlen twice + + Fix + + WARNING: vmlinux: 'strlen' exported twice. Previous export was in vmlinux + + Reported by Mats Johannesson + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 7bf36bbc5e0c09271f9efe22162f8cc3f8ebd3d2 +Author: Andi Kleen +Date: Fri Apr 7 19:50:00 2006 +0200 + + [PATCH] x86_64: When user could have changed RIP always force IRET + + Intel EM64T CPUs handle uncanonical return addresses differently + from AMD CPUs. + + The exception is reported in the SYSRET, not the next instruction. + This leads to the kernel exception handler running on the user stack + with the wrong GS because the kernel didn't expect exceptions + on this instruction. + + This version of the patch has the teething problems that plagued an earlier + version fixed. + + This is CVE-2006-0744 + + Thanks to Ernie Petrides and Asit B. Mallick for analysis and initial + patches. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 553f265fe883a23502ee351845f09334790f18b8 +Author: Andi Kleen +Date: Fri Apr 7 19:49:57 2006 +0200 + + [PATCH] x86_64: Don't run NMI watchdog during machine checks + + Machine checks can stall the machine for a long time and + it's not good to trigger the nmi watchdog during that. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit be56db6186999a8571ae480cf2b929578f6dfd68 +Author: Dave Hansen +Date: Fri Apr 7 19:49:54 2006 +0200 + + [PATCH] x86_64: extra NODES_SHIFT definition + + The generic linux/numa.h file defines NODES_SHIFT to 0 in case + the architecture did not. + + Every architecture which has a NUMA config option defines + NODES_SHIFT in its asm-$ARCH headers, but only if NUMA is + enabled, except for x86_64. + + This should make it like all the rest. + + Signed-off-by: Dave Hansen + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 4211a30349e8d2b724cfb4ce2584604f5e59c299 +Author: Jacob Shin +Date: Fri Apr 7 19:49:51 2006 +0200 + + [PATCH] x86_64: Proper null pointer check in powernow_k8_get + + This prevents crashes on dual core system when enough ticks are lost. + + Replaces earlier patch by me. + + Cc: Dave Jones + Signed-off-by: Thomas Renninger + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit d7fa706ce2c29cb751c15ca00f3aa7b223e3c9f0 +Author: Andi Kleen +Date: Fri Apr 7 19:49:48 2006 +0200 + + [PATCH] x86_64: Revert earlier powernow-k8 change + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 95d769aaf47abfc77b600631403ff5af6c990cff +Author: Andi Kleen +Date: Fri Apr 7 19:49:45 2006 +0200 + + [PATCH] i386: Consolidate modern APIC handling + + AMD systems have a modern APIC that supports 8 bit IDs, but + don't have a XAPIC version number. Add a new "modern_apic" + subfunction that handles this correctly and use it (nearly) + everywhere where XAPIC is tested for. + + I removed one wart: the code specified that external APICs + would use an 8bit APIC ID. But I checked a real 82093 data sheet + and it says clearly that they only use 4bit. So I removed + this special case since it would a bit awkward to implement now. + + I removed the valid APIC tests in mptable parsing completely. On any modern + system they only check against the full field width (8bit) anyways + and are no-ops. This also fixes them doing the wrong thing + on >8 core Opterons. + + This makes i386 boot again on 16 core Opterons. + + Cc: Ingo Molnar + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit d1530d82e02fd96d4634a6d6f6538c8b778c43af +Author: Andi Kleen +Date: Fri Apr 7 19:49:42 2006 +0200 + + [PATCH] x86_64: Clear APIC feature bit when local APIC is disabled + + Needed for other checks later in ACPI. + + Pointed out by Len Brown + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit d3b6a349d233aecf2c52f7f4c150ca09f684f2d8 +Author: Andi Kleen +Date: Fri Apr 7 19:49:39 2006 +0200 + + [PATCH] x86-64/i386: Don't process APICs/IO-APICs in ACPI when APIC is disabled. + + When nolapic was passed or the local APIC was disabled + for another reason ACPI would still parse the IO-APICs + until these were explicitely disabled with noapic. + + Usually this resulted in a non booting configuration unless + "nolapic noapic" was used. + + I also disabled the local APIC parsing in this case, although + that's only cosmetic (suppresses a few printks) + + This hopefully makes nolapic work in all cases. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit ec0f08eeea6ac1d8c925f47e3677e4c985fd8f63 +Author: Andi Kleen +Date: Fri Apr 7 19:49:36 2006 +0200 + + [PATCH] x86_64: Don't sanity check Type 1 PCI bus access on newer systems + + Horus systems don't have anything on bus 0 which makes + the Type 1 sanity checks fail. Use the DMI BIOS year to + check for newer systems and always assume Type 1 works on them. + I used 2001 as an pretty arbitary cutoff year. + + Cc: gregkh@suse.de + Cc: Navin Boppuri + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit fa47dd0ba303599f8adf8d8336ed2fb74efc47c5 +Author: Andi Kleen +Date: Fri Apr 7 19:49:33 2006 +0200 + + [PATCH] x86_64: Fix compilation with CONFIG_PCI=n / allnoconfig + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 946f2ee5c7312e8acac4f3ab6629e7e2d36a3646 +Author: Arjan van de Ven +Date: Fri Apr 7 19:49:30 2006 +0200 + + [PATCH] i386/x86-64: Check that MCFG points to an e820 reserved area + + This patch introduces a user for the e820_all_mapped function: + + There have been several machines that don't have a working MMCONFIG, + often because of a buggy MCFG table in the ACPI bios. This patch adds a + simple sanity check that detects a whole bunch of these cases, and when + it detects it, linux now boots rather than crash-and-burns. + + The accuracy of this detection can in principle be improved if there was + a "is this entire range in e820 with THIS attribute", but no such + function exist and the complexity needed for this is not really worth + it; this simple check already catches most cases anyway. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 952223683ec989e86328c24808fdb962c4dbeb0a +Author: Arjan van de Ven +Date: Fri Apr 7 19:49:27 2006 +0200 + + [PATCH] x86_64: Introduce e820_all_mapped + + Introduce a e820_all_mapped() function which checks if the entire range + is mapped with type. + + This is done by moving the local start variable to the end of each + known-good region; if at the end of the function the start address is + still before end, there must be a part that's not of the correct type; + otherwise it's a good region. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit eee5a9fa63c97366cdea6ab3aa2ed9e3601812d0 +Author: Arjan van de Ven +Date: Fri Apr 7 19:49:24 2006 +0200 + + [PATCH] x86_64: Rename e820_mapped to e820_any_mapped + + Rename e820_mapped to e820_any_mapped since it tests if any part of the + range is mapped according to the type. + + Later steps will introduce e820_all_mapped which will check if the + entire range is mapped with the type. Both have their merit. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit a8062231d80239cf3405982858c02aea21a6066a +Author: Andi Kleen +Date: Fri Apr 7 19:49:21 2006 +0200 + + [PATCH] x86_64: Handle empty PXMs that only contain hotplug memory + + The node setup code would try to allocate the node metadata in the node + itself, but that fails if there is no memory in there. + + This can happen with memory hotplug when the hotplug area defines an so + far empty node. + + Now use bootmem to try to allocate the mem_map in other nodes. + + And if it fails don't panic, but just ignore the node. + + To make this work I added a new __alloc_bootmem_nopanic function that + does what its name implies. + + TBD should try to use nearby nodes here. Currently we just use any. + It's hard to do it better because bootmem doesn't have proper fallback + lists yet. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 68a3a7feb08f960095072f28ec20f7900793c506 +Author: Andi Kleen +Date: Fri Apr 7 19:49:18 2006 +0200 + + [PATCH] x86_64: Reserve SRAT hotadd memory on x86-64 + + From: Keith Mannthey, Andi Kleen + + Implement memory hotadd without sparsemem. The memory in the SRAT + hotadd area is just preserved instead and can be activated later. + + There are a few restrictions: + - Only one continuous hotadd area allowed per node + + The main problem is dealing with the many buggy SRAT tables + that are out there. The strategy here is to reject anything + suspicious. + + Originally from Keith Mannthey, with several hacks and changes by AK + and also contributions from Andrew Morton + + [ TBD: Problems pointed out by KAMEZAWA Hiroyuki : + + 1) Goto's rebuild_zonelist patch will not work if CONFIG_MEMORY_HOTPLUG=n. + + Rebuilding zonelist is necessary when the system has just memory < + 4G at boot, and hot add memory > 4G. because x86_64 has DMA32, + ZONE_NORAML is not included into zonelist at boot time if system + doesn't have memory >4G at boot. + + [AK: should just force the higher zones at boot time when SRAT tells us] + + 2) zone and node's spanned_pages and present_pages are not incremented. + They should be. + + For example, our server (ia64/Fujitsu PrimeQuest) can equip memory + from 4G to 1T(maybe 2T in future), and SRAT will *always* say we have + possible 1T +memory. (Microsoft requires "write all possible memory + in SRAT") When we reserve memmap for possible 1T memory, Linux will + not work well in +minimum 4G configuraion ;) + + [AK: needs limiting to 5-10% of max memory] + ] + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 9d99aaa31f5994d1923c3713ce9144c4c42332e1 +Author: Andi Kleen +Date: Fri Apr 7 19:49:15 2006 +0200 + + [PATCH] x86_64: Support memory hotadd without sparsemem + + Memory hotadd doesn't need SPARSEMEM, but can be handled by just preallocating + mem_maps. This only needs some untangling of ifdefs to enable the necessary + code even without SPARSEMEM. + + Originally from Keith Mannthey, hacked by AK. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 805e8c03c9ea9bdb402a36341e02ec24825d5417 +Author: Andi Kleen +Date: Fri Apr 7 19:49:12 2006 +0200 + + [PATCH] x86_64: Clean up execve path + + Just call IRET always, no need for any special cases. + + Needed for the next bug fix. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 903fcc608e9f531749024172277dc2fd15d5a587 +Author: Andi Kleen +Date: Fri Apr 7 19:49:09 2006 +0200 + + [PATCH] x86_64: Update defconfig + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit c5b8ef62b5df9530c573f00f4106742661425392 +Author: Russell King +Date: Sun Apr 9 19:08:42 2006 +0100 + + [ARM] Allow decompressor to be built with -ffunction-sections + + Arrange for all the text ends up in the right place when + -ffunction-sections is used. + + Signed-off-by: Russell King + +commit 0ffe984917b9cd6ecc19ffbc06f35869d8c18df8 +Author: Christoph Lameter +Date: Tue Mar 28 22:54:38 2006 -0800 + + [IA64] Prefetch mmap_sem in ia64_do_page_fault() + + Take a hint from an x86_64 optimization by Arjan van de Ven and use it + for ia64. See a9ba9a3b3897561d01e04cd21433746df46548c0 + + Prefetch the mmap_sem, which is critical for the performance of the page fault + handler. + + Note: mm may be NULL but I guess that is safe. + See 458f935527372499b714bf4f8e646a68bb0f52e3 + + Signed-off-by: Christoph Lameter + Signed-off-by: Tony Luck + +commit 8cab7ccccbdd9fe3cf6b3400d5a88ecb683a5b1b +Author: Keith Owens +Date: Fri Apr 7 16:34:34 2006 +1000 + + [IA64] Failure to resume after INIT in user space + + The OS INIT handler is loading incorrect values into cr.ifa on exit. + This shows up as a hang when resuming after an INIT that is delivered + while a cpu is in user space. Correct the value loaded into cr.ifa. + + Signed-off-by: Keith Owens + Signed-off-by: Tony Luck + +commit 958b166c00b39ff0b28ad2bbb32624b9f305a4e1 +Author: Keith Owens +Date: Mon Apr 3 15:26:12 2006 +1000 + + [IA64] Pass more data to the MCA/INIT notify_die hooks + + The MCA/INIT handlers maintain important state in the SAL to OS (sos) + area and in the monarch_cpu flag. Kernel debuggers (such as KDB) need + this data, and may need to adjust the monarch_cpu field so make the + data available to the notify_die hooks. Define two more events for + calling the functions on the notify_die chain. + + Signed-off-by: Keith Owens + Signed-off-by: Tony Luck + +commit 2db8d99ffdbed7d2beb1bbdefdcd086dda9dee98 +Author: Bjorn Helgaas +Date: Fri Apr 7 22:47:12 2006 -0700 + + [IA64] always map VGA framebuffer UC, even if it supports WB + + EFI on some machines, e.g., Intel Tiger, reports that the VGA framebuffer + supports WB access. ioremap() prefers WB when possible, so it can work + when mapping main memory. + + But it doesn't make sense to map a framebuffer WB, because the driver + doesn't flush explicitly, so updates won't make it to the device + immediately. + + This is due to Zou Nan hai . + + More extensive fix that adds a "size" argument coming soon. + + Signed-off-by: Bjorn Helgaas + Cc: "Antonino A. Daplas" + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Tony Luck + +commit cfab9d0e1da8e08a39759d0fc3bf5e40f0ac2d55 +Author: Chen, Kenneth W +Date: Fri Apr 7 17:12:54 2006 -0700 + + [IA64] fix bug in ia64 __mutex_fastpath_trylock + + The parenthesis around "likely" used in ia64 __mutex_fastpath_trylock + is incorrect, and it leads to broken mutex_trylock. Here is the + patch that fixed the bug. I removed the likely altogether because + there is no branch and gcc does a reasonable job at predicating the + return value. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit a9e2ae39170d01937725e1fff2e606baaa71346c +Author: Mark Fasheh +Date: Fri Mar 24 14:20:17 2006 -0800 + + ocfs2: Better I/O error handling in heartbeat + + Propagate errors received in o2hb_bio_end_io() back to the heartbeat thread + so it can skip re-arming the timer. + + Signed-off-by: Mark Fasheh + +commit 2cd9888590c52ac7592e3607d0a3174ccd57ef86 +Author: Mark Fasheh +Date: Wed Mar 29 16:49:13 2006 -0800 + + ocfs2: test and set teardown flag early in user_dlm_destroy_lock() + + Signed-off-by: Mark Fasheh + +commit f43e6918c0e3906fd4483316f6a1a07bba615908 +Author: Mark Fasheh +Date: Wed Mar 29 18:24:12 2006 -0800 + + ocfs2: Handle the DLM_CANCELGRANT case in user_unlock_ast() + + Remove the code which attempted to catch it via dlmunlock() return status - + this never happens there. + + Signed-off-by: Mark Fasheh + +commit cc6eb725955efb026007e1d7da8fe5383981afd2 +Author: Mark Fasheh +Date: Wed Mar 29 10:34:21 2006 -0800 + + ocfs2: catch an invalid ast case in dlmfs + + Signed-off-by: Mark Fasheh + +commit 1f7bc828e30fe3e23ea0968b9595ad20e2785978 +Author: Mark Fasheh +Date: Wed Mar 29 10:33:35 2006 -0800 + + ocfs2: remove an overly aggressive BUG() in dlmfs + + Don't BUG() user_dlm_unblock_lock() on the absence of the USER_LOCK_BLOCKED + flag - this turns out to be a valid case. Make some of the related BUG() + statements print more useful information. + + Signed-off-by: Mark Fasheh + +commit ab0920ce7ebb6d60063c793f227ae198a492251b +Author: Mark Fasheh +Date: Thu Mar 16 15:06:37 2006 -0800 + + ocfs2: multi node truncate fix + + Fix ocfs2_truncate_file() so that it forces a truncate_inode_pages() on all + interested nodes in all cases of a truncate(), not just allocation change. + + Signed-off-by: Mark Fasheh + +commit 95f3df6bcb89d370c57b7165f55c5a409d011c8e +Author: Russell King +Date: Fri Apr 7 13:17:15 2006 +0100 + + [ARM] Fix SA110/SA1100 cache flushing + + We had two implementations for flushing the cache, which meant StrongARM + caches weren't being correctly flushed. Fix this by always using the + v4wb_flush_kern_cache_all method, rather than duplicating it. + + Signed-off-by: Russell King + +commit f1dc24d53e9e91cf795f05751eeb7e220c7c15e1 +Author: Russell King +Date: Fri Apr 7 11:04:54 2006 +0100 + + [ARM] ebsa110: Fix incorrect serial port address + + Signed-off-by: Russell King + +commit 6e29ebad0f252b085a3bb0188637f315efda0a48 +Author: Russell King +Date: Fri Apr 7 10:16:55 2006 +0100 + + [ARM] Fix ebsa110 debug macros + + Was including debug-8250.h rather than debug-8250.S + + Signed-off-by: Russell King + +commit 74d02fb9543ec85b04319b5b50926c78e7f07f3e +Author: Russell King +Date: Tue Apr 4 21:47:43 2006 +0100 + + [ARM] Move FLUSH_BASE macros to asm/arch/memory.h + + FLUSH_BASE must be visible to arch/arm/mm/init.c in order for the + memory region to be setup. Move these definitions from + asm-arm/arch-*/hardware.h into asm-arm/arch-*/memory.h where mm + stuff can see them. + + Signed-off-by: Russell King + +commit 31f64bd101ea256f9fc4a7f1f1706d6417d5550a +Author: Dave Airlie +Date: Fri Apr 7 16:55:43 2006 +1000 + + drm: deline a few large inlines in DRM code + + This patch moves a few large functions from drm_memory.h + to drm_memory.c, with the following effect: + + text data bss dec hex filename + 46305 1304 20 47629 ba0d new/drm.ko + 46367 1304 20 47691 ba4b org/drm.ko + 12969 1372 0 14341 3805 new/i810.ko + 14712 1372 0 16084 3ed4 org/i810.ko + 16447 1364 0 17811 4593 new/i830.ko + 18198 1364 0 19562 4c6a org/i830.ko + 11875 1324 0 13199 338f new/i915.ko + 13025 1324 0 14349 380d org/i915.ko + 23936 29288 0 53224 cfe8 new/mga.ko + 27280 29288 0 56568 dcf8 org/mga.ko + + Please apply. + + Signed-off-by: Denis Vlasenko + Signed-off-by: Dave Airlie + +commit d9df92e22aca939857c5bc9ecb130ef22307ccc1 +Author: Sam Ravnborg +Date: Fri Apr 7 08:36:49 2006 +0200 + + kbuild: properly pass options to hostcc when doing make O=.. + + This fix a longstanding bug where proper options was not + passed to hostcc in case of a make O=.. build. + This bug showed up in (not yet merged) klibc, and is not known + to have any counterpart in-kernel. + Fixed by moving the flags macro to Kbuild.include so it can be used + by both Makefile.lib and Makefile.host. + + Signed-off-by: Sam Ravnborg + +commit 0681226661754a99de711cda2c2bd12ff9cd2c3b +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 14:50:09 2006 -0800 + + [IA64] for_each_possible_cpu: ia64 + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu under + arch/ia64/kernel/. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Tony Luck + +commit 03fbaca36a85a8c923e30abfb1a9a630bf1c5a1d +Author: Bjorn Helgaas +Date: Tue Mar 28 14:06:20 2006 -0800 + + [IA64] update HP CSR space discovery via ACPI + + Get rid of the manual search of _CRS, in favor of + acpi_get_vendor_resource() which is now provided by the ACPI CA. And fall + back to searching for a consumer-only address space descriptor if no + vendor-defined resource is found. + + Signed-off-by: Bjorn Helgaas + Signed-off-by: Andrew Morton + Signed-off-by: Tony Luck + +commit b8cd2af862c3cbd428600e1c4f0d3f97c0da54cc +Author: Tony Luck +Date: Thu Apr 6 14:20:16 2006 -0700 + + [IA64] Wire up new syscalls {set,get}_robust_list + + Join the dots to enable Ingo's robut futex syscalls. + + Signed-off-by: Tony Luck + +commit 7d2d8fe0cb88914d26219db51341d780a032b198 +Author: Andreas Gruenbacher +Date: Wed Apr 5 23:33:50 2006 +0200 + + kbuild: modules_install for external modules must not remove existing modules + + When installing external modules with `make modules_install', the + first thing that happens is a rm -rf of the target directory. This + works only once, and breaks when installing more than one (set of) + external module(s). + With following fix we have the functionality: + - for a in-kernel modules_install the $(MODLIB)/kernel directory will be + deleted before module installation + - for external modules the existing modules will be left as is assuming + one may be building and installign several external modules + + Signed-off-by: Andreas Gruenbacher + Signed-off-by: Sam Ravnborg + +commit aa360879ed38fbe88057cc43f720881ab9e6a63a +Author: Sam Ravnborg +Date: Thu Apr 6 08:25:31 2006 +0200 + + kbuild: fix make dir/ + + kbuild added an extra '/' after the directory - resulting in all + files being rebuild in a subdirectory. + + Signed-off-by: Sam Ravnborg + +commit ea88df9bf895720289331e41ed73cdcb04059900 +Author: Alexey Dobriyan +Date: Wed Sep 21 21:37:24 2005 +0400 + + ver_linux: don't print reiser4progs version if none found + + Sam: did the same for reiserprogs + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Sam Ravnborg + +commit 0947640f4388de50a39f762748b08e586a482527 +Author: Atsushi Nemoto +Date: Tue Mar 28 00:18:54 2006 +0900 + + kbuild: mips: fix sed regexp to generate asm-offset.h + + Changes to Makefile.kbuild ("kbuild: add -fverbose-asm to i386 + Makefile") breaks asm-offset.h file on MIPS. Other archs possibly + suffer this change too but I'm not sure. + + Here is a fix just for MIPS. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Sam Ravnborg + +commit bc2546a67975a7bddc72f8c48b0bb2081b56f853 +Author: Sam Ravnborg +Date: Wed Apr 5 12:57:21 2006 +0200 + + kbuild: fix building single targets with make O=.. single-target + + This fixes single targets build so it now works relaiably in + following cases: + - build with mixed kernel source and output files (make single-target) + - build with separate output directory (make O=.. single-target) + - external module with mixed kernel source and output files + (make M='pwd' single-target) + - external module with separate kernel source and output files + (make O=.. M='pwd' single-target) + + Signed-off-by: Sam Ravnborg + +commit 11bab7d2c86fe486e3581ac3dcdb349478ffb899 +Author: Dave Airlie +Date: Wed Apr 5 18:13:13 2006 +1000 + + drm: remove master setting from add/remove context + + Clients can do this in the miniglx setups. + + Signed-off-by: Dave Airlie + +commit 195b3a2d57b81d30e3129575ef6c8a95b2c936b7 +Author: Dave Airlie +Date: Wed Apr 5 18:12:18 2006 +1000 + + drm: drm_pci needs dma-mapping.h + + On alpha: + + WARNING: "dma_free_coherent" [drivers/char/drm/drm.ko] undefined! + WARNING: "dma_alloc_coherent" [drivers/char/drm/drm.ko] undefined! + + Signed-off-by: Andrew Morton + Signed-off-by: Dave Airlie + +commit 86678dfddba55a7b9e2ea084d59be6500fec2256 +Author: Dave Airlie +Date: Wed Apr 5 18:10:11 2006 +1000 + + [PATCH] drm: Fix issue reported by Coverity in drivers/char/drm/via_irq.c + + This patch tries to fix an issue reported in drivers/char/drm/via_irq.c by + Coverity, please review and apply if correct. + + Error reported: + CID: 3444 Checker: REVERSE_INULL (help) + File: /export2/p4-coverity/mc2/linux26/drivers/char/drm/via_irq.c + Function: via_driver_irq_wait + Description: Pointer "dev_priv" dereferenced before NULL check + + Patch Description: + Move de-referencing dev_priv to after the NULL check. + + Signed-off-by: Jayachandran C. + Signed-off-by: Dave Airlie + +commit b86756ae76dc5e7ecff3ca52a5842155e6d457de +Author: Paul Mackerras +Date: Mon Apr 3 16:37:23 2006 +1000 + + powerpc: Fix CHRP booting - needs a define_machine call + + The patch removing _machine and converting platforms over to use + define_machine wasn't complete as far as CHRP was concerned. This + adds the define_machine call for CHRP and gets it booting again. + + Signed-off-by: Paul Mackerras + +commit e2aa507a837cbaa376faa3d9f8448ff569d34ccf +Author: John Reed Riley +Date: Wed Apr 5 00:40:01 2006 -0400 + + Input: wistron - add support for Fujitsu N3510 + + Signed-off-by: Dmitry Torokhov + +commit 8a1b170898cd827b24cbf02c43c57f8489e9ccce +Author: Stefan Rompf +Date: Wed Apr 5 00:39:20 2006 -0400 + + Input: wistron - add signature for Amilo M7400 + + Signed-off-by: Dmitry Torokhov + +commit d2e0655ede1d91c3a586455d03a4a2d57e659830 +Author: Michael S. Tsirkin +Date: Tue Apr 4 19:59:40 2006 +0300 + + IPoIB: Consolidate private neighbour data handling + + Consolidate IPoIB's private neighbour data handling into + ipoib_neigh_alloc() and ipoib_neigh_free(). This will make it easier + to keep track of the neighbour structures that IPoIB is handling, and + is a nice cleanup of the code: + + add/remove: 2/1 grow/shrink: 1/8 up/down: 100/-178 (-78) + function old new delta + ipoib_neigh_alloc - 61 +61 + ipoib_neigh_free - 36 +36 + ipoib_mcast_join_finish 1288 1291 +3 + path_rec_completion 575 573 -2 + ipoib_mcast_join_task 664 660 -4 + ipoib_neigh_destructor 101 92 -9 + ipoib_neigh_setup_dev 14 3 -11 + ipoib_neigh_setup 17 - -17 + path_free 238 215 -23 + ipoib_mcast_free 329 306 -23 + ipoib_mcast_send 718 684 -34 + neigh_add_path 705 650 -55 + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 27f4aa3db090ff5bc0e6c192aae6d99b21563b21 +Author: Tony Luck +Date: Tue Apr 4 14:11:49 2006 -0700 + + [IA64] 'msg' may be used uninitialized in xpc_initiate_allocate() + + Found by gcc4.1 and reported by Dean Nelson. + + Signed-off-by: Tony Luck + +commit d905b00b3bc9484d92dd6e9bd9fd8cf66580dc8a +Author: Tony Luck +Date: Tue Apr 4 14:08:11 2006 -0700 + + [IA64] Wire up new syscall sync_file_range() + + Also reserve syscall numbers for {set,get}_robust_list + + Signed-off-by: Tony Luck + +commit 7d12963757b9170f162f317b7461353c5fb574e8 +Author: Russell King +Date: Tue Apr 4 16:25:47 2006 +0100 + + [ARM] Remove unnecessary extra parens in include/asm-arm/memory.h + + Signed-off-by: Russell King + +commit 0da323505fc7dd6b01d35e6181cb3d45f992726a +Author: KAMEZAWA Hiroyuki +Date: Tue Apr 4 16:06:00 2006 +0100 + + [ARM] arm's arch_local_page_offset() fix against 2.6.17-rc1 + + This patch fixes arch_local_page_offset(pfn,nid) in arm. + This new one (added by unify_pfn_to_page patches) is obviously buggy. + + This macro calculate page offset in a node. + + Note: about LOCAL_MAP_NR() + comment in arm's sub-archs says... + + /* + * Given a kaddr, LOCAL_MAP_NR finds the owning node of the memory + * and returns the index corresponding to the appropriate page in the + * node's mem_map. + */ + + but LOCAL_MAP_NR() is designed to be able to take both paddr and kaddr. + In this case, paddr is better. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Russell King + +commit b46da0567d3baa6783106e7463801292cdc79ddd +Author: Sam Ravnborg +Date: Tue Apr 4 16:56:10 2006 +0200 + + kbuild: use relative path to -I + + Using a relative path has the advantage that when the kernel source + tree is moved the relevant .o files will not be rebuild just because + the path to the kernel src has changed. + This also got rid of a user of TOPDIR - which has been deprecated for a long time now. + + Signed-off-by: Sam Ravnborg + +commit 1417ae0869472f4f3768779c51c3979faca20b2e +Author: Carl-Daniel Hailfinger +Date: Tue Apr 4 01:02:30 2006 +0200 + + kbuild: fix unneeded rebuilds in drivers/net/chelsio after moving source tree + + This fixes some uneeded rebuilds under drivers/net/chelsio after moving + the source tree. The makefiles used $(TOPDIR) for include paths, which + is unnecessary. Changed to use relative paths. + + Compile tested, produces byte-identical code to the previous makefiles. + + Signed-off-by: Carl-Daniel Hailfinger + Signed-off-by: Sam Ravnborg + +commit 8036dc6bdca0faa981be01377728678a6f6f3fde +Author: Carl-Daniel Hailfinger +Date: Tue Apr 4 00:35:36 2006 +0200 + + kbuild: fix unneeded rebuilds in drivers/media/video after moving source tree + + This fixes some uneeded rebuilds under drivers/media/video after moving + the source tree. The makefiles used $(src) and $(srctree) for include + paths, which is unnecessary. Changed to use relative paths. + + Compile tested, produces byte-identical code to the previous makefiles. + + Signed-off-by: Carl-Daniel Hailfinger + Signed-off-by: Sam Ravnborg + +commit a7d7cb3cd6c97cbbe21d528c014e5f592006457d +Author: Brian Gerst +Date: Sat Mar 25 14:48:37 2006 -0500 + + kbuild: fix garbled text in modules.txt + + Signed-off-by: Brian Gerst + Signed-off-by: Sam Ravnborg + +commit 7d01c880856bae31502095bc68784c1518a680cb +Author: Stephen Rothwell +Date: Tue Apr 4 14:49:48 2006 +1000 + + powerpc: iSeries has only 256 IRQs + + The iSeries Hypervisor only allows us to specify IRQ numbers up to 255 (it + has a u8 field to pass it in). This patch allows platforms to specify a + maximum to the virtual IRQ numbers we will use and has iSeries set that + to 255. If not set, the maximum is NR_IRQS - 1 (as before). + + Signed-off-by: Stephen Rothwell + +commit ce1823f0323be9f38bbe0df229a5bba025404923 +Author: Roland Dreier +Date: Mon Apr 3 09:31:04 2006 -0700 + + IB/srp: Fix memory leak in options parsing + + Fix memory leak if parsing destination GID fails. + + Coverity bug 1042 + + Signed-off-by: Roland Dreier + +commit 4c41251e31982002bca0ce7e903c0cc66218c1ec +Author: Erik Mouw +Date: Mon Apr 3 14:21:00 2006 +0200 + + [CPUFREQ] Update LART site URL + + Update LART site URL. + + The LART website moved to http://www.lartmaker.nl/. This patch + updates the URL in CpuFreq specific files. + + Signed-off-by: Erik Mouw + Signed-off-by: Dave Jones + +commit 6246b6128bbe34d0752f119cf7c5111c85fe481d +Author: Linus Torvalds +Date: Sun Apr 2 20:22:10 2006 -0700 + + Linux v2.6.17-rc1 + + Close of the merge window.. + +commit 227c939b00cf786b5e2e95fc904518206f478421 +Author: Roland Dreier +Date: Sun Apr 2 14:39:20 2006 -0700 + + IB/mthca: Always build debugging code unless CONFIG_EMBEDDED=y + + Change the mthca debugging trace output code so that it can enabled + and disabled at runtime with the debug_level module parameter in + sysfs. Also, don't allow CONFIG_INFINIBAND_MTHCA_DEBUG to be disabled + unless CONFIG_EMBEDDED is selected. We want users (and especially + distros) to have this turned on unless they really need to save space, + because by the time we want debugging output, it's usually too late to + rebuild a kernel. + + Signed-off-by: Roland Dreier + +commit f5545d24b8aa9fccd8071203e83bc9f4b26e17a6 +Author: Roland Dreier +Date: Sun Apr 2 14:39:19 2006 -0700 + + IPoIB: Always build debugging code unless CONFIG_EMBEDDED=y + + Don't allow CONFIG_INFINIBAND_IPOIB_DEBUG to be disabled unless + CONFIG_EMBEDDED is selected. We want users (and especially distros) + to have this turned on unless they really need to save space, because + by the time we want debugging output, it's usually too late to rebuild + a kernel. The debugging output can be controlled at runtime via the + debug_level module parameter in sysfs. + + Signed-off-by: Roland Dreier + +commit 37289efe3ee0c0a00b5d8302df9a2b007e65c187 +Author: Michael S. Tsirkin +Date: Thu Mar 30 15:52:54 2006 +0200 + + IB/mad: fix oops in cancel_mads + + We have seen the following OOPs in cancel_mads, when restarting opensm + multiple times: + + Call Trace: + [] show_stack+0x9b/0xb0 + [] show_registers+0x11c/0x190 + [] die+0xed/0x160 + [] do_page_fault+0x3f6/0x5d0 + [] error_code+0x4f/0x60 + [] cancel_mads+0x128/0x150 [ib_mad] + [] unregister_mad_agent+0x11/0x130 [ib_mad] + [] ib_unregister_mad_agent+0x12/0x20 [ib_mad] + [] ib_umad_close+0xf3/0x130 [ib_umad] + [] __fput+0x187/0x1c0 + [] fput+0x19/0x20 + [] filp_close+0x3a/0x60 + [] put_files_struct+0x68/0xa0 + [] do_signal+0x47/0x100 + [] do_notify_resume+0x3d/0x40 + [] work_notifysig+0x13/0x25 + + We traced this back to local_completions unlocking mad_agent_priv->lock + while still keeping a pointer into local_list. A later call to + list_del(&local->completion_list) would then corrupt the list. + + To fix this, remove the entry from local_list after looking it up but + before releasing mad_agent_priv->lock, to prevent cancel_mads from + finding and freeing it. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 6fdb94bd95dc7a2effcbffa7a1d9e792cade57b6 +Author: Linus Torvalds +Date: Sun Apr 2 14:37:36 2006 -0700 + + Update dummy snd_power_wait() function for new calling convention + + Apparently nobody had tried to compile the ALSA CVS tree without power + management enabled. + + Signed-off-by: Linus Torvalds + +commit 3e7ee3e7b36fa4e2d88d8fb0a2577be95fc4636d +Author: Jens Axboe +Date: Sun Apr 2 23:11:04 2006 +0200 + + [PATCH] splice: fix page stealing LRU handling. + + Originally from Nick Piggin, just adapted to the newer branch. + + You can't check PageLRU without holding zone->lru_lock. The page + release code can get away with it only because the page refcount is 0 at + that point. Also, you can't reliably remove pages from the LRU unless + the refcount is 0. Ever. + + Signed-off-by: Nick Piggin + Signed-off-by: Jens Axboe + +commit ad8d6f0a783ffa2ff9b0cf09910b889715772201 +Author: Jens Axboe +Date: Sun Apr 2 23:10:32 2006 +0200 + + [PATCH] splice: page stealing needs to wait_on_page_writeback() + + Thanks to Andrew for the good explanation of why this is so. akpm writes: + + If a page is under writeback and we remove it from pagecache, it's still + going to get written to disk. But the VFS no longer knows about that page, + nor that this page is about to modify disk blocks. + + So there might be scenarios in which those + blocks-which-are-about-to-be-written-to get reused for something else. + When writeback completes, it'll scribble on those blocks. + + This won't happen in ext2/ext3-style filesystems in normal mode because the + page has buffers and try_to_release_page() will fail. + + But ext2 in nobh mode doesn't attach buffers at all - it just sticks the + page in a BIO, finds some new blocks, points the BIO at those blocks and + lets it rip. + + While that write IO's in flight, someone could truncate the file. Truncate + won't block on the writeout because the page isn't in pagecache any more. + So truncate will the free the blocks from the file under the page's feet. + Then something else can reallocate those blocks. Then write data to them. + + Now, the original write completes, corrupting the filesystem. + + Signed-off-by: Jens Axboe + +commit 059a8f3734a66cb2c41731083b0cbf836721485b +Author: Jens Axboe +Date: Sun Apr 2 23:06:05 2006 +0200 + + [PATCH] splice: export generic_splice_sendpage + + Forgot that one, thanks Jeff. Also move the other EXPORT_SYMBOL + to right below the functions. + + Signed-off-by: Jens Axboe + +commit b2b39fa478db6db89b7ccafb0649973845b0eb75 +Author: Jens Axboe +Date: Sun Apr 2 23:05:41 2006 +0200 + + [PATCH] splice: add a SPLICE_F_MORE flag + + This lets userspace indicate whether more data will be coming in a + subsequent splice call. + + Signed-off-by: Jens Axboe + +commit 83f9135bddffded9f1716519b6c147bcf046c87e +Author: Jens Axboe +Date: Sun Apr 2 23:05:09 2006 +0200 + + [PATCH] splice: add comments documenting more of the code + + Hopefully this will make Andrew a little more happy. + + Signed-off-by: Jens Axboe + +commit 4f6f0bd2ffa4e31c3524f5e65c84a29b6ab73307 +Author: Jens Axboe +Date: Sun Apr 2 23:04:46 2006 +0200 + + [PATCH] splice: improve writeback and clean up page stealing + + By cleaning up the writeback logic (killing write_one_page() and the manual + set_page_dirty()), we can get rid of ->stolen inside the pipe_buffer and + just keep it local in pipe_to_file(). + + This also adds dirty page balancing logic and O_SYNC handling. + + Signed-off-by: Jens Axboe + +commit 53cd9ae886273d6c2b8ba4aa63d6cd6b1217b57f +Author: Jens Axboe +Date: Sun Apr 2 23:04:21 2006 +0200 + + [PATCH] splice: fix shadow[] filling logic + + Clear the entire range, and don't increment pidx or we keep filling + the same position again and again. + + Thanks to KAMEZAWA Hiroyuki. + + Signed-off-by: Jens Axboe + +commit 34ddf733c415a8e336c996a4303d9f336e0c81b5 +Author: Kumar Gala +Date: Sun Apr 2 16:01:58 2006 -0500 + + powerpc/ppc: export strncasecmp + + We have a strncasecmp so we might as well export it + + Signed-off-by: Kumar Gala + +commit 6e0dd741a89be35defa05bd79f4211c5a2762825 +Author: Greg Kroah-Hartman +Date: Fri Mar 31 15:37:06 2006 -0800 + + [PATCH] sysfs: zero terminate sysfs write buffers + + No one should be writing a PAGE_SIZE worth of data to a normal sysfs + file, so properly terminate the buffer. + + Thanks to Al Viro for pointing out my supidity here. + + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Linus Torvalds + +commit 597a7679dd83691be2f3a53e1f3f915b4a7f6eba +Author: Arjan van de Ven +Date: Sun Apr 2 19:24:57 2006 +0200 + + [PATCH] revert incorrect mutex conversion in hdaps driver + + This reverts the mutex conversion that was recently done to the hdaps + driver; this coversion was buggy because the hdaps driver started using + this semaphore in IRQ context, which mutexes do not allow. Easiest + solution for now is to just revert the patch (the patch was part of a + bigger GIT commit, 9a61bf6300533d3b64d7ff29adfec00e596de67d but this + only reverts this one file) + + Signed-off-by: Arjan van de Ven + Signed-off-by: Linus Torvalds + +commit 24c7cd0630f76f0eb081d539c53893d9f15787e8 +Author: Stefan Richter +Date: Sat Apr 1 21:11:41 2006 +0200 + + [PATCH] sbp2: fix spinlock recursion + + sbp2util_mark_command_completed takes a lock which was already taken by + sbp2scsi_complete_all_commands. This is a regression in Linux 2.6.15. + + Reported by Kristian Harms at + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=187394 + + [ More complete commentary, as response to questions by Andrew: ] + + > This changes the call environment for all implementations of + > ->Current_done(). Are they all safe to call under this lock? + + Short answer: Yes, trust me. ;-) Long answer: + + The done() callbacks are passed on to sbp2 from the SCSI stack along + with each SCSI command via the queuecommand hook. The done() callback + is safe to call in atomic context. So does + Documentation/scsi/scsi_mid_low_api.txt say, and many if not all SCSI + low-level handlers rely on this fact. So whatever this callback does, + it is "self-contained" and it won't conflict with sbp2's internal ORB + list handling. In particular, it won't race with the + sbp2_command_orb_lock. + + Moreover, sbp2 already calls the done() handler with + sbp2_command_orb_lock taken in sbp2scsi_complete_all_commands(). I + admit this is ultimately no proof of correctness, especially since this + portion of code introduced the spinlock recursion in the first place and + we didn't realize it since this code's submission before 2.6.15 until + now. (I have learned a lesson from this.) + + I stress-tested my patch on x86 uniprocessor with a preemptible SMP + kernel (alas I have no SMP machine yet) and made sure that all code + paths which involve the sbp2_command_orb_lock were gone through multiple + times. + + Signed-off-by: Stefan Richter + Signed-off-by: Linus Torvalds + +commit 29e350944fdc2dfca102500790d8ad6d6ff4f69d +Author: Linus Torvalds +Date: Sun Apr 2 12:46:35 2006 -0700 + + splice: add SPLICE_F_NONBLOCK flag + + It doesn't make the splice itself necessarily nonblocking (because the + actual file descriptors that are spliced from/to may block unless they + have the O_NONBLOCK flag set), but it makes the splice pipe operations + nonblocking. + + Signed-off-by: Linus Torvalds + +commit 56ca904053ab14ba4067a72b69a5edf246771209 +Author: Pavel Pisa +Date: Sun Apr 2 19:27:07 2006 +0100 + + [ARM] 3457/1: i.MX: SD/MMC support for i.MX/MX1 + + Patch from Pavel Pisa + + This patch adds support of i.MX/MX1 SD/MMC controller. + It has been significantly redesigned from the original Sascha Hauer's + version to support scatter-gather DMA, to conform to latest Pierre Ossman's + and Russell King's MMC-SD Linux 2.6.x infrastructure. + The handling of all events has been moved to the softirq context + and is designed with no busy-looping in mind. Unfortunately + some controller bugs has to be overcome by limited looping + about 2-20 usec but these are observed only for initial card + recognition phase. + + There are still some missing/missed IRQs problems under heavy load. + Help of somebody with access to the full SDHC design information + is probably necessary. + + Regenerated against 2.6.16-git-060402 to solve clash with other patches. + + Signed-off-by: Pavel Pisa + Acked-by: Sascha Hauer + Signed-off-by: Russell King + +commit 65dbf34393f7b3d20e993d9651a825df0fa5376b +Author: Andrew Victor +Date: Sun Apr 2 19:18:51 2006 +0100 + + [ARM] 3456/1: AT91RM9200 support for 2.6 (MMC/SD driver) + + Patch from Andrew Victor + + This patch adds support for the MMC/SD card interface on the Atmel + AT91RM9200 processor. + + Original driver was by Nick Randell, but a number of people have + subsequently worked on it. It's currently maintained by Malcolm Noyes. + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit b45e516f701e0fc81fb3dbd1ba9db35f991a4465 +Author: Linus Torvalds +Date: Sun Apr 2 10:44:36 2006 -0700 + + ppc64: actually add sys_splice() to the system call table + + (We'd only added the number, which meant that actually trying + to use splice just went off into la-la-land) + + Signed-off-by: Linus Torvalds + +commit 853807fb500a9442d88646b7be92bfa51334f8e8 +Author: Andrew Victor +Date: Tue Mar 14 11:11:04 2006 +0200 + + [WATCHDOG] at91_wdt.c - Atmel AT91RM9200 watchdog driver + + Watchdog driver for the Atmel AT91RM9200 processor. + + Signed-off-by: Andrew Victor + Signed-off-by: Wim Van Sebroeck + Signed-off-by: Andrew Morton + +commit c9d1a0b8d52e7539e22f3c3190f8b6e0c80b6cfe +Author: Adrian Bunk +Date: Fri Mar 10 19:04:38 2006 +0100 + + [WATCHDOG] pcwd_usb.c: fix a NULL pointer dereference + + The Coverity checker noted that this resulted in a NULL pointer + reference if we were coming from + + if (usb_pcwd == NULL) { + printk(KERN_ERR PFX "Out of memory\n"); + goto error; + } + + Signed-off-by: Adrian Bunk + Signed-off-by: Wim Van Sebroeck + Signed-off-by: Andrew Morton + +commit 6bbc20bc0b5d9c5a351fb3a027e60e396c1329a6 +Author: Wim Van Sebroeck +Date: Thu Mar 2 20:05:16 2006 +0100 + + [WATCHDOG] pcwd.c sprintf/strcpy fix + + change sprintf(pcwd_private.fw_ver_str, "ERROR"); + to strcpy... as pointed out by Andrew Morton. + + Signed-off-by: Wim Van Sebroeck + Signed-off-by: Andrew Morton + +commit 369fa25294b8225cb3a7fefabf047a2676bf6abd +Author: Wim Van Sebroeck +Date: Sun Feb 12 17:44:57 2006 +0100 + + [WATCHDOG] pcwd.c general clean-up after patches + + removal of includes (since we don't use kmalloc and + TASK_INTERRUPTABLE anymore). + Addition of missing commands. + Printk that lets the user know when the module was + unloaded. + + Signed-off-by: Wim Van Sebroeck + +commit c324ab4281d6b7a3130e9291d74b5c2361a16d56 +Author: Wim Van Sebroeck +Date: Sun Feb 12 17:12:55 2006 +0100 + + [WATCHDOG] pcwd.c add debug info + + Add debugging info for the pcwd.c module. + + Signed-off-by: Wim Van Sebroeck + +commit 69f83d5216e4bfffd51bb5729be2df38df0aeaf2 +Author: Wim Van Sebroeck +Date: Sun Feb 12 16:51:34 2006 +0100 + + [WATCHDOG] pcwd.c pcwd_cleanup_module patch + + static void pcwd_cleanup_module doesn't need a return; + + Signed-off-by: Wim Van Sebroeck + +commit 9b6553cd01ce3ea7a6a532f7b7e62e3535d6b102 +Author: Tony Lindgren +Date: Sun Apr 2 17:46:30 2006 +0100 + + [ARM] 3433/1: ARM: OMAP: 8/8 Update board files + + Patch from Tony Lindgren + + This patch syncs OMAP board support with linux-omap tree. + The highlights of the patch are: + - Add support for Nokia 770 by Juha Yrjola + - Add support for Samsung Apollon by Kyungmin Park + - Add support for Amstrad E3 videophone by Jonathan McDowell + - Remove board-netstar.c board support as requested by Ladislav Michl + - Do platform_device registration in board files by Komal Shah et al. + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 120db2cba8e40c562e5a4aea44ede2f360a5de75 +Author: Tony Lindgren +Date: Sun Apr 2 17:46:27 2006 +0100 + + [ARM] 3455/1: ARM: OMAP: 7/8 Misc updates, take 2 + + Patch from Tony Lindgren + + Update misc OMAP core code from linux-omap tree: + + - McBSP updates by Samuel Ortiz, Andrzej Zaborowski + - Whitespace cleanups by Ladislav Michl + - Other fixes by various linux-omap developers + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 0dc5e77c46c6b02e8286f17544d93d614c0cb892 +Author: Tony Lindgren +Date: Sun Apr 2 17:46:26 2006 +0100 + + [ARM] 3454/1: ARM: OMAP: 6/8 Update framebuffer low-level init code, take 2 + + Patch from Tony Lindgren + + Update OMAP framebuffer low-level init code from linux-omap tree + by Imre Deak. + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 670c104ae8e7bcc28be0289a16dac2ddfb88b285 +Author: Tony Lindgren +Date: Sun Apr 2 17:46:25 2006 +0100 + + [ARM] 3430/1: ARM: OMAP: 5/8 Update PM + + Patch from Tony Lindgren + + Update OMAP PM code from linux-omap tree: + + - Move PM code from plat-omap to mach-omap1 and mach-omap2 + by Tony Lindgren + - Add minimal PM support for omap24xx by Tony Lindgren and + Richard Woodruff + - Misc updates to omap1 PM code by Tuukka Tikkanen et al + - Updates to the SRAM code needed for PM and FB by Imre Deak + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 6e60e79a1d46eaa3369febc2f6c31e0acfaaae3f +Author: Tony Lindgren +Date: Sun Apr 2 17:46:23 2006 +0100 + + [ARM] 3429/1: ARM: OMAP: 4/8 Update GPIO + + Patch from Tony Lindgren + + Update OMAP GPIO code from linux-omap tree: + + - Fix omap16xx edge control by Juha Yrjola + - Support for additional omap16xx trigger modes by Dirk Behme + - Fix edge detection by Tony Lindgren et al. + - Better support for omap15xx and omap310 by Andrej Zaborowski + - Fix omap15xx interrupt bug by Petukhov Nikolay + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 8d7f9f5037a09b8570d0c9e60a924ad2ba6fa7dd +Author: Tony Lindgren +Date: Sun Apr 2 17:46:22 2006 +0100 + + [ARM] 3428/1: ARM: OMAP: 3/8 Update pin multiplexing + + Patch from Tony Lindgren + + Update OMAP pin multiplexing code from linux-omap tree. + This patch adds new pin configurations by various OMAP + developers, and suport for omap730 by Brian Swetland. + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit a569c6ec37e78eef4299d0a60ae4028459b27117 +Author: Tony Lindgren +Date: Sun Apr 2 17:46:21 2006 +0100 + + [ARM] 3427/1: ARM: OMAP: 2/8 Update timers + + Patch from Tony Lindgren + + Update OMAP timers from linux-omap tree. The highlights of the + patch are: + + - Move timer32k code from mach-omap1 to plat-omap and make it + work also on omap24xx by Tony Lindgren + - Add support for dmtimer idle check for PM by Tuukka Tikkanen + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit b824efae120b656fef562b2e81e1ed6aa88f8d24 +Author: Tony Lindgren +Date: Sun Apr 2 17:46:20 2006 +0100 + + [ARM] 3426/1: ARM: OMAP: 1/8 Update clock framework + + Patch from Tony Lindgren + + Update OMAP clock framework from linux-omap tree. + The highlights of the patch are: + + - Add support for omap730 clocks by Andrzej Zaborowski + - Fix compile warnings by Dirk Behme + - Add support for using dev id by Tony Lindgren and Komal Shah + - Move memory timings and PRCM into separate files by Tony Lindgren + + Signed-off-by: Tony Lindgren + Signed-off-by: Russell King + +commit 2891b6ad188f8cd1407f17e52befb26b7e1f4de1 +Author: Wim Van Sebroeck +Date: Sun Feb 12 16:47:34 2006 +0100 + + [WATCHDOG] pcwd.c firmware-info patch + + Get the firmware version into the private data struct + of the ISA-PC watchdog card. + + Signed-off-by: Wim Van Sebroeck + +commit 4206f0c4de9f9683676a8507ef56941535761579 +Author: Wim Van Sebroeck +Date: Sun Feb 12 16:37:36 2006 +0100 + + [WATCHDOG] pcwd.c control status patch + + Clean-up the control status code (insert tabs where relevant), + Add new Control Status defines, Make sure that the R2DS bit + stays the same. + + Signed-off-by: Wim Van Sebroeck + +commit 3267c077e589bc146a0b45e220fcefafbf83fb80 +Author: Andrew Victor +Date: Sun Apr 2 17:15:51 2006 +0100 + + [ARM] 3396/2: AT91RM9200 Platform devices update + + Patch from Andrew Victor + + This patch updates the platform device resources for the Ethernet and + MMC peripherals. It also adds platform device information for the NAND + (SmartMedia), I2C and the RTC. + + (This version of the patch can be applied before Patch 3392/1) + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit 486bcc59f3083c54df7b67d1d69db81585632a8b +Author: Andrew Victor +Date: Sun Apr 2 17:15:49 2006 +0100 + + [ARM] 3395/2: AT91RM9200 Dataflash Card vs MMC selection + + Patch from Andrew Victor + + On the Atmel AT91RM9200-DK and -EK boards, a pin is used to control + whether the card socket is used for a DataFlash Card or an MMC/SD card. + + We now default to MMC/SD in the configuration files. + + (This version of the patch can be applied before Patch 3392/1) + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit cc2832a1313340ff1de55f15fac5b7fe48fa2a72 +Author: Andrew Victor +Date: Sun Apr 2 17:15:48 2006 +0100 + + [ARM] 3393/2: AT91RM9200 LED support + + Patch from Andrew Victor + + This patch adds support for the LED(s) on the AT91RM9200-based boards. + + (This version of the patch can be applied before Patch 3392/1) + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit b2e6f75597af8fc765707111d3a71077167bdeb1 +Author: Richard Purdie +Date: Sun Apr 2 17:11:00 2006 +0100 + + [ARM] 3453/1: Poodle: Correctly set the memory size + + Patch from Richard Purdie + + Force the Sharp Zaurus Poodle memory size to 32MB. + + Signed-off-by: Richard Purdie + Signed-off-by: Russell King + +commit d66e35fab8789b5dd6f1b8e6f3871ea4f44d32a3 +Author: Pavel Pisa +Date: Sun Apr 2 16:58:38 2006 +0100 + + [ARM] 3446/1: i.MX: MMC/SD SDHC controller registration for i.MX/MX1 MX1ADS board + + Patch from Pavel Pisa + + From: Stefano Fedrigo + + This adds to the MX1ADS platform the needed code to detect + insertion/removal of an MMC/SD card. Tested on a v1.1 board. + + Signed-off-by: Stefano Fedrigo + Signed-off-by: Pavel Pisa + Acked-by: Sascha Hauer + Signed-off-by: Russell King + +commit 999331af456bf6fc1520ea7b68b6a3dbb4af8ff6 +Author: Pavel Pisa +Date: Sun Apr 2 16:58:37 2006 +0100 + + [ARM] 3444/1: i.MX: Scatter-gather DMA emulation for i.MX/MX1 + + Patch from Pavel Pisa + + This patch contains simplified set of changes to add scatter-gather + emulation capability into MX1 DMA support. The result should + be still usable for next combination of DMA transfers + Statter-Gather/linear/2D/FIFO to linear/2D/FIFO and + linear/2D/FIFO to Statter-Gather/2D/FIFO + The patch corrects channel priority allocation to be compatible + with MX1 hardware implementation. + Previous code has not been adapted from its PXA original. + + Signed-off-by: Pavel Pisa + Acked-by: Sascha Hauer + Signed-off-by: Russell King + +commit 7ba01f9728a9f1cd1a3e1e2d5206f76061182675 +Author: Lennert Buytenhek +Date: Sun Apr 2 16:17:40 2006 +0100 + + [ARM] 3451/1: ep93xx: use the m48t86 rtc driver on the ts72xx platform + + Patch from Lennert Buytenhek + + Instantiate the recently merged m48t86 rtc driver in the ts72xx code. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 41658132e650c01529dd5cc5cea8b0055def1165 +Author: Lennert Buytenhek +Date: Sun Apr 2 16:17:34 2006 +0100 + + [ARM] 3450/1: ep93xx: use the ep93xx rtc driver + + Patch from Lennert Buytenhek + + Instantiate the recently merged ep93xx rtc driver in the ep93xx code. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 272eb575eb3d5348fe0f0a97a22b5e603bd51d11 +Author: Ben Dooks +Date: Sun Apr 2 16:16:15 2006 +0100 + + [ARM] 3452/1: [S3C2410] RX3715 - add nand information + + Patch from Ben Dooks + + NAND definitions for the HP iPAQ RX3715's + internal NAND flash + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit a580290c3e64bb695158a090d02d1232d9609311 +Author: Martin Waitz +Date: Sun Apr 2 13:59:55 2006 +0200 + + Documentation: fix minor kernel-doc warnings + + This patch updates the comments to match the actual code. + + Signed-off-by: Martin Waitz + Signed-off-by: Adrian Bunk + +commit 5d9428de1a9785f10a4339f80b717be665ba51c7 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:52:48 2006 +0200 + + BUG_ON() Conversion in drivers/net/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 7e99e9b66336565f0088ea59d848ab187f9689c3 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:50:14 2006 +0200 + + BUG_ON() Conversion in drivers/s390/net/lcs.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 40094fa65238291d51839326320aba997092ab1f +Author: Eric Sesterhenn +Date: Sun Apr 2 13:49:25 2006 +0200 + + BUG_ON() Conversion in mm/slab.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 75babcacede876608f14ef1a20e795ce17ae637f +Author: Eric Sesterhenn +Date: Sun Apr 2 13:47:35 2006 +0200 + + BUG_ON() Conversion in mm/highmem.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 9f31252cb61d5bc641cdef8a069a2ca5a77855f2 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:45:55 2006 +0200 + + BUG_ON() Conversion in kernel/signal.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit fda8bd78a15950b9b01a1c1477a9095cb08c27c1 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:44:47 2006 +0200 + + BUG_ON() Conversion in kernel/signal.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 524223ca8142d593124bde66f3ffa1deb6f56c06 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:43:40 2006 +0200 + + BUG_ON() Conversion in kernel/ptrace.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 9ba025f10885758975fbbc2292a5b9e7cb8026a8 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:42:42 2006 +0200 + + BUG_ON() Conversion in ipc/shm.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 7ec70738097af9dfd25d5f83e9b27a532f462912 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:41:02 2006 +0200 + + BUG_ON() Conversion in fs/freevxfs/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 2c2111c2bd821d3e7cf5a6a37a112a620fd947a3 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:40:13 2006 +0200 + + BUG_ON() Conversion in fs/udf/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit d6735bfcc998863dab89dacca2aed20932b6bc21 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:39:21 2006 +0200 + + BUG_ON() Conversion in fs/sysv/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit b7542f8c7eb40efb967a558c5be90fe5f939c3ef +Author: Eric Sesterhenn +Date: Sun Apr 2 13:38:18 2006 +0200 + + BUG_ON() Conversion in fs/inode.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit f6298aab2ebaa61de39931595f125bc1968905cc +Author: Eric Sesterhenn +Date: Sun Apr 2 13:37:19 2006 +0200 + + BUG_ON() Conversion in fs/fcntl.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 8abf6a4707cfb95ca552b882959c6f8ff9924270 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:36:13 2006 +0200 + + BUG_ON() Conversion in fs/dquot.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit b6385483840e903d99cb753593faea215ae8d324 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:34:29 2006 +0200 + + BUG_ON() Conversion in md/raid10.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 43dab9bbe9fda735589f2749004f639349966b20 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:33:30 2006 +0200 + + BUG_ON() Conversion in md/raid6main.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 78bafebd461049a419df2f4b1f25efbee73c2439 +Author: Eric Sesterhenn +Date: Sun Apr 2 13:31:42 2006 +0200 + + BUG_ON() Conversion in md/raid5.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 661e6acf7b882e5a886845dca5d1559e987464b4 +Author: Ben Dooks +Date: Sun Apr 2 10:32:46 2006 +0100 + + [ARM] 3449/1: [S3C2410] Anubis - fix NAND timings + + Patch from Ben Dooks + + The NAND timings on the Anubis are too large + to be selected when running at 133MHz memory + clock. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 2b2ee1585a98be250f86c61e6ec70159b30e48e5 +Author: Ben Dooks +Date: Sun Apr 2 10:00:10 2006 +0100 + + [ARM] 3448/1: [S3C2410] Settle delay when _enabling_ USB PLL + + Patch from Ben Dooks + + Fix the bug in the UPLL enable code which should + have put a 200uS delay in if enabling the USB PLL + from the state where it is off. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit dee9b2e932ef7c8f19540ad67e425fae30f33421 +Author: Ben Dooks +Date: Sun Apr 2 10:00:09 2006 +0100 + + [ARM] 3442/1: [S3C2410] SMDK: NAND device setup + + Patch from Ben Dooks + + Add SMDK2410/SMDK2440 NAND device information + and default partition table. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 66ce229fe057e35275a5f5176b29ed70795506a1 +Author: Ben Dooks +Date: Sun Apr 2 10:00:08 2006 +0100 + + [ARM] 3447/1: [S3C2410] SMDK - default LEDs to off + + Patch from Ben Dooks + + Set default state of LEDs to off + + Fixes context of Patch #3442/1 + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit fb9c280d4c6d4586670e3dfd041d8258db36b330 +Author: Randy Dunlap +Date: Wed Mar 29 16:15:23 2006 -0300 + + V4L/DVB (3667b): cpia2: fix function prototype + + Fix address space warning (from sparse): + drivers/media/video/cpia2/cpia2_core.c:2355:6: error: symbol 'cpia2_read' redeclared with different type (originally declared at drivers/media/video/cpia2/cpia2.h:458) - incompatible argument 2 (different address spaces) + + Signed-off-by: Randy Dunlap + Signed-off-by: Mauro Carvalho Chehab + +commit 07151724a35e8e70f1aa64ce30a5a3f5c1ad49a3 +Author: Hans Verkuil +Date: Sat Apr 1 18:03:23 2006 -0300 + + V4L/DVB (3702): Make msp3400 routing defines more consistent + + Renamed various msp3400 routing defines to be more consistent and less + confusing. Esp. the MSP_DSP_OUT defines were confusing since it is really + a DSP input. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit ab4cecf9c4e4a69cf2161f8a2424be14984430f8 +Author: Hans Verkuil +Date: Sat Apr 1 16:40:21 2006 -0300 + + V4L/DVB (3700): Remove obsolete commands from tvp5150.c + + - Remove old DECODER_ commands from tvp5150.c, replacing them with newer + ones if appropriate. + - Small VIDIOC_G_TUNER fixes in msp3400 and tuner. + - Fix VIDIOC_S_TUNER support in em28xx. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 3bbe5a83996c0a669250d91421eef054f3a30595 +Author: Hans Verkuil +Date: Sat Apr 1 15:27:52 2006 -0300 + + V4L/DVB (3697): More msp3400 and bttv fixes + + - remove obsolete VIDIOC_S_INPUT i2c call in bttv + - translate VIDIOCSFREQ to VIDIOC_S_FREQUENCY in i2c call + - improve muting during carrier scan in msp3400 + - don't start scan unless really needed. + - no longer reset chip for msp3400c/d. + - remove v4l2 check in tuner-core (radio stops after using the TV) + - add missing VIDIOC_INT_ strings in v4l2-common.c + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit c097b04520a3ab69a94f63f3f1d6716864c07300 +Author: Hans Verkuil +Date: Thu Mar 30 19:57:28 2006 -0300 + + V4L/DVB (3696): Previous change for cx2341X boards broke the remote support + + Partially revert previous change to fix IR support. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 0020d3ef915fc01a0184bc96eeb3c240bded5d8e +Author: Hans Verkuil +Date: Thu Mar 30 19:50:34 2006 -0300 + + V4L/DVB (3693): Fix msp3400c and bttv stereo/mono/bilingual detection/handling + + - msp3400c did not detect the second carrier, thus being always mono. + - properly mute the msp3400c while detecting the carrier. + - fix checks on the presence of scart2/3 inputs and scart 2 output. + - implement proper audio mode fallbacks for msp3400c/d, identical to the + way msp3400g works. + - MODE_STEREO no longer produces dual languages when set for a bilingual + transmission, instead it falls back to LANG1. Use LANG1_LANG2 to hear + both languages of a bilingual transmission. This is much more intuitive + for the user and is in accordance with the preferred usage in the v4l2 + specification. + - bttv tried to implement v4l2 calls with v4l1 calls to the i2c devices, + completely mangling the audmode/rxsubchans handling. v4l2 calls now do + v4l2 calls to the i2c devices. + - fixed broken i2c_vidiocschan in bttv. + - add start/end lines to LOG_STATUS. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 9bc7400a9d01b1fe05c7f0200e7384e17794f6e4 +Author: Hans Verkuil +Date: Wed Mar 29 18:02:51 2006 -0300 + + V4L/DVB (3692): Keep experimental SLICED_VBI defines under an #if 0 + + The sliced VBI defines added in videodev2.h are removed since requires + more discussion. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 2868c41fc45399b0f0855eb760e1a81881ff0c3d +Author: Michael Krufky +Date: Sat Apr 1 18:00:41 2006 -0300 + + V4L/DVB (3689): Kconfig: fix VP-3054 Secondary I2C Bus build configuration menu dependencies + + This patch fixes a dependency problem that affected the indentation order + within the individual frontend selection support menus for cx88-dvb. + - created a boolean dependency link for VIDEO_CX88_VP3054, so that + it's tristate value will be the same as that of VIDEO_CX88_DVB. + - VIDEO_CX88_VP3054 is automatically selected by VIDEO_CX88_DVB_ALL_FRONTENDS, + but is otherwise selected by VIDEO_CX88_DVB_VP3054, offered as an option + under VIDEO_CX88_DVB_MT352 + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 86f40cc3c994822ffeb226753526d87be21bd79a +Author: Andrew de Quincey +Date: Thu Mar 30 15:53:35 2006 -0300 + + V4L/DVB (3673): Fix budget-av CAM reset + + Unfortunately on the budget-av board, the CAM reset line is tied to the + frontend reset line, so resetting the CAM also zaps the frontend. This + breaks the tda1004x at least, and causes it to fail to tune until the + budget-av module is reloaded. This patch adds an exported function to dvb_frontend + that allows a card to forcibly reinitialise a frontend. The budget-av now + does this on CAM reset, which corrects this problem. + since they do not tie the CAM reset line to the frontend reset line. + + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 5e85bd057f0cb29881e3d55d29f48bb55bd2f450 +Author: Trent Piepho +Date: Thu Mar 30 15:53:32 2006 -0300 + + V4L/DVB (3672): Fix memory leak in dvr open + + The dvr device could be opened multiple times simultaneously in O_RDONLY mode. + Each open after the first would allocate a new dvr buffer (1880 KB) and leak + the old buffer. The first close would de-allocate the dvr buffer and cause + all other open dvrs to stop working. This patch allows only a single O_RDONLY + open of the drv device, as per the API specification. Multiple O_WRONLY opens + are still allowed and don't appear to cause any problems. + + Signed-off-by: Trent Piepho + Signed-off-by: Andrew de Quincey + Signed-off-by: Mauro Carvalho Chehab + +commit 2f03ee8e6bd7c6f40a1a0583662308e002d357da +Author: C.Y.M +Date: Thu Mar 30 04:31:48 2006 -0300 + + V4L/DVB (3671): New module parameter 'tv_standard' (dvb-ttpci driver) + + This attached patch was originally proposed by Anssi Hannula to the dvb-kernel + user to choose the default broadcast mode when using the ttpci driver. + NTSC users need to only add the following line to modprobe.d: + options dvb-ttpci tv_standard=1 + PAL users will not need to change anything, for this will be the default. + + Signed-off-by: C.Y.M + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit f3688fc8d391f50dee45bd3bf04bdeab1c16c3c0 +Author: Adrian Bunk +Date: Wed Mar 29 22:46:12 2006 -0300 + + V4L/DVB (3670): Fix typo in comment + + This patch fixes a typo in a comment. + + Signed-off-by: Adrian Bunk + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit afa47abf09f148332b0e6e480972494bc2e5c8af +Author: Ingo Schneider +Date: Wed Mar 29 22:05:16 2006 -0300 + + V4L/DVB (3669): Configurable dma buffer size for saa7146-based budget dvb cards + + - Issue a warning when more than 80% of the DMA buffer is being used + (probably due to bad IRQ latency). Warnings are rate-limited. + - Introduce a new parameter 'bufsize' (in KByte) which increases the + default DMA buffer of 188 KByte up to 1410 KByte (Activy: 564 KByte). + + Signed-off-by: Ingo Schneider + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit 1864cfb1537e108c2fe7a8e178b28bffde5a5439 +Author: Michael Krufky +Date: Sun Apr 2 03:14:11 2006 -0300 + + V4L/DVB (3653h): Move usb v4l docs into Documentation/video4linux + + - Move documentation for usb v4l devices from + Documentation/usb to Documentation/video4linux. + - Removed trailing whitespace. + - Update Kconfig help text links to reflect the new file locations. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit cc33668b1eed1eac43f00cec639066047323b01d +Author: Mauro Carvalho Chehab +Date: Wed Mar 29 16:29:00 2006 -0300 + + V4L/DVB (3667a): Fix SAP + stereo mode at msp3400 + + It should be V4L2_TUNER_MODE_LANG1_LANG2. What the code does is check if + we are NTSC and a SAP channel is available. If so, then the msp3400 + should switch to standard 0x21 if the user wants to hear the SAP + channel, which is for audio modes LANG2 (aka SAP) and LANG1_LANG2 + (bilingual). + + In the msp3400 driver STEREO is abused for bilingual in PAL. Bilingual + never worked with NTSC in the past and I decided that I'd better not + use the bad PAL example. + + Signed-off-by: Mauro Carvalho Chehab + +commit 021e0b768b2c7931d9ba699e135c3eec42d5d3eb +Author: Hans Verkuil +Date: Wed Mar 29 15:16:08 2006 -0300 + + V4L/DVB (3666): Remove trailing newlines + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit add953cecba870f4ad7730bd0a6d5eaaabeac3bc +Author: Hans Verkuil +Date: Wed Mar 29 14:56:17 2006 -0300 + + V4L/DVB (3665): Add new NEC uPD64031A and uPD64083 i2c drivers + + - Add support for the uPD64031A NEC Electronics Ghost Reduction i2c device + - Add support for the uPD6408x NEC Electronics 3-Dimensional Y/C separation + i2c device. + + Signed-off-by: Takahiro Adachi + Signed-off-by: Takeru Komoriya + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 7061561e640c2947ab93c4e2a437327657c4482e +Author: Hans Verkuil +Date: Wed Mar 29 14:31:44 2006 -0300 + + V4L/DVB (3663): Fix msp3400c wait time and better audio mode fallbacks + + - The wait time until the first time the audio mode was detected was + 1+5=6 seconds instead of just 1 second (wrong statement order). + msp3400c specific bug. + - Implemented audio mode fallback for msp3400c/d just like the msp3400g + does automatically. E.g. fallback to stereo if no second language exists, + etc. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit dc555aa63c798af097f5c303bcf72a8390b03da5 +Author: Hans Verkuil +Date: Tue Mar 28 18:32:52 2006 -0300 + + V4L/DVB (3662): Don't set msp3400c-non-existent register + + The driver tried to set a register that is not present on msp3400c devices. + Add the missing test. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 75c4570ca4849b089c4edfc14bf02b4720087aba +Author: Hans Verkuil +Date: Tue Mar 28 18:23:48 2006 -0300 + + V4L/DVB (3661): Add wm8739 stereo audio ADC i2c driver + + Add support for the Wolfson Microelectronics WM8739 + stereo A/D converter from the ivtv driver. + Many thanks to Takahiro Adachi for writing the original driver. + + Signed-off-by: Takahiro Adachi + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 953a676c83bfd22cac3648fc5f566ca4a2fe1297 +Author: Trent Piepho +Date: Wed Mar 29 13:53:49 2006 -0300 + + V4L/DVB (3658): Kconfig: Fix PCI ID typo in VIDEO_CX88_ALSA help text + + - Fixed PCI ID typo in VIDEO_CX88_ALSA help text + + Signed-off-by: Trent Piepho + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 2b3835b78274af104a9da1b8a999ce908e0459db +Author: Trent Piepho +Date: Wed Mar 29 13:53:15 2006 -0300 + + V4L/DVB (3657): Kconfig: Add firmware download comments for or51211 and or51132 + + - Added firmware download comments to or51211 and or51132 Kconfig help text. + + Signed-off-by: Trent Piepho + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit d46e6451956df4bee829dfebd5b521d0ee4868d1 +Author: Patrick Boettcher +Date: Tue Mar 28 16:15:05 2006 -0300 + + V4L/DVB (3655): Support for a new revision of the WT220U-stick + + There seems to be a new version of the USB DVB-T stick from WideView with a new demod-revision inside and thus a new firwmare. + This patch enables support for that. + Thanks to Mikel Martin for early testing. + + Signed-off-by: Patrick Boettcher + Signed-off-by: Mauro Carvalho Chehab + +commit f896260566b08250cdb12802af1ab418dcc6d720 +Author: Michael Krufky +Date: Wed Mar 29 15:15:21 2006 -0300 + + V4L/DVB (3653g): put v4l encoder/decoder configuration into a separate menu + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 26ffb95c0012201c9ea9e8d315af1d499e1e66d3 +Author: Michael Krufky +Date: Wed Mar 29 15:15:21 2006 -0300 + + V4L/DVB (3653f): usbvideo: fixed Kconfig menu and Makefile build configuration + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 43381eaf07212e072b926fa8b8f695e88db7775c +Author: Michael Krufky +Date: Wed Mar 29 15:15:17 2006 -0300 + + V4L/DVB (3653e): pwc: fixed Kconfig menu and Makefile build configuration + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit fcc99659adb0bbcd6d16489ccac04e36d86a760c +Author: Michael Krufky +Date: Wed Mar 29 15:10:02 2006 -0300 + + V4L/DVB (3653d): sn9c102: fixed Kconfig menu and Makefile build configuration + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 11bbb51cd0f95a303855d26b8f0e1c1c1ccdf83b +Author: Michael Krufky +Date: Wed Mar 29 15:09:53 2006 -0300 + + V4L/DVB (3653c): zc0301: fixed Kconfig menu and Makefile build configuration + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit e4a25edb5ecdf14aa14b909acc6f354e4c8f080c +Author: Michael Krufky +Date: Wed Mar 29 15:09:42 2006 -0300 + + V4L/DVB (3653b): et61x251: fixed Kconfig menu and Makefile build configuration + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 328caac78a69fa60be67002e4e7dfab3da87dc64 +Author: Michael Krufky +Date: Wed Mar 29 15:09:27 2006 -0300 + + V4L/DVB (3653a): Kconfig: clean up media/usb menus + + - removed redundant Video For Linux API help text + - fixed dependency / selection for USB_W9968CF + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit d95b8942eed310759bc866a2a4c0f110578aaa69 +Author: Hartmut Hackmann +Date: Mon Mar 27 19:39:30 2006 -0300 + + V4L/DVB (3646): Added support for the new Lifeview hybrid cardbus modules + + There seem to be many variants of this cards with different + feature sets. This entry supports + analog TV, CVBS and s-video input, FM radio and DVB-T + if they are supported by the hardware. + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 2174eb9cc876e840bcfa6d44f22c7f816289bf21 +Author: Hartmut Hackmann +Date: Mon Mar 27 19:15:47 2006 -0300 + + V4L/DVB (3645): Corrected CVBS input for the AVERMEDIA 777 DVB-T + + The .vmux entry needs to be 1 instead of 0 + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 42e6b3b476f89b08232d1c1efd2327665b9050c8 +Author: Hartmut Hackmann +Date: Mon Mar 27 19:04:48 2006 -0300 + + V4L/DVB (3644): Added PCI IDs of 2 LifeView Cards + + Added ID entries for the Genius VideoWonder DVB-T + and the LifeView FlyTV Platinum Gold + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 75bc8019e5f539b991ea5d68c3bddf797a825081 +Author: Mauro Carvalho Chehab +Date: Tue Mar 28 10:02:28 2006 -0300 + + V4L/DVB (3643): Fix default values for tvp5150 controls + + Default values were wrong. Fixing it. + + Signed-off-by: Mauro Carvalho Chehab + +commit 4263fa8ca6d9f387ce0d005e861f7e945c741e6e +Author: Mike Isely +Date: Sat Mar 25 20:43:14 2006 -0300 + + V4L/DVB (3639): Reduce FWSEND due to certain I2C bus adapter limits + + The FWSEND parameter controls the size of the firmware chunks sent + down the I2C bus to the chip. Previously this had been set to 1024 + but unfortunately some I2C implementations can't transfer data in such + big gulps. Specifically, the pvrusb2 driver has a hard limit of + around 60 bytes, due to the encapsulation there of I2C traffic into + USB messages. So we have to significantly reduce this parameter. + Acked-by: Hans Verkuil + + Signed-off-by: Mike Isely + Signed-off-by: Mauro Carvalho Chehab + +commit dbcb86ed945e42e99884e7afaab2f326a2aff2ec +Author: Michael Krufky +Date: Sun Mar 26 18:59:45 2006 -0300 + + V4L/DVB (3621): Fix camera key on FusionHDTV portable remote control + + Thanks to: Andrew Cohen + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 731f902edaf3ed16f8ed9e92d79e3d0d17af608f +Author: Ricardo Cerqueira +Date: Mon Mar 27 09:16:31 2006 -0300 + + V4L/DVB (3620): Fix video-buf PCI wrappers + + After the recent video-buf "generic" adaptation, the PCI wrappers got + completely broken, and all of the DMA sound modules stopped working (and + failed with an oops) + + Signed-off-by: Ricardo Cerqueira + Signed-off-by: Mauro Carvalho Chehab + +commit 8dbc5ece9a6a424eb03f1eeee2774c42d8db1ce4 +Author: Mauro Carvalho Chehab +Date: Sun Mar 26 08:54:09 2006 -0300 + + V4L/DVB (3619): Whitespace cleanup + + Signed-off-by: Mauro Carvalho Chehab + +commit c150178bff4ae76635ccb06abd5258933379ecc6 +Author: Michael Krufky +Date: Sun Mar 26 05:43:36 2006 -0300 + + V4L/DVB (3617): Cxusb: add support for FusionHDTV USB portable remote control + + - Added keycodes for the DViCO FusionHDTV portable remote control. + - Enabled the remote control for both versions of FusionHDTV DVB-T USB + and the FusionHDTV 5 USB Gold (ATSC) + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 87c1fae6d4207ecd4de34ce251d41d5dc4a1219c +Author: maximilian attems +Date: Sat Mar 25 15:56:07 2006 -0300 + + V4L/DVB (3616): Bt8xx: select FW_LOADER + + The bt8xx drivers uses request_firmware() + and thus needs to select FW_LOADER. + + Signed-off-by: maximilian attems + Signed-off-by: Mauro Carvalho Chehab + +commit 9419045f842e7b763928636f9c61dfa134b2052d +Author: Randy Dunlap +Date: Mon Mar 27 16:18:25 2006 -0300 + + V4L/DVB (3616a): cpia cleanups + + one printk needs a newline at end; + better MODULE_PARM_DESC text formatting; + don't need to init static data to 0; + + Signed-off-by: Randy Dunlap + Signed-off-by: Mauro Carvalho Chehab + +commit 26abe0234d443f1089ea7e514c8fc66493c0d307 +Author: maximilian attems +Date: Sat Mar 25 15:55:55 2006 -0300 + + V4L/DVB (3615): Saa7134: select FW_LOADER + + The saa7134 drivers uses request_firmware() + and thus needs to select FW_LOADER. + + Signed-off-by: maximilian attems + Signed-off-by: Mauro Carvalho Chehab + +commit 4ae5c2e5e627ff22815fb9900161bf188ea2cc67 +Author: Mauro Carvalho Chehab +Date: Sat Mar 25 15:53:38 2006 -0300 + + V4L/DVB (3614): Fix compilation warning at powerpc platform + + Signed-off-by: Mauro Carvalho Chehab + +commit 31bc09b579f31331545e694d0a49ec4e6b380989 +Author: Hans Verkuil +Date: Sat Mar 25 10:26:09 2006 -0300 + + V4L/DVB (3610): Added the new routing commands to cx25840. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 11cda1075d8c40e536b77fce6dbf4cdbf8f77736 +Author: Hans Verkuil +Date: Sat Mar 25 09:55:23 2006 -0300 + + V4L/DVB (3609): Remove VIDIOC_S_AUDIO from tvaudio: no longer used. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 39b6f687d31d662461e25dbfe70be990b4c4855b +Author: Hans Verkuil +Date: Sat Mar 25 09:50:20 2006 -0300 + + V4L/DVB (3608): Implement new routing commands in saa7127.c + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 1f8f5fa9b78ce344a03aeb1e6e12fffeb6a4c0c4 +Author: Hans Verkuil +Date: Sat Mar 25 09:20:28 2006 -0300 + + V4L/DVB (3607): Implement routing command for saa7115.c + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 013423588af1950e8eb7a44d80a684fd50174827 +Author: Hans Verkuil +Date: Sat Mar 25 08:19:47 2006 -0300 + + V4L/DVB (3606): Minor layout changes to make it consistent + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 51dab14e66a876ca124ef115fda08121ad9533fc +Author: Hans Verkuil +Date: Sat Mar 25 08:10:12 2006 -0300 + + V4L/DVB (3605): Add support for I2C_HW_B_CX2341X board adapter + + - Add missing class check to tveeprom_attach_adapter. + - Add CX2341X specific IR probe address list. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit b9ec4e109d7a342e83e1210e05797222e36555c3 +Author: Samuel Thibault +Date: Sun Apr 2 00:10:28 2006 -0500 + + Input: add support for Braille devices + + - Add KEY_BRL_* input keys and K_BRL_* keycodes; + - Add emulation of how braille keyboards usually combine braille dots + to the console keyboard driver; + - Add handling of unicode U+28xy diacritics. + + Signed-off-by: Samuel Thibault + Signed-off-by: Dmitry Torokhov + +commit 53a2670cd9611cf7c3b3bf9875b0b4041160fa60 +Author: Richard Thrippleton +Date: Sun Apr 2 00:10:18 2006 -0500 + + Input: synaptics - limit rate to 40pps on Toshiba Protege M300 + + Toshiba Protege M300 also requires the same workaround as Satellites + and Dynabooks - Synaptics report rate should be lowered to 40pps + (from 80), otherwise KBC starts losing keypresses. + + Signed-off-by: Richard Thrippleton + Signed-off-by: Dmitry Torokhov + +commit b157d55eef38f014015b8058a9f733d1c1c49cb4 +Author: Raphael Assenat +Date: Sun Apr 2 00:10:05 2006 -0500 + + Input: gamecon - add SNES mouse support + + SNES gamepads and mice share the same type of interface so they both can be + connected to the parallel port using a simple interface. Adding mouse + support to a gamepad driver may sound funny at first, but doing so in this + case makes it possible to connect and SNES gamepads and mice at the same + time, on the same port. + + Signed-off-by: Raphael Assenat + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit ac648a6a704f73cc2a0f128d9deeb57aa6d76f6d +Author: Dmitry Torokhov +Date: Sun Apr 2 00:09:51 2006 -0500 + + Input: make modalias code respect allowed buffer size + + Signed-off-by: Dmitry Torokhov + +commit 969b21cdeee3d1561bd2b56504fa8388c5b437ff +Author: Dmitry Torokhov +Date: Sun Apr 2 00:09:34 2006 -0500 + + Input: convert /proc handling to seq_file + + Signed-off-by: Dmitry Torokhov + +commit 2db66876334d6bf44414cb6225d134b751b1d7ff +Author: Dmitry Torokhov +Date: Sun Apr 2 00:09:26 2006 -0500 + + Input: limit attributes' output to PAGE_SIZE + + sysfs can't handle more than PAGE_SIZE data coming from attributes' + show() methods; make sure we respect this limit. + + Signed-off-by: Dmitry Torokhov + +commit b82fbe6c4232365272bde6f2c3f8fd9dd4dcd73a +Author: Dave Jones +Date: Sat Apr 1 22:07:07 2006 -0500 + + [CPUFREQ] Remove pointless check in conservative governor. + + < 0 checks on unsigned variables are pointless. + + Signed-off-by: Dave Jones + +commit 856d08ec46c5ecf3df13827c492fb6998fdc8322 +Author: Stephen Rothwell +Date: Sun Apr 2 02:45:04 2006 +1000 + + [PATCH] powerpc: iSeries needs slb_initialize to be called + + Since the powerpc 64k pages patch went in, systems that have SLBs + (like Power4 iSeries) needed to have slb_initialize called to set up + some variables for the SLB miss handler. This was not being called + on the boot processor on iSeries, so on single cpu iSeries machines, + we would get apparent memory curruption as soon as we entered user mode. + + This patch fixes that by calling slb_initialize on the boot cpu if the + processor has an SLB. + + Signed-off-by: Stephen Rothwell + Signed-off-by: Paul Mackerras + +commit 26f91fd54dba57a9bfe2373242ad71792d7af610 +Author: Ben Dooks +Date: Sun Apr 2 00:09:26 2006 +0100 + + [ARM] 3443/1: [S3C2410] Improve IRQ entry code + + Patch from Ben Dooks + + Remove the old debug from the IRQ entry code, + update the comments on the handling of the + IRQ registers. + + The message "bad interrupt offset" is removed + as it is only helpful for debugging, and can + cause printk() flooding when under load. + + Make the code to deal with GPIO interrupts + faster, and use the same path to deal with + unexplained results from the IRQ registers. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 23759dc6430428897a36c4d493f611eca55c9481 +Author: Lennert Buytenhek +Date: Sun Apr 2 00:07:39 2006 +0100 + + [ARM] 3439/2: xsc3: add I/O coherency support + + Patch from Lennert Buytenhek + + This patch adds support for the I/O coherent cache available on the + xsc3. The approach is to provide a simple API to determine whether the + chipset supports coherency by calling arch_is_coherent() and then + setting the appropriate system memory PTE and PMD bits. In addition, + we call this API on dma_alloc_coherent() and dma_map_single() calls. + A generic version exists that will compile out all the coherency-related + code that is not needed on the majority of ARM systems. + + Note that we do not check for coherency in the dma_alloc_writecombine() + function as that still requires a special PTE setting. We also don't + touch dma_mmap_coherent() as that is a special ARM-only API that is by + definition only used on non-coherent system. + + Signed-off-by: Deepak Saxena + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 9a1875e60e61b563737d8d1fc3876b279710fe93 +Author: David S. Miller +Date: Sat Apr 1 12:48:36 2006 -0800 + + [NET]: Fully fix the memory leaks in sys_accept(). + + Andi Kleen was right, fput() on sock->file will end up calling + sock_release() if necessary. So here is the rest of his version + of the fix for these leaks. + + Signed-off-by: David S. Miller + +commit d3f4c571b6e596f9d39c596426269006a309d3b8 +Author: Ben Dooks +Date: Sat Apr 1 18:33:42 2006 +0100 + + [ARM] 3440/1: [S3C2410] make SMDK2410 and SMDK2440 similarities common + + Patch from Ben Dooks + + The SMDK2410 and SMDK2440 boards have a number of items + in common, including the LEDs, Ethernet, PCMCIA. Make + a common SMDK support file. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 532bda5d9cd2f94a9e374765c23858c7d8641f66 +Author: Lennert Buytenhek +Date: Sat Apr 1 18:33:35 2006 +0100 + + [ARM] 3438/1: ixp23xx: add pci slave support + + Patch from Lennert Buytenhek + + On the Double Espresso board, the IXP2350s are PCI slave devices and + we skip calling pci_common_init() as that enumerates the bus. But even + though we are a PCI slave device, there is still some PCI-related setup + that has to be done. + + Create ixp23xx_pci_common_init(), move the common initialisation bits + there, and have this function called from both the PCI master and the + PCI slave init path. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 2c6967750a6f1e206a44ab5cf43c36aacb91372b +Author: Paul Mackerras +Date: Sat Apr 1 23:27:23 2006 +1100 + + powerpc: hook up the splice syscall + + Signed-off-by: Paul Mackerras + +commit cfff5b23bad2b7a4754f7c126a174a5867dfcca5 +Author: Dave Jones +Date: Fri Mar 31 23:53:09 2006 -0500 + + [PATCH] powerpc/cell: compile fixes + + Missing include for __NR_syscalls, and missing sys_splice() that + causes build-time failure due to compile-time bounds check on + spu_syscall_table. + + Signed-off-by: Dave Jones + Signed-off-by: Paul Mackerras + +commit fc5266ea52e6cbc648387f1a2c773773fba8d782 +Author: Anton Blanchard +Date: Sat Apr 1 11:33:12 2006 +1100 + + [PATCH] powerpc: trivial spelling fixes in fault.c + + This comment exceeded my bad spelling threshold :) + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 794e085e56a67921eea80bcaeeac38d1517369be +Author: Nathan Fontenot +Date: Fri Mar 31 12:04:52 2006 -0600 + + [PATCH] powerpc/pseries: EEH Cleanup + + This patch removes unnecessary exports, marks functions as static when + possible, and simplifies some list-related code. + + Signed-off-by: Nathan Fontenot + Signed-off-by: Linas Vepstas + Signed-off-by: Paul Mackerras + +commit 34422fed65bb1cf609892d73f1cf5e9626445f9e +Author: Will Schmidt +Date: Fri Mar 31 09:07:48 2006 -0600 + + [PATCH] powerpc/pseries: misc lparcfg fixes + + This fixes several problems with the lparcfg code. In case + someone gets a sense of deja-vu, part of this was submitted last Sep, I + thought the changes went in, but either got backed out, or just got + lost. + + First, change the local_buffer declaration to be unsigned char *. We + had a bad-math problem in a 2.4 tree which was built with a + "-fsigned-char" parm. I dont believe we ever build with that parm + now-a-days, but to be safe, I'd prefer the declaration be explicit. + + Second, fix a bad math calculation for splpar_strlen. + + Third, on the rtas_call for get-system-parameter, pass in + RTAS_DATA_BUF_SIZE for the rtas_data_buf size, instead of letting random + data determine the size. Until recently, we've had a sufficiently + large 'random data' value get passed in, so the function just happens to + have worked OK. Now it's getting passed a '0', which causes the + rtas_call to return success, but no data shows up in the buffer. + (oops!). This was found by the LTC test org. + + This is in a branch of code that only gets run on SPLPAR systems. + Tested on power5 Lpar. + + Signed-off-by: Will Schmidt + Signed-off-by: Paul Mackerras + +commit a219be2cf48fc77e73936d07187a5f8d1bca2511 +Author: Linas Vepstas +Date: Thu Mar 30 15:27:33 2006 -0600 + + [PATCH] powerpc/pseries: fix device name printing, again. + + The recent patch to print device names in EEH reset messages + was lacking ... this patch works better. + + Signed-off-by: Linas Vepstas + Signed-off-by: Paul Mackerras + +commit b13a96cfb055fd4b9c61463f87534a6f406b174b +Author: Heiko J Schick +Date: Thu Mar 30 22:47:14 2006 +0200 + + [PATCH] powerpc: Extends HCALL interface for InfiniBand usage + + This extends the HCALL interface for InfiniBand usage. I've + made the patch against the linux-2.6 git tree and Segher's patch: + [PATCH] Change H_StudlyCaps to H_SHOUTING_CAPS + + We moved this into the common powerpc code based on comments we + got after posting the first eHCA InfiniBand device driver patch. + + Signed-off-by: Heiko j Schick + Signed-off-by: Paul Mackerras + +commit 706c8c93ba4865a19e981b9770151a7a63c15794 +Author: Segher Boessenkool +Date: Thu Mar 30 14:49:40 2006 +0200 + + [PATCH] powerpc/pseries: Change H_StudlyCaps to H_SHOUTING_CAPS + + Also cleans up some nearby whitespace problems. + + Signed-off-by: Segher Boessenkool + Signed-off-by: Paul Mackerras + +commit 8df83028cf52e3bf68dfd35a4b1a044b326a4a99 +Author: Linas Vepstas +Date: Wed Mar 29 15:31:04 2006 -0600 + + [PATCH] powerpc/pseries: print message if EEH recovery fails + + The current code prints an ambiguous message if the recovery + of a failed PCI device fails. Give this special case its own + unique message. + + Signed-off-by: Linas Vepstas + Signed-off-by: Paul Mackerras + +commit 8c33fd11e3a21a15af35b5831f1516faf53094f1 +Author: Linas Vepstas +Date: Wed Mar 29 15:29:18 2006 -0600 + + [PATCH] powerpc/pseries: mutex lock to serialize EEH event processing + + This forces the processing of EEH PCI events to be serialized, + using a very simple mutex lock. This serialization is required to + avoid races involving additional PCI device failures that may occur + during the recovery phase of a previous failure. + + Signed-off-by: Linas Vepstas + Signed-off-by: Paul Mackerras + +commit 50c37e216132d2185a15d5cf6b966adf6ecea535 +Author: Pavel Machek +Date: Sat Apr 1 12:13:31 2006 +0100 + + [ARM] 3436/1: 2.6.16-git18: collie_defconfig broken + + Patch from Pavel Machek + + > The kautobuild found the following error while trying to build 2.6.16-git18 + > using collie_defconfig: + > + > arch/arm/mach-sa1100/collie.c:92: error: 'collie_uart_set_mctrl' undeclared here (not in a function) + > arch/arm/mach-sa1100/collie.c:93: error: 'collie_uart_get_mctrl' undeclared here (not in a function) + > make[1]: *** [arch/arm/mach-sa1100/collie.o] Error 1 + > make: *** [arch/arm/mach-sa1100] Error 2 + > make: Leaving directory `/var/tmp/kernel-orig' + + This fixes above compile error by adding missing pieces of uart + support, and fixes compilation. + + Signed-off-by: Pavel Machek + Signed-off-by: Russell King + +commit 344b215b0db62b551c46e1feab1ddb10f99004ca +Author: Komal Shah +Date: Sat Apr 1 12:13:30 2006 +0100 + + [ARM] 3437/1: Kill duplicate exports of string library functions + + Patch from Komal Shah + + This patch fixes the duplicate exports of string library functions. + + Signed-off-by: Komal Shah + Signed-off-by: Russell King + +commit 2722971cbe831117686039d5c334f2c0f560be13 +Author: Dmitry Mishin +Date: Sat Apr 1 02:25:19 2006 -0800 + + [NETFILTER]: iptables 32bit compat layer + + This patch extends current iptables compatibility layer in order to get + 32bit iptables to work on 64bit kernel. Current layer is insufficient due + to alignment checks both in kernel and user space tools. + + Patch is for current net-2.6.17 with addition of move of ipt_entry_{match| + target} definitions to xt_entry_{match|target}. + + Signed-off-by: Dmitry Mishin + Acked-off-by: Kirill Korotaev + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit e64a70be5175ac2c209fa742123a6ce845852e0e +Author: Martin Josefsson +Date: Sat Apr 1 02:24:48 2006 -0800 + + [NETFILTER]: {ip,nf}_conntrack_netlink: fix expectation notifier unregistration + + This patch fixes expectation notifier unregistration on module unload to + use ip_conntrack_expect_unregister_notifier(). This bug causes a soft + lockup at the first expectation created after a rmmod ; insmod of this + module. + + Should go into -stable as well. + + Signed-off-by: Martin Josefsson + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit bcd1e830a5ac37d708647d492a1436a8a9babb07 +Author: Martin Josefsson +Date: Sat Apr 1 02:23:21 2006 -0800 + + [NETFILTER]: fix ifdef for connmark support in nf_conntrack_netlink + + When ctnetlink was ported from ip_conntrack to nf_conntrack two #ifdef's + for connmark support were left unchanged and this code was never + compiled. + + Problem noticed by Daniel De Graaf. + + Signed-off-by: Martin Josefsson + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a89ecb6a2ef732d04058d87801e2b6bd7e5c7089 +Author: Yasuyuki Kozakai +Date: Sat Apr 1 02:22:54 2006 -0800 + + [NETFILTER]: x_tables: unify IPv4/IPv6 multiport match + + This unifies ipt_multiport and ip6t_multiport to xt_multiport. + As a result, this addes support for inversion and port range match + to IPv6 packets. + + Signed-off-by: Yasuyuki Kozakai + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit dc5ab2faece3b7473931357db7f63f596678481d +Author: Yasuyuki Kozakai +Date: Sat Apr 1 02:22:30 2006 -0800 + + [NETFILTER]: x_tables: unify IPv4/IPv6 esp match + + This unifies ipt_esp and ip6t_esp to xt_esp. Please note that now + a user program needs to specify IPPROTO_ESP as protocol to use esp match + with IPv6. This means that ip6tables requires '-p esp' like iptables. + + Signed-off-by: Yasuyuki Kozakai + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 9606a21635cec077e1928273751b44ecc824a49d +Author: David S. Miller +Date: Sat Apr 1 01:00:14 2006 -0800 + + [NET]: Fix dentry leak in sys_accept(). + + This regression was added by commit: + 39d8c1b6fbaeb8d6adec4a8c08365cc9eaca6ae4 + ("Do not lose accepted socket when -ENFILE/-EMFILE.") + + This is based upon a patch from Andi Kleen. + + Thanks to Adrian Bridgett for narrowing down a good test case, and to + Andi Kleen and Andrew Morton for eyeballing this code. + + Signed-off-by: David S. Miller + +commit dbe5b4aaafc715b12dbbea309d3d17958d01fd65 +Author: Herbert Xu +Date: Sat Apr 1 00:54:16 2006 -0800 + + [IPSEC]: Kill unused decap state structure + + This patch removes the *_decap_state structures which were previously + used to share state between input/post_input. This is no longer + needed. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit e695633e21ffb6a443a8c2f8b3f095c7f1a48eb0 +Author: Herbert Xu +Date: Sat Apr 1 00:52:46 2006 -0800 + + [IPSEC]: Kill unused decap state argument + + This patch removes the decap_state argument from the xfrm input hook. + Previously this function allowed the input hook to share state with + the post_input hook. The latter has since been removed. + + The only purpose for it now is to check the encap type. However, it + is easier and better to move the encap type check to the generic + xfrm_rcv function. This allows us to get rid of the decap state + argument altogether. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 15901dc93fa4253bfb3661644ecad67c2e83213c +Author: Andrew Morton +Date: Sat Apr 1 00:49:35 2006 -0800 + + [NET]: com90xx kmalloc fix + + WARNING: "__you_cannot_kzalloc_that_much" [drivers/net/arcnet/com90xx.ko] undefined! + + We're trying to allocate negative amounts of memory.. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 5c516c10198a8258c0c40f200a5a01a3fa0a0de4 +Author: David S. Miller +Date: Sat Apr 1 00:33:31 2006 -0800 + + [TG3]: Update driver version and reldate. + + Signed-off-by: David S. Miller + +commit 758a613936223699f99081fc75eff7cf67b208f6 +Author: David S. Miller +Date: Sat Apr 1 00:32:56 2006 -0800 + + [TG3]: Revert "Speed up SRAM access" + + Undo commit 100c4673307f5806788791b9b886877c806afd96 + + MMIOs timeout more quickly that PCI config cycles and some + of these SRAM accesses can take a very long time, triggering + the MMIO limits on some sparc64 PCI controllers and thus + resulting in bus timeouts and bus errors. + + Signed-off-by: David S. Miller + +commit 289eee6fa78e999208120c856ef3ae5a817fd59c +Author: David S. Miller +Date: Fri Mar 31 23:49:34 2006 -0800 + + [SPARC]: Wire up sys_sync_file_range() into syscall tables. + + Signed-off-by: David S. Miller + +commit 1339713a327d4538ca9173ab70afef9a1d57fd07 +Author: David S. Miller +Date: Fri Mar 31 02:04:15 2006 -0800 + + [SPARC]: Wire up sys_splice() into the syscall tables. + + Signed-off-by: David S. Miller + +commit 3cc1cc444f4c058deae9d5113ebb80e798c3076e +Author: David S. Miller +Date: Fri Mar 31 01:41:17 2006 -0800 + + [SPARC64]: Update defconfig. + + Signed-off-by: David S. Miller + +commit 9df1dab1df58ef20ef7df9b8f39d86cf5d2d1949 +Author: David S. Miller +Date: Fri Mar 31 00:36:25 2006 -0800 + + [SPARC64]: Align address in huge_pte_alloc(). + + We are about to fill in all HPAGE_SIZE's worth + of PAGE_SIZE ptes, so we have to give the first + pte in that set else we scribble over random memory + when we fill in the ptes. + + Signed-off-by: David S. Miller + +commit 73c50a27a453a5ed0d21ff23bd67c1dd6d864cb8 +Author: David S. Miller +Date: Tue Mar 28 13:32:24 2006 -0800 + + [SPARC64]: Document the instruction checks we do in do_sparc64_fault(). + + Signed-off-by: David S. Miller + +commit 6f25f3986af0353b0bdc220f79b89c997d0ceda4 +Author: David S. Miller +Date: Tue Mar 28 13:29:26 2006 -0800 + + [SPARC64]: Make tsb_sync() mm comparison more precise. + + switch_mm() changes the mm state and does a tsb_context_switch() + first, then we do the cpu register state switch which changes + current_thread_info() and current(). + + So it's safer to check the PGD physical address stored in the + trap block (which will be updated by the tsb_context_switch() in + switch_mm()) than current->active_mm. + + Technically we should never run here in between those two + updates, because interrupts are disabled during the entire + context switch operation. But some day we might like to leave + interrupts enabled during the context switch and this change + allows that to happen without any surprises. + + Signed-off-by: David S. Miller + +commit 409ca8c8ae3173026e7dfbdcdab669766e43fb60 +Author: Michael Hayes +Date: Sat Apr 1 01:49:22 2006 +0200 + + Fix minor documentation typo + + This patch fixes a minor typo in Documentation/acpi-hotkey.txt. + + Signed-off-by: Adrian Bunk + +commit 3d79c33bbd1dd12d420fd84facfd0ba96261e595 +Author: Cal Peake +Date: Sat Apr 1 01:46:12 2006 +0200 + + BFP->BPF in Documentation/networking/tuntap.txt + + BFP should be BPF (BSD Packet Filter) + + Signed-off-by: Cal Peake + Signed-off-by: Adrian Bunk + +commit 6585fa8aa58c7cd9f90f1c795a9dfc8db5f13906 +Author: Stefan Richter +Date: Sat Apr 1 01:44:30 2006 +0200 + + Doc/kernel-parameters.txt: slightly reword sentence about restrictions + + The previous patch somewhat diverted the train of thought. + Here I am trying to bring the valued reader back on track. + + Signed-off-by: Stefan Richter + Signed-off-by: Adrian Bunk + +commit a901ebb907e6aca38dc43417d6ce30f23651ea64 +Author: Stefan Richter +Date: Sat Apr 1 01:43:18 2006 +0200 + + Doc/kernel-parameters.txt: mention modinfo and sysfs + + Doc/kernel-parameters.txt: mention modinfo and sysfs + + Signed-off-by: Stefan Richter + Signed-off-by: Adrian Bunk + +commit 0ee9d71f02b19f87368ee99b73019bf9522c7bf8 +Author: Stefan Richter +Date: Sat Apr 1 01:42:29 2006 +0200 + + Doc/kernel-parameters.txt: delete false version information and history + + Doc/kernel-parameters.txt: delete false version information and history + + Signed-off-by: Stefan Richter + Signed-off-by: Adrian Bunk + +commit 8ba8e95ed14a2771bbcb43300feda094f298853e +Author: Kalin KOZHUHAROV +Date: Sat Apr 1 01:41:22 2006 +0200 + + Fix comments: s/granuality/granularity/ + + I was grepping through the code and some `grep ganularity -R .` didn't + catch what I thought. Then looking closer I saw the term "granuality" + used in only four places (in comments) and granularity in many more + places describing the same idea. Some other facts: + + dictionary.com does not know such a word + define:granuality on google is not found (and pages for granuality are + mostly related to patches to the kernel) + it has not been discussed as a term on LKML, AFAICS (=Can Search) + + To be consistent, I think granularity should be used everywhere. + + Signed-off-by: Kalin KOZHUHAROV + Signed-off-by: Adrian Bunk + +commit 36a891b67f95fd5e1442fc0f7f953809b94b3fbc +Author: Horms +Date: Sat Apr 1 01:39:17 2006 +0200 + + kexec: grammar fix for crash_save_this_cpu() + + kexec: grammar fix for crash_save_this_cpu() + + Signed-Off-By: Horms + Signed-off-by: Adrian Bunk + +commit 08039264d55b1e4c481309d841b245b0bb5e9c68 +Author: Horms +Date: Sat Apr 1 01:38:15 2006 +0200 + + Documentation: Make fujitsu/frv/kernel-ABI.txt 80 columns wide + + Documentation: Make kernel-ABI.txt 80 columns wide + + Note that this only has line-wrapping and white-space changes. + No text was changed at all. + + Signed-Off-By: Horms + Signed-off-by: Adrian Bunk + +commit abe37e5a13c4055bdf8ea1d2e781d757285e1908 +Author: Horms +Date: Sat Apr 1 01:36:09 2006 +0200 + + Documentation: Reorder documentation of nomca and nomce + + My patch to add brief documentation of the nomca boot parameter + added it out of alphabetical order. + + Signed-Off-By: Horms + Signed-off-by: Adrian Bunk + +commit 2e150f6e1a0401ff6af7b3f6518139fb092f3dd3 +Author: Uwe Zeisberger +Date: Sat Apr 1 01:29:43 2006 +0200 + + fix typo "Suposse" -> "Suppose" + + Signed-off-by: Uwe Zeisberger + Signed-off-by: Adrian Bunk + +commit 3a8dc8930eab1209fd5063f6646a98e58a796eeb +Author: Eric Sesterhenn +Date: Sat Apr 1 01:28:11 2006 +0200 + + BUG_ON() Conversion in drivers/s390/char/tape_block.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit e048a8a688f07b17dbde9a96cab3759b900eae14 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:27:08 2006 +0200 + + BUG_ON() Conversion in drivers/s390/block/dasd_erp.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 5aae277ed67b0271235d3a50908bb48b0e59be26 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:26:09 2006 +0200 + + BUG_ON() Conversion in mm/vmalloc.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit e74ca2b49b8a38e9ba0bc039a00498c21140f1d6 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:25:12 2006 +0200 + + BUG_ON() Conversion in mm/swap_state.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 46a350ef9803a2526a128c55cdb27dd73b2ad966 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:23:29 2006 +0200 + + BUG_ON() Conversion in mm/mmap.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 8abd8e298eb15e2c1b993df0634daf29e43e0aab +Author: Eric Sesterhenn +Date: Sat Apr 1 01:21:17 2006 +0200 + + BUG_ON() Conversion in kernel/printk.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 9bc98fc6fd3d07f37b597601489df200e0024222 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:20:23 2006 +0200 + + BUG_ON() Conversion in ipc/util.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 99cee0cd7560fc4e7f3646ee18d90e328bd1cb32 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:18:38 2006 +0200 + + BUG_ON() Conversion in fs/sysfs/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 5df0d312413d920628f149421d7b0a3994684620 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:16:26 2006 +0200 + + BUG_ON() Conversion in fs/smbfs/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 4b4d1cc7336b29f766d4e59d1ed2c627443a694a +Author: Eric Sesterhenn +Date: Sat Apr 1 01:15:35 2006 +0200 + + BUG_ON() Conversion in fs/jffs2/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 0bf3ba538a150f8430104a50e88c1449e8fa1fe6 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:14:43 2006 +0200 + + BUG_ON() Conversion in fs/hfsplus/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 7dddb12c63553db850365cfd066a00416aa8c6cb +Author: Eric Sesterhenn +Date: Sat Apr 1 01:13:38 2006 +0200 + + BUG_ON() Conversion in fs/exec.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit d4569d2e6949a63851032b40c811913d4a6f85f5 +Author: Eric Sesterhenn +Date: Sat Apr 1 01:10:13 2006 +0200 + + BUG_ON() Conversion in fs/direct-io.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 9e77c485f7037e4817bb53c78d15d5403981ae8b +Author: Eric Sesterhenn +Date: Sat Apr 1 01:08:49 2006 +0200 + + BUG_ON() Conversion in md/raid1.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 543cb2a451918002238a052d5c280e6afdee1cea +Author: Eric Sesterhenn +Date: Sat Apr 1 01:08:12 2006 +0200 + + BUG_ON() Conversion in md/dm-target.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 58ef2c4ce3c98fe46ae159bd560b63421798ea90 +Author: Adrian Bunk +Date: Sat Apr 1 01:04:59 2006 +0200 + + typos: s/ducument/document/ + + s/ducument/document/ + + Signed-off-by: Adrian Bunk + +commit 2a08b4e90408d15dc22a29b45b645ad7a6f09137 +Author: Adrian Bunk +Date: Sat Apr 1 01:04:20 2006 +0200 + + fix the email address of Wendy Xiong + + Replace a bouncing version of the email address of Wendy Xiong with a + working one. + + Signed-off-by: Adrian Bunk + +commit 5637a2ee5db022e741e41d15e6badb0727bc55f3 +Author: Adrian Bunk +Date: Sat Apr 1 01:03:38 2006 +0200 + + fix a typo in the AIC7XXX_DEBUG_MASK help text + + This patch fixes a typo in the AIC7XXX_DEBUG_MASK help text. + + Signed-off-by: Adrian Bunk + +commit 3e6e952d1d17e5cd2e25a438662d906c44ffcfaa +Author: Adrian Bunk +Date: Sat Apr 1 01:03:08 2006 +0200 + + help text: SOFTWARE_SUSPEND doesn't need ACPI + + The note that SOFTWARE_SUSPEND doesn't need APM is helpful, but nowadays + the information that it doesn't need ACPI, too, is even more helpful. + + Signed-off-by: Adrian Bunk + +commit 3a3f8a126d97cb5bdde92a26136402e88220b30f +Author: Anders Larsen +Date: Sat Apr 1 01:02:42 2006 +0200 + + MTD: remove obsolete Kconfig options + + Remove the obsolete Kconfig options MTD_CFI_AMDSTD_RETRY + and MTD_CFI_AMDSTD_RETRY_MAX + + The code that depended on these was removed in early 2004, but + Kconfig was not updated accordingly. + + Signed-off-by: Anders Larsen + Signed-off-by: David Woodhouse + Signed-off-by: Adrian Bunk + +commit 06bcfedd05448e63cae8924074bfacdf82bb17d4 +Author: Steve French +Date: Fri Mar 31 22:43:50 2006 +0000 + + [CIFS] Fix typo in earlier cifs_unlink change and protect one + extra path. + + Since cifs_unlink can also be called from rename path and there + was one report of oops am making the extra check for null inode. + + Signed-off-by: Steve French + +commit e9917a000fcc370408c8b7b83f2e85dba5fffbd4 +Author: Steve French +Date: Fri Mar 31 21:22:00 2006 +0000 + + [CIFS] Incorrect signature sent on SMB Read + + Fixes Samba bug 3621 and kernel.org bug 6147 + + For servers which require SMB/CIFS packet signing, we were sending the + wrong signature (all zeros) on SMB Read request. The new cifs routine + to do signatures across an iovec was not complete - and SMB Read, unlike + the new SMBWrite2, did not fall back to the older routine (ie use + SendReceive vs. the more efficient SendReceive2 ie used the older + cifs_sign_smb vs. the disabled cifs_sign_smb2) for calculating signatures. + + This finishes up cifs_sign_smb2/cifs_calc_signature2 so that the callers + of SendReceive2 can get SMB/CIFS packet signatures. + + Now that cifs_sign_smb2 is supported, we could start using it in + the write path but this smaller fix does not include the change + to use SMBWrite2 when signatures are required (which when enabled + will make more Writes more efficient and alloc less memory). + Currently Write2 is only used when signatures are not + required at the moment but after more testing we will enable + that as well). + + Thanks to James Slepicka and Sam Flory for initial investigation. + + Signed-off-by: Steve French + +commit 77d8798b554c856e21400bc8e761bc1b2ded8967 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:39 2006 -0800 + + IB/ipath: kbuild infrastructure + + Integrate the ipath core and OpenIB drivers into the kernel build + infrastructure. Add entry to MAINTAINERS. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 6522108f19a998a5ded4d0c4d0f9eb9736398e31 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:38 2006 -0800 + + IB/ipath: infiniband verbs support + + The ipath_verbs.c file implements the driver-specific components of the + kernel's Infiniband verbs layer. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit e28c00ad67164dba688c1d19c208c5fb554465f2 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:37 2006 -0800 + + IB/ipath: misc infiniband code, part 2 + + Management datagram support, queue pairs, and reliable and unreliable + connections. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit cef1cce5c87d84f76e44f0e7b4de72ab3818ac3a +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:36 2006 -0800 + + IB/ipath: misc infiniband code, part 1 + + Completion queues, local and remote memory keys, and memory region + support. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 97f9efbc47f0b1bc88abac8724b505f0794a48d0 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:35 2006 -0800 + + IB/ipath: infiniband RC protocol support + + This is an implementation of the Infiniband RC ("reliable connection") + protocol. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 74ed6b5eb133b4acae7c47bc23457e5f8e7c1125 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:34 2006 -0800 + + IB/ipath: infiniband UC and UD protocol support + + These files implement the Infiniband UC ("unreliable connection") and UD + ("unreliable datagram") protocols. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit aa735edf5dffbe43463c3d1218912fa54a8ec724 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:33 2006 -0800 + + IB/ipath: infiniband header files + + These header files are used by the layered Infiniband driver. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 889ab795a34247c8085e65648051e34f9fec952c +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:32 2006 -0800 + + IB/ipath: layering interfaces used by higher-level driver code + + The layering interfaces are used to implement the Infiniband protocols + and the ethernet emulation driver. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 7f510b46e4771cfb89af134b3aa827d46125a2ce +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:31 2006 -0800 + + IB/ipath: support for userspace apps using core driver + + These files introduce a char device that userspace apps use to gain + direct memory-mapped access to the InfiniPath hardware, and routines for + pinning and unpinning user memory in cases where the hardware needs to + DMA into the user address space. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 3e9b4a5eb4ae4936feeea256c0105e078c7702cd +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:30 2006 -0800 + + IB/ipath: sysfs and ipathfs support for core driver + + The ipathfs filesystem contains files that are not appropriate for + sysfs, because they contain binary data. The hierarchy is simple; the + top-level directory contains driver-wide attribute files, while numbered + subdirectories contain per-device attribute files. + + Our userspace code currently expects this filesystem to be mounted on + /ipathfs, but a final location has not yet been chosen. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 108ecf0d90655055d5a7db8d3a7239133b4d52b7 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:29 2006 -0800 + + IB/ipath: misc driver support code + + EEPROM support, interrupt handling, statistics gathering, and write + combining management for x86_64. + + A note regarding i2c: The Atmel EEPROM hardware we use looks like an + i2c device electrically, but is not i2c compliant at all from a + functional perspective. We tried using the kernel's i2c support to + talk to it, but failed. + + Normal i2c devices have a single 7-bit or 10-bit i2c address that they + respond to. Valid 7-bit addresses range from 0x03 to 0x77. Addresses + 0x00 to 0x02 and 0x78 to 0x7F are special reserved addresses + (e.g. 0x00 is the "general call" address.) The Atmel device, on the + other hand, responds to ALL addresses. It's designed to be the only + device on a given i2c bus. A given i2c device address corresponds to + the memory address within the i2c device itself. + + At least one reason why the linux core i2c stuff won't work for this + is that it prohibits access to reserved addresses like 0x00, which are + really valid addresses on the Atmel devices. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 097709fea03140b567bde8369f3ffafe33dfc1c6 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:28 2006 -0800 + + IB/ipath: chip initialisation code, and diag support + + ipath_init_chip.c sets up an InfiniPath device for use. + + ipath_diag.c permits userspace diagnostic tools to read and write a + chip's registers. It is different in purpose from the mmap interfaces + to the /sys/bus/pci resource files. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit dc741bbd4f47080c623d243546dd4cb5ff6c9564 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:27 2006 -0800 + + IB/ipath: support for PCI Express devices + + This file contains routines and definitions specific to InfiniPath + devices that have PCI Express interfaces. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit cc533a5721b79d231c127fd56d55e6df23c19770 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:26 2006 -0800 + + IB/ipath: support for HyperTransport devices + + The ipath_ht400.c file contains routines and definitions specific to + HyperTransport-based InfiniPath devices. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit d41d3aeb76135a70bfda9cd6666290fee0700b70 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:25 2006 -0800 + + IB/ipath: core driver header files + + ipath_common.h and ips_common.h contain definitions shared between + userspace and the kernel. + + ipath_kernel.h is the core driver header file. + + ipath_debug.h contains mask values used for controlling driver debugging. + + ipath_registers.h contains bitmask definitions used in chip registers. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 7bb206e3b20477c8bcbbdf20834d456b0b6d82c4 +Author: Bryan O'Sullivan +Date: Wed Mar 29 15:23:24 2006 -0800 + + IB/ipath: core device driver + + The ipath driver is a low-level driver for PathScale InfiniPath host + channel adapters (HCAs) based on the HT-400 and PE-800 chips, including + the InfiniPath HT-460, the small form factor InfiniPath HT-460, the + InfiniPath HT-470 and the Linux Networx LS/X. + + The ipath_driver.c file contains much of the low-level device handling + code. + + Signed-off-by: Bryan O'Sullivan + Signed-off-by: Roland Dreier + +commit 30c14e40ed85469f166b5effdab6705c73c5cd5e +Author: Jes Sorensen +Date: Fri Mar 31 11:18:57 2006 -0500 + + [PATCH] avoid unaligned access when accessing poll stack + + Commit 70674f95c0a2ea694d5c39f4e514f538a09be36f: + + [PATCH] Optimize select/poll by putting small data sets on the stack + + resulted in the poll stack being 4-byte aligned on 64-bit architectures, + causing misaligned accesses to elements in the array. + + This patch fixes it by declaring the stack in terms of 'long' instead + of 'char'. + + Force alignment of poll and select stacks to long to avoid unaligned + access on 64 bit architectures. + + Signed-off-by: Jes Sorensen + Signed-off-by: Linus Torvalds + +commit 108b42b4b966462444265806e3d7260a632ad630 +Author: David Howells +Date: Fri Mar 31 16:00:29 2006 +0100 + + [PATCH] Document Linux's memory barriers [try #7] + + The attached patch documents the Linux kernel's memory barriers. + + I've updated it from the comments I've been given. + + The per-arch notes sections are gone because it's clear that there are so many + exceptions, that it's not worth having them. + + I've added a list of references to other documents. + + I've tried to get rid of the concept of memory accesses appearing on the bus; + what matters is apparent behaviour with respect to other observers in the + system. + + Interrupts barrier effects are now considered to be non-existent. They may be + there, but you may not rely on them. + + I've added a couple of definition sections at the top of the document: one to + specify the minimum execution model that may be assumed, the other to specify + what this document refers to by the term "memory". + + I've made greater mention of the use of mmiowb(). + + I've adjusted the way in which caches are described, and described the fun + that can be had with cache coherence maintenance being unordered and data + dependency not being necessarily implicit. + + I've described (smp_)read_barrier_depends(). + + I've rearranged the order of the sections, so that memory barriers are + discussed in abstract first, and then described the memory barrier facilities + available on Linux, before going on to more real-world discussions and examples. + + I've added information about the lack of memory barriering effects with atomic + ops and bitops. + + I've added information about control dependencies. + + I've added more diagrams to illustrate caching interactions between CPUs. + + Signed-off-by: David Howells + Signed-off-by: Linus Torvalds + +commit 428622986858aebddc32d022af65e88b9d2ea8bb +Author: Kirill Korotaev +Date: Fri Mar 31 17:58:46 2006 +0400 + + [PATCH] wrong error path in dup_fd() leading to oopses in RCU + + Wrong error path in dup_fd() - it should return NULL on error, + not an address of already freed memory :/ + + Triggered by OpenVZ stress test suite. + + What is interesting is that it was causing different oopses in RCU like + below: + Call Trace: + [] rcu_do_batch+0x2c/0x80 + [] rcu_process_callbacks+0x3d/0x70 + [] tasklet_action+0x73/0xe0 + [] __do_softirq+0x10a/0x130 + [] do_softirq+0x4f/0x60 + ======================= + [] smp_apic_timer_interrupt+0x77/0x110 + [] apic_timer_interrupt+0x1c/0x24 + Code: Bad EIP value. + <0>Kernel panic - not syncing: Fatal exception in interrupt + + Signed-Off-By: Pavel Emelianov + Signed-Off-By: Dmitry Mishin + Signed-Off-By: Kirill Korotaev + Signed-Off-By: Linus Torvalds + +commit e358c1a2c45f7ec32d77cc09a2bb42d6823a4193 +Author: Nicolas Pitre +Date: Fri Mar 31 02:32:13 2006 -0800 + + [PATCH] mutex: some cleanups + + Turn some macros into inline functions and add proper type checking as + well as being more readable. Also a minor comment adjustment. + + Signed-off-by: Nicolas Pitre + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a58e00e7da5f93c096527f5e20ceb2cf6d130cf0 +Author: Jesper Juhl +Date: Fri Mar 31 02:32:12 2006 -0800 + + [PATCH] Decrease number of pointer derefs in jsm_tty.c + + Decrease the number of pointer derefs in drivers/serial/jsm/jsm_tty.c + + Benefits of the patch: + - Fewer pointer dereferences should make the code slightly faster. + - Size of generated code is smaller + - Improved readability + + Signed-off-by: Jesper Juhl + Acked-by: "V. ANANDA KRISHNAN" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a244e1698ae3609cdfe24088e1293593cb7a5278 +Author: Adrian Bunk +Date: Fri Mar 31 02:32:11 2006 -0800 + + [PATCH] fs/namei.c: make lookup_hash() static + + As announced, lookup_hash() can now become static. + + Signed-off-by: Adrian Bunk + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0cb3463f04e771869f481e2dd44f66419e850586 +Author: Adrian Bunk +Date: Fri Mar 31 02:32:07 2006 -0800 + + [PATCH] unexport get_wchan + + The only user of get_wchan is the proc fs - and proc can't be built modular. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ec350a7fc16af45e143085594a6c9a18d7a0cba3 +Author: NeilBrown +Date: Fri Mar 31 02:32:06 2006 -0800 + + [PATCH] md: Raid-6 did not create sysfs entries for stripe cache + + Signed-off-by: Brad Campbell + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 926ce2d8a7d446c720faec9d8c5105eeb04bcf7a +Author: NeilBrown +Date: Fri Mar 31 02:32:02 2006 -0800 + + [PATCH] md: Remove some code that can sleep from under a spinlock + + And remove the comments that were put in inplace of a fix too.... + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6b1117d50543e2484bee037ec2589fe52492a7e7 +Author: NeilBrown +Date: Fri Mar 31 02:31:57 2006 -0800 + + [PATCH] md: Don't clear bits in bitmap when writing to one device fails during recovery + + Currently a device failure during recovery leaves bits set in the bitmap. + This normally isn't a problem as the offending device will be rejected because + of errors. However if device re-adding is being used with non-persistent + bitmaps, this can be a problem. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 39451a73a2d190763ba8a98f486cf23d63d22582 +Author: Michael Hanselmann +Date: Fri Mar 31 02:31:55 2006 -0800 + + [PATCH] fbdev: Remove old radeon driver + + This patch removes the old radeon driver which has been replaced by a + newer one. + + Signed-off-by: Michael Hanselmann + Acked-by: Benjamin Herrenschmidt + Signed-off-by: Adrian Bunk + Acked-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a536093a2f07007aa572e922752b7491b9ea8ff2 +Author: Antonino A. Daplas +Date: Fri Mar 31 02:31:54 2006 -0800 + + [PATCH] fbcon: Fix big-endian bogosity in slow_imageblit() + + The monochrome->color expansion routine that handles bitmaps which have + (widths % 8) != 0 (slow_imageblit) produces corrupt characters in big-endian. + This is caused by a bogus bit test in slow_imageblit(). + + Fix. + + This patch may deserve to go to the stable tree. The code has already been + well tested in little-endian machines. It's only in big-endian where there is + uncertainty and Herbert confirmed that this is the correct way to go. + + It should not introduce regressions. + + Signed-off-by: Antonino Daplas + Acked-by: Herbert Poetzl + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2cbbb3b59c3ccdc55ad0c924fb49e09a962bb517 +Author: Richard Purdie +Date: Fri Mar 31 02:31:53 2006 -0800 + + [PATCH] pxafb: Minor driver fixes + + Fixes for the pxafb driver: + + * Return -EINVAL for resolutions that are too large as per framebuffer + driver policy. + + * Increase the error timeout for disabling the LCD controller. The current + timeout is sometimes too short on the Sharp Zaurus Cxx00 hardware and an + extra delay in an error path shouldn't pose any problems. + + * Fix a dev reference which causes a compile error when DEBUG is defined. + + Signed-off-by: Richard Purdie + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2c0f5fb08e8ad59f396b1bda41ccd93cbb00a09f +Author: Richard Purdie +Date: Fri Mar 31 02:31:51 2006 -0800 + + [PATCH] backlight: corgi_bl: Generalise to support other Sharp SL hardware + + Generalise the Corgi backlight driver by moving the default intensity and + limit mask settings into the platform specific data structure. This enables + the driver to support other Zaurus hardware, specifically the SL-6000x (Tosa) + model. + + Also change the spinlock to a mutex (the spinlock is overkill). + + Signed-off-by: Richard Purdie + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5f27a27bd77fcfd4b90ed33668940bc3cf72768b +Author: Richard Purdie +Date: Fri Mar 31 02:31:50 2006 -0800 + + [PATCH] backlight: HP Jornada 680 Backlight driver updates/fixes + + Updates to the HP Jornada 680 Backlight driver: + + - Correct the suspend/resume functions so the driver compiles + (SUSPEND_POWER_DOWN/RESUME_POWER_ON no longer exist). + + - Convert the driver to match the recent platform device changes. + + - Replace the unsafe static struct platform_device with dynamic allocation. + + - Convert the driver to the new backlight code. + + This has not been tested on a device due to lack of hardware but wouldn't + compile beforehand. + + Signed-off-by: Richard Purdie + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6ca017658b1f902c9bba2cc1017e301581f7728d +Author: Richard Purdie +Date: Fri Mar 31 02:31:49 2006 -0800 + + [PATCH] backlight: Backlight Class Improvements + + Backlight class attributes are currently easy to implement incorrectly. + Moving certain handling into the backlight core prevents this whilst at the + same time makes the drivers simpler and consistent. The following changes are + included: + + The brightness attribute only sets and reads the brightness variable in the + backlight_properties structure. + + The power attribute only sets and reads the power variable in the + backlight_properties structure. + + Any framebuffer blanking events change a variable fb_blank in the + backlight_properties structure. + + The backlight driver has only two functions to implement. One function is + called when any of the above properties change (to update the backlight + brightness), the second is called to return the current backlight brightness + value. A new attribute "actual_brightness" is added to return this brightness + as determined by the driver having combined all the above factors (and any + driver/device specific factors). + + Additionally, the backlight core takes care of checking the maximum brightness + is not exceeded and of turning off the backlight before device removal. + + The corgi backlight driver is updated to reflect these changes. + + Signed-off-by: Richard Purdie + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b0e1c5dd2941aec566047e10a5cc929ca7f7d4f +Author: Alberto Mardegan +Date: Fri Mar 31 02:31:46 2006 -0800 + + [PATCH] w100fb: Add acceleration support to ATI Imageon + + Add acceleration support in w100fb.c (i.e. ATI Imageons) for the copyarea and + fillrect operations. + + Signed-off-by: Alberto Mardegan + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1a37d5f51020b9967d4b4094f6d627d0873a6469 +Author: Antonino A. Daplas +Date: Fri Mar 31 02:31:45 2006 -0800 + + [PATCH] fbcon: Save current display during initialization + + The current display was not saved during initialization. This leads to hard + to track console corruption, such as a misplaced cursor, which is correctible + by switching consoles. Fix this minor bug. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3e7e241f8c5c87cc3685364feface081c9fa3648 +Author: Eric W. Biederman +Date: Fri Mar 31 02:31:43 2006 -0800 + + [PATCH] dcache: Add helper d_hash_and_lookup + + It is very common to hash a dentry and then to call lookup. If we take fs + specific hash functions into account the full hash logic can get ugly. + Further full_name_hash as an inline function is almost 100 bytes on x86 so + having a non-inline choice in some cases can measurably decrease code size. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 92476d7fc0326a409ab1d3864a04093a6be9aca7 +Author: Eric W. Biederman +Date: Fri Mar 31 02:31:42 2006 -0800 + + [PATCH] pidhash: Refactor the pid hash table + + Simplifies the code, reduces the need for 4 pid hash tables, and makes the + code more capable. + + In the discussions I had with Oleg it was felt that to a large extent the + cleanup itself justified the work. With struct pid being dynamically + allocated meant we could create the hash table entry when the pid was + allocated and free the hash table entry when the pid was freed. Instead of + playing with the hash lists when ever a process would attach or detach to a + process. + + For myself the fact that it gave what my previous task_ref patch gave for free + with simpler code was a big win. The problem is that if you hold a reference + to struct task_struct you lock in 10K of low memory. If you do that in a user + controllable way like /proc does, with an unprivileged but hostile user space + application with typical resource limits of 1000 fds and 100 processes I can + trigger the OOM killer by consuming all of low memory with task structs, on a + machine wight 1GB of low memory. + + If I instead hold a reference to struct pid which holds a pointer to my + task_struct, I don't suffer from that problem because struct pid is 2 orders + of magnitude smaller. In fact struct pid is small enough that most other + kernel data structures dwarf it, so simply limiting the number of referring + data structures is enough to prevent exhaustion of low memory. + + This splits the current struct pid into two structures, struct pid and struct + pid_link, and reduces our number of hash tables from PIDTYPE_MAX to just one. + struct pid_link is the per process linkage into the hash tables and lives in + struct task_struct. struct pid is given an indepedent lifetime, and holds + pointers to each of the pid types. + + The independent life of struct pid simplifies attach_pid, and detach_pid, + because we are always manipulating the list of pids and not the hash table. + In addition in giving struct pid an indpendent life it makes the concept much + more powerful. + + Kernel data structures can now embed a struct pid * instead of a pid_t and + not suffer from pid wrap around problems or from keeping unnecessarily + large amounts of memory allocated. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8c7904a00b06d2ee51149794b619e07369fcf9d4 +Author: Eric W. Biederman +Date: Fri Mar 31 02:31:37 2006 -0800 + + [PATCH] task: RCU protect task->usage + + A big problem with rcu protected data structures that are also reference + counted is that you must jump through several hoops to increase the reference + count. I think someone finally implemented atomic_inc_not_zero(&count) to + automate the common case. Unfortunately this means you must special case the + rcu access case. + + When data structures are only visible via rcu in a manner that is not + determined by the reference count on the object (i.e. tasks are visible until + their zombies are reaped) there is a much simpler technique we can employ. + Simply delaying the decrement of the reference count until the rcu interval is + over. + + What that means is that the proc code that looks up a task and later + wants to sleep can now do: + + rcu_read_lock(); + task = find_task_by_pid(some_pid); + if (task) { + get_task_struct(task); + } + rcu_read_unlock(); + + The effect on the rest of the kernel is that put_task_struct becomes cheaper + and immediate, and in the case where the task has been reaped it frees the + task immediate instead of unnecessarily waiting an until the rcu interval is + over. + + Cleanup of task_struct does not happen when its reference count drops to + zero, instead cleanup happens when release_task is called. Tasks can only + be looked up via rcu before release_task is called. All rcu protected + members of task_struct are freed by release_task. + + Therefore we can move call_rcu from put_task_struct into release_task. And + we can modify release_task to not immediately release the reference count + but instead have it call put_task_struct from the function it gives to + call_rcu. + + The end result: + + - get_task_struct is safe in an rcu context where we have just looked + up the task. + + - put_task_struct() simplifies into its old pre rcu self. + + This reorganization also makes put_task_struct uncallable from modules as + it is not exported but it does not appear to be called from any modules so + this should not be an issue, and is trivially fixed. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e4e5d3fc80d26ed26ebe42907b224f08d7eccfbf +Author: Herbert Poetzl +Date: Fri Mar 31 02:31:35 2006 -0800 + + [PATCH] cleanup in proc_check_chroot() + + proc_check_chroot() does the check in a very unintuitive way (keeping a + copy of the argument, then modifying the argument), and has uncommented + sideeffects. + + Signed-off-by: Herbert Poetzl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 158d9ebd19280582da172626ad3edda1a626dace +Author: Andrew Morton +Date: Fri Mar 31 02:31:34 2006 -0800 + + [PATCH] resurrect __put_task_struct + + This just got nuked in mainline. Bring it back because Eric's patches use it. + + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 390e2ff07712468ce6600a43aa91e897b056ce12 +Author: Eric W. Biederman +Date: Fri Mar 31 02:31:33 2006 -0800 + + [PATCH] Make setsid() more robust + + The core problem: setsid fails if it is called by init. The effect in 2.6.16 + and the earlier kernels that have this problem is that if you do a "ps -j 1 or + ps -ej 1" you will see that init and several of it's children have process + group and session == 0. Instead of process group == session == 1. Despite + init calling setsid. + + The reason it fails is that daemonize calls set_special_pids(1,1) on kernel + threads that are launched before /sbin/init is called. + + The only remaining effect in that current->signal->leader == 0 for init + instead of 1. And the setsid call fails. No one has noticed because + /sbin/init does not check the return value of setsid. + + In 2.4 where we don't have the pidhash table, and daemonize doesn't exist + setsid actually works for init. + + I care a lot about pid == 1 not being a special case that we leave broken, + because of the container/jail work that I am doing. + + - Carefully allow init (pid == 1) to call setsid despite the kernel using + its session. + + - Use find_task_by_pid instead of find_pid because find_pid taking a + pidtype is going away. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9741ef964dc8bfeb6520825df9fed8f538c3336e +Author: Thomas Gleixner +Date: Fri Mar 31 02:31:32 2006 -0800 + + [PATCH] futex: check and validate timevals + + The futex timeval is not checked for correctness. The change does not + break existing applications as the timeval is supplied by glibc (and glibc + always passes a correct value), but the glibc-internal tests for this + functionality fail. + + Signed-off-by: Thomas Gleixner + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d425b274ba83ba4e7746a40446ec0ba3267de51f +Author: Con Kolivas +Date: Fri Mar 31 02:31:29 2006 -0800 + + [PATCH] sched: activate SCHED BATCH expired + + To increase the strength of SCHED_BATCH as a scheduling hint we can + activate batch tasks on the expired array since by definition they are + latency insensitive tasks. + + Signed-off-by: Con Kolivas + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c4bb1f9b3788309e1159961c606ba0bdf7ed382 +Author: Con Kolivas +Date: Fri Mar 31 02:31:29 2006 -0800 + + [PATCH] sched: remove on runqueue requeueing + + On runqueue time is used to elevate priority in schedule(). + + In the code it currently requeues tasks even if their priority is not + elevated, which would end up placing them at the end of their runqueue + array effectively delaying them instead of improving their priority. + + Bug spotted by Mike Galbraith + + This patch removes this requeueing. + + Signed-off-by: Con Kolivas + Acked-by: Ingo Molnar + Cc: Mike Galbraith + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5138930e6a69f1c7851a82d7cedaa01fad029fcf +Author: Con Kolivas +Date: Fri Mar 31 02:31:27 2006 -0800 + + [PATCH] sched: include noninteractive sleep in idle detect + + Tasks waiting in SLEEP_NONINTERACTIVE state can now get to best priority so + they need to be included in the idle detection code. + + Signed-off-by: Con Kolivas + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e72ff0bb2c163eb13014ba113701bd42dab382fe +Author: Con Kolivas +Date: Fri Mar 31 02:31:26 2006 -0800 + + [PATCH] sched: dont decrease idle sleep avg + + We watch for tasks that sleep extended periods and don't allow one single + prolonged sleep period from elevating priority to maximum bonus to prevent cpu + bound tasks from getting high priority with single long sleeps. There is a + bug in the current code that also penalises tasks that already have high + priority. Correct that bug. + + Signed-off-by: Con Kolivas + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e7c38cb49c6cc05bc11f70d9e9889da1c4a0d37f +Author: Con Kolivas +Date: Fri Mar 31 02:31:25 2006 -0800 + + [PATCH] sched: make task_noninteractive use sleep_type + + Alterations to the pipe code in the kernel made it possible for relative + starvation to occur with tasks that slept waiting on a pipe getting unfair + priority bonuses even if they were otherwise fully cpu bound so the + TASK_NONINTERACTIVE flag was introduced which prevented any change to + sleep_avg while sleeping waiting on a pipe. This change also leads to the + converse though, preventing any priority boost from occurring in truly + interactive tasks that wait on pipes. + + Convert the TASK_NONINTERACTIVE flag to set sleep_type to SLEEP_NONINTERACTIVE + which will allow a linear bonus to priority based on sleep time thus allowing + interactive tasks to get high priority if they sleep enough. + + Signed-off-by: Con Kolivas + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3dee386e14045484a6c41c8f03a263f9d79de740 +Author: Con Kolivas +Date: Fri Mar 31 02:31:23 2006 -0800 + + [PATCH] sched: cleanup task_activated() + + The activated flag in task_struct is used to track different sleep types and + its usage is somewhat obfuscated. Convert the variable to an enum with more + descriptive names without altering the function. + + Signed-off-by: Con Kolivas + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit db1b1fefc2cecbff2e4214062fa8c680cb6e7b7d +Author: Jack Steiner +Date: Fri Mar 31 02:31:21 2006 -0800 + + [PATCH] sched: reduce overhead of calc_load + + Currently, count_active_tasks() calls both nr_running() & + nr_interruptible(). Each of these functions does a "for_each_cpu" & reads + values from the runqueue of each cpu. Although this is not a lot of + instructions, each runqueue may be located on different node. Depending on + the architecture, a unique TLB entry may be required to access each + runqueue. + + Since there may be more runqueues than cpu TLB entries, a scan of all + runqueues can trash the TLB. Each memory reference incurs a TLB miss & + refill. + + In addition, the runqueue cacheline that contains nr_running & + nr_uninterruptible may be evicted from the cache between the two passes. + This causes unnecessary cache misses. + + Combining nr_running() & nr_interruptible() into a single function + substantially reduces the TLB & cache misses on large systems. This should + have no measureable effect on smaller systems. + + On a 128p IA64 system running a memory stress workload, the new function + reduced the overhead of calc_load() from 605 usec/call to 324 usec/call. + + Signed-off-by: Jack Steiner + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3055addadbe9bfb2365006a1c13fd342a8d30d52 +Author: Dimitri Sivanich +Date: Fri Mar 31 02:31:20 2006 -0800 + + [PATCH] hrtimer: call get_softirq_time() only when necessary in run_hrtimer_queue() + + It seems that run_hrtimer_queue() is calling get_softirq_time() more + often than it needs to. + + With this patch, it only calls get_softirq_time() if there's a + pending timer. + + Signed-off-by: Dimitri Sivanich + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 669d7868ae414cdb7b7e5df375dc8e4b47f26f6d +Author: Thomas Gleixner +Date: Fri Mar 31 02:31:19 2006 -0800 + + [PATCH] hrtimer: use generic sleeper for nanosleep + + Replace the nanosleep private sleeper functionality by the generic hrtimer + sleeper. + + Signed-off-by: Thomas Gleixner + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 00362e33f65f1cb5d15e62ea5509520ce2770360 +Author: Thomas Gleixner +Date: Fri Mar 31 02:31:17 2006 -0800 + + [PATCH] hrtimer: create generic sleeper + + The removal of the data field in the hrtimer structure enforces the + embedding of the timer into another data structure. nanosleep now uses a + private implementation of the most common used timer callback function + (simple task wakeup). + + In order to avoid the reimplentation of such functionality all over the + place a generic hrtimer_sleeper functionality is created. + + Signed-off-by: Thomas Gleixner + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2bfb646cdf348cb77c572f06d5b9d17ea205c7e2 +Author: Richard Purdie +Date: Fri Mar 31 02:31:16 2006 -0800 + + [PATCH] LED: Add IDE disk activity LED trigger + + Add an LED trigger for IDE disk activity to the ide-disk driver. + + Signed-off-by: Richard Purdie + Acked-by: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 03731fbdd09f8db4af86dbf437e3169fb1920d5e +Author: Richard Purdie +Date: Fri Mar 31 02:31:15 2006 -0800 + + [PATCH] Ensure ide-taskfile calls any driver specific end_request function + + Ensure ide-taskfile.c calls any driver specific end_request function if + present. + + Signed-off-by: Richard Purdie + Cc: Alan Cox + Acked-by: Bartlomiej Zolnierkiewicz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8fe833c1b010489b71b082e553b1dfa80ef81061 +Author: Richard Purdie +Date: Fri Mar 31 02:31:14 2006 -0800 + + [PATCH] LED: add NAND MTD activity LED trigger + + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d0cf3e0480f6be9232854387794443d1a904d6d +Author: Dirk Opfer +Date: Fri Mar 31 02:31:12 2006 -0800 + + [PATCH] LED: add device support for tosa + + Adds LED drivers for LEDs found on the Sharp Zaurus c6000 model (tosa). + + Signed-off-by: Dirk Opfer + Signed-off-by: Richard Purdie + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a0c51bfce5ae4058366017d861aea6564d25aee +Author: John Bowler +Date: Fri Mar 31 02:31:11 2006 -0800 + + [PATCH] LED: add LED device support for ixp4xx devices + + NEW_LEDS support for ixp4xx boards where LEDs are connected to the GPIO lines. + + This includes a new generic ixp4xx driver (leds-ixp4xx-gpio.c name + "IXP4XX-GPIO-LED") + + Signed-off-by: John Bowler + Signed-off-by: Richard Purdie + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4d3cb35476903768541f79e61f171e79e6065098 +Author: Richard Purdie +Date: Fri Mar 31 02:31:10 2006 -0800 + + [PATCH] LED: add LED device support for locomo devices + + Adds an LED driver for LEDs exported by the Sharp LOCOMO chip as found on some + models of Sharp Zaurus. + + Signed-off-by: Richard Purdie + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3179108daaaccbf28b17d6d8b0e06abf0eee6d9f +Author: Richard Purdie +Date: Fri Mar 31 02:31:09 2006 -0800 + + [PATCH] LED: add LED device support for the zaurus corgi and spitz models + + Adds LED drivers for LEDs found on the Sharp Zaurus c7x0 (corgi, shepherd, + husky) and cxx00 (akita, spitz, borzoi) models. + + Signed-off-by: Richard Purdie + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 181bf8aa68a1d062d7f98abb0f1cb8871910320c +Author: Richard Purdie +Date: Fri Mar 31 02:31:08 2006 -0800 + + [PATCH] LED: add sharp charger status LED trigger + + Add an LED trigger for the charger status as found on the Sharp Zaurus series + of devices. + + Signed-off-by: Richard Purdie + Acked-by: Pavel Machek + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6655c6fe575b720eb8cb6c143ae10995a7aa1916 +Author: Richard Purdie +Date: Fri Mar 31 02:31:07 2006 -0800 + + [PATCH] LED: add LED timer trigger + + Add an example of a complex LED trigger in the form of a generic timer which + triggers the LED its attached to at a user specified frequency and duty cycle. + + Signed-off-by: Richard Purdie + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c3bc9956ec52fb2c70f29aa894d8eec766116584 +Author: Richard Purdie +Date: Fri Mar 31 02:31:05 2006 -0800 + + [PATCH] LED: add LED trigger tupport + + Add support for LED triggers to the LED subsystem. "Triggers" are events + which change the state of an LED. Two kinds of trigger are available, simple + ones which can be added to exising code with minimum disruption and complex + ones for implementing new or more complex functionality. + + Signed-off-by: Richard Purdie + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c72a1d608dd0eb3d553a08bfdf1c0041bebaa8a0 +Author: Richard Purdie +Date: Fri Mar 31 02:31:04 2006 -0800 + + [PATCH] LED: add LED class + + Add the foundations of a new LEDs subsystem. This patch adds a class which + presents LED devices within sysfs and allows their brightness to be + controlled. + + Signed-off-by: Richard Purdie + Cc: Russell King + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 75c1d31d9ea71025b73430c696b727e8aa15872d +Author: Richard Purdie +Date: Fri Mar 31 02:31:03 2006 -0800 + + [PATCH] LED: class documentation + + The LED class/subsystem takes John Lenz's work and extends and alters it to + give what I think should be a fairly universal LED implementation. + + The series consists of several logical units: + + * LED Core + Class implementation + * LED Trigger Core implementation + * LED timer trigger (example of a complex trigger) + * LED device drivers for corgi, spitz and tosa Zaurus models + * LED device driver for locomo LEDs + * LED device driver for ARM ixp4xx LEDs + * Zaurus charging LED trigger + * IDE disk activity LED trigger + * NAND MTD activity LED trigger + + Why? + ==== + + LEDs are really simple devices usually amounting to a GPIO that can be turned + on and off so why do we need all this code? On handheld or embedded devices + they're an important part of an often limited user interface. Both users and + developers want to be able to control and configure what the LED does and the + number of different things they'd potentially want the LED to show is large. + + A subsystem is needed to try and provide all this different functionality in + an architecture independent, simple but complete, generic and scalable manner. + + The alternative is for everyone to implement just what they need hidden away + in different corners of the kernel source tree and to provide an inconsistent + interface to userspace. + + Other Implementations + ===================== + + I'm aware of the existing arm led implementation. Currently the new subsystem + and the arm code can coexist quite happily. Its up to the arm community to + decide whether this new interface is acceptable to them. As far as I can see, + the new interface can do everything the existing arm implementation can with + the advantage that the new code is architecture independent and much more + generic, configurable and scalable. + + I'm prepared to make the conversion to the LED subsystem (or assist with it) + if appropriate. + + Implementation Details + ====================== + + I've stripped a lot of code out of John's original LED class. Colours were + removed as LED colour is now part of the device name. Multiple colours are to + be handled as multiple led devices. This means you get full control over each + colour. I also removed the LED hardware timer code as the generic timer isn't + going to add much overhead and is just as useful. I also decided to have the + LED core track the current LED status (to ease suspend/resume handling) + removing the need for brightness_get implementations in the LED drivers. + + An underlying design philosophy is simplicity. The aim is to keep a small + amount of code giving as much functionality as possible. + + The major new idea is the led "trigger". A trigger is a source of led events. + Triggers can either be simple or complex. A simple trigger isn't + configurable and is designed to slot into existing subsystems with minimal + additional code. Examples are the ide-disk, nand-disk and zaurus-charging + triggers. With leds disabled, the code optimises away. Examples are + nand-disk and ide-disk. + + Complex triggers whilst available to all LEDs have LED specific parameters and + work on a per LED basis. The timer trigger is an example. + + You can change triggers in a similar manner to the way an IO scheduler is + chosen (via /sys/class/leds/somedevice/trigger). + + So far there are only a handful of examples but it should easy to add further + LED triggers without too much interference into other subsystems. + + Known Issues + ============ + + The LED Trigger core cannot be a module as the simple trigger functions would + cause nightmare dependency issues. I see this as a minor issue compared to + the benefits the simple trigger functionality brings. The rest of the LED + subsystem can be modular. + + Some leds can be programmed to flash in hardware. As this isn't a generic LED + device property, I think this should be exported as a device specific sysfs + attribute rather than part of the class if this functionality is required (eg. + to keep the led flashing whilst the device is suspended). + + Future Development + ================== + + At the moment, a trigger can't be created specifically for a single LED. + There are a number of cases where a trigger might only be mappable to a + particular LED. The addition of triggers provided by the LED driver should + cover this option and be possible to add without breaking the current + interface. + + A CPU activity trigger similar to that found in the arm led implementation + should be trivial to add. + + This patch: + + Add some brief documentation of the design decisions behind the LED class and + how it appears to users. + + Signed-off-by: Richard Purdie + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7529c301165079d0f149d0e54724829e602f8fc0 +Author: Andrew Morton +Date: Fri Mar 31 02:30:59 2006 -0800 + + [PATCH] modules: permit Dual-MIT/GPL licenses + + One of the LEDs driver files wants to use this. + + Probably drivers/mtd/maps/ipaq-flash.c wants to convert as well - right now + it'll be tainting the kernel. + + Cc: David Woodhouse + Cc: Thomas Gleixner + Cc: John Bowler + Cc: "'Richard Purdie'" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0ca07731e495584bd84dca15a0f065470d594ec4 +Author: Rafael J. Wysocki +Date: Fri Mar 31 02:30:58 2006 -0800 + + [PATCH] vt: add TIOCL_GETKMSGREDIRECT + + Add TIOCL_GETKMSGREDIRECT needed by the userland suspend tool to get the + current value of kmsg_redirect from the kernel so that it can save it and + restore it after resume. + + Signed-off-by: Rafael J. Wysocki + Acked-by: Pavel Machek + Cc: Michael Kerrisk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d32af0fe11b1618572389723e93cf33a4cc11c81 +Author: Jesper Juhl +Date: Fri Mar 31 02:30:57 2006 -0800 + + [PATCH] ISDN: fix a few memory leaks in sc_ioctl() + + Fix a few memory leaks in drivers/isdn/sc/ioctl.c::sc_ioctl() + + Signed-off-by: Jesper Juhl + Acked-by: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b0b4ed728cdd0c7204392b0c18857e4a99917aa5 +Author: Tobias Klauser +Date: Fri Mar 31 02:30:56 2006 -0800 + + [PATCH] drivers/char/[i]stallion: Clean up kmalloc usage + + Delete two useless kmalloc wrappers and use kmalloc/kzalloc. Some weird + NULL checks are also simplified. + + Signed-off-by: Tobias Klauser + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 993dfa8776308dcfd311cf77a3bbed4aa11e9868 +Author: Trond Myklebust +Date: Fri Mar 31 02:30:55 2006 -0800 + + [PATCH] fs/locks.c: Fix sys_flock() race + + sys_flock() currently has a race which can result in a double free in the + multi-thread case. + + Thread 1 Thread 2 + + sys_flock(file, LOCK_EX) + sys_flock(file, LOCK_UN) + + If Thread 2 removes the lock from inode->i_lock before Thread 1 tests for + list_empty(&lock->fl_link) at the end of sys_flock, then both threads will + end up calling locks_free_lock for the same lock. + + Fix is to make flock_lock_file() do the same as posix_lock_file(), namely + to make a copy of the request, so that the caller can always free the lock. + + This also has the side-effect of fixing up a reference problem in the + lockd handling of flock. + + Signed-off-by: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7a2bd3f7efa86e8b56482a8f8948c8b222064a67 +Author: Amy Griffis +Date: Fri Mar 31 02:30:54 2006 -0800 + + [PATCH] inotify: IN_DELETE events missing + + IN_DELETE events are no longer generated for the removal of a file from a + watched directory. + + This seems to be a result of clearing DCACHE_INOTIFY_PARENT_WATCHED in + d_delete() directly before calling fsnotify_nameremove(). + + Assuming the flag doesn't need to be cleared before dentry_iput(), this + should do the trick. + + Signed-off-by: Amy Griffis + Cc: John McCutchan + Acked-by: Robert Love + Cc: Nick Piggin + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 094e320d761dae5816d8faa695b0509eea79c108 +Author: OGAWA Hirofumi +Date: Fri Mar 31 02:30:53 2006 -0800 + + [PATCH] fat: kill reserved names + + Since these names on old MSDOS is used as device, so, current fat driver + doesn't allow a user to create those names. But many OSes and even Windows + can create those names actually, now. + + This patch removes the reserved name check. + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e4e364e865b382f9d99c7fc230ec2ce7df21257a +Author: Paul Jackson +Date: Fri Mar 31 02:30:52 2006 -0800 + + [PATCH] cpuset: memory migration interaction fix + + Fix memory migration so that it works regardless of what cpuset the invoking + task is in. + + If a task invoked a memory migration, by doing one of: + + 1) writing a different nodemask to a cpuset 'mems' file, or + + 2) writing a tasks pid to a different cpuset's 'tasks' file, + where the cpuset had its 'memory_migrate' option turned on, then the + allocation of the new pages for the migrated task(s) was constrained + by the invoking tasks cpuset. + + If this task wasn't in a cpuset that allowed the requested memory nodes, the + memory migration would happen to some other nodes that were in that invoking + tasks cpuset. This was usually surprising and puzzling behaviour: Why didn't + the pages move? Why did the pages move -there-? + + To fix this, temporarilly change the invoking tasks 'mems_allowed' task_struct + field to the nodes the migrating tasks is moving to, so that new pages can be + allocated there. + + Signed-off-by: Paul Jackson + Acked-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2741a559a01e1ba9bf87285569dc1a104d134ecf +Author: Paul Jackson +Date: Fri Mar 31 02:30:51 2006 -0800 + + [PATCH] cpuset: unsafe mm reference fix + + Fix unsafe reference to a tasks mm struct, by moving the reference inside of a + convenient nearby properly guarded code block. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4a01c8d5be628ac20cfd432c21808d76be5813e6 +Author: Paul Jackson +Date: Fri Mar 31 02:30:50 2006 -0800 + + [PATCH] cpuset: task_lock comment fix + + Fix cpuset comment involving case of a tasks cpuset pointer being NULL. + Thanks to "the_top_cpuset_hack", this code no longer sees NULL task->cpuset + pointers. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2cf8d82d63807c2c68adf20bb28bf502496186dd +Author: Andrew Morton +Date: Fri Mar 31 02:30:49 2006 -0800 + + [PATCH] make local_t signed + + local_t's were defined to be unsigned. This increases confusion because + atomic_t's are signed. The patch goes through and changes all implementations + to use signed longs throughout. + + Also, x86-64 was using 32-bit quantities for the value passed into local_add() + and local_sub(). Fixed. + + All (actually, both) existing users have been audited. + + (Also s/__inline__/inline/ in x86_64/local.h) + + Cc: Andi Kleen + Cc: Benjamin LaHaise + Cc: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 09ce3512dcad0ad1d07eee0dc5ebb6d037c39c16 +Author: Steffen Klassert +Date: Fri Mar 31 02:30:48 2006 -0800 + + [PATCH] 3c59x: fix networking for 10base2 NICs + + The "3c59x: use mii_check_media" patch introduced a netif_carrier_off in + vortex_up. 10base2 stoped working because of this. This is removed. + + Tx/Rx reset is back in vortex_up because the 3c900B-Combo stops working after + changing from half duplex to full duplex when Tx/Rx reset is done with + vortex_timer. + + Also brought back some mii stuff to be sure that it does not break something + else. + + Thanks to Pete Clements for reporting and testing. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0000754c27f07d5656eff17367c05dc4cfb7d965 +Author: Andrew Morton +Date: Fri Mar 31 02:30:47 2006 -0800 + + [PATCH] "3c59x collision statistics fix" fix + + The pre-2.6.16 patch "3c59x collision statistics fix" accidentally caused + vortex_error() to not run iowrite16(TxEnable, ioaddr + EL3_CMD) if we got a + maxCollisions interrupt but MAX_COLLISION_RESET is not set. + + Thanks to Pete Clements for reporting and testing. + + Acked-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 88b9adb073b7a69a54b1b14423103bc24587ebdc +Author: Trond Myklebust +Date: Fri Mar 31 02:30:46 2006 -0800 + + [PATCH] config: fix CONFIG_LFS option + + The help text says that if you select CONFIG_LBD, then it will automatically + select CONFIG_LFS. That isn't currently the case, so update the text. + + - Get rid of the cruft in the help text mentioning CONFIG_LBD + + - Tell unsure users to select CONFIG_LFS. + + - Remove the `default n'. + + Signed-off-by: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bb231fe3a53b2d34c1aef119613816fcb18864b1 +Author: KaiGai Kohei +Date: Fri Mar 31 02:30:45 2006 -0800 + + [PATCH] Fix pacct bug in multithreading case. + + I noticed a bug on the process accounting facility. In multi-threading + process, some data would be recorded incorrectly when the group_leader dies + earlier than one or more threads. The attached patch fixes this problem. + + See below. 'bugacct' is a test program that create a worker thread after 4 + seconds sleeping, then the group_leader dies soon. The worker thread + consume CPU/Memory for 6 seconds, then exit. We can estimate 10 seconds as + etime and 6 seconds as stime + utime. This is a sample program which the + group_leader dies earlier than other threads. + + The results of same binary execution on different kernel are below. + -- accounted records -------------------- + | btime | utime | stime | etime | minflt | majflt | comm | + original | 13:16:40 | 0.00 | 0.00 | 6.10 | 171 | 0 | bugacct | + patched | 13:20:21 | 5.83 | 0.18 | 10.03 | 32776 | 0 | bugacct | + (*) bugacct allocates 128MB memory, thus 128MB / 4KB = 32768 of minflt is + appropriate. + + -- Test results in original kernel ------ + $ date; time -p ./bugacct + Tue Mar 28 13:16:36 JST 2006 <- But pacct said btime is 13:16:40 + real 10.11 <- But pacct said etime is 6.10 + user 5.96 <- But pacct said utime is 0.00 + sys 0.14 <- But pacct said stime is 0.00 + $ + -- Test results in patched kernel ------- + $ date; time -p ./bugacct + Tue Mar 28 13:20:21 JST 2006 + real 10.04 + user 5.83 + sys 0.19 + $ + + In the original 2.6.16 kernel, pacct records btime, utime, stime, etime and + minflt incorrectly. In my opinion, this problem is caused by an assumption + that group_leader dies last. + + The following section calculates process running time for etime and btime. + But it means running time of the thread that dies last, not process. The + start_time of the first thread in the process (group_leader) should be + reduced from uptime to calculate etime and btime correctly. + + ---- do_acct_process() in kernel/acct.c: + /* calculate run_time in nsec*/ + do_posix_clock_monotonic_gettime(&uptime); + run_time = (u64)uptime.tv_sec*NSEC_PER_SEC + uptime.tv_nsec; + run_time -= (u64)current->start_time.tv_sec*NSEC_PER_SEC + + current->start_time.tv_nsec; + ---- + + The following section calculates stime and utime of the process. + But it might count the utime and stime of the group_leader duplicatly + and ignore the utime and stime of the thread dies last, when one or + more threads remain after group_leader dead. + The ac_utime should be calculated as the sum of the signal->utime + and utime of the thread dies last. The ac_stime should be done also. + + ---- do_acct_process() in kernel/acct.c: + jiffies = cputime_to_jiffies(cputime_add(current->group_leader->utime, + current->signal->utime)); + ac.ac_utime = encode_comp_t(jiffies_to_AHZ(jiffies)); + jiffies = cputime_to_jiffies(cputime_add(current->group_leader->stime, + current->signal->stime)); + ac.ac_stime = encode_comp_t(jiffies_to_AHZ(jiffies)); + ---- + + The part of the minflt/majflt calculation has same problem. + This patch solves those problems, I think. + + Cc: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f79e2abb9bd452d97295f34376dedbec9686b986 +Author: Andrew Morton +Date: Fri Mar 31 02:30:42 2006 -0800 + + [PATCH] sys_sync_file_range() + + Remove the recently-added LINUX_FADV_ASYNC_WRITE and LINUX_FADV_WRITE_WAIT + fadvise() additions, do it in a new sys_sync_file_range() syscall instead. + Reasons: + + - It's more flexible. Things which would require two or three syscalls with + fadvise() can be done in a single syscall. + + - Using fadvise() in this manner is something not covered by POSIX. + + The patch wires up the syscall for x86. + + The sycall is implemented in the new fs/sync.c. The intention is that we can + move sys_fsync(), sys_fdatasync() and perhaps sys_sync() into there later. + + Documentation for the syscall is in fs/sync.c. + + A test app (sync_file_range.c) is in + http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz. + + The available-to-GPL-modules do_sync_file_range() is for knfsd: "A COMMIT can + say NFS_DATA_SYNC or NFS_FILE_SYNC. I can skip the ->fsync call for + NFS_DATA_SYNC which is hopefully the more common." + + Note: the `async' writeout mode SYNC_FILE_RANGE_WRITE will turn synchronous if + the queue is congested. This is trivial to fix: add a new flag bit, set + wbc->nonblocking. But I'm not sure that we want to expose implementation + details down to that level. + + Note: it's notable that we can sync an fd which wasn't opened for writing. + Same with fsync() and fdatasync()). + + Note: the code takes some care to handle attempts to sync file contents + outside the 16TB offset on 32-bit machines. It makes such attempts appear to + succeed, for best 32-bit/64-bit compatibility. Perhaps it should make such + requests fail... + + Cc: Nick Piggin + Cc: Michael Kerrisk + Cc: Ulrich Drepper + Cc: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d6dfd1310d3562698fd7c3c086f6c239f96394ac +Author: Corey Minyard +Date: Fri Mar 31 02:30:41 2006 -0800 + + [PATCH] IPMI: convert from semaphores to mutexes + + Convert the remaining semaphores to mutexes in the IPMI driver. The + watchdog was using a semaphore as a real semaphore (for IPC), so the + conversion there required adding a completion. + + Signed-off-by: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8a3628d53fe5eb1d1401dd1ce16655182c1c5ffc +Author: Corey Minyard +Date: Fri Mar 31 02:30:40 2006 -0800 + + [PATCH] IPMI: tidy up various things + + Tidy up various coding standard things, mostly removing the space after !, + but also break some long lines and fix a few other spacing inconsistencies. + Also fixes some bad error reporting when deleting an IPMI user. + + Signed-off-by: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 453823ba08ba762b3d58934b6dce75edce37169e +Author: Corey Minyard +Date: Fri Mar 31 02:30:39 2006 -0800 + + [PATCH] IPMI: fix startup race condition + + Matt Domsch noticed a startup race with the IPMI kernel thread, it was + possible (though extraordinarly unlikely) that a message could come in + before the upper layer was ready to handle it. This patch splits the + startup processing of an IPMI interface into two parts, one to get ready + and one to actually start the processes to receive messages from the + interface. + + [akpm@osdl.org: cleanups] + Signed-off-by: Corey Minyard + Cc: Matt Domsch + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ee37df7877eeaa16d7761cce64854110a7c17ad9 +Author: Andrew Morton +Date: Fri Mar 31 02:30:35 2006 -0800 + + [PATCH] make tty_insert_flip_string a non-GPL export + + Alan sayeth "Based on Linus original comments about _GPL we should export + tty_insert_flip_char as EXPORT_SYMBOL because it used to be EXPORT_SYMBOL + equivalent (trivial inline). The other features are new extensions are were + not available to drivers before so need not be provided except as _GPL + functionality as far as I can see." + + Addresses http://bugzilla.kernel.org/show_bug.cgi?id=6294 + + Cc: Alan Cox + Cc: Russell King + Cc: Paul Fulghum + Cc: Philippe Vouters + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit da960a6ad1864dd1636cb9b0330d7bb7408aed45 +Author: Randy Dunlap +Date: Fri Mar 31 02:30:34 2006 -0800 + + [PATCH] edac_752x needs CONFIG_HOTPLUG + + EDAC_752X uses pci_scan_single_device(), which is only available if + CONFIG_HOTPLUG is enabled, so limit this driver with HOTPLUG. + + Signed-off-by: Randy Dunlap + Cc: Dave Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b41046cd0ee0a57f849d6e1363f7933e363cca9 +Author: OGAWA Hirofumi +Date: Fri Mar 31 02:30:33 2006 -0800 + + [PATCH] Don't pass boot parameters to argv_init[] + + The boot cmdline is parsed in parse_early_param() and + parse_args(,unknown_bootoption). + + And __setup() is used in obsolete_checksetup(). + + start_kernel() + -> parse_args() + -> unknown_bootoption() + -> obsolete_checksetup() + + If __setup()'s callback (->setup_func()) returns 1 in + obsolete_checksetup(), obsolete_checksetup() thinks a parameter was + handled. + + If ->setup_func() returns 0, obsolete_checksetup() tries other + ->setup_func(). If all ->setup_func() that matched a parameter returns 0, + a parameter is seted to argv_init[]. + + Then, when runing /sbin/init or init=app, argv_init[] is passed to the app. + If the app doesn't ignore those arguments, it will warning and exit. + + This patch fixes a wrong usage of it, however fixes obvious one only. + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 68eef3b4791572ecb70249c7fb145bb3742dd899 +Author: Joe Korty +Date: Fri Mar 31 02:30:32 2006 -0800 + + [PATCH] Simplify proc/devices and fix early termination regression + + Make baby-simple the code for /proc/devices. Based on the proven design + for /proc/interrupts. + + This also fixes the early-termination regression 2.6.16 introduced, as + demonstrated by: + + # dd if=/proc/devices bs=1 + Character devices: + 1 mem + 27+0 records in + 27+0 records out + + This should also work (but is untested) when /proc/devices >4096 bytes, + which I believe is what the original 2.6.16 rewrite fixed. + + [akpm@osdl.org: cleanups, simplifications] + Signed-off-by: Joe Korty + Cc: Neil Horman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a2c348fe0117adced11e374329a5ea3f7c43cb41 +Author: Oleg Nesterov +Date: Fri Mar 31 02:30:31 2006 -0800 + + [PATCH] __mod_timer: simplify ->base changing + + Since base and new_base are of the same type now, we can save one 'if' + branch and simplify the code a bit. + + Signed-off-by: Oleg Nesterov + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3691c5199e8a4be1c7a91b5ab925db5feb866e19 +Author: Oleg Nesterov +Date: Fri Mar 31 02:30:30 2006 -0800 + + [PATCH] kill __init_timer_base in favor of boot_tvec_bases + + Commit a4a6198b80cf82eb8160603c98da218d1bd5e104: + [PATCH] tvec_bases too large for per-cpu data + + introduced "struct tvec_t_base_s boot_tvec_bases" which is visible at + compile time. This means we can kill __init_timer_base and move + timer_base_s's content into tvec_t_base_s. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5ce29646ebe352587e3b3160d599010c5da1b9dd +Author: Miklos Szeredi +Date: Fri Mar 31 02:30:29 2006 -0800 + + [PATCH] locks: don't panic + + Don't panic! Just BUG_ON(). + + Signed-off-by: Miklos Szeredi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit da2e9e1ff40c863a12803c32209baaded3512433 +Author: Jakub Jelinek +Date: Fri Mar 31 02:30:28 2006 -0800 + + [PATCH] Mark unwind info for signal trampolines in vDSOs + + Mark unwind info for signal trampolines using the new S augmentation flag + introduced in: http://gcc.gnu.org/PR26208. + + GCC 4.2 (or patched earlier GCC) will be able to special case unwinding + through frames right above signal trampolines. As the augmentations start + with z flag and S is at the very end of the augmentation string, older GCCs + will just skip the S flag as unknown (that's why an augmentation flag was + chosen over say a new CFA opcode). + + Signed-off-by: Jakub Jelinek + Cc: Andi Kleen + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 97db7fbfc7712bc403330c81c04ddfa82b335bce +Author: KAMEZAWA Hiroyuki +Date: Fri Mar 31 02:30:26 2006 -0800 + + [PATCH] for_each_possible_cpu: s390 + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3feb88562d149f078319e5a1b2f7acaa10251a5c +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Mar 31 02:30:25 2006 -0800 + + [PATCH] uml: check for differences in host support + + If running on a host not supporting TLS (for instance 2.4) we should report + that cleanly to the user, instead of printing not comprehensible "error 5" for + that. + + Additionally, i386 and x86_64 support different ranges for + user_desc->entry_number, and we must account for that; we couldn't pass + ourselves -1 because we need to override previously existing TLS descriptors + which glibc has possibly set, so test at startup the range to use. + + x86 and x86_64 existing ranges are hardcoded. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 54d8d3b5a0ce1cdbad1d3154c9ea9732d394e9c7 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Mar 31 02:30:24 2006 -0800 + + [PATCH] uml: add arch_switch_to for newly forked thread + + Newly forked threads have no arch_switch_to_skas() called before their first + run, because when schedule() switches to them they're resumed in the body of + thread_wait() inside fork_handler() rather than in switch_threads() in + switch_to_skas(). Compensate this missing call. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dd77aec07aec5cb81aed3b4ef79c1ff8bd0e2a68 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Mar 31 02:30:23 2006 -0800 + + [PATCH] uml: tls support: hack to make it compile on any host + + Copy the definition of struct user_desc (with another name) for use by + userspace sources (where we use the host headers, and we can't be sure about + their content) to make sure UML compiles. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aa6758d4867cd07bd76105ade6177fe6148e559a +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Mar 31 02:30:22 2006 -0800 + + [PATCH] uml: implement {get,set}_thread_area for i386 + + Implement sys_[gs]et_thread_area and the corresponding ptrace operations for + UML. This is the main chunk, additional parts follow. This implementation is + now well tested and has run reliably for some time, and we've understood all + the previously existing problems. + + Their implementation saves the new GDT content and then forwards the call to + the host when appropriate, i.e. immediately when the target process is + running or on context switch otherwise (i.e. on fork and on ptrace() calls). + + In SKAS mode, we must switch registers on each context switch (because SKAS + does not switches tls_array together with current->mm). + + Also, added get_cpu() locking; this has been done for SKAS mode, since TT does + not need it (it does not use smp_processor_id()). + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 972410b0232e97609fcefc8e408fe3037fcd607b +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Mar 31 02:30:21 2006 -0800 + + [PATCH] uml: clean arch_switch usage + + Call arch_switch also in switch_to_skas, even if it's, for now, a no-op for + that case (and mark this in the comment); this will change soon. + + Also, arch_switch for TT mode is actually useless when the PT proxy (a + complicate debugging instrumentation for TT mode) is not enabled. In fact, it + only calls update_debugregs, which checks debugregs_seq against seq (to check + if the registers are up-to-date - seq here means a "version number" of the + registers). + + If the ptrace proxy is not enabled, debugregs_seq always stays 0 and + update_debugregs will be a no-op. So, optimize this out (the compiler can't + do it). + + Also, I've been disappointed by the fact that it would make a lot of sense if, + after calling a successful + update_debugregs(current->thread.arch.debugregs_seq), + current->thread.arch.debugregs_seq were updated with the new debugregs_seq. + But this is not done. Is this a bug or a feature? For all purposes, it seems + a bug (otherwise the whole mechanism does not make sense, which is also a + possibility to check), which causes some performance only problems (not + correctness), since we write_debugregs when not needed. + + Also, as suggested by Jeff, remove a redundant enabling of SIGVTALRM, + comprised in the subsequent local_irq_enable(). I'm just a bit dubious if + ordering matters there... + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fbdf2161552a2065047e5df2dbf9ebf69d66a0e9 +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Mar 31 02:30:19 2006 -0800 + + [PATCH] uml: split ldt.h in arch-independent and arch-dependant code + + ldt-{i386,x86_64}.h is made of two different parts - some code for parsing of + LDT descriptors, which is arch-dependant, and the code to handle uml_ldt_t (an + LDT block inside UML), which is mostly arch-independant (among x86 and x86_64, + at least). + + Join the common part in a single file (ldt.h) and split the rest away + (host_ldt-{i386,x86_64}.h). + + This is needed because processor.h, with next patches, will start including + the LDT descriptor parsing macros in host_ldt.h, but it can't include ldt.h + because it uses semaphores (and to define semaphores one must first include + processor.h!). + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 12523bdce1a6b5a3a2627b9901162bbd3eef33ed +Author: Paolo 'Blaisorblade' Giarrusso +Date: Fri Mar 31 02:30:18 2006 -0800 + + [PATCH] uml: idle thread needn't take access to init_mm + + Comparing this code which is the actual body of the arch-independent + cpu_idle(), it is clear that it's unnecessary to set ->mm and ->active_mm; + beyond that, a kernel thread is not supposed to have ->mm != NULL, only + active_mm. + + This showed up because I used the assumption (which is IMHO valid) that kernel + thread have their ->mm == NULL, and it failed for this thread. + + Signed-off-by: Paolo 'Blaisorblade' Giarrusso + Acked-by: Jeff Dike + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e11c0cdf4c6f7976e6f4fe221369a7b420245389 +Author: Al Viro +Date: Fri Mar 31 02:30:17 2006 -0800 + + [PATCH] uml: fix min usage + + type-safe min() in arch/um/drivers/mconsole_kern.c + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 43cecb3079d048800e828edafb937e596152908d +Author: Al Viro +Date: Fri Mar 31 02:30:16 2006 -0800 + + [PATCH] uml: remove unused make variables + + Removed assignments to unused variables in arch/um/os-Linux/Makefile + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 347f217cec74dc6b5a9b8e77c4b15f5a6879ec1a +Author: Al Viro +Date: Fri Mar 31 02:30:16 2006 -0800 + + [PATCH] uml: __user annotations + + __user annotations (hppfs) + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4d338e1accfc3473f7e453427dfd4f1ebf4dbbe6 +Author: Al Viro +Date: Fri Mar 31 02:30:15 2006 -0800 + + [PATCH] uml: sparse cleanups + + misc sparse annotations + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 694a464e19b9e3278dbaf6a09fa7c1efec3f8eb5 +Author: Al Viro +Date: Fri Mar 31 02:30:14 2006 -0800 + + [PATCH] uml: kconfigs + + kconfig sanitized around drivers/net + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cc70a40b5ee05e5cca053887fc447590307bf1e8 +Author: Al Viro +Date: Fri Mar 31 02:30:13 2006 -0800 + + [PATCH] uml: eliminate duplicate mrpropered files + + no need to add the same file twice to MRPROPER_FILES + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7b99edc78de6c12d3e96fb75fe2b55fafa96f247 +Author: Al Viro +Date: Fri Mar 31 02:30:12 2006 -0800 + + [PATCH] uml: clean up remapping code build magic + + kills unmap magic + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit de2fe5e07d58424bc286fff3fd3c1b0bf933cd58 +Author: Al Viro +Date: Fri Mar 31 02:30:11 2006 -0800 + + [PATCH] uml: eliminate symlinks to host arch + + kills symlinks in arch/um/sys-* + + Signed-off-by: Al Viro + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f4c57a78e2c49f188babf675ba0a9264b5374c26 +Author: Jeff Dike +Date: Fri Mar 31 02:30:10 2006 -0800 + + [PATCH] uml: fix initcall return values + + A number of UML initcalls were improperly returning 1. Also removed any + nearby emacs formatting comments. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9902abd7af17c3bdf57a5a092a66f502f79ba05e +Author: Jeff Dike +Date: Fri Mar 31 02:30:09 2006 -0800 + + [PATCH] uml: redeclare highmem + + The earlier printf patch missed a corresponding change in the printed + variable. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 02dea0875b0f9b331a65fd6097dfd6115ca4ef24 +Author: Jeff Dike +Date: Fri Mar 31 02:30:08 2006 -0800 + + [PATCH] UML: Hotplug memory, take 2 + + Changes since first version + added check for MADV_REMOVE support on the host + fixed error return botch + shrunk sprintf array by one character + + This adds hotplug memory support to UML. The mconsole syntax is + config mem=[+-]n[KMG] + In other words, add or subtract some number of kilobytes, megabytes, or + gigabytes. + + Unplugged pages are allocated and then madvise(MADV_TRUNCATE), which is a + currently experimental madvise extension. These pages are tracked so they + can be plugged back in later if the admin decides to give them back. The + first page to be unplugged is used to keep track of about 4M of other + pages. A list_head is the first thing on this page. The rest is filled + with addresses of other unplugged pages. This first page is not madvised, + obviously. + + When this page is filled, the next page is used in a similar way and linked + onto a list with the first page. Etc. This whole process reverses when + pages are plugged back in. When a tracking page no longer tracks any + unplugged pages, then it is next in line for plugging, which is done by + freeing pages back to the kernel. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 85b6bce3658a823aa169586fe71ffba0f12ccc71 +Author: Pavel Machek +Date: Fri Mar 31 02:30:06 2006 -0800 + + [PATCH] Fix suspend with traced tasks + + strace /bin/bash misbehaves after resume; this fixes it. + + (akpm: it's scary calling refrigerator() in state TASK_TRACED, but it seems to + do the right thing). + + Signed-off-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1a75a3f0680d9c4bc4761512658b6fd664032e18 +Author: Vivek Goyal +Date: Fri Mar 31 02:30:05 2006 -0800 + + [PATCH] i386 kdump timer vector lockup fix + + Porting the patch I posted for x86_64 to i386. + + http://marc.theaimsgroup.com/?l=linux-kernel&m=114178139610707&w=2 + + o While using kdump, after a system crash when second kernel boots, timer + vector gets (0x31) locked and CPU does not see timer interrupts + travelling from IOAPIC to APIC. Currently it does not lead to boot + failure in second kernel as timer interrupts continues to come as ExtInt + through LAPIC directly, but fixing it is good in case some boards do not + support the other mode. + + o After a system crash, it is not safe to service interrupts any more, + hence interrupts are disabled. This leads to pending interrupts at + LAPIC. LAPIC sends these interrupts to the CPU during early boot of + second kernel. Other pending interrupts are discarded saying unexpected + trap but timer interrupt is serviced and CPU does not issue an LAPIC EOI + because it think this interrupt came from i8259 and sends ack to 8259. + This leads to vector 0x31 locking as LAPIC does not clear respective ISR + and keeps on waiting for EOI. + + o This patch issues extra EOI for the pending interrupts who have ISR set. + + o Though today only timer seems to be the special case because in early + boot it thinks interrupts are coming from i8259 and uses + mask_and_ack_8259A() as ack handler and does not issue LAPIC EOI. But + probably doing it in generic manner for all vectors makes sense. + + Signed-off-by: Vivek Goyal + Cc: "Eric W. Biederman" + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ccfb81e871b45e4af6ebb3282f3cfa0f98f1b80 +Author: Brian Gerst +Date: Fri Mar 31 02:30:04 2006 -0800 + + [PATCH] Remove long dead i386 floppy asm code + + It's been disabled since v2.1.88 + + Signed-off-by: Brian Gerst + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bc83db4f006fcf9e9502a002b4bd448fc4511d04 +Author: KAMEZAWA Hiroyuki +Date: Fri Mar 31 02:30:02 2006 -0800 + + [PATCH] for_each_possible_cpu: sh + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Paul Mundt + Cc: Kazumoto Kojima + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 78c997a4be7d1ed3ff4c27f23d30a0185d39bcbf +Author: Chen, Kenneth W +Date: Fri Mar 31 02:30:01 2006 -0800 + + [PATCH] hugetlb: don't allow free hugetlb count fall below reserved count + + With strict page reservation, I think kernel should enforce number of free + hugetlb page don't fall below reserved count. Currently it is possible in + the sysctl path. Add proper check in sysctl to disallow that. + + Signed-off-by: Ken Chen + Cc: David Gibson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d6692183ac1d8f4a4e4015f9ce9acc2514618e0b +Author: Chen, Kenneth W +Date: Fri Mar 31 02:29:57 2006 -0800 + + [PATCH] fix extra page ref count in follow_hugetlb_page + + git-commit: d5d4b0aa4e1430d73050babba999365593bdb9d2 + "[PATCH] optimize follow_hugetlb_page" breaks mlock on hugepage areas. + + I mis-interpret pages argument and made get_page() unconditional. It + should only get a ref count when "pages" argument is non-null. + + Credit goes to Adam Litke who spotted the bug. + + Signed-off-by: Ken Chen + Acked-by: Adam Litke + Cc: David Gibson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 93fac7041f082297b93655a0e49f659cd7520e40 +Author: Nick Piggin +Date: Fri Mar 31 02:29:56 2006 -0800 + + [PATCH] mm: schedule find_trylock_page() removal + + find_trylock_page() is an odd interface in that it doesn't take a reference + like the others. Now that XFS no longer uses it, and its last remaining + caller actually wants an elevated refcount, opencode that callsite and + schedule find_trylock_page() for removal. + + Signed-off-by: Nick Piggin + Acked-by: Hugh Dickins + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9bf9e89c3d147ca8cf9622d2d053684fba77a464 +Author: Christoph Lameter +Date: Fri Mar 31 02:29:56 2006 -0800 + + [PATCH] migrate_pages_to() must be defined for the no swap case + + Fix migrate_pages_to() definition. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b5ac5d7edb64b3ca1a489b30d95d62492a1f0b80 +Author: Petri T. Koistinen +Date: Fri Mar 31 02:29:54 2006 -0800 + + [PATCH] drivers/mtd/maps/vmax301.c: fix off by one vmax_mtd + + Fix an obvious off-by-one error (vmax_mtd[] contains two elements). + + Signed-off-by: Adrian Bunk + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4d551465986c9a0040f47700a8c736c90519418f +Author: Herbert Poetzl +Date: Fri Mar 31 02:29:53 2006 -0800 + + [PATCH] mtd: fix broken name_to_dev_t() declaration + + drivers/mtd/devices/blkmtd.c uses a local declaration of name_to_dev_t() + which is inconsistant with the real one. the following patch fixes this by + removing the local declaration and including mount.h instead + + this patch was originally done by Micah Anderson. + + Signed-off-by: Herbert Poetzl + Acked-by: Micah Anderson + Acked-by: Daniel Hokka Zakrisson + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 84e699e6ec5b431289474f78f8df9dfcc2737085 +Author: Peter Korsgaard +Date: Fri Mar 31 02:29:52 2006 -0800 + + [PATCH] mtd/redboot: Handle holes in fis table + + Redboot simply sets the first character of a fis entry to 0xff on "fis + delete". The kernel redboot parser stops parsing on such an entry, and + without this patch any entries after a deleted image would not be detected. + + Signed-off-by: Peter Korsgaard + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a63ec1b7b7c38f9a61ed11eefd670a49879e9dd3 +Author: Pavel Machek +Date: Fri Mar 31 02:29:51 2006 -0800 + + [PATCH] Add chip used in collie to jedec_probe + + This adds flash chip used in Sharp Zaurus sl5500 (collie) to jedec_probe. + Values work for read-only access, but I have not figured out how to do + read-write. + + Signed-off-by: Pavel Machek + Cc: Richard Purdie + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit edcbce2150fec1f6e6670e14eb65098eebfacae8 +Author: Eric Sesterhenn +Date: Fri Mar 31 02:29:50 2006 -0800 + + [PATCH] Dead code in mtd/maps/pci.c + + This fixes coverity bug #12. The first two gotos in the function still + have the initial value for mtd set. And the third goto just triggers for + !mtd + + Signed-off-by: Eric Sesterhenn + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2d2dce0eb650831046316a9cd091ea5257aa7d4b +Author: Pavel Machek +Date: Fri Mar 31 02:29:49 2006 -0800 + + [PATCH] Kill ifdefs in mtdcore.c + + Kill unneccessary ifdefs in mtdcore.c. + + Signed-off-by: Pavel Machek + Cc: Thomas Gleixner + Signed-off-by: Adrian Bunk + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8b68a1263305d4e8a07d8a43c996969ea9e44292 +Author: Eric Sesterhenn / snakebyte +Date: Fri Mar 31 02:29:47 2006 -0800 + + [PATCH] Fix debug statement in inftlcore.c + + Fix a copy/paste bug found by cpminer inside the inftlcore.c file + + Signed-off-by: Eric Sesterhenn + Acked-by: Greg Ungerer + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b175d03dd207283609b7f8bfdaa5dc93ac9b16dd +Author: Atsushi Nemoto +Date: Fri Mar 31 02:29:46 2006 -0800 + + [PATCH] mtd cmdlinepart: allow zero offset value + + Current cmdlinepart.c uses offset value 0 to specify a continuous + partition. This prevents creating a second partition starting at 0. + + For example, I can split 4MB device using "mtdparts=id:2M,2M", but I can + not do "mtdparts=id:2M@2M,2M@0" to swap mtd0 and mtd1. + + This patch introduces special OFFSET_CONTINUOUS value for a continuous + partition and allows 0 for offset value. + + Also this patch replaces 0xffffffff with UINT_MAX for SIZE_REMAINING. + + Signed-off-by: Atsushi Nemoto + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 87d10f3c7954d143e509a2af2bca2a27aeb3114d +Author: Tobias Klauser +Date: Fri Mar 31 02:29:45 2006 -0800 + + [PATCH] drivers/mtd: Use ARRAY_SIZE macro + + Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove + duplicates of the macro. + + Signed-off-by: Tobias Klauser + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 54af6b46485bb706b7cdffd2e419253fd00cae6a +Author: Adrian Bunk +Date: Fri Mar 31 02:29:43 2006 -0800 + + [PATCH] MTD_NAND_SHARPSL and MTD_NAND_NANDSIM should be tristate's + + MTD_NAND=m and MTD_NAND_SHARPSL=y or MTD_NAND_NANDSIM=y are illegal + combinations that mustn't be allowed. + + This patch fixes this bug by making MTD_NAND_SHARPSL and MTD_NAND_NANDSIM + tristate's. + + Additionally, it fixes some whitespace damage at these options. + + Signed-off-by: Adrian Bunk + Acked-by: Richard Purdie + Acked-by: "Artem B. Bityutskiy" + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0500abf52109d09bf60d740dec2e41d6cf265688 +Author: Adrian Bunk +Date: Fri Mar 31 02:29:42 2006 -0800 + + [PATCH] drivers/mtd/: small cleanups + + - chips/sharp.c: make two needlessly global functions static + + - move some declarations to a header file where they belong to + + Signed-off-by: Adrian Bunk + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 48b192686dd20cb1576ae1d8ccd17a07971ef24a +Author: Ingo Molnar +Date: Fri Mar 31 02:29:41 2006 -0800 + + [PATCH] sem2mutex: drivers/mtd/ + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 040d79f906654d55c810313f29c6605593bf21c5 +Author: Ingo Molnar +Date: Fri Mar 31 02:29:40 2006 -0800 + + [PATCH] sem2mutex: mtd/doc2000.c + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Thomas Gleixner + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 37466ea85a7f7c9eef071a334e074265df4d1305 +Author: Andrew Morton +Date: Fri Mar 31 02:29:39 2006 -0800 + + [PATCH] m25p80: printk warning fix + + drivers/mtd/devices/m25p80.c: In function `m25p80_erase': + drivers/mtd/devices/m25p80.c:189: warning: signed size_t format, different type arg (arg 6) + + Acked-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 553ee5dc1a7a1fb04a6286b0c779481f7035bbd1 +Author: Marcelo Tosatti +Date: Fri Mar 31 16:37:25 2006 -0600 + + [PATCH] pcmcia: declare pccard_iodyn_ops (fix m8xx_pcmcia.c compilation error) + + Apparently the pccard_iodyn_ops declaration has been forgotten, which + results in a compilation error for m8xx_pcmcia.c + + Signed-off-by: Marcelo Tosatti + Signed-off-by: Dominik Brodowski + +commit 2ab9391dea6e36fed13443c29bf97d3be05f5289 +Author: Tony Luck +Date: Fri Mar 31 10:28:29 2006 -0800 + + [IA64] Avoid "u64 foo : 32;" for gcc3 vs. gcc4 compatibility + + gcc3 thinks that a 32-bit field of a u64 type is itself a u64, so + should be printed with "%ld". gcc4 thinks it needs just "%d". + Make both versions happy by avoiding this construct. + + Signed-off-by: Tony Luck + +commit c2f60c523aa34cf6d4913d6efc670890bd456fd5 +Author: Frederik Deweerdt +Date: Fri Mar 31 13:13:23 2006 +0200 + + [ALSA] Kconfig SND_SEQUENCER_OSS help text fix + + Fix misleading help text for SND_SEQUENCER_OSS config option. + + Signed-off-by: Frederik Deweerdt + Signed-off-by: Takashi Iwai + +commit af9b70ac0044d126b28d28894cd890447c0a9dc1 +Author: Maximilian Rehkopf +Date: Fri Mar 31 13:10:35 2006 +0200 + + [ALSA] Add Aux input switch control for Aureon Universe + + This patch adds a mixer control which allows the user to switch the Aux + playback between the internal Aux jack, Wavetable, and Rear Line-In on + Aureon Universe cards. + + For switching, a PCA9554 (8-line GPIO with I2C interface) and a 74HC4052 + (dual 4-way mux/demux) are used. Output 0 and 1 of the PCA9554 are + connected to the select pins of the 74HC4052. The I2C interface of the + PCA9554 is connected to the card's internal SPI bus which is also used + to control the WM8770 and CS8415. SPI and I2C on the same lines... + + To communicate with the PCA9554 the WM8770 and CS8415 are disabled and + an I2C Stop Condition is generated before the Start Condition (needed + for synchronisation because other SPI traffic appear to confuse the + PCA9554). Then a normal I2C data transfer takes place. Programming must + be done ridiculously slow; in theory, 4.7us is the minimum delay time + for normal-speed I2C according to the datasheet, but even with 10us + switching was unreliable. The Windows driver from Terratec does the + programming very slowly, too (checked with an oscilloscope). + + PCA9554 datasheet: + http://www.semiconductors.philips.com/acrobat/datasheets/PCA9554_9554A_6.pdf + + 74HC4052 datasheet: + http://www.semiconductors.philips.com/acrobat/datasheets/74HC_HCT4052_4.pdf + + Signed-off-by: Maximilian Rehkopf + Signed-off-by: Takashi Iwai + +commit 0bd43b5bc9e61e9dc48ad5ee68737316e5d94b60 +Author: Markus Bollinger +Date: Fri Mar 31 12:48:51 2006 +0200 + + [ALSA] pcxhr - Fix the crash with REV01 board + + On a new board revision for pcxhr boards, the + PCXHR_CHIPSC_GPI_USERI bit is no more supported. + The cards concerned have a REV01 in their PCI ID. + + As the current driver tests this bit and does not load the + first Xilinx binary when it's 1, the card will crash on Xilinx + access over PCI. (the PCI will freeze ....) + + The fix (fix to version 1.0.11rc4) works for both REV00 and + REV01 cards. + + Signed-off-by: Takashi Iwai + +commit ce7415f496e21775156b08452d22211f8c3ccc53 +Author: OGAWA Hirofumi +Date: Fri Mar 31 12:36:14 2006 +0200 + + [ALSA] sound/pci/hda: use create_singlethread_workqueue() + + process_unsol_events() seems to assume a singlethread one (IOW, racey). + So, this patch uses create_singlethread_workqueue() instead of + create_workqueue(). + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Takashi Iwai + +commit 89be83f8eef781a801898c08a5317ed463fe872f +Author: Felix Kuehling +Date: Fri Mar 31 12:33:59 2006 +0200 + + [ALSA] hda-intel - Add support of ATI SB600 + + This patch adds support for high definition audio on ATI SB600. + + Signed-off-by: Felix Kuehling + Signed-off-by: Takashi Iwai + +commit 38223daa1aa98d0a6f35ba7addcfefc756a04f5e +Author: Takashi Iwai +Date: Wed Mar 29 12:33:38 2006 +0200 + + [ALSA] cs4281 - Fix the check of timeout in probe + + Fix the check of timeout in probe routines to work properly + reagrdless of HZ (ALSA bug#1976). + + Signed-off-by: Takashi Iwai + +commit e860f00047108ec97ac58c0d1bf59ae23e35f81c +Author: Takashi Iwai +Date: Wed Mar 29 11:38:01 2006 +0200 + + [ALSA] cs4281 - Fix the check of right channel + + Fix the check of right channel in mixer volume put callback. + + Signed-off-by: Takashi Iwai + +commit 14790f1c73cfa4d4a22ac10b4501b4831380683c +Author: Takashi Iwai +Date: Tue Mar 28 17:58:28 2006 +0200 + + [ALSA] Test volume resolution of usb audio at initialization + + Test the volume of usb audio whether actually it works and adjusts + the resolution value according to it. + + Some USB audio devices report a lower resolution than it reacts. + The only possible check is to write and read a volume value. + + Signed-off-by: Takashi Iwai + +commit 0b2dcd5d6a9a3e27fdd67053e526388f9f2ea33b +Author: Andreas Mohr +Date: Tue Mar 28 12:56:14 2006 +0200 + + [ALSA] maestro3.c: fix BUG, optimization + + - fix brown-paper-bag locking bug (lock() / return / unlock()) + - improve central function snd_m3_update_ptr() + (avoid expensive integer divisions) + - add cpu_relax() to busy-wait I/O loop as recommended + (does this require special macro support in ALSA for older kernels??) + - constify several structs + - spelling updates + + Signed-off-by: Andreas Mohr + Signed-off-by: Takashi Iwai + +commit a1e8d2da03b3a1017aab01d49666ec9b67927de5 +Author: Jonathan Woithe +Date: Tue Mar 28 12:47:09 2006 +0200 + + [ALSA] HDA/Realtek: multiple input mux definitions and pin mode additions + + The following patch relative to CVS from 20060324 adds the following + features to the Realtek HDA codec. + + 1) Define two new pin modes: ALC_PIN_DIR_IN_NOMICBIAS and + ALC_PIN_DIR_INOUT_NOMICBIAS. These can be used with jack mode switch + definitions in mixers to prevent the user being offered the mic bias + options if the hardware doesn't support it. + + 2) Add the ability to have different input mux definitions for different + ADCs. This is needed because the ALC260 chip uses different mux layouts + for the two onboard ADCs. A new field (num_mux_defs) was added to the + alc_spec and alc_config_preset structures to support this. + + 3) Adjust numerous comments to make them consistent with the above changes. + + 4) Utilise the new multi-mux definition functionality for the ALC260 fujitsu + model to allow recording of the mixer output. + + 5) Utilise the new multi-mux definition functionality for the ALC260 test + model to make the mux selections a little less confusing. + + 6) Allow the headphone jack of the ALC260 acer model to be retasked in + the mixer. + + 6) Utilise the new multi-mux definition functionality for the ALC260 acer + model to give access to the mixer output and the retasked headphone + jack. + + At this stage the *_NOMICBIAS modes are not used. We have reports that the + "Line" jack of at least some Acer models doesn't pass the bias out, and we + also know that NIDs 0x0f and 0x10 don't seem to accept the mic bias requests + at all. However, I feel we need to collect more evidence on both counts + before committing to the use of *_NOMICBIAS. In the case of the Acers, it's + not clear whether this issue (probably caused by the inclusion of DC + blocking capacitors) affects all Acer models or just a small number. With + the issue with NIDs 0x0f and 0x10 it's unclear whether this is a hardware + bug which will be addressed in later chip revisions or if it's an + intentional restriction. The datasheet makes no mention of the restriction + so at this stage I'm inclined to consider it a hardware bug. Comments in + the source reflect this reasoning. + + On a similar theme, the headphone jack of the Fujitsu S7020 also doesn't + appear to pass mic bias voltage. I'm still investigating this however. + + With the ability to retask the headphone jack, owners of ALC260-based Acer + laptops should now be able to record 4 channels of audio if they desire. The + multiple mux definitions allow this jack to be presented from both ADCs + (since this mux input is one of those which differs between the muxes). + + This patch has been tested on a Fujitsu S7020 laptop and appears to behave + itself both for the "test" and "fujitsu" models. Definitions using only a + single mux specification also work. Other ALC chips should be fine but I + cannot test these myself. The "auto" modes should also continue to function + but again I have not verified this. + + Signed-off-by: Takashi Iwai + +commit cf40a310a7aaf1944eea3e01e9c120b31850c3b6 +Author: Rene Herman +Date: Tue Mar 28 12:38:20 2006 +0200 + + [ALSA] AdLib FM card driver + + Attached you'll find an ALSA driver for AdLib FM cards. An AdLib card is + just an OPL2, which was already supported by sound/drivers/opl3, so only + very minimal bus-glue is needed. The patch applies cleanly to both + 2.6.16 and 2.6.16-mm1. + + The driver has been tested with an actual ancient 8-bit ISA AdLib card + and works fine. It also works fine for an OPL3 {,emulation} as still + found on many ISA soundcards but given that AdLib cards don't have their + own mixer, upping the volume from 0 might be a problem without the card + driver already loaded and driving the OPL3. + + Signed-off-by: Takashi Iwai + +commit 060d77b9c04acd7aef60790398a53f731db8c8fe +Author: Takashi Iwai +Date: Mon Mar 27 16:44:52 2006 +0200 + + [ALSA] Fix / clean up PCM-OSS setup hooks + + - Fix possible race of referring the setup hook from the running PCM + - Fix memory leak in an error path of proc write + - Clean up the setup hook parser + + Signed-off-by: Takashi Iwai + +commit 3bf75f9b90c981f18f27a0d35a44f488ab68c8ea +Author: Takashi Iwai +Date: Mon Mar 27 16:40:49 2006 +0200 + + [ALSA] Clean up PCM codes (take 2) + + - Clean up initialization and destruction of substream instance + Now snd_pcm_open_substream() alone does most initialization jobs. + Add pcm_release callback for cleaning up at snd_pcm_release_substream() + - Tidy up PCM oss code + + Signed-off-by: Takashi Iwai + +commit bf1bbb5a49eec51c30d341606885507b501b37e8 +Author: Takashi Iwai +Date: Mon Mar 27 16:22:45 2006 +0200 + + [ALSA] Tiny clean up of PCM codes + + - Make snd_pcm_prepare() static + - Clean up snd_pcm_kernel_*_ioctl() functions, reduce exports + + Signed-off-by: Takashi Iwai + +commit 82756b2785c5f08204e7f3dab64e12d4533bfe89 +Author: Rene Herman +Date: Mon Mar 27 13:50:11 2006 +0200 + + [ALSA] ISA drivers bailing on first !enable[i] + + Fix the wrong check of enable option in cmi8330 driver. + + Signed-off-by: Takashi Iwai + +commit 43560116d1f70de274915fdec0745c6e02feef30 +Author: Takashi Iwai +Date: Mon Mar 27 13:45:51 2006 +0200 + + [ALSA] Remove obsolete kfree_nocheck call + + Fixed the compilation, removing obsolete kfree_nocheck() call + for memory debugging. + + Signed-off-by: Takashi Iwai + +commit 10d150e186d069cc7e2075c4823049949933777c +Author: Takashi Iwai +Date: Mon Mar 27 13:42:39 2006 +0200 + + [ALSA] Remove obsolete kfree_nocheck call + + Fixed the compilation, removing obsolete kfree_nocheck() call + for memory debugging. + + Signed-off-by: Takashi Iwai + +commit b3a70d5ece60684c00d7d94ccc42741efdf99336 +Author: Ash Willis +Date: Mon Mar 27 13:20:40 2006 +0200 + + [ALSA] Add snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards + + Added snd-als300 driver for Avance Logic ALS300/ALS300+ soundcards + by Ash Willis. + + Signed-off-by: Takashi Iwai + +commit 109a9638f0fe38915838b7b9acd98e7cfa91797f +Author: Peter Gruber +Date: Mon Mar 27 13:10:28 2006 +0200 + + [ALSA] Add snd-riptide driver for Conexant Riptide chip + + Add snd-riptide driver for Conexant Riptide chip by Peter Gruber. + + Signed-off-by: Takashi Iwai + +commit 2125cad29100f88670a483a2291ffdbeae0cd5fc +Author: Takashi Iwai +Date: Mon Mar 27 12:52:22 2006 +0200 + + [ALSA] hda-codec - Fix noisy output wtih AD1986A 3stack model + + Fixed the noisy output wtih AD1986A 3stack model using 2 channels. + + Signed-off-by: Takashi Iwai + +commit 505cb341ef39c0e75e074d49988a044b66fd4f99 +Author: Takashi Iwai +Date: Mon Mar 27 12:51:52 2006 +0200 + + [ALSA] hda-codec - Fix unsol event initialization at resume of stac92xx + + Fix the re-initialization of unsolicited events at resume of stac92xx codecs. + + Signed-off-by: Takashi Iwai + +commit 675b4e5981941be5e826ada99b86e65e517b84ce +Author: Takashi Iwai +Date: Mon Mar 27 12:46:34 2006 +0200 + + [ALSA] Make CONFIG_SND_CS46XX_NEW_DSP yes as default + + Removed from CONFIG_EXPERIMENTAL from CONFIG_SND_CS46XX_NEW_DSP, and + make default to yes. This option works fine for years. + + Signed-off-by: Takashi Iwai + +commit 1841f613fd2e73f09d3fa2beeccf2f8d978ec2db +Author: Martin Langer +Date: Mon Mar 27 12:41:01 2006 +0200 + + [ALSA] Add snd-miro driver + + Added snd-miro driver for miroSOUND PCM by Martin Langer. + + Signed-off-by: Takashi Iwai + +commit cbac4b0cb62d01cb0aaec7778410b8856f01186b +Author: Takashi Iwai +Date: Mon Mar 27 12:38:07 2006 +0200 + + [ALSA] Cleanup unused argument for snd_power_wait() + + Removed the unused file argument of snd_power_wait(). + + Signed-off-by: Takashi Iwai + +commit 6285ae1df13d55454d3de48504cb97e0cde4ecfa +Author: Alan Horstmann +Date: Fri Mar 24 18:40:09 2006 +0100 + + [ALSA] ice1712 - Fix wrong register value for DMX 6FIRE + + I have just discovered I made an error in the register value set in 'Limit + dmx6fire to 6 dacs' patch (bug1472). The value set should be '2a' not '0a' + as in the original patch, which unintentionally disables the 2nd MPU 401 + UART. + + Signed-off-by: Alan Horstmann + Signed-off-by: Takashi Iwai + +commit c04d092bde6a5dce632dec595f3974a35ed2cc2a +Author: Takashi Iwai +Date: Thu Mar 23 17:11:32 2006 +0100 + + [ALSA] via82xx - Add dxs entry for EPoX EP-8KRAI + + Added the dxs_support entry for EPoX EP-8KRAI (ALSA bug#1423). + + Signed-off-by: Takashi Iwai + +commit c960a03beef8e1bdd26b1658d0ce87902f4a08f2 +Author: Takashi Iwai +Date: Thu Mar 23 17:06:28 2006 +0100 + + [ALSA] hda-codec - Fix VREF level of Mic inputs on STAC92xx codecs + + Fixed VREF level of Mic inputs on STAC92xx codecs (ALSA bug#1953). + + Signed-off-by: Takashi Iwai + +commit d681518a56d25d21d73a421174d189242adc68c7 +Author: Takashi Iwai +Date: Thu Mar 23 16:06:23 2006 +0100 + + [ALSA] Add support of LG LW20 laptop + + Add support of LG LW20 laptop with ALC880 codec (ALSA bug#1572). + + Signed-off-by: Takashi Iwai + +commit b2f51a1cb4e1d72061d7a3f7905affdb7d074fec +Author: Hugh Dickins +Date: Fri Mar 10 21:15:19 2006 +0000 + + [PATCH] pcmcia: fix pcmcia_device_remove oops + + Fix pcmcia_device_remove NULL pointer dereference at shutdown. + + Signed-off-by: Hugh Dickins + Signed-off-by: Dominik Brodowski + +commit 30bac7aa0e3678c79ff00fc9372f34712eeb34fc +Author: Petr Vandrovec +Date: Fri Feb 10 02:04:00 2006 -0800 + + [PATCH] pcmcia: Add support for Possio GCC AKA PCMCIA Siemens MC45 + + This ugly hack add support for Siemens MC45 PCMCIA GPRS card (which is + identical to Possio GCC, and which is offered by one of our local GPRS + providers). Card has unfortunate feature that after poweron oxcf950 chip + is fully powered and works, but attached MC45 modem is powered down :-( + There is a special sequence (which takes 1 sec :-( ) to poweron MC45 (and + after MC45 powers on, it takes more than 2 secs until firmware fully + boots...) which needs to be executed after all powerons. + + I'm really not familiar with PCMCIA subsystem, so I have no idea whether I + should issue request_region() on rest of oxcf950 address range (0-7 is + UART, 8-F are special configuration registers), or how this should be + better integrated with PM system and so on - I just put it in same place + where another hack already lived... + + Card uses 18.432MHz XTAL, so to get it to work you must add lines below to + the /etc/pcmcia/serial.opts. + + case "$MANFID-$FUNCID-$PRODID_1-$PRODID_2-$PRODID_3-$PRODID_4" in + '030c,0003-2-GPRS-CARD--') + SERIAL_OPTS="baud_base 1152000" + ;; + esac + + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Dominik Brodowski + +commit d6ff5a8532b553e4d85ea65c99eaa0794edf5311 +Author: Dominik Brodowski +Date: Sun Feb 5 09:51:34 2006 +0100 + + [PATCH] pcmcia: pseudo device handling update + + If the driver for the primary pseudo device is removed from the device, + the secondary driver must be removed as well -- it cannot exist on its own. + + Signed-off-by: Dominik Brodowski + +commit 9940ec3617fec1db13e589bbc3f37e37878c7683 +Author: Dominik Brodowski +Date: Sun Mar 5 11:04:33 2006 +0100 + + [PATCH] pcmcia: convert DEV_OK to pcmcia_dev_present + + Instead of the DEV_OK macro, drivers should use pcmcia_dev_present(). + + Signed-off-by: Dominik Brodowski + +commit e2d4096365e06b9a3799afbadc28b4519c0b3526 +Author: Dominik Brodowski +Date: Thu Mar 2 00:09:29 2006 +0100 + + [PATCH] pcmcia: use bitfield instead of p_state and state + + Instead of the two status values struct pcmcia_device->p_state and state, + use descriptive bitfields. Most value-checking in drivers was invalid, as + the core now only calls the ->remove() (a.k.a. detach) function in case the + attachement _and_ configuration was successful. + + Signed-off-by: Dominik Brodowski + +commit f6fbe01ac976f3ec618cd5fb71ad9ce2cfa7ab2b +Author: Dominik Brodowski +Date: Fri Jan 20 15:10:23 2006 +0100 + + [PATCH] pcmcia: remove unused p_dev->state flags + + Remove the unused DEV_RELEASE_PENDING flag, and move the DEV_SUSPEND flag + into the p_dev structure, and make use of it at the core level. + + Signed-off-by: Dominik Brodowski + +commit b4c884000a7d3664dd8ad7227241456bd7824d86 +Author: Adrian Bunk +Date: Wed Jan 18 23:53:13 2006 -0800 + + [PATCH] pcmcia: make pcmcia_release_{io,irq} static + + We can now make pcmcia_release_{io,irq} static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Dominik Brodowski + +commit 15b99ac1729503db9e6dc642a50b9b6cb3bf51f9 +Author: Dominik Brodowski +Date: Fri Mar 31 17:26:06 2006 +0200 + + [PATCH] pcmcia: add return value to _config() functions + + Most of the driver initialization isn't done in the .probe function, but in + the internal _config() functions. Make them return a value, so that .probe + can properly report whether the probing of the device succeeded or not. + + Signed-off-by: Dominik Brodowski + +commit fba395eee7d3f342ca739c20f5b3ee635d0420a0 +Author: Dominik Brodowski +Date: Fri Mar 31 17:21:06 2006 +0200 + + [PATCH] pcmcia: remove dev_link_t and client_handle_t indirection + + dev_link_t * and client_handle_t both mean struct pcmcai_device * by now. + Therefore, remove all such indirections. + + Signed-off-by: Dominik Brodowski + +commit fd238232cd0ff4840ae6946bb338502154096d88 +Author: Dominik Brodowski +Date: Sun Mar 5 10:45:09 2006 +0100 + + [PATCH] pcmcia: embed dev_link_t into struct pcmcia_device + + Embed dev_link_t into struct pcmcia_device(), as they basically address the + same entity. The actual contents of dev_link_t will be cleaned up step by step. + This patch includes a bugfix from and signed-off-by Andrew Morton. + + Signed-off-by: Dominik Brodowski + +commit a78f4dd331a4f6a396eb5849656a4a72a70a56d7 +Author: Dominik Brodowski +Date: Sun Jan 15 16:26:00 2006 +0100 + + [PATCH] pcmcia: rename pcmcia_device.state + + Rename pcmcia_device.state (which is used in very few places) to p_state + in order to avoid a namespace collision when moving the deprecated + dev_link_t into struct pcmcia_device + + Signed-off-by: Dominik Brodowski + +commit 70294b468302fd7a0a99dad935c7ba5322989345 +Author: Dominik Brodowski +Date: Sun Jan 15 12:43:16 2006 +0100 + + [PATCH] pcmcia: remove unneeded Vcc pseudo setting + + As we do not allow setting Vcc in the pcmcia core, and Vpp1 and + Vpp2 can only be set to the same value, a lot of code can be + streamlined. + + Signed-off-by: Dominik Brodowski + +commit 4bbed5231468014b500b048d7370a1c6c349231a +Author: Dominik Brodowski +Date: Sun Jan 15 11:18:12 2006 +0100 + + [PATCH] pcmcia: remove export of pcmcia_release_configuration + + Handle the _modifying_ operation sm91c92_cs requires in + pcmcia_modify_configuration, so that the only remaining users + of pcmcia_release_configuration() are within the pcmcia core + module. + + Signed-off-by: Dominik Brodowski + +commit 8661bb5b4af1849c1f5a4e80c4e275fd13c155d6 +Author: Dominik Brodowski +Date: Thu Mar 2 00:02:33 2006 +0100 + + [PATCH] pcmcia: default suspend and resume handling + + In all but one case, the suspend and resume functions of PCMCIA drivers + contain mostly of calls to pcmcia_release_configuration() and + pcmcia_request_configuration(). Therefore, move this code out of the + drivers and into the core. + + Signed-off-by: Dominik Brodowski + +commit 50db3fdbbc98260fb538c1cc3f8cc597ba7bffe7 +Author: Dominik Brodowski +Date: Sun Jan 15 10:05:19 2006 +0100 + + [PATCH] pcmcia: convert remaining users of pcmcia_release_io and _irq + + Convert the remaining drivers which use pcmcia_release_io or + pcmcia_release_irq, and remove the EXPORT of these symbols. + + Signed-off-by: Dominik Brodowski + +commit 5f2a71fcb7995633b335a1e380ac63a968e61320 +Author: Dominik Brodowski +Date: Sun Jan 15 09:32:39 2006 +0100 + + [PATCH] pcmcia: add pcmcia_disable_device + + pcmcia_disable_device(struct pcmcia_device *p_dev) performs the necessary + cleanups upon device or driver removal: it calls the appropriate + pcmcia_release_* functions, and can replace (most) of the current drivers' + _release() functions. + + Signed-off-by: Dominik Brodowski + +commit be9a50c8524b53003e5fa32f072945772ffd13a5 +Author: Tejun Heo +Date: Fri Mar 31 22:48:52 2006 +0900 + + [PATCH] libata: fix ata_xfer_tbl termination + + ata_xfer_tbl is terminated by entry with -1 as ->shift. However, + ->shift was unsigned int making the termination condition bogus. This + patch converts ->shift and ->bits to int. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 8e0e694a3a48212bfe29a9ad3cd592bf68dfec81 +Author: Tejun Heo +Date: Fri Mar 31 20:41:11 2006 +0900 + + [PATCH] libata: make ata_qc_issue complete failed qcs + + There is no reason for the issuer to diddle with a failed qc as the + issuer has complete control over when a qc gets freed (usually in + ->complete_fn). Make ata_qc_issue() responsible for completing qcs + which failed to issue. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit e4a70e76add280db6068426716a9b2a74099144f +Author: Tejun Heo +Date: Fri Mar 31 20:36:47 2006 +0900 + + [PATCH] libata: fix ata_qc_issue failure path + + On sg_err failure path, ata_qc_issue() doesn't mark the qc active + before returning. This triggers WARN_ON() in __ata_qc_complete() when + the qc gets completed. This patch moves ap->active_tag and + QCFLAG_ACTIVE setting to the top of the function. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 79ea24e72e59b5f0951483cc4f357afe9bf7ff89 +Author: Tejun Heo +Date: Fri Mar 31 20:01:50 2006 +0900 + + [PATCH] ata_piix: fix ich6/m_map_db + + MAP tables of ich6 and ich6m are wrong. Depending on port usage, + ata_piix may fail to initialize attached devices. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 1de9cedfbdff1d8adb662cd3afc5bda66e393351 +Author: Domen Puncer +Date: Mon Mar 6 10:25:53 2006 +0100 + + [PATCH] serial_cs: add Merlin U630 IDs + + Add Merlin U630 IDs. + + Signed-off-by: Domen Puncer + Signed-off-by: Dominik Brodowski + +commit 2c1f3b7a30286c16ba151fadb0abf0b20e2a1e45 +Author: Andrew Victor +Date: Tue Feb 21 12:56:52 2006 +0200 + + [PATCH] pcmcia: AT91RM9200 Compact Flash driver + + This patch adds support for the Compact Flash controller integrated in + the Atmel AT91RM9200 processor. + + Signed-off-by: Andrew Victor + +commit 552dc85dfed6b6a74a3a01c4ba277ee09797dd0a +Author: Dominik Brodowski +Date: Wed Mar 1 14:04:52 2006 +0100 + + [PATCH] pcmcia: socket.functions starts with 1 + + socket.functions is the number of functions, and so must be one larger + than the maximum function number. + + Signed-off-by: Dominik Brodowski + +commit 159fe8a8358c7012d4f1fdacfcf69009ea15b52e +Author: Komuro +Date: Sun Feb 5 09:56:59 2006 +0100 + + [PATCH] pcmcia: remove wrong comment in ciscode.h + + Remove misleading comment. + + Signed-off-by: Komuro + Signed-off-by: Dominik Brodowski + +commit 8961b828667e715a96d9d8517f7c8b6552ead3bb +Author: Dominik Brodowski +Date: Sun Jan 15 08:30:40 2006 +0100 + + [PATCH] parport_cs: don't play games with resources + + pcmcia_request_io() doesn't mark the resource as busy in 2.6., therefore + there's no need to work around the registration of the resources into the + resource tree. + + Signed-off-by: Dominik Brodowski + +commit c7d006935dfda9174187aa557e94a137ced10c30 +Author: Dominik Brodowski +Date: Sun Jan 15 08:04:43 2006 +0100 + + [PATCH] pcmcia: remove duplicate fields in io_window_t + + BasePort, NumPorts and Attributes are or can be embedded in + struct resource, so remove them. + + Signed-off-by: Dominik Brodowski + +commit 0e0fad8f71a8a23fad223b7d72b4ba06d57f764f +Author: Dominik Brodowski +Date: Sun Jan 15 01:14:31 2006 +0100 + + [PATCH] pcmcia: size reduction if ioctl isn't compiled + + If the kernel is configured to not include the deprecated PCMCIA ioctl, + some code doesn't need to be built. + + Signed-off-by: Dominik Brodowski + +commit 1540eec5e5549b2e41704ce77f3f4ba880d2434c +Author: Dominik Brodowski +Date: Sun Jan 15 00:51:53 2006 +0100 + + [PATCH] pcmcia: remove pcmcia_compat.c + + Remove the compatibility wrappers, as they can (now) also be implemented + using macros. Please continue using these wrappers instead of new functions + until a new API has stabilized. + + Signed-off-by: Dominik Brodowski + +commit e904663b4d511884145df54bead401840389853a +Author: Dominik Brodowski +Date: Tue Jan 10 21:35:49 2006 +0100 + + [PATCH] pcmcia: remove include of config.h + + Remove the inclusion of include/config.h as it isn't needed any longer. + + Signed-off-by: Dominik Brodowski + +commit 7fe908dd11e0c947bb72baa5b001d7abe5a420d5 +Author: Dominik Brodowski +Date: Tue Jan 10 21:20:36 2006 +0100 + + [PATCH] pcmcia: use mutexes instead of semaphores + + Use mutexes in the PCMICA core, as they suffice for what needs to be done. + Includes a bugfix from and Signed-off-by Andrew Morton. + + Signed-off-by: Dominik Brodowski + +commit cbbddd1046d44d90d31c7f246ed0207117602b89 +Author: Dominik Brodowski +Date: Tue Jan 10 20:54:46 2006 +0100 + + [PATCH] pcmcia: remove unused defines + + Remove unused fields and declarations. + + Signed-off-by: Dominik Brodowski + +commit 360b65b95bae96f854a2413093ee9b79c31203ae +Author: Dominik Brodowski +Date: Tue Jan 10 20:50:39 2006 +0100 + + [PATCH] pcmcia: make config_t independent, add reference counting + + Handle config_t structs independent of struct pcmcia_socket, and add + reference counting for them. + + Signed-off-by: Dominik Brodowski + +commit 855cdf134dfcf2ecb92ac4ad675cf655d8ceb678 +Author: Dominik Brodowski +Date: Tue Jan 10 20:48:59 2006 +0100 + + [PATCH] pcmcia: always use device pointer to config_t + + Update the remaining users using the static lookup table of the PCMCIA + function configuration to use the struct pcmcia_device-contained pointer. + + Signed-off-by: Dominik Brodowski + +commit dbb22f0d65ccc2e9dfeb4c420942f2757a80f8d2 +Author: Dominik Brodowski +Date: Tue Jan 10 20:41:27 2006 +0100 + + [PATCH] pcmcia: access config_t using pointer instead of array + + Access the PCMCIA config_t struct (one per device function) using + a pointer in struct pcmcia_device, instead of looking them up in + an array. + + Signed-off-by: Dominik Brodowski + +commit 1ae9c7d8198ae973da3b927e28d63f294ffa11e3 +Author: Dominik Brodowski +Date: Tue Jan 10 20:40:40 2006 +0100 + + [PATCH] pcmcia: remove unused field Present from config_t + + config_t.Present is set to the same value as CardValues, which isn't modified + anywhere. Therefore, we can use only one of these two objects. + + Signed-off-by: Dominik Brodowski + +commit 6e3d4f25a561d15863ff4868a03780f59ba5ae8c +Author: Janos Farkas +Date: Fri Mar 31 01:04:57 2006 +0200 + + [PATCH] pcmcia: permit single-character identifiers + + For some time, the core pcmcia drivers seem not to think single + character prod_ids are valid, thus preventing the "cleverly" named + + "D" "Link DWL-650 11Mbps WLAN Card" + + Before (as in 2.6.16): + PRODID_1="" + PRODID_2="Link DWL-650 11Mbps WLAN Card" + PRODID_3="Version 01.02" + PRODID_4="" + MANFID=0156,0002 + FUNCID=6 + + After (with the patch) + PRODID_1="D" + PRODID_2="Link DWL-650 11Mbps WLAN Card" + PRODID_3="Version 01.02" + PRODID_4="" + MANFID=0156,0002 + FUNCID=6 + + Signed-off-by: Janos Farkas + Signed-off-by: Dominik Brodowski + +commit 025be81e83043f20538dcced1e12c5f8d152fbdb +Author: Anton Blanchard +Date: Fri Mar 31 02:27:06 2006 -0800 + + [NET]: Allow skb headroom to be overridden + + Previously we added NET_IP_ALIGN so an architecture can override the + padding done to align headers. The next step is to allow the skb + headroom to be overridden. + + We currently always reserve 16 bytes to grow into, meaning all DMAs + start 16 bytes into a cacheline. On ppc64 we really want DMA writes to + start on a cacheline boundary, so we increase that headroom to one + cacheline. + + Signed-off-by: Anton Blanchard + Signed-off-by: David S. Miller + +commit 0803dbed7a23721d091639c9e173c0389dcd524a +Author: David S. Miller +Date: Fri Mar 31 02:25:46 2006 -0800 + + [TCP]: Kill unused extern decl for tcp_v4_hash_connecting() + + Noticed by Alan Menegotto. + + Signed-off-by: David S. Miller + +commit c08e49611a8b4e38a75bf217e1029a48faf10b82 +Author: Andrew Morton +Date: Fri Mar 31 02:09:36 2006 -0800 + + [NET]: add SO_RCVBUF comment + + Put a comment in there explaining why we double the setsockopt() + caller's SO_RCVBUF. People keep wondering. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit a0f067802576d4eb4c65d40b8ee7d6ea3c81dd61 +Author: Jeff Garzik +Date: Thu Mar 30 23:06:13 2006 -0500 + + [PATCH] splice exports + + Woe be unto he who builds their filesystems as modules. + + Signed-off-by: Jeff Garzik + [ Obscure quote from the infamous geek bible? ] + Signed-off-by: Linus Torvalds + +commit 72d2c3e038fb4846e32cf3f6d66ebd1013329986 +Author: Kumar Gala +Date: Thu Mar 30 23:39:57 2006 -0600 + + powerpc: converted embedded platforms to use new define_machine support + + Removed platform_init usage on 83xx and 85xx and use define_machine and + probe(). For now we always return true in the problem since you can only + build for one specific board at a time. This is an artificial constraint. + When we get ride of it we will need to update the Kconfig's for these + sub-arch's and make the board's probe() functions actually do something. + + Signed-off-by: Kumar Gala + +commit 6910ab30a29d10e0fec7710b2ed857a2201e2468 +Author: Steve French +Date: Fri Mar 31 03:37:08 2006 +0000 + + [CIFS] Fix unlink oops when indirectly called in rename error path + under heavy stress. + + Signed-off-by: Steve French + +commit 1a6a4ffef6a405f60b51856725074532c9696ac2 +Author: Kumar Gala +Date: Thu Mar 30 21:11:15 2006 -0600 + + powerpc: merge machine_check_exception between ppc32 & ppc64 + + Make machine_check_exception handling code path the same on ppc32 & ppc64. + + Signed-off-by: Kumar Gala + +commit 1b895840ce93fd2d150a86c800a3085eaab4eb9e +Author: Nathan Scott +Date: Fri Mar 31 13:08:59 2006 +1000 + + [XFS] Provide XFS support for the splice syscall. + + Signed-off-by: Nathan Scott + +commit 3bbcc8e3976f8bba2fd607c8850d7dfe7e332fda +Author: Nathan Scott +Date: Fri Mar 31 13:04:56 2006 +1000 + + [XFS] Reenable write barriers by default. + + SGI-PV: 912426 + SGI-Modid: xfs-linux-melb:xfs-kern:25634a + + Signed-off-by: Nathan Scott + +commit 9a2a7de268f67fea0c450ed3e99a2d31f43d7166 +Author: Nathan Scott +Date: Fri Mar 31 13:04:49 2006 +1000 + + [XFS] Make project quota enforcement return an error code consistent with + its use. + + SGI-PV: 951300 + SGI-Modid: xfs-linux-melb:xfs-kern:25633a + + Signed-off-by: Nathan Scott + +commit 764d1f89a5f2b914bc13b1b8b8920a600a5fba10 +Author: Nathan Scott +Date: Fri Mar 31 13:04:17 2006 +1000 + + [XFS] Implement the silent parameter to fill_super, previously ignored. + + SGI-PV: 951299 + SGI-Modid: xfs-linux-melb:xfs-kern:25632a + + Signed-off-by: Nathan Scott + +commit 4b4fa25ced2d719a06a3a63009bea1cf1fbedd55 +Author: Mandy Kirkconnell +Date: Fri Mar 31 13:03:58 2006 +1000 + + [XFS] Cleanup comment to remove reference to obsoleted function + xfs_bmap_do_search_extents(). + + SGI-PV: 951415 + SGI-Modid: xfs-linux-melb:xfs-kern:208491a + + Signed-off-by: Mandy Kirkconnell + Signed-off-by: Nathan Scott + +commit f19180056ea09ec6a5d32e741234451a1e6eba4d +Author: Zhang, Yanmin +Date: Mon Feb 27 11:37:45 2006 +0800 + + [IA64] Export cpu cache info by sysfs + + The patch exports 8 attributes of cpu cache info under + /sys/devices/system/cpu/cpuX/cache/indexX: + 1) level + 2) type + 3) coherency_line_size + 4) ways_of_associativity + 5) size + 6) shared_cpu_map + 7) attributes + 8) number_of_sets: number_of_sets=size/ways_of_associativity/coherency_line_size. + + Signed-off-by: Zhang Yanmin + Signed-off-by: Tony Luck + +commit 8b316a3973f05e572b4edeeda9072987f6bbaa44 +Author: Jeff Garzik +Date: Thu Mar 30 17:07:32 2006 -0500 + + [libata] ahci: add ATI SB600 PCI IDs + + From: Anatoli Antonovitch + + Signed-off-by: Felix Kuehling + Signed-off-by: Jeff Garzik + +commit 5abc97aa25b2c41413b3a520faee83f2282d9f18 +Author: Jens Axboe +Date: Thu Mar 30 15:16:46 2006 +0200 + + [PATCH] splice: add support for SPLICE_F_MOVE flag + + This enables the caller to migrate pages from one address space page + cache to another. In buzz word marketing, you can do zero-copy file + copies! + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit 5274f052e7b3dbd81935772eb551dfd0325dfa9d +Author: Jens Axboe +Date: Thu Mar 30 15:15:30 2006 +0200 + + [PATCH] Introduce sys_splice() system call + + This adds support for the sys_splice system call. Using a pipe as a + transport, it can connect to files or sockets (latter as output only). + + From the splice.c comments: + + "splice": joining two ropes together by interweaving their strands. + + This is the "extended pipe" functionality, where a pipe is used as + an arbitrary in-memory buffer. Think of a pipe as a small kernel + buffer that you can use to transfer data from one end to the other. + + The traditional unix read/write is extended with a "splice()" operation + that transfers data buffers to or from a pipe buffer. + + Named by Larry McVoy, original implementation from Linus, extended by + Jens to support splicing to files and fixing the initial implementation + bugs. + + Signed-off-by: Jens Axboe + Signed-off-by: Linus Torvalds + +commit cd7a9202a5a6e7712df2b80ed5ebd7b078130fc3 +Author: Kyle McMartin +Date: Thu Mar 30 11:47:32 2006 -0500 + + [PARISC] Fix double free when removing HIL drivers + + On Thu, Mar 30, 2006 at 08:31:02AM -0500, Dmitry Torokhov wrote: + > Don't do that, its double free. input_unregister_device() normally + > causes release() to be called and free the device. input_free_device + > is only to be called when input_register_device has not been called or + > failed. + > + > Plus you might want to unregister device after closing serio port, + > otherwise your interrupt routine might be referencing already freed + > memory. + + Signed-off-by: Kyle McMartin + +commit 4da9f131a74d12de56c44da6d522a9116da06805 +Author: Kyle McMartin +Date: Wed Mar 29 19:47:32 2006 -0500 + + [PARISC] Add atomic_sub_and_test + + Define atomic_sub_and_test to fix build failures. + + Signed-off-by: Kyle McMartin + +commit a2d33807061133c8bb5cf515eec16e6900f26bc6 +Author: Stuart Brady +Date: Wed Mar 29 13:11:25 2006 -0700 + + [PARISC] Enabled some NLS modules in a500, b180 and c3000 defconfigs + + With c3000_defconfig and b180_defconfig, FAT couldn't be used + because no NLS modules were built. + + Signed-off-by: Stuart Brady + Signed-off-by: Kyle McMartin + +commit 8ace5ff0a6d6674a2cf7a58fc573e599f2dd2090 +Author: Kyle McMartin +Date: Wed Mar 29 15:21:12 2006 -0700 + + [PARISC] Kill duplicated EXPORT_SYMBOL warnings + + Some symbols are exported both in parisc_ksyms.c, and at their + definition site. Nuke the redundant EXPORT_SYMBOL in ksyms to quiet + warnings when vmlinux is linked. + + Signed-off-by: Kyle McMartin + +commit d345fd362b1a8b14cc2dacf6a10c28b1962759d3 +Author: Kyle McMartin +Date: Wed Mar 29 15:18:32 2006 -0700 + + [PARISC] Move ioremap EXPORT_SYMBOL from parisc_ksyms.c + + Move ioremap/iounmap EXPORT_SYMBOL to ioremap.c where they belong. + + Signed-off-by: Kyle McMartin + +commit 2746ae14fe55f9483ae94ef89d4495d0eb8ee03d +Author: Kyle McMartin +Date: Wed Mar 29 07:04:49 2006 -0700 + + [PARISC] Make local_t use atomic_long_t + + As done in asm-generic/local.h in mainline. Otherwise local_t was 32-bit + even on a 64-bit kernel. + + Signed-off-by: Kyle McMartin + +commit 6f0b45152d458f86f11e8a601735af1c352e6f6c +Author: Helge Deller +Date: Sun Mar 26 11:19:46 2006 -0700 + + [PARISC] Update defconfigs + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit 50a34dbd612925f2ec55b1781632835ef36b97d5 +Author: Kyle McMartin +Date: Fri Mar 24 21:24:21 2006 -0700 + + [PARISC] Add PREEMPT support + + Signed-off-by: Kyle McMartin + +commit bc8846c522264d2522b0082321ec8c2051a4536f +Author: Kyle McMartin +Date: Fri Mar 24 21:22:02 2006 -0700 + + [PARISC] More useful readwrite lock helpers + + spinlock.c needs _can_lock helpers. Rewrite _is_locked helpers to be + _can_lock helpers. + + Signed-off-by: Kyle McMartin + +commit 102c8c76f787add0790406d5c47e03cb6f8765c2 +Author: Helge Deller +Date: Sun Mar 26 07:41:55 2006 -0700 + + [PARISC] Convert HIL drivers to use input_allocate_device + + Convert HIL drivers to use input_allocate_device() - avoids crashes. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit 10267cdd0c2dee46a3f59d93fbfac7229d416dba +Author: Helge Deller +Date: Sun Mar 26 01:54:16 2006 -0700 + + [PARISC] Fixup CONFIG_EISA a bit + + Fix up some ISA/EISA stuff. + + (Note: isa_ accessors have been removed from asm/io.h) + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit b29eac43023bb1b62081efa878c3cf72cb39c437 +Author: Kyle McMartin +Date: Sun Feb 19 11:02:50 2006 -0700 + + [PARISC] getsockopt should be ENTRY_COMP + + compat_sys_getsockopt exists, so we should use that, instead of directly + using sys_getsockopt on 64-bit compiles. + + Signed-off-by: Kyle McMartin + +commit a41d3862dfd44a1b09a0f6243bb34773061fd9a2 +Author: Helge Deller +Date: Thu Mar 23 01:07:00 2006 -0700 + + [PARISC] Remove obsolete CONFIG_DEBUG_IOREMAP + + Remove CONFIG_DEBUG_IOREMAP, it's now obsolete and won't work anyway. + Remove it from lib/KConfig since it was only available on parisc. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit cb4ab59cd6136f6ad6b3513054ac969fea02dfc6 +Author: Helge Deller +Date: Thu Mar 23 00:40:10 2006 -0700 + + [PARISC] Temporary FIXME for ioremapping EISA regions + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit 29ef8295327653ff09a56285c35213cd31fa54b3 +Author: Helge Deller +Date: Thu Mar 23 00:32:46 2006 -0700 + + [PARISC] Enable ioremap functionality unconditionally + + Enable CONFIG_HPPA_IOREMAP by default and remove all now unnecessary code. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit 857600c77161fd36e30cd6bcca9a0a8676036323 +Author: Helge Deller +Date: Wed Mar 22 15:19:46 2006 -0700 + + [PARISC] Fix stifb with IOREMAP and a 64-bit kernel + + Kill various warnings when built using ioremap. + Remove stifb_{read,write} functions, which are now obsolete (and stack abusers!) + Disable stifb mmap() functionality on a 64-bit kernel, it will crash the + machine. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit b8ce0aadcdebbaf5ec013c57e2a0803060817bcc +Author: Helge Deller +Date: Tue Mar 7 14:12:13 2006 -0700 + + [PARISC] Add CONFIG_HPPA_IOREMAP to conditionally enable ioremap + + Instead of making it a #define in asm/io.h, allow user to select + to turn on IOREMAP from the config menu. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit b31059f7634931a06f6811247ae9217d1a833a46 +Author: Helge Deller +Date: Thu Mar 23 15:48:15 2006 -0700 + + [PARISC] Add STRICT_MM_TYPECHECKS + + Add STRICT_MM_TYPECHECKS to page.h as other architectures do. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit b9e71ac13a71bb435a4146d868080f5389bb906c +Author: Helge Deller +Date: Tue Mar 21 16:01:15 2006 -0700 + + [PARISC] Fix IOREMAP with a 64-bit kernel + + We were only copying 32-bits of the PTE/PFN, not the full 52-bits. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit ba57583396585a1ca509e2a84d970a2ff3f9bbfb +Author: James Bottomley +Date: Wed Mar 22 09:42:04 2006 -0700 + + [PARISC] Add parisc implementation of flush_kernel_dcache_page() + + We need to do a little renaming of our original syntax because + of the difference in arguments. + + Signed-off-by: James Bottomley + Signed-off-by: Kyle McMartin + +commit ab43227c8a568119a3aebc952a95ac3023e1730d +Author: James Bottomley +Date: Wed Mar 22 08:28:59 2006 -0700 + + [PARISC] Add parisc implementation of flush_anon_page() + + This should now allow SG_IO and fuse to function correctly on our + platform. + + Signed-off-by: James Bottomley + Signed-off-by: Kyle McMartin + +commit 5076c15862644edb91d2e3436b2fa3e07b28385d +Author: Helge Deller +Date: Mon Mar 27 12:52:15 2006 -0700 + + [PARISC] I/O-Space must be ioremap_nocache()'d + + Addresses in F-space must be accessed uncached on most parisc machines. + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit 94c3e87a792c70d041954b0ef68ebd22368d0931 +Author: Helge Deller +Date: Tue Mar 7 13:34:45 2006 -0700 + + [PARISC] Enable free_initrd_mem() + + I think it's time to enable free_initrd_mem() again... + + Signed-off-by: Helge Deller + Signed-off-by: Kyle McMartin + +commit a81dd18eb974cc34634c53a6447b2799ec0c3158 +Author: Thibaut VARENE +Date: Fri Feb 3 18:06:30 2006 -0700 + + [PARISC] Clarify pdc_stable license terms + + pdc_stable.c is explicitly licensed under GPL version 2. + + Signed-off-by: Thibaut VARENE + Signed-off-by: Kyle McMartin + +commit c1c57d767100417f63c18da52d7e96f82b2b9e1a +Author: Bjorn Helgaas +Date: Thu Mar 30 09:53:39 2006 -0700 + + [IA64] ioremap() should prefer WB over UC + + efi_memmap_init() collects full granules of WB memory, without + regard for whether they also support UC. So in order for ioremap() + to work for main memory, it must prefer WB mappings when possible. + + Signed-off-by: Bjorn Helgaas + Signed-off-by: Tony Luck + +commit 3283a67d8618c9a292eced23e8753ab64adc6dba +Author: Jes Sorensen +Date: Thu Mar 30 10:13:22 2006 -0500 + + [IA64] Add __mca_table to the DISCARD list in gate.lds + + Add __mca_table to the DISCARD list for the gate.lds linker script to + avoid broken linker references when linking the final vmlinux file. + + Also add comment to include/asm-ia64/asmmacros.h to avoid anyone else + hitting this problem in the future. + + Credits to James Bottomley for spotting + the DISCARD list in gate.lds.S + + Signed-off-by: Jes Sorensen + Signed-off-by: Tony Luck + +commit 618a3c03fcfdf1ac4543247c8ddfb0c9d775ff33 +Author: Hal Rosenstock +Date: Tue Mar 28 16:40:04 2006 -0800 + + IB/mad: RMPP support for additional classes + + Add RMPP support for additional management classes that support it. + Also, validate RMPP is consistent with management class specified. + + Signed-off-by: Hal Rosenstock + Signed-off-by: Sean Hefty + Signed-off-by: Roland Dreier + +commit fa9656bbd9af5b95adc43eaa0a143992346378cb +Author: Jack Morgenstein +Date: Tue Mar 28 16:39:07 2006 -0800 + + IB/mad: include GID/class when matching receives + + Received responses are currently matched against sent requests based + on TID only. According to the spec, responses should match based on + the combination of TID, management class, and requester LID/GID. + + Without the additional qualification, an agent that is responding to + two requests, both of which have the same TID, can match RMPP ACKs + with the incorrect transaction. This problem can occur on the SM node + when responding to SA queries. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Sean Hefty + Signed-off-by: Roland Dreier + +commit cc3d48db75235adf0ae37d3287f6f9e14657d1ae +Author: Lennert Buytenhek +Date: Thu Mar 30 10:51:44 2006 +0100 + + [ARM] 3424/2: ixp23xx: fix uncompress.h for recent CRLF decompressor change + + Patch from Lennert Buytenhek + + Adapt ixp23xx uncompress.h to a081568d7016061ed848696984e3acf1ba0b3054. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit fd88dd740ad7b92cd399b6116dfa9486b36ffaff +Author: Marc-Andre Hebert +Date: Thu Mar 30 10:24:08 2006 +0100 + + [ARM] 3434/1: pxa i2s amsl define + + Patch from Marc-Andre Hebert + + The error concerns a bit mask define for the AMSL bit of the SACR1 register in the 2.6 kernel tree. The AMSL is bit 0 and it was defined as so in the 2.4 kernel tree but it is inccorrectly set as bit 1 (a reserved bit) in the 2.6 kernel tree. + + Signed-off-by: Marc-Andre Hebert + Signed-off-by: Russell King + +commit b48340aff031db98dbd34a4bbc575eec9bb78359 +Author: Lennert Buytenhek +Date: Thu Mar 30 10:24:07 2006 +0100 + + [ARM] 3425/1: xsc3: need to include pgtable-hwdef.h + + Patch from Lennert Buytenhek + + Adapt xsc3 to the changes in 74945c8616a50074277e18641baaae7464006766 + (xsc3 was written before but merged after the latter went in.) + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit d53ace70052b5c0a08a4f92993c0614f84920abf +Author: Russell King +Date: Wed Mar 29 09:42:43 2006 +0100 + + [ARM] Allow un-muxed syscalls to be available for everyone + + It's been a while since the un-muxed socket and ipc syscalls were + introduced, so make the unistd.h number definitions visible for + non-EABI as well as EABI. + + Signed-off-by: Russell King + +commit 63af2a5c5990d95f1e7d8795f1425fb976ea2b4b +Author: Mark Lord +Date: Wed Mar 29 09:50:31 2006 -0500 + + [PATCH] sata_mv: three bug fixes + + (1) A DMA transfer size of 0x10000 was not being written + as 0x0000 in the PRDs. Fixed. + + (1) The DEV_IRQ interrupt cause bit happens spuriously + during EDMA operation, and was not being ignored by the driver. + This led to various "drive busy" errors being reported, + with associated unpredictable behaviour. Fixed. + + (2) If a SATA or PCI interrupt was received with no outstanding + command, the interrupt handler still attempted to invoke + ata_qc_complete(), triggering assert()/BUG_ON() behaviour + elsewhere in libata. Fixed. + + The driver still has issues with confusion after error-recovery, + but should now be reliable in the absence of drive errors. + I will be looking more into the error-handling bugs next. + + Signed-Off-By: Mark Lord + + Signed-off-by: Jeff Garzik + +commit 00b6f5e9e04b2186a71a5892640bb2d8e09a030e +Author: Albert Lee +Date: Mon Mar 27 16:39:18 2006 +0800 + + [PATCH] libata: ata_dev_init_params() fixes + + ata_dev_init_params() fixes: + - Get the "heads" and "sectors" parameters from caller instead of implicitly from dev->id[]. + - Return AC_ERR_INVALID instead of 0 if an invalid parameter is found + + Signed-off-by: Albert Lee + Signed-off-by: Jeff Garzik + +commit 17efc5f7237995295cbe008828788d187fea3c88 +Author: Alan Cox +Date: Mon Mar 27 19:01:32 2006 +0100 + + [PATCH] libata: Fix interesting use of "extern" and also some bracketing + + Signed-off-by: Alan Cox + + Last of the set, just clean up some oddments. Assuming the whole set is + now ok then the remaining differences are the setup of PIO_0 at reset + and the ->data_xfer method. + Signed-off-by: Jeff Garzik + +commit 5444a6f405618706eddbe1605ef8533b1b655764 +Author: Alan Cox +Date: Mon Mar 27 18:58:20 2006 +0100 + + [PATCH] libata: Simplex and other mode filtering logic + + Add a field to the host_set called 'flags' (was host_set_flags changed + to suit Jeff) + Add a simplex_claimed field so we can remember who owns the DMA channel + Add a ->mode_filter() hook to allow drivers to filter modes + Add docs for mode_filter and set_mode + Filter according to simplex state + Filter cable in core + + This provides the needed framework to support all the mode rules found + in the PATA world. The simplex filter deals with 'to spec' simplex DMA + systems found in older chips. The cable filter avoids duplicating the + same rules in each chip driver with PATA. Finally the mode filter is + neccessary because drive/chip combinations have errata that forbid + certain modes with some drives or types of ATA object. + + Drive speed setup remains per channel for now and the filters now use + the framework Tejun put into place which cleans them up a lot from the + older libata-pata patches. + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 692785e798f341c057ff976c35a3d86ad5af8ac6 +Author: Alan Cox +Date: Mon Mar 27 18:49:19 2006 +0100 + + [PATCH] libata - ATA is both ATA and CFA + + I think this is still needed with the new probe code (which btw seems to + be missing docs in upstream ?). + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit e35a9e01f2a504871e70576a9e11dbe4d8dee456 +Author: Alan Cox +Date: Mon Mar 27 18:46:37 2006 +0100 + + [PATCH] libata: Add ->set_mode hook for odd drivers + + Some hardware doesn't want the usual mode setup logic running. This + allows the hardware driver to replace it for special cases in the least + invasive way possible. + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 4e5ec5dba22ea509b1a004f9815751f0ffc815e5 +Author: Alan Cox +Date: Mon Mar 27 18:42:40 2006 +0100 + + [PATCH] libata: BMDMA handling updates + + This is the minimal patch set to enable the current code to be used with + a controller following SFF (ie any PATA and early SATA controllers) + safely without crashes if there is no BMDMA area or if BMDMA is not + assigned by the BIOS for some reason. + + Simplex status is recorded but not acted upon in this change, this isn't + a problem with the current drivers as none of them are for simplex + hardware. A following diff will deal with that. + + The flags in the probe structure remain ->host_set_flags although Jeff + asked me to rename them, simply because the rename would break the usual + Linux rules that old code should break when there are changes. not + compile and run and then blow up/eat your computer/etc. Renaming this + later is a trivial exercise once a better name is chosen. + + Signed-off-by: Jeff Garzik + +commit 56079431b6ba163df8ba26b3eccc82379f0c0ce4 +Author: Denis Vlasenko +Date: Wed Mar 29 15:57:29 2006 -0800 + + [NET]: Deinline some larger functions from netdevice.h + + On a allyesconfig'ured kernel: + + Size Uses Wasted Name and definition + ===== ==== ====== ================================================ + 95 162 12075 netif_wake_queue include/linux/netdevice.h + 129 86 9265 dev_kfree_skb_any include/linux/netdevice.h + 127 56 5885 netif_device_attach include/linux/netdevice.h + 73 86 4505 dev_kfree_skb_irq include/linux/netdevice.h + 46 60 1534 netif_device_detach include/linux/netdevice.h + 119 16 1485 __netif_rx_schedule include/linux/netdevice.h + 143 5 492 netif_rx_schedule include/linux/netdevice.h + 81 7 366 netif_schedule include/linux/netdevice.h + + netif_wake_queue is big because __netif_schedule is a big inline: + + static inline void __netif_schedule(struct net_device *dev) + { + if (!test_and_set_bit(__LINK_STATE_SCHED, &dev->state)) { + unsigned long flags; + struct softnet_data *sd; + + local_irq_save(flags); + sd = &__get_cpu_var(softnet_data); + dev->next_sched = sd->output_queue; + sd->output_queue = dev; + raise_softirq_irqoff(NET_TX_SOFTIRQ); + local_irq_restore(flags); + } + } + + static inline void netif_wake_queue(struct net_device *dev) + { + #ifdef CONFIG_NETPOLL_TRAP + if (netpoll_trap()) + return; + #endif + if (test_and_clear_bit(__LINK_STATE_XOFF, &dev->state)) + __netif_schedule(dev); + } + + By de-inlining __netif_schedule we are saving a lot of text + at each callsite of netif_wake_queue and netif_schedule. + __netif_rx_schedule is also big, and it makes more sense to keep + both of them out of line. + + Patch also deinlines dev_kfree_skb_any. We can deinline dev_kfree_skb_irq + instead... oh well. + + netif_device_attach/detach are not hot paths, we can deinline them too. + + Signed-off-by: Denis Vlasenko + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 5d4fe2c1ce83c3e967ccc1ba3d580c1a5603a866 +Author: Lennert Buytenhek +Date: Wed Mar 29 15:12:44 2006 +0200 + + [PATCH] ixp2000: fix gcc4 breakage + + gcc4 doesn't like us declaring a static function inside another + function. We can do away with this construct altogether and use + BUILD_BUG_ON() instead (idea from Andi Kleen.) + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Jeff Garzik + +commit 391fc09a143aac08d1a3dc37b60238612b504ad3 +Author: Gary Zambrano +Date: Tue Mar 28 14:57:38 2006 -0800 + + [PATCH] b44: ensure valid mac addr + + Added code to check for invalid MAC address from eeprom or user input. + + Signed-off-by: Gary Zambrano + Signed-off-by: Jeff Garzik + +commit bc0e1fc970279c539db1e94dd473acbb193ee473 +Author: Linas Vepstas +Date: Tue Mar 28 16:36:23 2006 -0600 + + [PATCH] Janitor: drivers/net/pcnet32: fix incorrect comments + + The comments concerning how the pcnet32 ethernet device driver selects + the MAC addr to use are incorrect. A recent patch (in the last 3 months) + changed how the code worked, but did not change the comments. + + Side comment: the new behaviour is good; I've got a pcnet32 card which + powers up with garbage in the CSR's, and a good MAC addr in the PROM. + + Signed-off-by: Linas Vepstas + Signed-off-by: Jeff Garzik + +commit 8a91ed60f58451342a25f3ab4484c7257430aa8e +Author: Arthur Othieno +Date: Tue Mar 28 14:09:01 2006 -0800 + + [PATCH] net: remove CONFIG_NET_CBUS conditional for NS8390 + + Don't bother testing for CONFIG_NET_CBUS ("NEC PC-9800 C-bus cards"); it went + out with the rest of PC98 subarch. + + Signed-off-by: Arthur Othieno + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit a8b4cf42cf57e44e3c4a585e0f0a71e3a7efbf29 +Author: Mark Brown +Date: Tue Mar 28 14:08:55 2006 -0800 + + [PATCH] natsemi: Support oversized EEPROMs + + The natsemi chip can have a larger EEPROM attached than it itself uses for + configuration. This patch adds support for user space access to such an + EEPROM. + + Signed-off-by: Mark Brown + Cc: Tim Hockin + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 8dfc914a3f2ae4e303e2bff89f28fc14cee8a9a6 +Author: Jens Osterkamp +Date: Mon Mar 27 17:16:36 2006 +0200 + + [PATCH] spidernet : enable tx checksum offloading by default + + This enables TX checksum offloading for the spidernet driver by default. + + Signed-off-by: Jens Osterkamp + Signed-off-by: Jeff Garzik + +commit ff59c4563a8d1b39597aab4917959146c61f09b0 +Author: Jay Vosburgh +Date: Mon Mar 27 13:27:43 2006 -0800 + + [PATCH] bonding: support carrier state for master + + Add support for the bonding master to specify its carrier state + based upon the state of the slaves. For 802.3ad, the bond is up if + there is an active, parterned aggregator. For other modes, the bond is + up if any slaves are up. Updates driver version to 3.0.3. + + Based on a patch by jamal . + + Signed-off-by: Jay Vosburgh + Signed-off-by: Jeff Garzik + +commit 8a89334caf80bb7c86383b73fd5a528cb88c696f +Author: Randy Dunlap +Date: Mon Mar 27 12:26:12 2006 -0800 + + [PATCH] acenic: fix section mismatches + + Fix section mismatches in acenic driver: + WARNING: drivers/net/acenic.o - Section mismatch: reference to .init.data:tigon2FwText from .text between 'acenic_probe_one' (at offset 0x2409) and 'ace_interrupt' + WARNING: drivers/net/acenic.o - Section mismatch: reference to .init.data:tigon2FwRodata from .text between 'acenic_probe_one' (at offset 0x2422) and 'ace_interrupt' + + Signed-off-by: Randy Dunlap + Signed-off-by: Jeff Garzik + +commit 4e5077b62b1f67fe0df916e387da4a6dabe577e9 +Author: Jens Osterkamp +Date: Tue Mar 28 15:59:55 2006 +0200 + + [PATCH] spidernet : reduce console spam + + This patch reduces the message level of the RX ram full messages + from err to debug to prevent spamming the console leaving it in the + logfiles though. + + From: Jens Osterkamp + + Signed-off-by: Jeff Garzik + +commit 00b428c2ab35c81905b3e39d673689216dbd4742 +Author: Roger Luethi +Date: Tue Mar 28 20:53:56 2006 +0200 + + [PATCH] via-rhine: link state fix + + Problems with link state detection have been reported several times in the + past months. + + Denis Vlasenko did all the work tracking it down. Jeff Garzik suggested the + proper place for the fix. + + When using the mii library, the driver needs to check mii->force_media + and set dev->state accordingly. + + Signed-off-by: Roger Luethi + Signed-off-by: Jeff Garzik + +commit b8ab2dc3e1a7c525ca73ba0af3518ec0b7654b3b +Author: Komuro +Date: Sun Mar 26 07:31:55 2006 +0900 + + [PATCH] axnet_cs.c : add hardware multicast support + + + Signed-off-by: Jeff Garzik + +commit 05c8e0ac5c37e9739a852b526afeecae97607cbb +Author: Tejun Heo +Date: Sat Mar 25 14:28:57 2006 +0900 + + [PATCH] libata: kill trailing whitespace + + Kill trailing whitespace. + + Signed-off-by: Jeff Garzik + +commit 5c5131297db57b501f371ab53c40343eac6f2af7 +Author: Gary Zambrano +Date: Wed Mar 29 17:12:05 2006 -0500 + + b44: fix force mac address before ifconfig up + + Initializing the b44 MAC & PCI functional blocks in the controller must + occur inside init_one(). This will allow access to the MAC registers. + The controller was being powered up in b44_open() which would not allow + access to the registers before ifconfig was up. + Philip Kohlbecher found this bug. + + Signed-off-by: Gary Zambrano + +commit 68907dad58cd7ef11536e1db6baeb98b20af91b2 +Author: Randy Dunlap +Date: Wed Mar 29 13:58:25 2006 -0800 + + [DCCP]: Use NULL for pointers, comfort sparse. + + From: Randy Dunlap + + Use NULL instead of 0 for pointers. + Fix these sparse warnings: + net/dccp/feat.c:207:20: warning: Using plain integer as NULL pointer + net/dccp/feat.c:325:21: warning: Using plain integer as NULL pointer + net/dccp/feat.c:526:20: warning: Using plain integer as NULL pointer + + Signed-off-by: Randy Dunlap + Signed-off-by: David S. Miller + +commit 6a57b2ee4506bb8a3d2f7ba2f62ff65ec56ba150 +Author: Patrick Caulfield +Date: Wed Mar 29 13:57:31 2006 -0800 + + [DECNET]: Fix refcount + + From: Patrick Caulfield + + This patch fixes a bug in the reference counting for the default + DECnet device. + + If the device is changed, then the new device had its refcount + decremented rather than the old one! + + Signed-off-by: David S. Miller + +commit 0cff260a42c051ee64c184ed05d96d18d243f7f6 +Author: Russell King +Date: Wed Mar 29 22:03:38 2006 +0100 + + [SERIAL] Allow 8250 PCI, PNP, GSC and HP300 support to be disabled + + Allow the 8250 probe modules to be disabled if we're building for + with EMBEDDED enabled. This reduces the kernel size by not including + unnecessary probe module support. + + Original idea from Matt Mackall for PCI only, expanded to others by + rmk. + + Signed-off-by: Russell King + +commit d89cfe7f1e82d758a7983584c1593795d4e2c098 +Author: Russ Anderson +Date: Wed Mar 29 11:31:23 2006 -0600 + + [IA64] Move __mca_table out of the __init section + + Move __mca_table out of the __init section. + + Signed-off-by: Tony Luck + +commit e1f7868c80947d40ef8e1fd37323d939a9bf311c +Author: Roland Dreier +Date: Wed Mar 29 09:36:46 2006 -0800 + + IB/mthca: Fix section mismatch problems + + Quite a few cleanup functions in mthca were marked as __devexit. + However, they could also be called from error paths during + initialization, so they cannot be marked that way. Just delete all of + the incorrect annotations. + + Signed-off-by: Roland Dreier + +commit ef12d4561900d4af37f46a8f2d97dec3c4d59bf9 +Author: Roland Dreier +Date: Wed Mar 29 09:36:46 2006 -0800 + + IPoIB: Fix oops with raw sockets + + ipoib_hard_header() needs to handle the case that daddr is NULL. This + can happen when packets are injected via a raw socket, and IPoIB + shouldn't oops in this case. + + Reported by Anton Blanchard + + Signed-off-by: Roland Dreier + +commit a07bacca7b4032dd361ad5c87b1c39ae229e6739 +Author: Jack Morgenstein +Date: Sun Mar 26 17:01:12 2006 +0200 + + IB/mthca: Fix check of size in SRQ creation + + The previous patch for Tavor broke MemFree logic. + + The driver should perform limit check only for Tavor. For MemFree, + the check is incorrect, since ds (WQE stride) is always a power-of-2 + (although the max_desc_size may not be). + + In Tavor, however, WQE stride and desc_size are the same, and are not + necessarily power-of-2. The check was really for the WQE stride (and + it Tavor, we use max_desc_size for the stride). + + Signed-off-by: Jack Morgenstein + Signed-off-by: Roland Dreier + +commit 3f89f834497c0f37f16a3b6c32b1d60782facbca +Author: Roland Dreier +Date: Wed Mar 29 09:36:45 2006 -0800 + + IB/srp: Fix unmapping of fake scatterlist + + The recently merged patch to create a fake scatterlist for non-SG SCSI + commands had a bug: the driver ended up doing dma_unmap_sg() on a + scatterlist scmnd->request_buffer rather than the fake scatter list it + created. Fix this so that the driver unmaps the same thing it maps. + + Signed-off-by: Roland Dreier + +commit c65631781eb0f2e81865017c1484e9aef76e1b61 +Author: Russell King +Date: Wed Mar 29 09:30:20 2006 +0100 + + [MMC] Pass -DDEBUG on compiler command line if MMC_DEBUG selected + + Rather than each driver test MMC_DEBUG itself, and define DEBUG, + pass it in via the makefile instead. + + Fix drivers to use pr_debug() where appropriate, and avoid defining + a DEBUG() macro. + + Signed-off-by: Russell King + +commit 730c9b7e6630f786fcec026fb11d2e6f2c90fdcb +Author: Carlos Aguiar +Date: Wed Mar 29 09:21:00 2006 +0100 + + [MMC] Add OMAP MMC host driver + + Adds OMAP MMC driver. + + Signed-off-by: Juha Yrjölä + Signed-off-by: Tony Lindgren + Signed-off-by: Carlos Aguiar + Signed-off-by: Russell King + +commit 87c32271380e630955de365656f67b0a54b75b19 +Author: Dave Jones +Date: Wed Mar 29 01:48:37 2006 -0500 + + [CPUFREQ] trailing whitespace removal de-jour. + + Signed-off-by: Dave Jones + +commit 1f8b2c9d38c132e79e18cc726cf7a40ebdcb56d9 +Author: Dave Jones +Date: Wed Mar 29 01:40:04 2006 -0500 + + [CPUFREQ] extra debugging in cpufreq_add_dev() + + Snipped from an otherwise rejected patch by Jan Beulich + Signed-off-by: Dave Jones + +commit 15e812ad849e142e3dfc984d33c4d8042389f148 +Author: Anton Blanchard +Date: Mon Mar 27 12:00:45 2006 +1100 + + [PATCH] powerpc: Remove oprofile spinlock backtrace code + + Remove oprofile spinlock backtrace code now we have proper calltrace + support. Also make MMCRA sihv and sipr bits a variable since they may + change in future cpus. Finally, MMCRA should be a 64bit quantity. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit fa465f8c7008c6cab32b05f3f1af57f7c86e8873 +Author: Anton Blanchard +Date: Mon Mar 27 12:03:17 2006 +1100 + + [PATCH] powerpc: Add oprofile calltrace support to all powerpc cpus + + Add calltrace support for other powerpc cpus. Tested on 7450. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 6c6bd754bf43d59756f094de144ecac239629dda +Author: Brian Rogan +Date: Mon Mar 27 11:57:01 2006 +1100 + + [PATCH] powerpc: Add oprofile calltrace support + + Add oprofile calltrace support to powerpc. Disable spinlock backtracing + now we can use calltrace info. + + (Updated to work on both 32bit and 64bit by me). + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit b848e0a07dd5a874821bb587bb724fac4aa45bad +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 14:50:52 2006 -0800 + + [PATCH] for_each_possible_cpu: ppc + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 0e5519548fdc8eadc3eacb49b1908d44d347fb2b +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 14:50:51 2006 -0800 + + [PATCH] for_each_possible_cpu: powerpc + + for_each_cpu() actually iterates across all possible CPUs. We've had mistakes + in the past where people were using for_each_cpu() where they should have been + iterating across only online or present CPUs. This is inefficient and + possibly buggy. + + We're renaming for_each_cpu() to for_each_possible_cpu() to avoid this in the + future. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit bab70a4af737f623de5b034976a311055308ab86 +Author: Eugene Surovegin +Date: Tue Mar 28 10:13:12 2006 -0800 + + [PATCH] lock PTE before updating it in 440/BookE page fault handler + + Fix 44x and BookE page fault handler to correctly lock PTE before + trying to pte_update() it, otherwise this PTE might be swapped out + after pte_present() check but before pte_uptdate() call, resulting in + corrupted PTE. This can happen with enabled preemption and low memory + condition. + + Signed-off-by: Eugene Surovegin + Signed-off-by: Paul Mackerras + +commit 547679087bc60277d11b11631d826895762c4505 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:30 2006 -0800 + + [PATCH] send_sigqueue: simplify and fix the race + + send_sigqueue() checks PF_EXITING, then locks p->sighand->siglock. This is + unsafe: 'p' can exit in between and set ->sighand = NULL. The race is + theoretical, the window is tiny and irqs are disabled by the caller, so I + don't think we need the fix for -stable tree. + + Convert send_sigqueue() to use lock_task_sighand() helper. + + Also, delete 'p->flags & PF_EXITING' re-check, it is unneeded and the + comment is wrong. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a1d5e21e3e388fb2c16463d007e788b1e41b74f1 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:29 2006 -0800 + + [PATCH] do_notify_parent_cldstop: remove 'to_self' param + + The previous patch has changed callsites of do_notify_parent_cldstop() so that + to_self == (->ptrace & PT_PTRACED) always (as it should be). We can remove + this parameter now. + + Signed-off-by: Oleg Nesterov + Cc: john stultz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 883606a7c9e84e206f96c38f88c4bd66df72f51e +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:28 2006 -0800 + + [PATCH] finish_stop: don't check stop_count < 0 + + Remove an obscure 'stop_count < 0' check in finish_stop(). The previous patch + made this case impossible. + + Signed-off-by: Oleg Nesterov + Cc: john stultz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dac27f4a09c274db048e80d2511102e540ac9e3a +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:28 2006 -0800 + + [PATCH] simplify do_signal_stop() + + do_signal_stop() considers 'thread_group_empty()' as a special case. + This was needed to avoid taking tasklist_lock. Since this lock is + unneeded any longer, we can remove this special case and simplify + the code even more. + + Also, before this patch, finish_stop() was called with stop_count == -1 + for 'thread_group_empty()' case. This is not strictly wrong, but confusing + and unneeded. + + Signed-off-by: Oleg Nesterov + Cc: john stultz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a7e5328a06a2beee3a2bbfaf87ce2a7bbe937de1 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:27 2006 -0800 + + [PATCH] cleanup __exit_signal->cleanup_sighand path + + Move 'tsk->sighand = NULL' from cleanup_sighand() to __exit_signal(). This + makes the exit path more understandable and allows us to do + cleanup_sighand() outside of ->siglock protected section. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4a2c7a7837da1b91468e50426066d988050e4d56 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:26 2006 -0800 + + [PATCH] make fork() atomic wrt pgrp/session signals + + Eric W. Biederman wrote: + > + > Ok. SUSV3/Posix is clear, fork is atomic with respect + > to signals. Either a signal comes before or after a + > fork but not during. (See the rationale section). + > http://www.opengroup.org/onlinepubs/000095399/functions/fork.html + > + > The tasklist_lock does not stop forks from adding to a process + > group. The forks stall while the tasklist_lock is held, but a fork + > that began before we grabbed the tasklist_lock simply completes + > afterwards, and the child does not receive the signal. + + This also means that SIGSTOP or sig_kernel_coredump() signal can't + be delivered to pgrp/session reliably. + + With this patch copy_process() returns -ERESTARTNOINTR when it + detects a pending signal, fork() will be restarted transparently + after handling the signals. + + This patch also deletes now unneeded "group_stop_count > 0" check, + copy_process() can no longer succeed while group stop in progress. + + Signed-off-by: Oleg Nesterov + Acked-By: Eric Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 47e65328a7b1cdfc4e3102e50d60faf94ebba7d3 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:25 2006 -0800 + + [PATCH] pids: kill PIDTYPE_TGID + + This patch kills PIDTYPE_TGID pid_type thus saving one hash table in + kernel/pid.c and speeding up subthreads create/destroy a bit. It is also a + preparation for the further tref/pids rework. + + This patch adds 'struct list_head thread_group' to 'struct task_struct' + instead. + + We don't detach group leader from PIDTYPE_PID namespace until another + thread inherits it's ->pid == ->tgid, so we are safe wrt premature + free_pidmap(->tgid) call. + + Currently there are no users of find_task_by_pid_type(PIDTYPE_TGID). + Should the need arise, we can use find_task_by_pid()->group_leader. + + Signed-off-by: Oleg Nesterov + Acked-By: Eric Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 88531f725bd52e37a7be726860e4ff3f09031d89 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:24 2006 -0800 + + [PATCH] do_sigaction: don't take tasklist_lock + + do_sigaction() does not need tasklist_lock anymore, we can simplify the code. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aacc90944d4b1f2fcec73a8127eb60a3a701ce1c +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:23 2006 -0800 + + [PATCH] do_group_exit: don't take tasklist_lock + + do_group_exit() takes tasklist_lock for zap_other_threads(), this is unneeded + now. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a122b341b74c08020f6521b615acca6a692aac79 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:22 2006 -0800 + + [PATCH] do_signal_stop: don't take tasklist_lock + + do_signal_stop() does not need tasklist_lock anymore. So it does not need to + do misc re-checks, and we can simplify the code. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6108ccd3e2f3012d5eec582e0af4d75e693824da +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:22 2006 -0800 + + [PATCH] relax sig_needs_tasklist() + + handle_stop_signal() does not need tasklist_lock for SIG_KERNEL_STOP_MASK + signals anymore. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7d7185c818925ba5fe90efa75840d0b415032774 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:21 2006 -0800 + + [PATCH] sys_times: don't take tasklist_lock + + sys_times: don't take tasklist_lock + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5876700cd399112ecfa70df36203c8c6660d84f8 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:20 2006 -0800 + + [PATCH] do __unhash_process() under ->siglock + + This patch moves __unhash_process() call from realease_task() to + __exit_signal(), so __detach_pid() is called with ->siglock held. + + This means we don't need tasklist_lock to iterate over thread group anymore: + + copy_process() was already changed to do attach_pid() + under ->siglock. + + Eric's "pidhash-kill-switch_exec_pids.patch" from -mm + changed de_thread() so it doesn't touch PIDTYPE_TGID. + + NOTE: de_thread() still needs some attention. It still changes task->pid + lockless. Taking ->sighand.siglock here allows to do more tasklist_lock + removals. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 35f5cad8c4bab94ecc5acdc4055df5ea12dc76f8 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:19 2006 -0800 + + [PATCH] revert "Optimize sys_times for a single thread process" + + This patch reverts 'CONFIG_SMP && thread_group_empty()' optimization in + sys_times(). The reason is that the next patch breaks memory ordering which + is needed for that optimization. + + tasklist_lock in sys_times() will be eliminated completely by further patch. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a14c5c9da0b4c34b5be783403c54f0396fcfe77 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:18 2006 -0800 + + [PATCH] move __exit_signal() to kernel/exit.c + + __exit_signal() is private to release_task() now. I think it is better to + make it static in kernel/exit.c and export flush_sigqueue() instead - this + function is much more simple and straightforward. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c81addc9d3a0ebff2155e0cd86f90820ab97147e +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:17 2006 -0800 + + [PATCH] rename __exit_sighand to cleanup_sighand + + Cosmetic, rename __exit_sighand to cleanup_sighand and move it close to + copy_sighand(). + + This matches copy_signal/cleanup_signal naming, and I think it is easier to + follow. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Acked-by: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 29ff471234d53c7235db287bc52f91884c2977c6 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:17 2006 -0800 + + [PATCH] cleanup __exit_signal() + + This patch factors out duplicated code under 'if' branches. Also, BUG_ON() + conversions and whitespace cleanups. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Acked-by: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6b3934ef52712ece50605dfc72e55d00c580831a +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:16 2006 -0800 + + [PATCH] copy_process: cleanup bad_fork_cleanup_signal + + __exit_signal() does important cleanups atomically under ->siglock. It is + also called from copy_process's error path. This is not good, for example we + can't move __unhash_process() under ->siglock for that reason. + + We should not mix these 2 paths, just look at ugly 'if (p->sighand)' under + 'bad_fork_cleanup_sighand:' label. For copy_process() case it is sufficient + to just backout copy_signal(), nothing more. + + Again, nobody can see this task yet. For CLONE_THREAD case we just decrement + signal->count, otherwise nobody can see this ->signal and we can free it + lockless. + + This patch assumes it is safe to do exit_thread_group_keys() without + tasklist_lock. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Acked-by: David Howells + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7001510d0cbf51ad202dd2d0744f54104285cbb9 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:14 2006 -0800 + + [PATCH] copy_process: cleanup bad_fork_cleanup_sighand + + The only caller of exit_sighand(tsk) is copy_process's error path. We can + call __exit_sighand() directly and kill exit_sighand(). + + This 'tsk' was not yet registered in pid_hash[] or init_task.tasks, it has no + external references, nobody can see it, and + + IF (clone_flags & CLONE_SIGHAND) + At least 'current' has a reference to ->sighand, this + means atomic_dec_and_test(sighand->count) can't be true. + + ELSE + Nobody can see this ->sighand, this means we can free it + without any locking. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Acked-by: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a9e88e84b5245da0a1dadb6ccca70ae84e93ccf6 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:14 2006 -0800 + + [PATCH] introduce sig_needs_tasklist() helper + + In my opinion this patch cleans up the code. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f63ee72e0fb82e504a0489490babc7612c7cd6c2 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:13 2006 -0800 + + [PATCH] introduce lock_task_sighand() helper + + Add lock_task_sighand() helper and converts group_send_sig_info() to use + it. Hopefully we will have more users soon. + + This patch also removes '!sighand->count' and '!p->usage' checks, I think + they both are bogus, racy and unneeded (but probably it makes sense to + restore them as BUG_ON()s). + + ->sighand is cleared and it's ->count is decremented in release_task() with + sighand->siglock held, so it is a bug to have '!p->usage || !->count' after + we already locked and verified it is the same. On the other hand, an + already dead task without ->sighand can have a non-zero ->usage due to + ptrace, for example. + + If we read the stale value of ->sighand we must see the change after + spin_lock(), because that change was done while holding that same old + ->sighand.siglock. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aa1757f90bea3f598b6e5d04d922a6a60200f1da +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:12 2006 -0800 + + [PATCH] convert sighand_cache to use SLAB_DESTROY_BY_RCU + + This patch borrows a clever Hugh's 'struct anon_vma' trick. + + Without tasklist_lock held we can't trust task->sighand until we locked it + and re-checked that it is still the same. + + But this means we don't need to defer 'kmem_cache_free(sighand)'. We can + return the memory to slab immediately, all we need is to be sure that + sighand->siglock can't dissapear inside rcu protected section. + + To do so we need to initialize ->siglock inside ctor function, + SLAB_DESTROY_BY_RCU does the rest. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1f09f9749cdde4e69f95d62d96d2e03f50b3353c +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:11 2006 -0800 + + [PATCH] release_task: replace open-coded ptrace_unlink() + + Use ptrace_unlink() instead of open-coding. No changes in kernel/exit.o + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8292d633add73d40eda1d26089e2fc758944ac7c +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:10 2006 -0800 + + [PATCH] wait_for_helper: trivial style cleanup + + Use NULL instead of (... *)0 + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6ac781b11ade6e3451f6b460991c8b2b87e58280 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:09 2006 -0800 + + [PATCH] reparent_thread: use remove_parent/add_parent + + Use remove_parent/add_parent instead of open coding. + + No changes in kernel/exit.o + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c7c6464117a02b0d54feb4ebeca4db70fa493678 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:09 2006 -0800 + + [PATCH] pidhash: don't use zero pids + + daemonize() calls set_special_pids(1,1), while init and kernel threads spawned + from init/main.c:init() run with 0,0 special pids. This patch changes + INIT_SIGNALS() so that that they run with ->pgrp == ->session == 1 also. This + patch relies on fact that swapper's pid == 1. + + Now we have no hashed zero pids in pid_hash[]. + + User-space visibible change is that now /sbin/init runs with (1,1) special + pids and becomes a session leader. + + Quoting Eric W. Biederman: + > + > daemonize consuming pids (1,1) then consumes pgrp 1. So that when + > /sbin/init calls setsid() it thinks /sbin/init is a process group + > leader and setsid() fails. So /sbin/init wants pgrp 1 session 1 + > but doesn't get it. I am pretty certain daemonize did not exist so + > /sbin/init got pgrp 1 session 1 in 2.4. + > + > That is the bug that is being fixed. + > + > This patch takes things one step farther and essentially calls + > setsid() for pid == 1 before init is execed. That is new behavior + > but it cleans up the kernel as we now do not need to support the + > case of a process without a process group or a session. + > + > The only process that could have possibly cared was /sbin/init + > and it already calls setsid() because it doesn't want that. + > + > If this was going to break anything noticeable the change in behavior + > from 2.4 to 2.6 would have already done that. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 73b9ebfe126a4a886ee46cbab637374d7024668a +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:07 2006 -0800 + + [PATCH] pidhash: don't count idle threads + + fork_idle() does unhash_process() just after copy_process(). Contrary, + boot_cpu's idle thread explicitely registers itself for each pid_type with nr + = 0. + + copy_process() already checks p->pid != 0 before process_counts++, I think we + can just skip attach_pid() calls and job control inits for idle threads and + kill unhash_process(). We don't need to cleanup ->proc_dentry in fork_idle() + because with this patch idle threads are never hashed in + kernel/pid.c:pid_hash[]. + + We don't need to hash pid == 0 in pidmap_init(). free_pidmap() is never + called with pid == 0 arg, so it will never be reused. So it is still possible + to use pid == 0 in any PIDTYPE_xxx namespace from kernel/pid.c's POV. + + However with this patch we don't hash pid == 0 for PIDTYPE_PID case. We still + have have PIDTYPE_PGID/PIDTYPE_SID entries with pid == 0: /sbin/init and + kernel threads which don't call daemonize(). + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c97d98931ac52ef110b62d9b75c6a6f2bfbc1898 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:06 2006 -0800 + + [PATCH] kill SET_LINKS/REMOVE_LINKS + + Both SET_LINKS() and SET_LINKS/REMOVE_LINKS() have exactly one caller, and + these callers already check thread_group_leader(). + + This patch kills theese macros, they mix two different things: setting + process's parent and registering it in init_task.tasks list. Callers are + updated to do these actions by hand. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b678ece42893b53aae5ed7cb8d7cb261cacb72c +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:05 2006 -0800 + + [PATCH] don't use REMOVE_LINKS/SET_LINKS for reparenting + + There are places where kernel uses REMOVE_LINKS/SET_LINKS while changing + process's ->parent. Use add_parent/remove_parent instead, they don't abuse + of global process list. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8fafabd86f1b75ed3cc6a6ffbe6c3e53e3d8457d +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:05 2006 -0800 + + [PATCH] remove add_parent()'s parent argument + + add_parent(p, parent) is always called with parent == p->parent, and it makes + no sense to do it differently. This patch removes this argument. + + No changes in affected .o files. + + Signed-off-by: Oleg Nesterov + Cc: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d799f03597cabc6112acb518fc8ab4487aa4f953 +Author: Oleg Nesterov +Date: Tue Mar 28 16:11:04 2006 -0800 + + [PATCH] choose_new_parent: remove unused arg, sanitize exit_state check + + 'child_reaper' arg is not used in choose_new_parent(). + + "->exit_state >= EXIT_ZOMBIE" check is a leftover, was + valid when EXIT_ZOMBIE lived in ->state var. + + Signed-off-by: Oleg Nesterov + Acked-by: Eric Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d73d65293e3e2de7e916a89c8da30be0948afab7 +Author: Eric W. Biederman +Date: Tue Mar 28 16:11:03 2006 -0800 + + [PATCH] pidhash: kill switch_exec_pids + + switch_exec_pids is only called from de_thread by way of exec, and it is + only called when we are exec'ing from a non thread group leader. + + Currently switch_exec_pids gives the leader the pid of the thread and + unhashes and rehashes all of the process groups. The leader is already in + the EXIT_DEAD state so no one cares about it's pids. The only concern for + the leader is that __unhash_process called from release_task will function + correctly. If we don't touch the leader at all we know that + __unhash_process will work fine so there is no need to touch the leader. + + For the task becomming the thread group leader, we just need to give it the + pid of the old thread group leader, add it to the task list, and attach it + to the session and the process group of the thread group. + + Currently de_thread is also adding the task to the task list which is just + silly. + + Currently the only leader of __detach_pid besides detach_pid is + switch_exec_pids because of the ugly extra work that was being + performed. + + So this patch removes switch_exec_pids because it is doing too much, it is + creating an unnecessary special case in pid.c, duing work duplicated in + de_thread, and generally obscuring what it is going on. + + The necessary work is added to de_thread, and it seems to be a little + clearer there what is going on. + + Signed-off-by: Eric W. Biederman + Cc: Oleg Nesterov + Cc: Kirill Korotaev + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 652486fb84a07ed750f1c11639518f55808bf555 +Author: Eric W. Biederman +Date: Tue Mar 28 16:11:02 2006 -0800 + + [PATCH] do_SAK: don't depend on session ID 0 + + I'm not really certain what the thinking was but the code obviously wanted to + walk processes other than just those in it's session, for purposes of do_SAK. + Just walking those tasks that don't have a session assigned sounds at the very + least incomplete. + + So modify the code to kill everything in the session and anything else that + might have the tty open. Hopefully this helps if the do_SAK functionality is + ever finished. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f96a795d4f6a8a13abe4b0d3c5d1c28ea8d7ce4b +Author: Eric W. Biederman +Date: Tue Mar 28 16:11:01 2006 -0800 + + [PATCH] do_tty_hangup: use group_send_sig_info not send_group_sig_info + + We already have the tasklist_lock so there is no need for us to reacquire it + with send_group_sig_info. reader/writer locks allow multiple readers and thus + recursion so the old code was ok just wastful. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6c99c5cb94319a601b5ec5ee31c331f84755dd74 +Author: Eric W. Biederman +Date: Tue Mar 28 16:11:00 2006 -0800 + + [PATCH] Remove dead kill_sl prototype from sched.h + + The kill_sl function doesn't exist in the kernel so a prototype is completely + unnecessary. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1434261c07bcebd5ef8b8a18f919fdee533b84e0 +Author: Oleg Nesterov +Date: Tue Mar 28 16:10:59 2006 -0800 + + [PATCH] simplify exec from init's subthread + + I think it is enough to take tasklist_lock for reading while changing + child_reaper: + + Reparenting needs write_lock(tasklist_lock) + + Only one thread in a thread group can do exec() + + sighand->siglock garantees that get_signal_to_deliver() + will not see a stale value of child_reaper. + + This means that we can change child_reaper earlier, without calling + zap_other_threads() twice. + + "child_reaper = current" is a NOOP when init does exec from main thread, we + don't care. + + Signed-off-by: Oleg Nesterov + Acked-by: "Eric W. Biederman" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fef23e7fbb11a0a78cd61935f7056bc2b237995a +Author: Eric W. Biederman +Date: Tue Mar 28 16:10:58 2006 -0800 + + [PATCH] exec: allow init to exec from any thread. + + After looking at the problem of init calling exec some more I figured out + an easy way to make the code work. + + The actual symptom without out this patch is that all threads will die + except pid == 1, and the thread calling exec. The thread calling exec will + wait forever for pid == 1 to die. + + Since pid == 1 does not install a handler for SIGKILL it will never die. + + This modifies the tests for init from current->pid == 1 to the equivalent + current == child_reaper. And then it causes exec in the ugly case to + modify child_reaper. + + The only weird symptom is that you wind up with an init process that + doesn't have the oldest start time on the box. + + Signed-off-by: Eric W. Biederman + Cc: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 94c2d01a537daf51a9fcf229d7d2204c979355d9 +Author: Jody McIntyre +Date: Tue Mar 28 20:04:04 2006 -0500 + + ohci1394: cleanup the "Unexpected PCI resource length" warning. + + This warning happens in practice because the resource length reported by + the chipset is too large. This is not actually a problem, so don't warn + about it. If it happens to be too small, warn about that, but with + a different message so people who are used to ignoring the old message + don't. + + Signed-off-by: Jody McIntyre + +commit d024ebc67eaa6bb7abca2e3061cb257a1587fa30 +Author: Stefan Richter +Date: Tue Mar 28 20:03:55 2006 -0500 + + sbp2: misc debug logging cleanups + + - move call of scsi_print_command from sbp2_send_command to the beginning of + sbp2_queue_command to show also commands which are not sent + - put sbp2's name into scsi_print_sense + - use __FUNCTION__ in log messages + - remove a few less useful log messages and comments + + Signed-off-by: Stefan Richter + Signed-off-by: Jody McIntyre + +commit 8f0525ff1901f4fafe6d02d5d373ca38103ff5a7 +Author: Stefan Richter +Date: Tue Mar 28 20:03:45 2006 -0500 + + sbp2: proper treatment of DID_OK + + Sbp2 relied on DID_OK to be defined as 0. Always shift DID_OK into the right + position anyway, and explicitly return DID_OK together with CHECK_CONDITION. + Also comment on some #if 0 code. The patch does not change current behaviour. + + Signed-off-by: Stefan Richter + Signed-off-by: Jody McIntyre + +commit 23e93f1742372bc938e53151bdbf88d284ee9561 +Author: Stefan Richter +Date: Tue Mar 28 20:03:34 2006 -0500 + + ieee1394: set read permission for parameter disable_irm + No need to hide it from /sys/module/ieee1394/parameters/. + + Signed-off-by: Stefan Richter + Signed-off-by: Jody McIntyre + +commit 65b4b4e81a5094d52cbe372b887b1779abe53f9b +Author: Andrew Morton +Date: Tue Mar 28 16:37:06 2006 -0800 + + [NETFILTER]: Rename init functions. + + Every netfilter module uses `init' for its module_init() function and + `fini' or `cleanup' for its module_exit() function. + + Problem is, this creates uninformative initcall_debug output and makes + ctags rather useless. + + So go through and rename them all to $(filename)_init and + $(filename)_fini. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit c3e5d877aadc073b09c4901f8c1a768de79b0a5d +Author: S P +Date: Tue Mar 28 16:35:46 2006 -0800 + + [TCP]: Fix RFC2465 typo. + + Signed-off-by: S P + Signed-off-by: David S. Miller + +commit d2acc3479cbccd5cfbca6c787be713ef1de12ec6 +Author: Herbert Xu +Date: Tue Mar 28 01:12:13 2006 -0800 + + [INET]: Introduce tunnel4/tunnel6 + + Basically this patch moves the generic tunnel protocol stuff out of + xfrm4_tunnel/xfrm6_tunnel and moves it into the new files of tunnel4.c + and tunnel6 respectively. + + The reason for this is that the problem that Hugo uncovered is only + the tip of the iceberg. The real problem is that when we removed the + dependency of ipip on xfrm4_tunnel we didn't really consider the module + case at all. + + For instance, as it is it's possible to build both ipip and xfrm4_tunnel + as modules and if the latter is loaded then ipip simply won't load. + + After considering the alternatives I've decided that the best way out of + this is to restore the dependency of ipip on the non-xfrm-specific part + of xfrm4_tunnel. This is acceptable IMHO because the intention of the + removal was really to be able to use ipip without the xfrm subsystem. + This is still preserved by this patch. + + So now both ipip/xfrm4_tunnel depend on the new tunnel4.c which handles + the arbitration between the two. The order of processing is determined + by a simple integer which ensures that ipip gets processed before + xfrm4_tunnel. + + The situation for ICMP handling is a little bit more complicated since + we may not have enough information to determine who it's for. It's not + a big deal at the moment since the xfrm ICMP handlers are basically + no-ops. In future we can deal with this when we look at ICMP caching + in general. + + The user-visible change to this is the removal of the TUNNEL Kconfig + prompts. This makes sense because it can only be used through IPCOMP + as it stands. + + The addition of the new modules shouldn't introduce any problems since + module dependency will cause them to be loaded. + + Oh and I also turned some unnecessary pskb's in IPv6 related to this + patch to skb's. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit f0088a50e7c49d1ba285c88fe06345f223652fd3 +Author: Denis Vlasenko +Date: Tue Mar 28 01:08:21 2006 -0800 + + [NET]: deinline 200+ byte inlines in sock.h + + Sizes in bytes (allyesconfig, i386) and files where those inlines + are used: + + 238 sock_queue_rcv_skb 2.6.16/net/x25/x25_in.o + 238 sock_queue_rcv_skb 2.6.16/net/rose/rose_in.o + 238 sock_queue_rcv_skb 2.6.16/net/packet/af_packet.o + 238 sock_queue_rcv_skb 2.6.16/net/netrom/nr_in.o + 238 sock_queue_rcv_skb 2.6.16/net/llc/llc_sap.o + 238 sock_queue_rcv_skb 2.6.16/net/llc/llc_conn.o + 238 sock_queue_rcv_skb 2.6.16/net/irda/af_irda.o + 238 sock_queue_rcv_skb 2.6.16/net/ipx/af_ipx.o + 238 sock_queue_rcv_skb 2.6.16/net/ipv6/udp.o + 238 sock_queue_rcv_skb 2.6.16/net/ipv6/raw.o + 238 sock_queue_rcv_skb 2.6.16/net/ipv4/udp.o + 238 sock_queue_rcv_skb 2.6.16/net/ipv4/raw.o + 238 sock_queue_rcv_skb 2.6.16/net/ipv4/ipmr.o + 238 sock_queue_rcv_skb 2.6.16/net/econet/econet.o + 238 sock_queue_rcv_skb 2.6.16/net/econet/af_econet.o + 238 sock_queue_rcv_skb 2.6.16/net/bluetooth/sco.o + 238 sock_queue_rcv_skb 2.6.16/net/bluetooth/l2cap.o + 238 sock_queue_rcv_skb 2.6.16/net/bluetooth/hci_sock.o + 238 sock_queue_rcv_skb 2.6.16/net/ax25/ax25_in.o + 238 sock_queue_rcv_skb 2.6.16/net/ax25/af_ax25.o + 238 sock_queue_rcv_skb 2.6.16/net/appletalk/ddp.o + 238 sock_queue_rcv_skb 2.6.16/drivers/net/pppoe.o + + 276 sk_receive_skb 2.6.16/net/decnet/dn_nsp_in.o + 276 sk_receive_skb 2.6.16/net/dccp/ipv6.o + 276 sk_receive_skb 2.6.16/net/dccp/ipv4.o + 276 sk_receive_skb 2.6.16/net/dccp/dccp_ipv6.o + 276 sk_receive_skb 2.6.16/drivers/net/pppoe.o + + 209 sk_dst_check 2.6.16/net/ipv6/ip6_output.o + 209 sk_dst_check 2.6.16/net/ipv4/udp.o + 209 sk_dst_check 2.6.16/net/decnet/dn_nsp_out.o + + Large inlines with multiple callers: + Size Uses Wasted Name and definition + ===== ==== ====== ================================================ + 238 21 4360 sock_queue_rcv_skb include/net/sock.h + 109 10 801 sock_recv_timestamp include/net/sock.h + 276 4 768 sk_receive_skb include/net/sock.h + 94 8 518 __sk_dst_check include/net/sock.h + 209 3 378 sk_dst_check include/net/sock.h + 131 4 333 sk_setup_caps include/net/sock.h + 152 2 132 sk_stream_alloc_pskb include/net/sock.h + 125 2 105 sk_stream_writequeue_purge include/net/sock.h + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 1d1818316f0b61e0997a159680e1e631a23a407e +Author: David S. Miller +Date: Tue Mar 28 00:01:55 2006 -0800 + + [ECONET]: Convert away from SOCKOPS_WRAPPED + + Just use a local econet_mutex instead. + + Signed-off-by: David S. Miller + +commit f6c90b71a355a0a4a22e1cfee5748617adc25a53 +Author: Petr Vandrovec +Date: Mon Mar 27 23:39:31 2006 -0800 + + [NET]: Fix ipx/econet/appletalk/irda ioctl crashes + + Fix kernel oopses whenever somebody issues compatible ioctl on AppleTalk, + Econet, IPX or IRDA socket. For AppleTalk/Econet/IRDA it restores state + in which these sockets were before compat_ioctl was introduced to the socket + ops, for IPX it implements support for 4 ioctls which were not implemented + before - as these ioctls use structures which match between 32bit and 64bit + userspace, no special code is needed, just call 64bit ioctl handler. + + Signed-off-by: Petr Vandrovec + Signed-off-by: David S. Miller + +commit f1465f7ea9e7aecba8e41d4aac9240f9b7fe2e24 +Author: David S. Miller +Date: Mon Mar 27 23:28:44 2006 -0800 + + [NET]: Kill Documentation/networking/TODO + + Sorely out of date. Add the linux-net wiki web site to + the NETWORKING maintainers entry, on which we maintain + the current networking TODO list. + + Noticed by Randy Dunlap. + + Signed-off-by: David S. Miller + +commit e3a05978f18a38ae13bb3f1184abf3c999e06da9 +Author: Michael Chan +Date: Mon Mar 27 23:21:07 2006 -0800 + + [TG3]: Update version and reldate + + Update version to 3.55. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit f475f163f128a0d9c92dfa90bcb5953fd8f9766f +Author: Michael Chan +Date: Mon Mar 27 23:20:14 2006 -0800 + + [TG3]: Skip timer code during full lock + + Skip the main timer code if interrupts are disabled in the full lock + state. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 100c4673307f5806788791b9b886877c806afd96 +Author: Michael Chan +Date: Mon Mar 27 23:19:00 2006 -0800 + + [TG3]: Speed up SRAM access + + Speed up SRAM read and write functions if possible by using MMIO + instead of config. cycles. With this change, the post reset signature + done at the end of D3 power change must now be moved before the D3 + power change. + + IBM reported a problem on powerpc blades during ethtool self test + that was caused by the memory test taking excessively long. Config. + cycles are very slow on powerpc and the memory test can take more + than 10 seconds to complete using config. cycles. As a result, NETDEV + WATCHDOG can be triggered during self test and the chip can end up in + a funny state. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit ff18ff023495a4f1ce7c65e7c376c4720eccf4da +Author: Michael Chan +Date: Mon Mar 27 23:17:27 2006 -0800 + + [TG3]: Fix PHY loopback on 5700 + + Fix PHY loopback failure on some 5700 devices. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 6728a8e2e180b96ac7940dd4d766c52f8e177717 +Author: Michael Chan +Date: Mon Mar 27 23:16:49 2006 -0800 + + [TG3]: Fix bug in 40-bit DMA workaround code + + Need to check the TG3_FLAG_40BIT_DMA_BUG flag in the workaround code + path instead of device flags. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 008652b337364ee994a0cd71d88a0fe9f00fc7ca +Author: Michael Chan +Date: Mon Mar 27 23:14:53 2006 -0800 + + [TG3]: Fix probe failure due to invalid MAC address + + Some older bootcode in some devices may report 0 MAC address in + SRAM when booting up from low power state. This patch fixes the + problem by checking for a valid MAC address in SRAM and falling back + to NVRAM if necessary. + + Thanks to walt for reporting the problem + and helping to debug it. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 556640510d7e15664cb9bf2f70f7519bfedd6c29 +Author: Stefan Richter +Date: Tue Mar 28 19:59:42 2006 -0500 + + sbp2: check for ARM failure + + Sbp2 did not check for successful registration of the lower address range + when CONFIG_IEEE1394_SBP2_PHYS_DMA was set. If hpsb_register_addrspace + failed, a "login timed-out" would occur which is misleading. Now sbp2 logs + a sensible error message. + + Signed-off-by: Stefan Richter + Signed-off-by: Jody McIntyre + +commit 180a43044faeaa9bfe0c604d472023a6446430b5 +Author: Stefan Richter +Date: Tue Mar 28 19:57:34 2006 -0500 + + ohci1394: clean up asynchronous and physical request filters programming + + Various cleanups of how ohci1394 programs AsynchronousRequestFilter, + PhysicalRequestFilter, and physUpperBoundOffset. In particular, do not + rewrite registers within the bus reset interrupt handler if bus resets + do not affect the registers in the first place. + + Signed-off-by: Stefan Richter + Signed-off-by: Jody McIntyre + +commit c1d08eb6cd06c225d825c8981e05729389fd51a9 +Author: Stefan Richter +Date: Tue Mar 28 19:56:45 2006 -0500 + + ieee1394: remove amdtp remains from ieee1394_core.h + since amdtp driver was deleted + + Signed-off-by: Stefan Richter + Signed-off-by: Jody McIntyre + +commit a8748445e5ff747b114b5c29461ba2d28af404e8 +Author: Stefan Richter +Date: Tue Mar 28 19:55:41 2006 -0500 + + ieee1394: remove devfs support + + Devfs has been disabled in the last kernel releases, so let's + remove it from ieee1394core, raw1394, video1394, dv1394. + + Signed-off-by: Stefan Richter + Acked-by: Greg Kroah-Hartman + Cc: Dan Dennedy + Signed-off-by: Jody McIntyre + +commit e2f8165dc3c70cd74bcf2c63a6c0de254c6ff50c +Author: Jody McIntyre +Date: Tue Mar 28 19:55:11 2006 -0500 + + Signed-off-by: Jody McIntyre + +commit 147830f297f369fa8731a75e3e4c7c7cd5c3e868 +Author: Stefan Richter +Date: Tue Mar 28 19:54:52 2006 -0500 + + sbp2: prevent unloading of 1394 low-level driver + + When a new SBP-2 unit is added, sbp2 now takes a reference on the 1394 + low-level driver (ohci1394 or pcilynx). This prevents the 1394 host driver + module from being unloaded, e.g. by an administrative routine cleanup of + unused kernel modules or when another 1394 driver which depends on ohci1394 + is unloaded. + + The reference is dropped when the SBP-2 unit was disconnected, when sbp2 is + unloaded or detached from the unit, or when addition of the SBP-2 unit failed. + + Signed-off-by: Stefan Richter + Signed-off-by: Jody McIntyre + +commit c25366680bab32efcbb5eda5f3c202099ba27b81 +Author: Nathan Scott +Date: Wed Mar 29 10:44:40 2006 +1000 + + [XFS] Cleanup in XFS after recent get_block_t interface tweaks. + + Signed-off-by: Nathan Scott + +commit 0b7e56a450a4800c5f48f3a345a5a7de2f38041c +Author: Mandy Kirkconnell +Date: Wed Mar 29 09:53:03 2006 +1000 + + [XFS] Remove unused/obsoleted function: xfs_bmap_do_search_extents() + + SGI-PV: 951415 + SGI-Modid: xfs-linux-melb:xfs-kern:208490a + + Signed-off-by: Mandy Kirkconnell + Signed-off-by: Nathan Scott + +commit 3ccb8b5f650e80b7cc7ef76289348472e026b6ac +Author: Glen Overby +Date: Wed Mar 29 09:52:28 2006 +1000 + + [XFS] A change to inode chunk allocation to try allocating the new chunk + contiguous with the most recently allocated chunk. On a striped + filesystem, this will fill a stripe unit with inodes before allocating new + inodes in another stripe unit. + + SGI-PV: 951416 + SGI-Modid: xfs-linux-melb:xfs-kern:208488a + + Signed-off-by: Glen Overby + Signed-off-by: Nathan Scott + +commit 3c674e74238cb2484169e3f84f687c66887086b6 +Author: Nathan Scott +Date: Wed Mar 29 09:26:15 2006 +1000 + + Fixes a regression from the recent "remove ->get_blocks() support" + change. inode->i_blkbits should be used when making a get_block_t + request of a filesystem instead of dio->blkbits, as that does not + indicate the filesystem block size all the time (depends on request + alignment - see start of __blockdev_direct_IO). + + Signed-off-by: Nathan Scott + Acked-by: Badari Pulavarty + +commit e0edd5962bd83d319aaa50b39580dc30299a7fe3 +Author: Nathan Scott +Date: Wed Mar 29 08:55:47 2006 +1000 + + [XFS] Fix compiler warning and small code inconsistencies in compat + ioctl32 land. + + SGI-PV: 904196 + SGI-Modid: xfs-linux-melb:xfs-kern:25590a + + Signed-off-by: Nathan Scott + +commit c41564b5af328ea4600b26119f6c9c8e1eb5c28b +Author: Nathan Scott +Date: Wed Mar 29 08:55:14 2006 +1000 + + [XFS] We really suck at spulling. Thanks to Chris Pascoe for fixing all + these typos. + + SGI-PV: 904196 + SGI-Modid: xfs-linux-melb:xfs-kern:25539a + + Signed-off-by: Nathan Scott + +commit 55eb061326765b2d0489387cfb3fc7dbd244f917 +Author: Dave Airlie +Date: Wed Mar 29 08:16:12 2006 +1000 + + drm: remove drm_{alloc,free}_pages + + drm_alloc_pages and drm_free_pages can now be removed. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Dave Airlie + +commit d2b58b58838159b2afdc624f74b208e8bd3c029e +Author: Dave Airlie +Date: Wed Mar 29 08:12:52 2006 +1000 + + drm: sis fix compile warning + + Prevent a gcc warning in the SIS DRM driver. offset is a unsigned int and + the printk wants a long. + + Signed-off-by: Jon Mason + Signed-off-by: Andrew Morton + Signed-off-by: Dave Airlie + +commit 6896eec0296c400db95e4382095fd4d6cf59800c +Author: Paul Brook +Date: Tue Mar 28 22:19:29 2006 +0100 + + [ARM] 3420/1: Missing clobber in example code + + Patch from Paul Brook + + The example code in the source documentation for __kernel_dmb + clobbers r0 but doesn't list it the asm clobber list. + + Signed-off-by: Paul Brook + Signed-off-by: Russell King + +commit c4713074375c61f939310b04e92090afe29810dc +Author: Lennert Buytenhek +Date: Tue Mar 28 21:18:54 2006 +0100 + + [ARM] 3388/1: ixp23xx: add core ixp23xx support + + Patch from Lennert Buytenhek + + This patch adds support for the Intel ixp23xx series of CPUs. The + ixp23xx is an XSC3 based CPU with 512K of L2 cache, a 64bit 66MHz PCI + interface, two DDR RAM interfaces, QDR RAM interfaces, two gigabit + MACs, two 10/100 MACs, expansion bus, four microengines, a Media and + Switch Fabric unit almost identical to the one on the ixp2400, two + xscale (8250ish) UARTs and a bunch of other stuff. + + This patch adds the core ixp23xx support code, and support for the + ADI Engineering Roadrunner, Intel IXDP2351, and IP Fabrics Double + Espresso platforms. + + Signed-off-by: Deepak Saxena + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit e9937d4b0a9382c4c78411d1c53e62be396ee9a9 +Author: Lennert Buytenhek +Date: Tue Mar 28 21:08:13 2006 +0100 + + [ARM] 3417/1: add support for logicpd pxa270 card engine + + Patch from Lennert Buytenhek + + Add support for the LogicPD PXA270 Card Engine. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit fa5ebfccf30741dc432cb81c25bb591c8018eb18 +Author: Lennert Buytenhek +Date: Tue Mar 28 21:02:26 2006 +0100 + + [ARM] 3387/1: ixp23xx: add defconfig + + Patch from Lennert Buytenhek + + Add ixp23xx defconfig. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 23bdf86aa06ebe71bcbf6b7d25de9958c6ab33fa +Author: Lennert Buytenhek +Date: Tue Mar 28 21:00:40 2006 +0100 + + [ARM] 3377/2: add support for intel xsc3 core + + Patch from Lennert Buytenhek + + This patch adds support for the new XScale v3 core. This is an + ARMv5 ISA core with the following additions: + + - L2 cache + - I/O coherency support (on select chipsets) + - Low-Locality Reference cache attributes (replaces mini-cache) + - Supersections (v6 compatible) + - 36-bit addressing (v6 compatible) + - Single instruction cache line clean/invalidate + - LRU cache replacement (vs round-robin) + + I attempted to merge the XSC3 support into proc-xscale.S, but XSC3 + cores have separate errata and have to handle things like L2, so it + is simpler to keep it separate. + + L2 cache support is currently a build option because the L2 enable + bit must be set before we enable the MMU and there is no easy way to + capture command line parameters at this point. + + There are still optimizations that can be done such as using LLR for + copypage (in theory using the exisiting mini-cache code) but those + can be addressed down the road. + + Signed-off-by: Deepak Saxena + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit e6d1ba5cd9954e7c15538aaef7585b235a69e0e1 +Author: Satoru Takeuchi +Date: Mon Mar 27 17:13:46 2006 +0900 + + [IA64] simplify some condition checks in iosapic_check_gsi_range + + Some condition checks on iosapic_check_gsi_range() can be omitted + because always `base <= end' is assured. This patch simplifies those + checks. + + Signed-off-by: Satoru Takeuchi + Signed-off-by: Tony Luck + +commit 46cba3dcaea4eb51b28fac78d15542a90619a6ef +Author: Satoru Takeuchi +Date: Mon Mar 27 17:12:19 2006 +0900 + + [IA64] correct some messages and fixes some minor things + + This patch corrects some wrong comments and a printk message. + It also fixes some minor things, and makes all lines fit in + 80 columns. + + Signed-off-by: Satoru Takeuchi + Signed-off-by: Tony Luck + +commit c326e27eb79e98050d855e371ac534ff4352e910 +Author: Mattia Dongili +Date: Mon Mar 27 22:55:55 2006 +0200 + + [CPUFREQ] cpufreq_conservative: keep ignore_nice_load and freq_step values when reselected + + Keep the value of ignore_nice_load and freq_step of the conservative + governor after the governor is deselected and reselected. + + Signed-off-by: Mattia Dongili + Signed-off-by: Dave Jones + +commit ec7e15d6486e9d1da1c2f344b670b8388ba7019b +Author: Andrew Morton +Date: Tue Mar 28 01:56:55 2006 -0800 + + [PATCH] compat_sys_futex() warning fix + + kernel/futex_compat.c: In function `compat_sys_futex': + kernel/futex_compat.c:140: warning: passing arg 1 of `do_futex' makes integer from pointer without a cast + kernel/futex_compat.c:140: warning: passing arg 5 of `do_futex' makes integer from pointer without a cast + + Not sure what Ingo was thinking of here. Put the casts back in. + + Cc: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4fa95ef639830ccf0ca1ad42ee9bed87ef642f32 +Author: Jesper Juhl +Date: Tue Mar 28 01:56:54 2006 -0800 + + [PATCH] sound: Remove unneeded kmalloc() return value casts + + Get rid of unnessesary casts of kmalloc() return value in sound/ + + Signed-off-by: Jesper Juhl + Cc: Jaroslav Kysela + Cc: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7f927fcc2fd1575d01efb4b76665975007945690 +Author: Alexey Dobriyan +Date: Tue Mar 28 01:56:53 2006 -0800 + + [PATCH] Typo fixes + + Fix a lot of typos. Eyeballed by jmc@ in OpenBSD. + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ded23ac62776b4360d88e9b0330792d2c57fdfdf +Author: Jesper Juhl +Date: Tue Mar 28 01:56:52 2006 -0800 + + [PATCH] trivial typos in Documentation/cputopology.txt + + Fix a few trivial mistakes in Documentation/cputopology.txt + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b791ccef21129f9c7e4ab8274d5d7a0ec0a2fb7c +Author: Jesper Juhl +Date: Tue Mar 28 01:56:52 2006 -0800 + + [PATCH] fix signed vs unsigned in nmi watchdog + + Fix "signed vs unsigned" in nmi_watchdog_tick. + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ca43b317fc557bbcca845c684d93375286bf9e0b +Author: Jesper Juhl +Date: Tue Mar 28 01:56:51 2006 -0800 + + [PATCH] vfree does its own NULL check, no need to be explicit in oss/msnd.c + + vfree() does it's own NULL checking, no need for explicit check before + calling it. + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5a83fdddb8a104c021837637a59f93948b906819 +Author: Jesper Juhl +Date: Tue Mar 28 01:56:50 2006 -0800 + + [PATCH] no need to check vfree arg for null in oss/sequencer + + There's no need to check pointers for NULL before handing them to vfree(). + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 07e0e93d9a3cdbe3cad450e0d0a2937585dffc55 +Author: Jesper Juhl +Date: Tue Mar 28 01:56:49 2006 -0800 + + [PATCH] maestro3 vfree NULL check fixup + + vfree() checks for NULL, no need to do it explicitly. + + Signed-off-by: Jesper Juhl + Acked-by: Zach Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 457d3d432bede99ed04d3bdeb5efb238a3627e8f +Author: Jesper Juhl +Date: Tue Mar 28 01:56:49 2006 -0800 + + [PATCH] vfree NULL check fixup for sb_card + + There's no need to check the vfree() argument for NULL. + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 910638ae7ed4be27d6af55f6c9b5bf54b838e78b +Author: Matthias Gehre +Date: Tue Mar 28 01:56:48 2006 -0800 + + [PATCH] Replace 0xff.. with correct DMA_xBIT_MASK + + Replace all occurences of 0xff.. in calls to function pci_set_dma_mask() + and pci_set_consistant_dma_mask() with the corresponding DMA_xBIT_MASK from + linux/dma-mapping.h. + + Signed-off-by: Matthias Gehre + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 60c904ae5bded8bb71f7bff7d63f2a6959d2a8e4 +Author: Marcelo Feitoza Parisi +Date: Tue Mar 28 01:56:47 2006 -0800 + + [PATCH] drivers/scsi/*: use time_after() and friends + + They deal with wrapping correctly and are nicer to read. + + Signed-off-by: Marcelo Feitoza Parisi + Signed-off-by: Alexey Dobriyan + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9bae1ff3e7926fe5e92db2f3c6d8832f18f777bc +Author: Marcelo Feitoza Parisi +Date: Tue Mar 28 01:56:46 2006 -0800 + + [PATCH] ide-tape: use time_after(), time_after_eq() + + They deal with wrapping correctly and are nicer to read. + + Signed-off-by: Marcelo Feitoza Parisi + Signed-off-by: Alexey Dobriyan + Cc: Bartlomiej Zolnierkiewicz + Cc: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 05613bdd8647bfc4535b0dcc8f1b95c8b39be394 +Author: Marcelo Feitoza Parisi +Date: Tue Mar 28 01:56:45 2006 -0800 + + [PATCH] nvidia-agp: use time_before_eq() + + It deals with wrapping correctly and is nicer to read. + + Signed-off-by: Marcelo Feitoza Parisi + Signed-off-by: Alexey Dobriyan + Cc: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 50297cbf07427b47f0fff5ade8e21cdabf860249 +Author: Marcelo Feitoza Parisi +Date: Tue Mar 28 01:56:44 2006 -0800 + + [PATCH] drivers/block/*: use time_after() and friends + + They deal with wrapping correctly and are nicer to read. + + Signed-off-by: Marcelo Feitoza Parisi + Signed-off-by: Alexey Dobriyan + Cc: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f45e4656ac0609437267b242953c07d523649f8d +Author: Adrian Bunk +Date: Tue Mar 28 01:56:43 2006 -0800 + + [PATCH] arch/i386/kernel/microcode.c: remove the obsolete microcode_ioctl + + Nowadays, even Debian stable ships a microcode_ctl utility recent enough to no + longer use this ioctl. + + Signed-off-by: Adrian Bunk + Acked-by: Tigran Aivazian + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 50fc9999ec27ad66ce6db31ebb03759f77962bc1 +Author: Jesper Juhl +Date: Tue Mar 28 01:56:43 2006 -0800 + + [PATCH] Docs update: missing files and descriptions for filesystems/00-INDEX + + Add missing files and descriptions to + Documentation/filesystems/00-INDEX + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4b6f5d20b04dcbc3d888555522b90ba6d36c4106 +Author: Arjan van de Ven +Date: Tue Mar 28 01:56:42 2006 -0800 + + [PATCH] Make most file operations structs in fs/ const + + This is a conversion to make the various file_operations structs in fs/ + const. Basically a regexp job, with a few manual fixups + + The goal is both to increase correctness (harder to accidentally write to + shared datastructures) and reducing the false sharing of cachelines with + things that get dirty in .data (while .rodata is nicely read only and thus + cache clean) + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 99ac48f54a91d02140c497edc31dc57d4bc5c85d +Author: Arjan van de Ven +Date: Tue Mar 28 01:56:41 2006 -0800 + + [PATCH] mark f_ops const in the inode + + Mark the f_ops members of inodes as const, as well as fix the + ripple-through this causes by places that copy this f_ops and then "do + stuff" with it. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ec1b9466cb4f6ae6d950bd67055d9410d1056d2a +Author: Andrew Morton +Date: Tue Mar 28 01:56:40 2006 -0800 + + [PATCH] ia64: const f_ops fix + + Tweak the proc setup code so things work OK with const + proc_dir_entry.proc_fops. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3c30a75256a5863705fb7658cb0b2e3bb09a13df +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 01:56:39 2006 -0800 + + [PATCH] for_each_possible_cpu: documentaion + + Replace for_each_cpu with for_each_possible_cpu. + + Modifies occurences in documentaion. + + for_each_cpu in whatisRCU.txt should be for_each_online_cpu ??? + (I'm not sure..) + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c8912599c677f58fd3a5e5420c9cb6df62b2d8fa +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 01:56:39 2006 -0800 + + [PATCH] for_each_possible_cpu: i386 + + This patch replaces for_each_cpu with for_each_possible_cpu. + + under arch/i386. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fe449f48368623eb47715061b4977ce982d8e03b +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 01:56:38 2006 -0800 + + [PATCH] for_each_possible_cpu: oprofile. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0fed48463fb20c6bcabc5cf70e2de47b30507ee1 +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 01:56:37 2006 -0800 + + [PATCH] for_each_possible_cpu: loopback device. + + This patch replaces for_each_cpu with for_each_possible_cpu. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0a945022778f100115d0cb6234eb28fc1b15ccaf +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 01:56:37 2006 -0800 + + [PATCH] for_each_possible_cpu: fixes for generic part + + replaces for_each_cpu with for_each_possible_cpu(). + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 631d6747e1d877a4baa924cb373b8b9511a53e5e +Author: KAMEZAWA Hiroyuki +Date: Tue Mar 28 01:56:36 2006 -0800 + + [PATCH] for_each_possible_cpu: defines for_each_possible_cpu + + for_each_cpu() is a for-loop over cpu_possible_map. for_each_online_cpu is + for-loop cpu over cpu_online_map. .....for_each_cpu() is not sufficiently + explicit and can lead to mistakes. + + This patch adds for_each_possible_cpu() in preparation for the removal of + for_each_cpu(). + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 68c3431ae22912be580c68d3955ef46515582943 +Author: Vadim Lobanov +Date: Tue Mar 28 01:56:35 2006 -0800 + + [PATCH] Fold select_bits_alloc/free into caller code. + + Remove an unnecessary level of indirection in allocating and freeing select + bits, as per the select_bits_alloc() and select_bits_free() functions. + Both select.c and compat.c are updated. + + Signed-off-by: Vadim Lobanov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e4a1f129f9e43a5e5d28fe6d1b214246a398cdce +Author: Eric Dumazet +Date: Tue Mar 28 01:56:34 2006 -0800 + + [PATCH] use fget_light() in select/poll + + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 70674f95c0a2ea694d5c39f4e514f538a09be36f +Author: Andi Kleen +Date: Tue Mar 28 01:56:33 2006 -0800 + + [PATCH] Optimize select/poll by putting small data sets on the stack + + Optimize select and poll by a using stack space for small fd sets + + This brings back an old optimization from Linux 2.0. Using the stack is + faster than kmalloc. On a Intel P4 system it speeds up a select of a + single pty fd by about 13% (~4000 cycles -> ~3500) + + It also saves memory because a daemon hanging in select or poll will + usually save one or two less pages. This can add up - e.g. if you have 10 + daemons blocking in poll/select you save 40KB of memory. + + I did a patch for this long ago, but it was never applied. This version is + a reimplementation of the old patch that tries to be less intrusive. I + only did the minimal changes needed for the stack allocation. + + The cut off point before external memory is allocated is currently at + 832bytes. The system calls always allocate this much memory on the stack. + + These 832 bytes are divided into 256 bytes frontend data (for the select + bitmaps of the pollfds) and the rest of the space for the wait queues used + by the low level drivers. There are some extreme cases where this won't + work out for select and it falls back to allocating memory too early - + especially with very sparse large select bitmaps - but the majority of + processes who only have a small number of file descriptors should be ok. + [TBD: 832/256 might not be the best split for select or poll] + + I suspect more optimizations might be possible, but they would be more + complicated. One way would be to cache the select/poll context over + multiple system calls because typically the input values should be similar. + Problem is when to flush the file descriptors out though. + + Signed-off-by: Andi Kleen + Cc: Eric Dumazet + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b02389e98a7b64ad5cd4823740defa8821f30bbd +Author: Andrew Morton +Date: Tue Mar 28 01:56:32 2006 -0800 + + [PATCH] ide_generic_all_on() warning fix + + drivers/ide/pci/generic.c:45: warning: `ide_generic_all_on' defined but not used + + Cc: Bartlomiej Zolnierkiewicz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d266ab88938e49aa95f1965ee020df1b1d4c5761 +Author: Alan Cox +Date: Tue Mar 28 01:56:31 2006 -0800 + + [PATCH] Small fixes backported to old IDE SiS driver + + Some quick backport bits from the libata PATA work to fix things found in + the sis driver. The piix driver needs some fixes too but those are way to + large and need someone working on old IDE with time to do them. + + This patch fixes the case where random bits get loaded into SIS timing + registers according to the description of the correct behaviour from + Vojtech Pavlik. It also adds the SiS5517 ATA16 chipset which is not + currently supported by the driver. Thanks to Conrad Harriss for loaning me + the machine with the 5517 chipset. + + Signed-off-by: Alan Cox + Acked-by: Bartlomiej Zolnierkiewicz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9edc91df07a227dbde9f98ee1097f554130993dc +Author: Rene Herman +Date: Tue Mar 28 01:56:30 2006 -0800 + + [PATCH] ide: AMD756 no host side cable detection + + >From http://marc.theaimsgroup.com/?l=linux-kernel&m=110304128900342&w=2 + + AMD756 doesn't support host side cable detection. Do disk side only and + don't advice obsolete options. + + Acked-by: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f5b95ff010d0a4e40f877277f8f0e62fcd83b5a8 +Author: Adrian Bunk +Date: Tue Mar 28 01:56:29 2006 -0800 + + [PATCH] autofs4: proper prototype for autofs4_dentry_release() + + Add a proper prototype for autofs4_dentry_release() to autofs_i.h. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fa8f399a2bc36c1329672400857757e0982babf3 +Author: Alexey Dobriyan +Date: Tue Mar 28 01:56:28 2006 -0800 + + [PATCH] drivers/block/acsi_slm.c: size_t can't be < 0 + + A size_t can't be < 0. + + (akpm: and rw_verify_area() already did that check) + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e51236092d2f7e40e87e88804b5b42e5f8025415 +Author: Andrew Morton +Date: Tue Mar 28 01:56:27 2006 -0800 + + [PATCH] remove relayfs_fs.h + + This is obsolete. + + Cc: Tom Zanussi + Cc: Jens Axboe + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ca1da4a82b169417b738a35783008c35da26466 +Author: Philip Gladstone +Date: Tue Mar 28 01:56:27 2006 -0800 + + [PATCH] Philip Gladstone has moved + + I noticed that my email address is four jobs ago. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a28af471b8946de052a0eb0c080d5457be93f168 +Author: Adrian Bunk +Date: Tue Mar 28 01:56:26 2006 -0800 + + [PATCH] fs/fat/: proper prototypes for two functions + + Add proper prototypes for fat_cache_init() and fat_cache_destroy() in + msdos_fs.h. + + Signed-off-by: Adrian Bunk + Acked-by: OGAWA Hirofumi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3b71797eff4352b4295919efc52de84f84d33d94 +Author: Adrian Bunk +Date: Tue Mar 28 01:56:25 2006 -0800 + + [PATCH] drivers/block/paride/pd.c: fix an off-by-one error + + The Coverity checker found this off-by-one error. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b9e20a920092eb3840424f85c78852c0433df00d +Author: Eric Sesterhenn +Date: Tue Mar 28 01:56:24 2006 -0800 + + [PATCH] Change dash2underscore() return value to char + + Since dash2underscore() just operates and returns chars, I guess its safe + to change the return value to a char. With my .config, this reduces its + size by 5 bytes. + + text data bss dec hex filename + 4155 152 0 4307 10d3 params.o.orig + 4150 152 0 4302 10ce params.o + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Alexey Dobriyan + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7b7a317cf863559b49b548a8b97b2f4bdf1e149e +Author: Serge E. Hallyn +Date: Tue Mar 28 01:56:23 2006 -0800 + + [PATCH] mqueue comment typo fix + + (akpm: I don't do comment typos patches. This one snuck through by accident) + + Signed-off-by: Serge Hallyn + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7a1e524a5fe6c5bf9dd4488e946fa835fda8c3d9 +Author: Andrew Morton +Date: Tue Mar 28 01:56:22 2006 -0800 + + [PATCH] alpha: make poll flags the same as other architectures + + Renumber the recently-added POLLREMOVE and POLLRDHUP to line up with the other + architectures. + + Cc: Davide Libenzi + Cc: Ulrich Drepper + Cc: Ivan Kokshaysky + Cc: Richard Henderson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 273577165cd206d2d6689ee4b18aa13de1ec4bde +Author: Brian Rogan +Date: Tue Mar 28 01:56:20 2006 -0800 + + [PATCH] Add oprofile_add_ext_sample + + On ppc64 we look at a profiling register to work out the sample address and + if it was in userspace or kernel. + + The backtrace interface oprofile_add_sample does not allow this. Create + oprofile_add_ext_sample and make oprofile_add_sample use it too. + + Signed-off-by: Anton Blanchard + Cc: Philippe Elie + Cc: John Levon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f83ca9fe3ee390755f18b4a7780c25ce593b484a +Author: Andrew Morton +Date: Tue Mar 28 01:56:20 2006 -0800 + + [PATCH] symversion warning fix + + gcc-4.2: + + kernel/module.c: In function '__find_symbol': + kernel/module.c:158: warning: the address of '__start___kcrctab', will always evaluate as 'true' + kernel/module.c:165: warning: the address of '__start___kcrctab_gpl', will always evaluate as 'true' + kernel/module.c:182: warning: the address of '__start___kcrctab_gpl_future', will always evaluate as 'true' + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d9eac34104654aa129e365b8d48bbb8c957f186 +Author: Andrew Morton +Date: Tue Mar 28 01:56:19 2006 -0800 + + [PATCH] capi: register_chrdev() fix + + If the user specified `major=0' (odd thing to do), capi.c will use dynamic + allocation. We need to pick up that major for subsequent unregister_chrdev(). + + Acked-by: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 829d5f68ec59ff7c0fdd472132680df8e4b64f3e +Author: Andrew Morton +Date: Tue Mar 28 01:56:18 2006 -0800 + + [PATCH] paride-pt: register_chrdev fix + + If the user specified `major=0' (odd thing to do), pt.c will use dynamic + allocation. We need to pick up that major for subsequent unregister_chrdev(). + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8637980bab3f09157eef20cc65d2eb7393c770fd +Author: Andrew Morton +Date: Tue Mar 28 01:56:18 2006 -0800 + + [PATCH] paride: register_chrdev fix + + If the user specified `major=0' (odd thing to do), pg.c will use dynamic + allocation. We need to pick up that major for subsequent unregister_chrdev(). + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a687fb18cbd061de2092632cf77e6b9dc93cf7cd +Author: Adrian Bunk +Date: Tue Mar 28 01:56:17 2006 -0800 + + [PATCH] let BLK_DEV_RAM_COUNT depend on BLK_DEV_RAM + + It's purely cosmetic, but with the patch there's no longer a + BLK_DEV_RAM_COUNT setting in the .config if BLK_DEV_RAM=n. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit be4676e61f969b624185f14d819adef23d45ffc2 +Author: Paul Fulghum +Date: Tue Mar 28 01:56:16 2006 -0800 + + [PATCH] synclink_gt: remove uneeded async code + + Remove code in async receive handling that serves no purpose with new tty + receive buffering. Previously this code tried to free up receive buffer + space, but now does nothing useful while making expensive calls. + + Signed-off-by: Paul Fulghum + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0080b7aae88c75e2a6b38dfcb228b0f239e18e3c +Author: Paul Fulghum +Date: Tue Mar 28 01:56:15 2006 -0800 + + [PATCH] synclink_gt add gpio feature + + Add driver support for general purpose I/O feature of the Synclink GT + adapters. + + Signed-off-by: Paul Fulghum + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 86a34147d1f1c94e94500e63e83f9fa42548a088 +Author: Paul Fulghum +Date: Tue Mar 28 01:56:14 2006 -0800 + + [PATCH] synclink: remove dead code + + Remove dead code from synclink driver. This was used previously when the + write method had a from_user flag, which has been removed. + + Signed-off-by: Paul Fulghum + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f5f5370da4b3128b7dfd944b4fcbb5c7b6887348 +Author: Kyle McMartin +Date: Tue Mar 28 01:56:11 2006 -0800 + + [PATCH] Decrapify asm-generic/local.h + + Now that Christoph Lameter's atomic_long_t support is merged in mainline, + might as well convert asm-generic/local.h to use it, so the same code can + be used for both sizes of 32 and 64-bit unsigned longs. + + akpm sayeth: + + Q: + + Is there any particular reason why these routines weren't simply + implemented with local_save/restore_flags, if they are only meant to + guarantee atomicity to the local cpu? I'm sure on most platforms this + would be more efficient than using an atomic... + + A: + + The whole _point_ of local_t is to avoid local_irq_disable(). It's + designed to exploit the fact that many CPUs can do incs and decs in a way + which is atomic wrt local interrupts, but not atomic wrt SMP. + + But this patch makes sense, because asm-generic/local.h is just a fallback + implementation for architectures which either cannot perform these + local-irq-atomic operations, or its maintainers haven't yet got around to + implementing them. + + We need more work done on local_t in the 2.6.17 timeframe - they're defined as + unsigned long, but some architectures implement them as signed long. + + Signed-off-by: Kyle McMartin + Cc: Benjamin LaHaise + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4f3a36a7d0eb420471506fcd46ee46f4b5cd4ebc +Author: Matt Mackall +Date: Tue Mar 28 01:56:10 2006 -0800 + + [PATCH] RTC: Remove some duplicate BCD definitions + + Remove some duplicate BCD definitions + + Signed-off-by: Matt Mackall + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 41623b064fbd76de5901da7c0e3cd2136617d787 +Author: Matt Mackall +Date: Tue Mar 28 01:56:09 2006 -0800 + + [PATCH] RTC: Fix up some RTC whitespace and style + + Fix up some RTC whitespace and style + + Signed-off-by: Matt Mackall + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4c2e6f6a06cdd239ec17e195e7868ce0171ea154 +Author: Matt Mackall +Date: Tue Mar 28 01:56:09 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on Alpha + + The sync may still be needed for CPU clock calibration but we don't sync in + the regular case. + + Signed-off-by: Matt Mackall + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 356a9ce118879664ff88b76055b8bba115c1cc5e +Author: Matt Mackall +Date: Tue Mar 28 01:56:08 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on SH MPC1211 + + Signed-off-by: Matt Mackall + Cc: Paul Mundt + Cc: Kazumoto Kojima + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 04cfbee0fcb2a2ab31344ac9ace1dd370f3de2bd +Author: Matt Mackall +Date: Tue Mar 28 01:56:07 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on SH03 + + Signed-off-by: Matt Mackall + Cc: Paul Mundt + Cc: Kazumoto Kojima + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ddcabb4fc7f2f4a70f35aa72827888a4c549d355 +Author: Matt Mackall +Date: Tue Mar 28 01:56:06 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on MIPS-based DEC + + Move real_year inside the read loop and move the spinlock up as well + + Signed-off-by: Matt Mackall + Cc: Ralf Baechle + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit da2468b6a81884a696fd6c7ab66dcc62d7233d32 +Author: Matt Mackall +Date: Tue Mar 28 01:56:05 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on MIPS MC146818 + + Signed-off-by: Matt Mackall + Cc: Ralf Baechle + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4af6ec46c696a57ba9b1c1abffcdca14d6ab5410 +Author: Matt Mackall +Date: Tue Mar 28 01:56:05 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on ARM + + Signed-off-by: Matt Mackall + Cc: Russell King + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6f0d7bd6a14dcf5b258cfd809143c50e4897902b +Author: Matt Mackall +Date: Tue Mar 28 01:56:04 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on PPC Maple + + Signed-off-by: Matt Mackall + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4dc12ec7e26f287e33065e803bc0aede4c1dbdf3 +Author: Matt Mackall +Date: Tue Mar 28 01:56:03 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on CHRP (arch/powerpc) + + Signed-off-by: Matt Mackall + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 59937bcdb2bd759d15c792d9798a00da03bf1f48 +Author: Matt Mackall +Date: Tue Mar 28 01:56:02 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on PPC CHRP (arch/ppc) + + Signed-off-by: Matt Mackall + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3dedf53bb16e27743e5d1f49dbfecf3e5897befa +Author: Matt Mackall +Date: Tue Mar 28 01:56:01 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on Sparc64 + + Signed-off-by: Matt Mackall + Cc: "David S. Miller" + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 641f71f5f6ed251959ef8f88b1d0edc6ef7a4632 +Author: Matt Mackall +Date: Tue Mar 28 01:56:01 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on x86_64 + + Signed-off-by: Matt Mackall + Cc: Andi Kleen + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 63732c2f37093d63102d53e70866cf87bf0c0479 +Author: Matt Mackall +Date: Tue Mar 28 01:55:58 2006 -0800 + + [PATCH] RTC: Remove RTC UIP synchronization on x86 + + Reading the CMOS clock on x86 and some other arches currently takes up to one + second because it synchronizes with the CMOS second tick-over. This delay + shows up at boot time as well a resume time. + + This is the currently the most substantial boot time delay for machines that + are working towards instant-on capability. Also, a quick back of the envelope + calculation (.5sec * 2M users * 1 boot a day * 10 years) suggests it has cost + Linux users in the neighborhood of a million man-hours. + + An earlier thread on this topic is here: + + http://groups.google.com/group/linux.kernel/browse_frm/thread/8a24255215ff6151/2aa97e66a977653d?hl=en&lr=&ie=UTF-8&rnum=1&prev=/groups%3Fhl%3Den%26lr%3D%26ie%3DUTF-8%26selm%3D1To2R-2S7-11%40gated-at.bofh.it#2aa97e66a977653d + + ..from which the consensus seems to be that it's no longer desirable. + + In my view, there are basically four cases to consider: + + 1) networked, need precise walltime: use NTP + 2) networked, don't need precise walltime: use NTP anyway + 3) not networked, don't need sub-second precision walltime: don't care + 4) not networked, need sub-second precision walltime: + get a network or a radio time source because RTC isn't good enough anyway + + So this patch series simply removes the synchronization in favor of a simple + seqlock-like approach using the seconds value. + + Note that for purposes of timer accuracy on wakeup, this patch will cause us + to fire timers up to one second late. But as the current timer resume code + will already sync once (or more!), it's no worse for short timers. + + Signed-off-by: Matt Mackall + Cc: Andi Kleen + Cc: "David S. Miller" + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: Russell King + Cc: Ralf Baechle + Cc: Paul Mundt + Cc: Kazumoto Kojima + Cc: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 769ebc66dec24770ea1e99019099d2bc636a61d3 +Author: Dean Roe +Date: Mon Mar 6 10:32:05 2006 -0600 + + [IA64-SGI] fix for-loop in sn_hwperf_geoid_to_cnode() + + Fix a for-loop in sn_hwperf_geoid_to_cnode(). It needs to loop over + num_cnodes to ensure it can still process TIO nodes in addition to + compute nodes on systems with many nodes. Interim fix until better + support for many (>265) nodes is complete. + + Signed-off-by: Dean Roe + Signed-off-by: Tony Luck + +commit e8222502ee6157e2713da9e0792c21f4ad458d50 +Author: Benjamin Herrenschmidt +Date: Tue Mar 28 23:15:54 2006 +1100 + + [PATCH] powerpc: Kill _machine and hard-coded platform numbers + + This removes statically assigned platform numbers and reworks the + powerpc platform probe code to use a better mechanism. With this, + board support files can simply declare a new machine type with a + macro, and implement a probe() function that uses the flattened + device-tree to detect if they apply for a given machine. + + We now have a machine_is() macro that replaces the comparisons of + _machine with the various PLATFORM_* constants. This commit also + changes various drivers to use the new macro instead of looking at + _machine. + + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Paul Mackerras + +commit 056cb48a2fb6fb31debf665695a9f97b45cfb8ec +Author: Paul Mackerras +Date: Tue Mar 28 21:13:44 2006 +1100 + + ppc: Fix compile error in arch/ppc/lib/strcase.c + + Now that the strncasecmp implementation takes a size_t third parameter, + we need to get a definition of size_t from somewhere. + + Signed-off-by: Paul Mackerras + +commit 206dc69b31ca05baac68c75b8ed2ba7dd857d273 +Author: Jens Axboe +Date: Tue Mar 28 13:03:44 2006 +0200 + + [BLOCK] cfq-iosched: seek and async performance fixes + + Detect whether a given process is seeky and if so disable (mostly) the + idle window if it is. We still allow just a little idle time, just enough + to allow that process to submit a new request. That is needed to maintain + fairness across priority groups. + + In some cases, we could setup several async queues. This is not optimal + from a performance POV, since we want all async io in one queue to perform + good sorting on it. It also impacted sync queues, as async io got too much + slice time. + + Signed-off-by: Jens Axboe + +commit 872345b715ee02f3b45528449f0d11b44ef9ebb8 +Author: Andrew Morton +Date: Mon Mar 27 23:42:49 2006 -0800 + + [PATCH] git-powerpc: WARN was a dumb idea + + There are at least 14 different implementations of WARN() in the tree already. + The build fails all over the place. + + Cc: Paul Mackerras + Cc: Michael Ellerman + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 4d177fbfdadb011f1bac96f9ccba0cc9f21da8de +Author: Stephen Rothwell +Date: Tue Mar 28 17:14:44 2006 +1100 + + [PATCH] powerpc: a couple of trivial compile warning fixes + + Signed-off-by: Stephen Rothwell + Signed-off-by: Paul Mackerras + +commit de4533a04eb4f66dbef71f59a9c118256b886823 +Author: Russell King +Date: Tue Mar 28 10:34:05 2006 +0100 + + [ARM] Move ice-dcc code into misc.c + + Signed-off-by: Russell King + +commit a081568d7016061ed848696984e3acf1ba0b3054 +Author: Russell King +Date: Tue Mar 28 10:24:33 2006 +0100 + + [ARM] Fix decompressor serial IO to give CRLF not LFCR + + As per the corresponding change to the serial drivers, arrange + for ARM decompressors to give CRLF. Move the common putstr code + into misc.c such that machines only need to supply "putc" and + "flush" functions. + + Signed-off-by: Russell King + +commit 6e57a3a89785692bd8d012d80f5ee210ab8e0b68 +Author: David S. Miller +Date: Tue Mar 28 01:00:08 2006 -0800 + + [SPARC64]: Implement futex_atomic_cmpxchg_inatomic(). + + Signed-off-by: David S. Miller + +commit 7143dd4b0127141a4f773e819d1d1f4ab82bb517 +Author: Jens Axboe +Date: Tue Mar 28 09:00:28 2006 +0200 + + [PATCH] ll_rw_blk: fix 80-col offender in put_io_context() + + This makes akpm more happy. + + Signed-off-by: Jens Axboe + +commit e8a99053ea82a4b4375049886cf1db64d7dcd755 +Author: Andreas Mohr +Date: Tue Mar 28 08:59:49 2006 +0200 + + [PATCH] cfq-iosched: small cfq_choose_req() optimization + + this is a small optimization to cfq_choose_req() in the CFQ I/O scheduler + (this function is a semi-often invoked candidate in an oprofile log): + by using a bit mask variable, we can use a simple switch() to check + the various cases instead of having to query two variables for each check. + Benefit: 251 vs. 285 bytes footprint of cfq_choose_req(). + Also, common case 0 (no request wrapping) is now checked first in code. + + Signed-off-by: Andreas Mohr + Signed-off-by: Jens Axboe + +commit e2d74ac0664c89757bde8fb18c98cd7bf53da61c +Author: Jens Axboe +Date: Tue Mar 28 08:59:01 2006 +0200 + + [PATCH] [BLOCK] cfq-iosched: change cfq io context linking from list to tree + + On setups with many disks, we spend a considerable amount of time + looking up the process-disk mapping on each queue of io. Testing with + a NULL based block driver, this costs 40-50% reduction in throughput + for 1000 disks. + + Signed-off-by: Jens Axboe + +commit 78af90629ce98c8383ea16928e110eb97b889be6 +Author: Kumar Gala +Date: Mon Mar 27 23:48:37 2006 -0600 + + powerpc: remove OCP references + + OCP isn't used in arch/powerpc and hopefully will never be. + + Signed-off-by: Kumar Gala + +commit b239cbe957ae730caa8af2f169a4d35b8c1bb299 +Author: Stephen Rothwell +Date: Tue Mar 28 14:40:58 2006 +1100 + + [PATCH] powerpc: make ISA floppies work again + + We used to assume that a DMA mapping request with a NULL dev was for + ISA DMA. This assumption was broken at some point. Now we explicitly + pass the detected ISA PCI device in the floppy setup. + + Signed-off-by: Stephen Rothwell + Signed-off-by: Paul Mackerras + +commit 69ed3324983bb937d78a8579ed91b90242ee5aaa +Author: Anton Blanchard +Date: Tue Mar 28 14:08:39 2006 +1100 + + [PATCH] powerpc: Fix some initcall return values + + Non zero initcalls (except for -ENODEV) have started warning at boot. + Fix smt_setup and init_ras_IRQ. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 9fe901d124871f5781b9c4ccbb7ff93fdff9d39e +Author: Mike Kravetz +Date: Mon Mar 27 15:20:00 2006 -0800 + + [PATCH] powerpc: Workaround for pSeries RTAS bug + + A bug in the RTAS services incorrectly interprets some bits in the CR + when called from the OS. Specifically, bits in CR4. The result could + be a firmware crash that also takes down the partition. A firmware + fix is in the works. We have seen this situation when performing DLPAR + operations. As a temporary workaround, clear the CR in enter_rtas(). + Note that enter_rtas() will not set any bits in CR4 before calling RTAS. + + Also note that the 32 bit version of enter_rtas() should have the same + work around even though the chances of hitting the bug are much smaller + due to the lack of DLPAR on 32 bit kernels. However, my assembly skills + are a bit rusty and the 32 bit code doesn't seem to follow the conventions + for where things should be saved. In addition, I don't have a system + to test 32 bit kernels. Help creating and at least touch testing the + same workaround for 32 bit would be appreciated. + + Signed-off-by: Mike Kravetz + Signed-off-by: Paul Mackerras + +commit e78b47a59026f04eb98b9d392901be13b56f444f +Author: Arnd Bergmann +Date: Mon Mar 27 21:27:40 2006 +0200 + + [PATCH] spufs: fix __init/__exit annotations + + spufs_init and spufs_exit should be marked correctly so + they can be removed when not needed. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit f4d1749e9570d3984800c371c6e06eb35b9718b1 +Author: Arnd Bergmann +Date: Mon Mar 27 21:26:03 2006 +0200 + + [PATCH] powerpc: add hvc backend for rtas + + Current Cell hardware is using the console through a set + of rtas calls. This driver is needed to get console + output on those boards. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 45d607ed92695d7543f5e1fc5b133cd69834e3e4 +Author: Ryan S. Arnold +Date: Mon Mar 27 21:25:16 2006 +0200 + + [PATCH] powerpc: hvc_console updates + + These are some updates from both Ryan and Arnd for the hvc_console + driver: + + The main point is to enable the inclusion of a console driver + for rtas, which is currrently needed for the cell platform. + + Also shuffle around some data-type declarations and moves some + functions out of include/asm-ppc64/hvconsole.h and into a new + drivers/char/hvc_console.h file. + + Signed-off-by: "Ryan S. Arnold" + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 11089f08d9dd8b89cd07d6f126ccb4849e3c61a3 +Author: Laurent MEYER +Date: Mon Mar 27 11:37:41 2006 +0200 + + [PATCH] powerpc: fix incorrect SA_ONSTACK behaviour for 64-bit processes + + *) When setting a sighandler using sigaction() call, if the flag + SA_ONSTACK is set and no alternate stack is provided via sigaltstack(), + the kernel still try to install the alternate stack. This behavior is + the opposite of the one which is documented in Single Unix + Specifications V3. + + *) Also when setting an alternate stack using sigaltstack() with the + flag SS_DISABLE, the kernel try to install the alternate stack on + signal delivery. + + These two use cases makes the process crash at signal delivery. + + This fixes it. + + Signed-off-by: Laurent Meyer + Signed-off-by: Paul Mackerras + +commit 5149fa47ec90eb5e79e28f3a7fbcf29421524817 +Author: Michael Ellerman +Date: Mon Mar 27 14:26:26 2006 +1100 + + [PATCH] powerpc: Cope with duplicate node & property names in /proc/device-tree + + Various dodgy firmware might give us nodes and/or properties in the device + tree with conflicting names. That's generally ok, except for when we export + the device tree via /proc, so check when we're creating the proc device tree + and munge names accordingly. + + Tested on a faked device tree with kexec, would be good if someone with + actual bogus firmware could try it, but just for completeness. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit d0160bf0b3e87032be8e85f80ddd2f18e107b86f +Author: Michael Ellerman +Date: Mon Mar 27 14:26:25 2006 +1100 + + [PATCH] powerpc: Rename and export ppc64_firmware_features + + We need to export ppc64_firmware_features for modules. Before we do that + I think we should probably rename it to powerpc_firmware_features. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 9cf8ca38719e08e5388ddd37ef1c46442b8f99a4 +Author: Kumar Gala +Date: Mon Mar 27 23:44:37 2006 -0600 + + powerpc: Make uImage default build output for MPC8540 ADS + + When we build for the MPC8540 ADS produce a uImage by default. + Updated the defconfig to reflect this as well. + + Signed-off-by: Kumar Gala + +commit 5cd272085bbc905532869f3e1fd18a7100496b56 +Author: Kumar Gala +Date: Mon Mar 27 23:43:27 2006 -0600 + + powerpc: move math-emu over to arch/powerpc + + Towards the goal of having arch/powerpc not build anything over in arch/ppc + move math-emu over. Also, killed some references to arch/ppc/ in the + arch/powerpc Makefile which should belong in drivers/ when the particular + sub-arch's move over to arch/powerpc. + + Signed-off-by: Kumar Gala + +commit 2f25194dbe0c4b2472ce133ea3e9bcbb14936ae7 +Author: Anton Blanchard +Date: Mon Mar 27 11:46:18 2006 +1100 + + [PATCH] powerpc: export validate_sp for oprofile calltrace + + Export validate_sp so we can use it in the oprofile calltrace code. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 72533db0121e11811366b5a456f4068d1a4d542c +Author: Anton Blanchard +Date: Mon Mar 27 11:23:29 2006 +1100 + + [PATCH] powerpc: Remove some ifdefs in oprofile_impl.h + + - No one uses op_counter_config.valid, so remove it + - No need to ifdef around function protypes. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 10d713aef238b02a774766b2622027361630e28d +Author: Kumar Gala +Date: Mon Mar 27 18:26:42 2006 -0600 + + powerpc: use memparse() for mem= command line parsing + + Use memparse() instead of our own code for handling the parsing of mem= + + Signed-off-by: Kumar Gala + +commit cbd312b94ed123dc7080c9591cb715cd2a7327c0 +Author: Kumar Gala +Date: Mon Mar 27 18:26:18 2006 -0600 + + ppc: fix strncasecmp prototype + + Match, Linus's fix to arch/powerpc in arch/ppc. strcasecmp takes a size_t, + not an int, as its third argument. + + Signed-off-by: Kumar Gala + +commit 0a26b1364f14852bc9a51db0ca63c5250c775627 +Author: Paul Mackerras +Date: Tue Mar 28 10:22:10 2006 +1100 + + ppc: Remove CHRP, POWER3 and POWER4 support from arch/ppc + + 32-bit CHRP machines are now supported only in arch/powerpc, as are + all 64-bit PowerPC processors. This means that we don't use + Open Firmware on any platform in arch/ppc any more. + + This makes PReP support a single-platform option like every other + platform support option in arch/ppc now, thus CONFIG_PPC_MULTIPLATFORM + is gone from arch/ppc. CONFIG_PPC_PREP is the option that selects + PReP support and is generally what has replaced + CONFIG_PPC_MULTIPLATFORM within arch/ppc. + + _machine is all but dead now, being #defined to 0. + + Updated Makefiles, comments and Kconfig options generally to reflect + these changes. + + Signed-off-by: Paul Mackerras + +commit ff2e6d7e27cf1f757ab0d97e1a9e46de47152a0e +Author: Paul Mackerras +Date: Tue Mar 28 09:28:14 2006 +1100 + + powerpc: Fix goof in 6xx and POWER4 idle power-save functions + + This fixes a mistake I made when editing these functions - when I + took out the interrupt disabling code (because interrupts are now + disabled by the caller) I left the register that is used for the MSR + value to be used during doze/nap uninitialized. This fixes it. + + Also updated some of the comments in idle_power4.S and removed some + code that was copied over from idle_6xx.S but is no longer relevant + (we don't ever clear the CPU_FTR_CAN_NAP bit at runtime for POWER4). + + Signed-off-by: Paul Mackerras + +commit e6ef0fca2c61f7e773178be8c3833a709a47e022 +Author: hawkes@sgi.com +Date: Mon Mar 27 13:18:17 2006 -0800 + + [IA64-SGI] sn_hwperf use of num_online_cpus() + + Eliminate an unnecessary -- and flawed -- use of the expensive + num_online_cpus(). + + Signed-off-by: John Hawkes + Signed-off-by: Tony Luck + +commit 64840e2722aeb789574e336d231bbc6436d51b34 +Author: Andrew Morton +Date: Sat Mar 25 01:51:23 2006 -0800 + + [CPUFREQ] powernow: remove private for_each_cpu_mask() + + It is unneeded and wrong. + + Signed-off-by: Andrew Morton + Signed-off-by: Dave Jones + +commit eef5167e5045fa8265b3e72cac9dbc4bc7dd82a6 +Author: shin, jacob +Date: Mon Mar 27 09:57:20 2006 -0600 + + [CPUFREQ] hotplug cpu fix for powernow-k8 + + Andi's previous fix to initialise powernow_data on all siblings + will not work properly with CPU Hotplug. + + Signed-off-by: Jacob Shin + Signed-off-by: Dave Jones + +commit 2638fed7ccb07ff43cdc109dd78e821efb629995 +Author: David Woodhouse +Date: Thu Mar 23 22:43:38 2006 +0000 + + [PATCH] softmac: reduce default rate to 11Mbps. + + We don't make much of an attempt to fall back to lower rates, and 54M + just isn't reliable enough for many people. In fact, it's not clear we + even set it to 11M if we're trying to associate with an 802.11b AP. + + This patch makes us default to 11M, which ought to work for most people. + When we actually handle dynamic rate adjustment, we can reconsider the + defaults -- but even then, probably it makes as much sense to start at + 11M and adjust it upwards as it does to start at 54M and reduce it. + + Signed-off-by: David Woodhouse + Signed-off-by: John W. Linville + +commit 16f4352733d19c2d496f682c08cff368ba0495d0 +Author: David Woodhouse +Date: Thu Mar 23 14:00:02 2006 +0000 + + [PATCH] softmac: reduce scan dwell time + + It currently takes something like 8 seconds to do a scan, because we + spend half a second on each channel. Reduce that time to 20ms per + channel. + + Signed-off-by: David Woodhouse + Signed-off-by: John W. Linville + +commit ce9eed5a98efacb896551d3470d9d46826caaee5 +Author: Chen, Kenneth W +Date: Mon Mar 6 14:12:54 2006 -0800 + + [IA64] optimize flush_tlb_range on large numa box + + It was reported from a field customer that global spin lock ptcg_lock + is giving a lot of grief on munmap performance running on a large numa + machine. What appears to be a problem coming from flush_tlb_range(), + which currently unconditionally calls platform_global_tlb_purge(). + For some of the numa machines in existence today, this function is + mapped into ia64_global_tlb_purge(), which holds ptcg_lock spin lock + while executing ptc.ga instruction. + + Here is a patch that attempt to avoid global tlb purge whenever + possible. It will use local tlb purge as much as possible. Though the + conditions to use local tlb purge is pretty restrictive. One of the + side effect of having flush tlb range instruction on ia64 is that + kernel don't get a chance to clear out cpu_vm_mask. On ia64, this mask + is sticky and it will accumulate if process bounces around. Thus + diminishing the possible use of ptc.l. Thoughts? + + Signed-off-by: Ken Chen + Acked-by: Jack Steiner + Acked-by: KAMEZAWA Hiroyuki + Signed-off-by: Tony Luck + +commit 5e48521e869de7d904bb5ffe9739258ffa026927 +Author: Zhang, Yanmin +Date: Thu Feb 23 11:07:20 2006 +0800 + + [IA64] lazy_mmu_prot_update needs to be aware of huge pages + + Function lazy_mmu_prot_update is also used on huge pages when it is called + by set_huge_ptep_writable, but it isn't aware of huge pages. + + Signed-off-by: Zhang Yanmin + Acked-by: Ken Chen + Signed-off-by: Tony Luck + +commit d94606e058fccf5e22537bcc6d0f297224350303 +Author: Larry Finger +Date: Fri Mar 3 16:21:55 2006 -0600 + + [PATCH] Minor (janitorial) change to ieee80211 + + The attached patch removes a potential problem from ieee80211_wx.c, by changing the name of routine + ipw2100_translate_scan to ieee80211_translate_scan. The problem is minor as the routine is declared + static; however, if it were made global, it would pollute the namespace. + + Signed-Off-By: Larry Finger + Signed-off-by: John W. Linville + +commit df5b89b323b922f56650b4b4d7c41899b937cf19 +Author: NeilBrown +Date: Mon Mar 27 01:18:20 2006 -0800 + + [PATCH] md: Convert reconfig_sem to reconfig_mutex + + ... being careful that mutex_trylock is inverted wrt down_trylock + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 48c9c27b8bcd2a328a06151e2d5c1170db0b701b +Author: Arjan van de Ven +Date: Mon Mar 27 01:18:20 2006 -0800 + + [PATCH] sem2mutex: drivers/md + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Cc: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2f889129de148b0ba2e1fbc9e9d33a4ef4c5f2cb +Author: NeilBrown +Date: Mon Mar 27 01:18:19 2006 -0800 + + [PATCH] md: Restore 'remaining' count when retrying an write operation + + When retrying a write due to barrier failure, we don't reset 'remaining', so + it goes negative and never hits 0 again. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8ddeeae51f2f197b4fafcba117ee8191b49d843e +Author: NeilBrown +Date: Mon Mar 27 01:18:18 2006 -0800 + + [PATCH] md: Fix md grow/size code to correctly find the maximum available space + + An md array can be asked to change the amount of each device that it is using, + and in particular can be asked to use the maximum available space. This + currently only works if the first device is not larger than the rest. As + 'size' gets changed and so 'fit' becomes wrong. So check if a 'fit' is + required early and don't corrupt it. + + Signed-off-by: Doug Ledford + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f6344757a92e5466bf8c23a74ee8f972ff35cb05 +Author: NeilBrown +Date: Mon Mar 27 01:18:17 2006 -0800 + + [PATCH] md: Remove bi_end_io call out from under a spinlock + + raid5 overloads bi_phys_segments to count the number of blocks that the + request was broken in to so that it knows when the bio is completely handled. + + Accessing this must always be done under a spinlock. In one case we also call + bi_end_io under that spinlock, which probably isn't ideal as bi_end_io could + be expensive (even though it isn't allowed to sleep). + + So we reducde the range of the spinlock to just accessing bi_phys_segments. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b3b46be38aef5c46a4e144f1bcb8d0cc6bf3ff97 +Author: NeilBrown +Date: Mon Mar 27 01:18:16 2006 -0800 + + [PATCH] md: Remove some stray semi-colons after functions called in macro.. + + wait_event_lock_irq puts a ';' after its usage of the 4th arg, so we don't + need to. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit df8e7f7639bab3b2cc536a1d30d5593d65251778 +Author: NeilBrown +Date: Mon Mar 27 01:18:15 2006 -0800 + + [PATCH] md: Improve comments about locking situation in raid5 make_request + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e464eafdb4400c6d6576ba3840d8bd40340f8a96 +Author: NeilBrown +Date: Mon Mar 27 01:18:14 2006 -0800 + + [PATCH] md: Support suspending of IO to regions of an md array + + This allows user-space to access data safely. This is needed for raid5 + reshape as user-space needs to take a backup of the first few stripes before + allowing reshape to commence. + + It will also be useful in cluster-aware raid1 configurations so that all + cluster members can leave a section of the array untouched while a + resync/recovery happens. + + A 'start' and 'end' of the suspended range are written to 2 sysfs attributes. + Note that only one range can be suspended at a time. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 16484bf59634e25d1299761e5ed8bacf22bc6368 +Author: NeilBrown +Date: Mon Mar 27 01:18:13 2006 -0800 + + [PATCH] md: Make 'reshape' a possible sync_action action + + This allows reshape to be triggerred via sysfs (which is the only way to start + it happening). + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 63c70c4f3a30e77e6f445bd16eff7934a031ebd3 +Author: NeilBrown +Date: Mon Mar 27 01:18:13 2006 -0800 + + [PATCH] md: Split reshape handler in check_reshape and start_reshape + + check_reshape checks validity and does things that can be done instantly - + like adding devices to raid1. start_reshape initiates a restriping process to + convert the whole array. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b578d55fdd80140f657130abd85aebeb345755fb +Author: NeilBrown +Date: Mon Mar 27 01:18:12 2006 -0800 + + [PATCH] md: Only checkpoint expansion progress occasionally + + Instead of checkpointing at each stripe, only checkpoint when a new write + would overwrite uncheckpointed data. Block any write to the uncheckpointed + area. Arbitrarily checkpoint at least every 3Meg. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f67055780caac6a99f43834795c43acf99eba6a6 +Author: NeilBrown +Date: Mon Mar 27 01:18:11 2006 -0800 + + [PATCH] md: Checkpoint and allow restart of raid5 reshape + + We allow the superblock to record an 'old' and a 'new' geometry, and a + position where any conversion is up to. The geometry allows for changing + chunksize, layout and level as well as number of devices. + + When using verion-0.90 superblock, we convert the version to 0.91 while the + conversion is happening so that an old kernel will refuse the assemble the + array. For version-1, we use a feature bit for the same effect. + + When starting an array we check for an incomplete reshape and restart the + reshape process if needed. If the reshape stopped at an awkward time (like + when updating the first stripe) we refuse to assemble the array, and let + user-space worry about it. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 292695531ae4019bb15deedc121b218d1908b648 +Author: NeilBrown +Date: Mon Mar 27 01:18:10 2006 -0800 + + [PATCH] md: Final stages of raid5 expand code + + This patch adds raid5_reshape and end_reshape which will start and finish the + reshape processes. + + raid5_reshape is only enabled in CONFIG_MD_RAID5_RESHAPE is set, to discourage + accidental use. + + Read the 'help' for the CONFIG_MD_RAID5_RESHAPE entry. + + and Make sure that you have backups, just in case. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ccfcc3c10b2a5cb8fd3c918199a4ff904fc6fb3e +Author: NeilBrown +Date: Mon Mar 27 01:18:09 2006 -0800 + + [PATCH] md: Core of raid5 resize process + + This patch provides the core of the resize/expand process. + + sync_request notices if a 'reshape' is happening and acts accordingly. + + It allocated new stripe_heads for the next chunk-wide-stripe in the target + geometry, marking them STRIPE_EXPANDING. + + Then it finds which stripe heads in the old geometry can provide data needed + by these and marks them STRIPE_EXPAND_SOURCE. This causes stripe_handle to + read all blocks on those stripes. + + Once all blocks on a STRIPE_EXPAND_SOURCE stripe_head are read, any that are + needed are copied into the corresponding STRIPE_EXPANDING stripe_head. Once a + STRIPE_EXPANDING stripe_head is full, it is marks STRIPE_EXPAND_READY and then + is written out and released. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7ecaa1e6a1ad69862e9980b6c777e11f26c4782d +Author: NeilBrown +Date: Mon Mar 27 01:18:08 2006 -0800 + + [PATCH] md: Infrastructure to allow normal IO to continue while array is expanding + + We need to allow that different stripes are of different effective sizes, and + use the appropriate size. Also, when a stripe is being expanded, we must + block any IO attempts until the stripe is stable again. + + Key elements in this change are: + - each stripe_head gets a 'disk' field which is part of the key, + thus there can sometimes be two stripe heads of the same area of + the array, but covering different numbers of devices. One of these + will be marked STRIPE_EXPANDING and so won't accept new requests. + - conf->expand_progress tracks how the expansion is progressing and + is used to determine whether the target part of the array has been + expanded yet or not. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ad01c9e3752f4ba4f3d99c89b7370fa4983a25b5 +Author: NeilBrown +Date: Mon Mar 27 01:18:07 2006 -0800 + + [PATCH] md: Allow stripes to be expanded in preparation for expanding an array + + Before a RAID-5 can be expanded, we need to be able to expand the stripe-cache + data structure. + + This requires allocating new stripes in a new kmem_cache. If this succeeds, + we copy cache pages over and release the old stripes and kmem_cache. + + We then allocate new pages. If that fails, we leave the stripe cache at it's + new size. It isn't worth the effort to shrink it back again. + + Unfortuanately this means we need two kmem_cache names as we, for a short + period of time, we have two kmem_caches. So they are raid5/%s and + raid5/%s-alt + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b55e6bfcd23cb2f7249095050c649f7aea813f9f +Author: NeilBrown +Date: Mon Mar 27 01:18:06 2006 -0800 + + [PATCH] md: Split disks array out of raid5 conf structure so it is easier to grow + + The remainder of this batch implements raid5 reshaping. Currently the only + shape change that is supported is added a device, but it is envisioned that + changing the chunksize and layout will also be supported, as well as changing + the level (e.g. 1->5, 5->6). + + The reshape process naturally has to move all of the data in the array, and so + should be used with caution. It is believed to work, and some testing does + support this, but wider testing would be great for increasing my confidence. + + You will need a version of mdadm newer than 2.3.1 to make use of raid5 growth. + This is because mdadm need to take a copy of a 'critical section' at the + start of the array incase there is a crash at an awkward moment. On restart, + mdadm will restore the critical section and allow reshape to continue. + + I hope to release a 2.4-pre by early next week - it still needs a little more + polishing. + + This patch: + + Previously the array of disk information was included in the raid5 'conf' + structure which was allocated to an appropriate size. This makes it awkward + to change the size of that array. So we split it off into a separate + kmalloced array which will require a little extra indexing, but is much easier + to grow. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4588b42e9d0d0904a745c96cead66506c75bae21 +Author: NeilBrown +Date: Mon Mar 27 01:18:04 2006 -0800 + + [PATCH] md: Update status_resync to handle LARGE devices + + status_resync - used by /proc/mdstat to report the status of a resync, assumes + that device sizes will always fit into an 'unsigned long' This is no longer + the case... + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1be7892fffb45f6017494a88ff68fe84c6de26b4 +Author: NeilBrown +Date: Mon Mar 27 01:18:03 2006 -0800 + + [PATCH] md: Fix the 'failed' count for version-0 superblocks + + We are counting failed devices twice, once of the device that is failed, and + once for the hole that has been left in the array. Remove the former so + 'failed' matches 'missing'. Storing these counts in the superblock is a bit + silly anyway.... + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c5a10f62c5c496c49db749af103b991873b7e2dc +Author: NeilBrown +Date: Mon Mar 27 01:18:03 2006 -0800 + + [PATCH] md: Add '4' to the list of levels for which bitmaps are supported + + I really should make this a function of the personality.... + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 89e5c8b5b85d6d46e8a28cdfa076313ae691d35c +Author: NeilBrown +Date: Mon Mar 27 01:18:02 2006 -0800 + + [PATCH] md: Make sure QUEUE_FLAG_CLUSTER is set properly for md. + + This flag should be set for a virtual device iff it is set for all underlying + devices. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a22c96c737a9cefbe8d6e991c0032ad6db825a67 +Author: Kevin Corry +Date: Mon Mar 27 01:18:01 2006 -0800 + + [PATCH] dm: remove unnecessary typecast + + Signed-off-by: Kevin Corry + Cc: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b4cf1b72eec0e197257a5b07dc9ec53552cdd123 +Author: Jun'ichi Nomura +Date: Mon Mar 27 01:18:00 2006 -0800 + + [PATCH] dm/md dependency tree in sysfs: convert bd_sem to bd_mutex + + Convert bd_sem to bd_mutex + + Signed-off-by: Jun'ichi Nomura + Cc: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f165921df46a977e3561f1bd9f13a348441486d1 +Author: Jun'ichi Nomura +Date: Mon Mar 27 01:17:59 2006 -0800 + + [PATCH] dm/md dependency tree in sysfs: dm to use bd_claim_by_disk + + Use bd_claim_by_disk. + + Following symlinks are created if dm-0 maps to sda: + /sys/block/dm-0/slaves/sda --> /sys/block/sda + /sys/block/sda/holders/dm-0 --> /sys/block/dm-0 + + Signed-off-by: Jun'ichi Nomura + Cc: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5463c7904c952aa6b6804dd902c72a5332fa5221 +Author: Jun'ichi Nomura +Date: Mon Mar 27 01:17:58 2006 -0800 + + [PATCH] dm/md dependency tree in sysfs: md to use bd_claim_by_disk + + Use bd_claim_by_disk. + + Following symlinks are created if md0 is built from sda and sdb + /sys/block/md0/slaves/sda --> /sys/block/sda + /sys/block/md0/slaves/sdb --> /sys/block/sdb + /sys/block/sda/holders/md0 --> /sys/block/md0 + /sys/block/sdb/holders/md0 --> /sys/block/md0 + + Signed-off-by: Jun'ichi Nomura + Cc: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 641dc636b0475582e48584340b774bd1e90d40d9 +Author: Jun'ichi Nomura +Date: Mon Mar 27 01:17:57 2006 -0800 + + [PATCH] dm/md dependency tree in sysfs: bd_claim_by_kobject + + Adding bd_claim_by_kobject() function which takes kobject as additional + signature of holder device and creates sysfs symlinks between holder device + and claimed device. bd_release_from_kobject() is a counterpart of + bd_claim_by_kobject. + + Signed-off-by: Jun'ichi Nomura + Cc: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 100873687d81d4ce7b1299b447d33e87ba1e9583 +Author: Andrew Morton +Date: Mon Mar 27 01:17:56 2006 -0800 + + [PATCH] dm-md-dependency-tree-in-sysfs-holders-slaves-subdirectory-tidy + + Remove all the CONFIG_SYSFS stuff. That's supposed to all be implemented up + in header files. + + Yes, the CONFIG_SYSFS=n data structures will be a little larger than + necessary, but that's a tradeoff we can decide to make. + + Cc: Jun'ichi Nomura + Cc: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a4d44c1f1108d6c9e8850e8cf166aaba0e56eae +Author: Jun'ichi Nomura +Date: Mon Mar 27 01:17:55 2006 -0800 + + [PATCH] dm/md dependency tree in sysfs: holders/slaves subdirectory + + Creating "slaves" and "holders" directories in /sys/block/ and + creating "holders" directory under /sys/block// + + Signed-off-by: Jun'ichi Nomura + Cc: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ac51e741a46af7a20f55e79d3e3aeaa93c6c544 +Author: Darrick J. Wong +Date: Mon Mar 27 01:17:54 2006 -0800 + + [PATCH] dm store geometry + + Allow drive geometry to be stored with a new DM_DEV_SET_GEOMETRY ioctl. + Device-mapper will now respond to HDIO_GETGEO. If the geometry information is + not available, zero will be returned for all of the parameters. + + Signed-off-by: Darrick J. Wong + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1134e5ae79bab61c05657ca35a6297cf87202e35 +Author: Mike Anderson +Date: Mon Mar 27 01:17:54 2006 -0800 + + [PATCH] dm table: store md + + Store an up-pointer to the owning struct mapped_device in every table when it + is created. + + Access it with: + struct mapped_device *dm_table_get_md(struct dm_table *t) + + Tables linked to md must be destroyed before the md itself. + + Signed-off-by: Mike Anderson + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9ade92a9a5b0a3a10efa6551b8c67a9277bf0438 +Author: Alasdair G Kergon +Date: Mon Mar 27 01:17:53 2006 -0800 + + [PATCH] dm: tidy mdptr + + Change dm_get_mdptr() to take a struct mapped_device instead of dev_t. + + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7e51f257e87297a5b6fe6d136a8ef67206aaf3a8 +Author: Mike Anderson +Date: Mon Mar 27 01:17:52 2006 -0800 + + [PATCH] dm: store md name + + The patch stores a printable device number in struct mapped_device for use in + warning messages and with a proposed netlink interface. + + Signed-off-by: Mike Anderson + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1ecac7fd74f2e5fb06a7719ecba55fb5778a9a47 +Author: Jun'ichi Nomura +Date: Mon Mar 27 01:17:51 2006 -0800 + + [PATCH] dm flush queue EINTR + + If dm_suspend() is cancelled, bios already added to the deferred list need to + be submitted. Otherwise they remain 'in limbo' until there's a dm_resume(). + + Signed-off-by: Jun'ichi Nomura + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 138728dc96529f20dfe970c470e51885a60e329f +Author: Alasdair G Kergon +Date: Mon Mar 27 01:17:50 2006 -0800 + + [PATCH] dm snapshot: fix kcopyd destructor + + Before removing a snapshot, wait for the completion of any kcopyd jobs using + it. + + Do this by maintaining a count (nr_jobs) of how many outstanding jobs each + kcopyd_client has. + + The snapshot destructor first unregisters the snapshot so that no new kcopyd + jobs (created by writes to the origin) will reference that particular + snapshot. kcopyd_client_destroy() is now run next to wait for the completion + of any outstanding jobs before the snapshot exception structures (that those + jobs reference) are freed. + + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 969429b504ae866d3f8b1cafd68a2c099e305093 +Author: NeilBrown +Date: Mon Mar 27 01:17:49 2006 -0800 + + [PATCH] dm: make sure QUEUE_FLAG_CLUSTER is set properly + + This flag should be set for a virtual device iff it is set for all + underlying devices. + + Signed-off-by: Neil Brown + Acked-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4ee218cd67b385759993a6c840ea45f0ee0a8b30 +Author: Andrew Morton +Date: Mon Mar 27 01:17:48 2006 -0800 + + [PATCH] dm: remove SECTOR_FORMAT + + We don't know what type sector_t has. Sometimes it's unsigned long, sometimes + it's unsigned long long. For example on ppc64 it's unsigned long with + CONFIG_LBD=n and on x86_64 it's unsigned long long with CONFIG_LBD=n. + + The way to handle all of this is to always use unsigned long long and to + always typecast the sector_t when printing it. + + Acked-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 930d332a23682202c07df0276dd665a57755b37d +Author: Jun'ichi Nomura +Date: Mon Mar 27 01:17:47 2006 -0800 + + [PATCH] drivers/md/dm-raid1.c: Fix inconsistent mirroring after interrupted recovery + + dm-mirror has potential data corruption problem: while on-disk log shows + that all disk contents are in-sync, actual contents of the disks are not + synchronized. This problem occurs if initial recovery (synching) is + interrupted and resumed. + + Attached patch fixes this problem. + + Background: + + rh_dec() changes the region state from RH_NOSYNC (out-of-sync) to RH_CLEAN + (in-sync), which results in the corresponding bit of clean_bits being set. + + This is harmful if on-disk log is used and the map is removed/suspended + before the initial sync is completed. The clean_bits is written down to + the on-disk log at the map removal, and, upon resume, it's read and copied + to sync_bits. Since the recovery process refers to the sync_bits to find a + region to be recovered, the region whose state was changed from RH_NOSYNC + to RH_CLEAN is no longer recovered. + + If you haven't applied dm-raid1-read-balancing.patch proposed in dm-devel + sometimes ago, the contents of the mirrored disk just corrupt silently. If + you have, balanced read may get bogus data from out-of-sync disks. + + The patch keeps RH_NOSYNC state unchanged. It will be changed to + RH_RECOVERING when recovery starts and get reclaimed when the recovery + completes. So it doesn't leak the region hash entry. + + Description: + + Keep RH_NOSYNC state unchanged when I/O on the region completes. + + rh_dec() changes the region state from RH_NOSYNC (out-of-sync) to RH_CLEAN + (in-sync), which results in the corresponding bit of clean_bits being set. + + This is harmful if on-disk log is used and the map is removed/suspended + before the initial sync is completed. The clean_bits is written down to + the on-disk log at the map removal, and, upon resume, it's read and copied + to sync_bits. Since the recovery process refers to the sync_bits to find a + region to be recovered, the region whose state was changed from RH_NOSYNC + to RH_CLEAN is no longer recovered. + + If you haven't applied dm-raid1-read-balancing.patch proposed in dm-devel + sometimes ago, the contents of the mirrored disk just corrupt silently. If + you have, balanced read may get bogus data from out-of-sync disks. + + The RH_NOSYNC region will be changed to RH_RECOVERING when recovery starts + on the region and get reclaimed when the recovery completes. So it doesn't + leak the region hash entry. + + Alasdair said: + + I've analysed the relevant part of the state machine and I believe that + the patch is correct. + + (Further work on this code is still needed - this patch has the + side-effect of holding onto memory unnecessarily for long periods of time + under certain workloads - but better that than corrupting data.) + + Signed-off-by: Jun'ichi Nomura + Acked-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 76df1c651b66bdf07d60b3d60789feb5f58d73e3 +Author: Alasdair G Kergon +Date: Mon Mar 27 01:17:45 2006 -0800 + + [PATCH] device-mapper snapshot: fix invalidation + + When a snapshot becomes invalid, s->valid is set to 0. In this state, a + snapshot can no longer be accessed. + + When s->lock is acquired, before doing anything else, s->valid must be checked + to ensure the snapshot remains valid. + + This patch eliminates some races (that may cause panics) by adding some + missing checks. At the same time, some unnecessary levels of indentation are + removed and snapshot invalidation is moved into a single function that always + generates a device-mapper event. + + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b4b610f684d13bf8691feeae5d4d7a8bd1f1033e +Author: Alasdair G Kergon +Date: Mon Mar 27 01:17:44 2006 -0800 + + [PATCH] device-mapper snapshot: replace sibling list + + The siblings "list" is used unsafely at the moment. + + Firstly, only the element on the list being changed gets locked (via the + snapshot lock), not the next and previous elements which have pointers that + are also being changed. + + Secondly, if you have two or more snapshots and write to the same chunk a + second time before every snapshot has finished making its private copy of the + data, if you're unlucky, _origin_write() could attempt its list_merge() and + dereference a 'last' pointer to a pending_exception structure that has just + been freed. + + Analysis reveals that the list is actually only there for reference counting. + If 5 pending_exceptions are needed in origin_write, then the 5 are joined + together into a 5-element list - without a separate list head because there's + nowhere suitable to store it. As the pending_exceptions complete, they are + removed from the list one-by-one and any contents of origin_bios get moved + across to one of the remaining pending_exceptions on the list. Whichever one + is last is detected because list_empty() is then true and the origin_bios get + submitted. + + The fix proposed here uses an alternative reference counting mechanism by + choosing one of the pending_exceptions as primary and maintaining an atomic + counter there. + + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eccf081799be8d83852f183838bf26e1ca099db4 +Author: Alasdair G Kergon +Date: Mon Mar 27 01:17:42 2006 -0800 + + [PATCH] device-mapper snapshot: fix origin_write pending_exception submission + + Say you have several snapshots of the same origin and then you issue a write + to some place in the origin for the first time. + + Before the device-mapper snapshot target lets the write go through to the + underlying device, it needs to make a copy of the data that is about to be + overwritten. Each snapshot is independent, so it makes one copy for each + snapshot. + + __origin_write() loops through each snapshot and checks to see whether a copy + is needed for that snapshot. (A copy is only needed the first time that data + changes.) + + If a copy is needed, the code allocates a 'pending_exception' structure + holding the details. It links these together for all the snapshots, then + works its way through this list and submits the copying requests to the kcopyd + thread by calling start_copy(). When each request is completed, the original + pending_exception structure gets freed in pending_complete(). + + If you're very unlucky, this structure can get freed *before* the submission + process has finished walking the list. + + This patch: + + 1) Creates a new temporary list pe_queue to hold the pending exception + structures; + + 2) Does all the bookkeeping up-front, then walks through the new list + safely and calls start_copy() for each pending_exception that needed it; + + 3) Avoids attempting to add pe->siblings to the list if it's already + connected. + + [NB This does not fix all the races in this code. More patches will follow.] + + Signed-off-by: Alasdair G Kergon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e4ccde33de202fae1b1e2a940604ee9e295450d9 +Author: Adrian Bunk +Date: Mon Mar 27 01:17:41 2006 -0800 + + [PATCH] video/sis/init301.c:SiS_ChrontelDoSomething2(): remove dead code + + The Coverity checker spotted these two unused variables. + + Signed-off-by: Adrian Bunk + Cc: "Antonino A. Daplas" + Cc: Thomas Winischhofer + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d1ae418eef4ce763a95edec0b5fc095af5daca2e +Author: Tobias Klauser +Date: Mon Mar 27 01:17:39 2006 -0800 + + [PATCH] drivers/video: Use ARRAY_SIZE macro + + Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove + duplicates of ARRAY_SIZE. Some coding style and trailing whitespaces are + also fixed. + + Compile-tested where possible (some are other arch or BROKEN) + + Signed-off-by: Tobias Klauser + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b0c87978216836455ef5fbcac6df1ce6679750b0 +Author: Olaf Hering +Date: Mon Mar 27 01:17:38 2006 -0800 + + [PATCH] fbdev: add modeline for 1680x1050@60 + + Add a modeline for the Philips 200W display. aty128fb does not do DDC, it + picks 1920x1440 or similar. It works ok with nvidiafb because it can ask + for DDC data. + + mode "1680x1050-60" + # D: 146.028 MHz, H: 65.191 kHz, V: 59.863 Hz + geometry 1680 1050 1680 1050 16 + timings 6848 280 104 30 3 176 6 + hsync high + vsync high + rgba 5/11,6/5,5/0,0/0 + endmode + + hwinfo --monitor + 20: None 00.0: 10000 Monitor + [Created at monitor.206] + Unique ID: rdCR.pzUFTofo1S4 + Parent ID: 002j.bJRsY88eNSC + Hardware Class: monitor + Model: "PHILIPS Philips 200W" + Vendor: PHL "PHILIPS" + Device: eisa 0x0832 "Philips 200W" + Serial ID: "VN 016596" + Resolution: 720x400@70Hz + Resolution: 640x480@60Hz + Resolution: 640x480@67Hz + Resolution: 640x480@72Hz + Resolution: 640x480@75Hz + Resolution: 800x600@56Hz + Resolution: 800x600@60Hz + Resolution: 800x600@72Hz + Resolution: 800x600@75Hz + Resolution: 832x624@75Hz + Resolution: 1024x768@60Hz + Resolution: 1024x768@70Hz + Resolution: 1024x768@75Hz + Resolution: 1280x1024@75Hz + Resolution: 1152x864@70Hz + Resolution: 1152x864@75Hz + Resolution: 1280x960@60Hz + Resolution: 1280x1024@60Hz + Resolution: 1680x1050@60Hz + Size: 433x271 mm + Driver Info #0: + Max. Resolution: 1680x1050 + Vert. Sync Range: 56-85 Hz + Hor. Sync Range: 30-93 kHz + Config Status: cfg=new, avail=yes, need=no, active=unknown + Attached to: #5 (VGA compatible controller) + + Signed-off-by: Olaf Hering + Acked-by: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ac3f9087d337a6ffa1a5fbdf2c923eb0aad1aef6 +Author: Ralf Baechle +Date: Mon Mar 27 01:17:37 2006 -0800 + + [PATCH] sparse: Fix warnings in newport driver about non-static functions + + There are more sparse warnings but fixing those will require some more work + than I want to do without hardware for testing at hand. + + Signed-off-by: Ralf Baechle + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ed49843b897da9969e349c279ffc832efcb93213 +Author: Pavel Roskin +Date: Mon Mar 27 01:17:36 2006 -0800 + + [PATCH] Add ID for Quadro NVS280 + + Quadro NVS280 is a dual-head PCIe card with PCI ID 10de:00fd and subsystem ID + 10de:0215. + + Signed-off-by: Pavel Roskin + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6257ffacb9e1dc99a910d620ccb92ec88da20a4f +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:36 2006 -0800 + + [PATCH] imsttfb: Remove dead code + + clk_p is always 0. + + Coverity Bug 67 + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eba87e8e8d7024da827accb00ce7e3affd10b7de +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:35 2006 -0800 + + [PATCH] atyfb: Remove dead code + + Remove code that can never be reached. + + Coverity Bug 67 + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0e4be28023c14624e03a09b4494e919e088513f0 +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:34 2006 -0800 + + [PATCH] savagefb: Remove NULL check + + Remove unnecessary NULL check. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c518eb84ce75d4c8e8799f4fcad59837f6d1894 +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:33 2006 -0800 + + [PATCH] i810fb: Remove NULL check + + Remove unnecessary NULL check. Being a function private to the driver, + out_edid can never be NULL. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3d5b191fff144634a04800e610b7ad0c1aefa6ed +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:33 2006 -0800 + + [PATCH] nvidiafb: Remove NULL check #2 + + Remove unnecessary NULL check. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8ff7727d2a92f8b99cc709b827859da5d3c46a8a +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:32 2006 -0800 + + [PATCH] nvidiafb: Remove NULL check + + Remove unnecessary NULL check, as struct info will never be NULL. + + Coverity Bug 835 + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4d7b84d1cbb213fdfd2b25ffd1217f249ba1d55a +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:31 2006 -0800 + + [PATCH] rivafb: Remove NULL check + + Remove unnecessary NULL check, as struct info will never be NULL. + + Coverity Bug 836 + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit db77ec270d00098ff4fbf15f62f4506f6efb25d2 +Author: Alan Curry +Date: Mon Mar 27 01:17:30 2006 -0800 + + [PATCH] framebuffer: cmap-setting return values + + A set of 3 small bugfixes, all of which are related to bogus return values + of fb colormap-setting functions. + + First, fb_alloc_cmap returns -1 if memory allocation fails. This is a hard + condition to reproduce since you'd have to be really low on memory, but from + studying the contexts in which it is called, I think this function should be + returning a negative errno, and the -1 will be seen as an EPERM. Switching it + to -ENOMEM makes sense. + + Second, the store_cmap function which is called for writes to + /sys/class/graphics/fb0/color_map returns 0 for success, but it should be + returning the count of bytes written since its return value ends up in + userspace as the result of the write() syscall. + + Third, radeonfb returns 1 instead of a negative errno when FBIOPUTCMAP is + called with an oversized colormap. This is seen in userspace as a return + value of 1 from the ioctl() syscall with errno left unchanged. A more + useful return value would be -EINVAL. + + Signed-off-by: Alan Curry + Cc: "Antonino A. Daplas" + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 59153f7d7effdb5b3c81eb6d03914a866157b319 +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:29 2006 -0800 + + [PATCH] fbdev: Make BIOS EDID reading configurable + + DDC reading via the Video BIOS may take several tens of seconds with some + combination of display cards and monitors. + + Make this option configurable. It defaults to `y' to minimise disruption. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f95ec3c6df271ae4e6290cd6b95c18a009c76dc9 +Author: Ralf Baechle +Date: Mon Mar 27 01:17:27 2006 -0800 + + [PATCH] au1200fb: Alchemy Au1200 framebuffer driver + + Add support for Alchemy Au1200 framebuffer driver + + Signed-off-by: Ralf Baechle + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d03c21ec0be7787ff6b75dcf56c0e96209ccbfbd +Author: Jean Delvare +Date: Mon Mar 27 01:17:26 2006 -0800 + + [PATCH] matrox maven: memory allocation and other cleanups + + A few cleanups which were done to almost all i2c drivers some times + ago, but matroxfb_maven was forgotten: + + * Don't allocate two different structures at once. + * Use kzalloc instead of kmalloc+memset. + * Use strlcpy instead of strcpy. + * Drop duplicate error message on client deregistration failure. + + Signed-off-by: Jean Delvare + Acked-by: Petr Vandrovec + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 756e21a022aba5214bafcf803f114aed8a783b99 +Author: Arthur Othieno +Date: Mon Mar 27 01:17:24 2006 -0800 + + [PATCH] matroxfb: simply return what i2c_add_driver() does + + insmod will tell us when the module failed to load. We do no further + processing on the return from i2c_add_driver(), so just return what + i2c_add_driver() did, instead of storing it. + + Add __init/__exit annotations while we're at it. + + Signed-off-by: Arthur Othieno + Acked-by: Jean Delvare + Acked-by: Petr Vandrovec + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fc4effc7a98d0d320e478d1d42bc4a8a64380150 +Author: David Vrabel +Date: Mon Mar 27 01:17:23 2006 -0800 + + [PATCH] fbdev: framebuffer driver for Geode GX + + A framebuffer driver for the display controller in AMD Geode GX processors + (Geode GX533, Geode GX500 etc.). Tested at 640x480, 800x600, 1024x768 and + 1280x1024 at 8, 16, and 24 bpp with both CRT and TFT. No accelerated features + currently implemented and compression remains disabled. + + This driver requires that the BIOS (or the SoftVG/Firmbase code in the BIOS) + has created an appropriate virtual PCI header. + + Signed-off-by: David Vrabel + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7a07cd786dbd0111b9dd977e114438220cb4eee5 +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:22 2006 -0800 + + [PATCH] nvidiafb: add suspend and resume hooks + + Add suspend and resume hooks to make software suspend more reliable. Resuming + from standby should generally work. Resuming from mem and from disk requires + that the GPU is disabled. Adding these to the suspend script... + + fbset -accel false -a + /* suspend here */ + fbset -accel true -a + + ... should generally work. In addition, resuming from mem requires that the + video card has to be POSTed by the BIOS or some other utility. + + Signed-off-by: Antonino Daplas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 15bdab959c9bb909c0317480dd9b35748a8f7887 +Author: Antonino A. Daplas +Date: Mon Mar 27 01:17:20 2006 -0800 + + [PATCH] vgacon: Add support for soft scrollback + + The scrollback buffer of the VGA console is located in VGA RAM. This RAM + is fixed in size and is very small. To make the scrollback buffer larger, + it must be placed instead in System RAM. + + This patch adds this feature. The feature and the size of the buffer are + made as a kernel config option. Besides consuming kernel memory, this + feature will slow down the console by approximately 20%. + + Signed-off-by: Antonino Daplas + Signed-off-by: Jiri Slaby + Cc: Jindrich Makovicka + Cc: Martin Mares + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2115aea8185c8987b7688111953322742bd8795c +Author: Samuel Thibault +Date: Mon Mar 27 01:17:19 2006 -0800 + + [PATCH] vgacon: fix EGA cursor resize function + + This corrects cursor resize on ega boards: registers are write-only, so we + shouldn't even try to read them. And on ega, 31/30 produces a flat cursor. + Using 31/31 is better: except with 32 pixels high fonts, it shouldn't show + up. + + Signed-off-by: Samuel Thibault + Cc: "Antonino A. Daplas" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c94ded6e602594c8e66fd5b1ba832d5327f5c103 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:18 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: wavefront + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix some __init/__devinit issues. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 38125956441c5cab28333414cee308d162507477 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:17 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: sscape + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit be54414d597b168d8c4eb2dafb8933ea15a7c148 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:16 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: sb_card + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix some __init/__devinit issues. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 312fef308cb15e793d8902f1dbd318d01268d36e +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:15 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: sb16 + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix some __init/__devinit issues. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ebdb71ea7b384ff3f32dd038dba0aad58580e832 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:14 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: interwave + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix some __init/__devinit issues. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a3a3a0260cf5a4e5942db8d56cae4db4dc139a6 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:14 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: es968 + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix some __init/__devinit issues. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fea9739f2a1aed1cfb9b7af7cce66b28b68d4394 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:13 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: es18xx + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix some __init/__devinit issues. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6736a6587b991477aae927c37176e8cab8689f9e +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:12 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: dt019x + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 07d58ad06b46e630a5ff6b10e9b81f370b175b56 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:11 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: cmi8330 + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix some __init/__devinit issues. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit db2735eb9076c5176ec9dcbbaefd38e7d82f0e47 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:10 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: azt2320 + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 51427ec0f222cb73b21f3849416a95d751bdd742 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:09 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: als100 + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. And fix a __init/__devinit issue. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5f53f4e2107fcfdd33da1cc34a86c9aef5e76af6 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:08 2006 -0800 + + [PATCH] PNP: adjust pnp_register_card_driver() signature: ad1816a + + Remove the assumption that pnp_register_card_driver() returns the + number of devices claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 982c609448b9d724e1c3a0d5aeee388c064479f0 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:08 2006 -0800 + + [PATCH] pnp: PNP: adjust pnp_register_driver signature + + Remove the assumption that pnp_register_driver() returns the number of devices + claimed. Returning the count is unreliable because devices may be hot-plugged + in the future. + + This changes the convention to "zero for success, or a negative error value," + which matches pci_register_driver(), acpi_bus_register_driver(), and + platform_driver_register(). + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 070c6999831dc4cfd9b07c74c2fea1964d7adfec +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:07 2006 -0800 + + [PATCH] pnp: cs4232: adjust pnp_register_driver signature + + Remove the assumption that pnp_register_driver() returns the number of devices + claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 803d0abb3dcfc93701c8a8dc7f2968a47271214c +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:06 2006 -0800 + + [PATCH] pnp: IRDA: adjust pnp_register_driver signature + + Remove the assumption that pnp_register_driver() returns the number of devices + claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8c59c4a2216583cf79eaaaf71ef1dd5757e12854 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:05 2006 -0800 + + [PATCH] pnp: opl3sa2: adjust pnp_register_driver signature + + Remove the assumption that pnp_register_driver() returns the number of devices + claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ed7cb1913168fdce6d084f2f5cd6818851313383 +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:04 2006 -0800 + + [PATCH] pnp: cs4236: adjust pnp_register_driver signature + + Remove the assumption that pnp_register_driver() returns the number of devices + claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f301ae6a690abe7edd2f92fa6df0b1b06986a6ad +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:04 2006 -0800 + + [PATCH] pnp: mpu401: adjust pnp_register_driver signature + + This series of patches removes the assumption that pnp_register_driver() + returns the number of devices claimed. Returning the count is unreliable + because devices may be hot-plugged in the future. (Many devices don't support + hot-plug, of course, but PNP in general does.) + + This changes the convention to "zero for success, or a negative error value," + which matches pci_register_driver(), acpi_bus_register_driver(), and + platform_driver_register(). + + If drivers need to know the number of devices, they can count calls to their + .probe() methods. + + This patch: + + Remove the assumption that pnp_register_driver() returns the number of devices + claimed. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7597fee389b18e5ed3c8bd58f0012674beb279ed +Author: Bjorn Helgaas +Date: Mon Mar 27 01:17:02 2006 -0800 + + [PATCH] pnp: parport: adjust pnp_register_driver signature + + Remove the assumption that pnp_register_driver() returns the number of devices + claimed. + + parport_pc_init() does nothing with "count", so remove it. Then nobody uses + the return value of parport_pc_find_ports(), so make it void. Finally, update + pnp_register_driver() usage. + + Signed-off-by: Bjorn Helgaas + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1d98af87270cc08bb8251e004b9dc63cc838f24b +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:47 2006 -0800 + + [PATCH] RTC subsystem: M48T86 driver + + Add a driver for the ST M48T86 / Dallas DS12887 RTC. + + This is a platform driver. The platform device must provide I/O routines to + access the RTC. + + Signed-off-by: Alessandro Zummo + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e842f1c8ff8a88f290e26d1139e89aad02c4e0c3 +Author: Richard Purdie +Date: Mon Mar 27 01:16:46 2006 -0800 + + [PATCH] RTC subsystem: SA1100/PXA2XX driver + + Add an RTC subsystem driver for the ARM SA1100/PXA2XX processor RTC. + + Signed-off-by: Richard Purdie + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fd507e2ff3a5adaccbefa05f4bc9f58f44e930db +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:45 2006 -0800 + + [PATCH] RTC subsystem: EP93XX driver + + This patch adds a driver for the RTC embedded in the Cirrus Logic EP93XX + family of processors. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7520b94debdc61620e1582fb4f5cca4a830f91cd +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:45 2006 -0800 + + [PATCH] RTC subsystem: RS5C372 driver + + RTC class aware driver for the Ricoh RS5C372 chip used, among others, on the + Synology DS101. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b5a82d628d4491558c109fbeabc2993d6686e89c +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:44 2006 -0800 + + [PATCH] RTC subsystem: PCF8563 driver + + An RTC class aware driver for the Philips PCF8563 RTC and Epson RTC8564 chips. + + This chip is used on the Iomega NAS100D. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit edf1aaa31fc52ade0da7b6d1f2dffc17f0bdb9ff +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:43 2006 -0800 + + [PATCH] RTC subsystem: DS1672 driver + + Driver for the Dallas/Maxim DS1672 chip, found on the Loft + (http://www.giantshoulderinc.com). + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a95579cd4b40a4e062e187d931f498145551ee29 +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:42 2006 -0800 + + [PATCH] RTC subsystem: test device/driver + + Interrupts can be generated by + + echo "alarm|tick|update" >/sys/class/rtc/rtcX/device/irq + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1fec7c66ba98fc3a04e15fd14fad6b404e56fc94 +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:42 2006 -0800 + + [PATCH] RTC subsystem: X1205 driver + + A port of the existing x1205 driver under the new RTC subsystem. + + It is actually under test within the NSLU2 project + (http://www.nslu2-linux.org) and it is working quite well. + + It is the first driver under this new subsystem and should be used as a guide + to port other drivers. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e824290e5dcfaf2120da587b16d10dfdff8d5d3e +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:41 2006 -0800 + + [PATCH] RTC subsystem: dev interface + + Add the dev interface to the RTC subsystem. + + Each RTC will be available under /dev/rtcX . A symlink from /dev/rtc0 to + /dev/rtc cab be obtained with the following udev rule: + + KERNEL=="rtc0", SYMLINK+="rtc" + + Signed-off-by: Alessandro Zummo + Acked-by: Greg Kroah-Hartman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 728a294787b780130d8eb237518d4cac0afe760c +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:40 2006 -0800 + + [PATCH] RTC subsystem: proc interface + + Add the proc interface to the RTC subsystem. + + The first RTC driver which registers with the class will be accessible by + /proc/driver/rtc . + + This is required for compatibility with the standard RTC driver and to avoid + breaking any user space application which may erroneusly rely on this. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c5c3e19225217536d90515c494e55e642a21e4fa +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:39 2006 -0800 + + [PATCH] RTC subsystem: sysfs interface + + This patch adds the sysfs interface to the RTC subsystem. + + Each RTC client will have his own entry under /sys/classs/rtc/rtcN . + + Within this entry some attributes are exported by the subsystem, like date and + time. + + Signed-off-by: Alessandro Zummo + Acked-by: Greg Kroah-Hartman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f7f3682fb2f8bc8a9c912baeea15454416ca1972 +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:38 2006 -0800 + + [PATCH] RTC subsystem: I2C driver ids + + This patch adds the I2C driver ids to i2c-id.h in preparation of the I2C + direct probing method. + + This is kept separate so that it can be integrated to + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6fc7f10cee28c7fa190920fefda8c696d5bf3074 +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:37 2006 -0800 + + [PATCH] RTC subsystem: I2C cleanup + + This patch, completely optional, removes from drivers/i2c/chips all the + drivers that are implemented in the new RTC subsystem. + + It should be noted that none of the current driver is actually integrated, + i.e. usable without further patches. + + Signed-off-by: Alessandro Zummo + Acked-by: Greg Kroah-Hartman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0c86edc0d4970649f39748c4ce4f2895f728468f +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:37 2006 -0800 + + [PATCH] RTC subsystem: class + + Add the basic RTC subsystem infrastructure to the kernel. + + rtc/class.c - registration facilities for RTC drivers + rtc/interface.c - kernel/rtc interface functions + rtc/hctosys.c - snippet of code that copies hw clock to sw clock + at bootup, if configured to do so. + + Signed-off-by: Alessandro Zummo + Acked-by: Greg Kroah-Hartman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4079c39aaab65022f4875609d76e62669ef94c29 +Author: Richard Purdie +Date: Mon Mar 27 01:16:36 2006 -0800 + + [PATCH] RTC subsystem: ARM Integrator cleanup + + Fix some namespace conflicts between the RTC subsystem and the ARM Integrator + time functions. + + Signed-off-by: Richard Purdie + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 12b824fb15a37cdcdfa3e92c9e912a07cc6f7a24 +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:35 2006 -0800 + + [PATCH] RTC subsystem: ARM cleanup + + This patch removes from the ARM subsytem some of the rtc-related functions + that have been included in the RTC subsystem. It also fixes some naming + collisions. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c58411e95d7f5062dedd1a3064af4d359da1e633 +Author: Alessandro Zummo +Date: Mon Mar 27 01:16:34 2006 -0800 + + [PATCH] RTC Subsystem: library functions + + RTC and date/time related functions. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d23ee8fe6e2176a9d4dbfdd18edfa1b5bc3c79a5 +Author: Yoichi Yuasa +Date: Mon Mar 27 01:16:33 2006 -0800 + + [PATCH] mips: fixed collision of rtc function name + + Fix the collision of rtc function name. + + Signed-off-by: Yoichi Yuasa + Cc: Alessandro Zummo + Cc: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e041c683412d5bf44dc2b109053e3b837b71742d +Author: Alan Stern +Date: Mon Mar 27 01:16:30 2006 -0800 + + [PATCH] Notifier chain update: API changes + + The kernel's implementation of notifier chains is unsafe. There is no + protection against entries being added to or removed from a chain while the + chain is in use. The issues were discussed in this thread: + + http://marc.theaimsgroup.com/?l=linux-kernel&m=113018709002036&w=2 + + We noticed that notifier chains in the kernel fall into two basic usage + classes: + + "Blocking" chains are always called from a process context + and the callout routines are allowed to sleep; + + "Atomic" chains can be called from an atomic context and + the callout routines are not allowed to sleep. + + We decided to codify this distinction and make it part of the API. Therefore + this set of patches introduces three new, parallel APIs: one for blocking + notifiers, one for atomic notifiers, and one for "raw" notifiers (which is + really just the old API under a new name). New kinds of data structures are + used for the heads of the chains, and new routines are defined for + registration, unregistration, and calling a chain. The three APIs are + explained in include/linux/notifier.h and their implementation is in + kernel/sys.c. + + With atomic and blocking chains, the implementation guarantees that the chain + links will not be corrupted and that chain callers will not get messed up by + entries being added or removed. For raw chains the implementation provides no + guarantees at all; users of this API must provide their own protections. (The + idea was that situations may come up where the assumptions of the atomic and + blocking APIs are not appropriate, so it should be possible for users to + handle these things in their own way.) + + There are some limitations, which should not be too hard to live with. For + atomic/blocking chains, registration and unregistration must always be done in + a process context since the chain is protected by a mutex/rwsem. Also, a + callout routine for a non-raw chain must not try to register or unregister + entries on its own chain. (This did happen in a couple of places and the code + had to be changed to avoid it.) + + Since atomic chains may be called from within an NMI handler, they cannot use + spinlocks for synchronization. Instead we use RCU. The overhead falls almost + entirely in the unregister routine, which is okay since unregistration is much + less frequent that calling a chain. + + Here is the list of chains that we adjusted and their classifications. None + of them use the raw API, so for the moment it is only a placeholder. + + ATOMIC CHAINS + ------------- + arch/i386/kernel/traps.c: i386die_chain + arch/ia64/kernel/traps.c: ia64die_chain + arch/powerpc/kernel/traps.c: powerpc_die_chain + arch/sparc64/kernel/traps.c: sparc64die_chain + arch/x86_64/kernel/traps.c: die_chain + drivers/char/ipmi/ipmi_si_intf.c: xaction_notifier_list + kernel/panic.c: panic_notifier_list + kernel/profile.c: task_free_notifier + net/bluetooth/hci_core.c: hci_notifier + net/ipv4/netfilter/ip_conntrack_core.c: ip_conntrack_chain + net/ipv4/netfilter/ip_conntrack_core.c: ip_conntrack_expect_chain + net/ipv6/addrconf.c: inet6addr_chain + net/netfilter/nf_conntrack_core.c: nf_conntrack_chain + net/netfilter/nf_conntrack_core.c: nf_conntrack_expect_chain + net/netlink/af_netlink.c: netlink_chain + + BLOCKING CHAINS + --------------- + arch/powerpc/platforms/pseries/reconfig.c: pSeries_reconfig_chain + arch/s390/kernel/process.c: idle_chain + arch/x86_64/kernel/process.c idle_notifier + drivers/base/memory.c: memory_chain + drivers/cpufreq/cpufreq.c cpufreq_policy_notifier_list + drivers/cpufreq/cpufreq.c cpufreq_transition_notifier_list + drivers/macintosh/adb.c: adb_client_list + drivers/macintosh/via-pmu.c sleep_notifier_list + drivers/macintosh/via-pmu68k.c sleep_notifier_list + drivers/macintosh/windfarm_core.c wf_client_list + drivers/usb/core/notify.c usb_notifier_list + drivers/video/fbmem.c fb_notifier_list + kernel/cpu.c cpu_chain + kernel/module.c module_notify_list + kernel/profile.c munmap_notifier + kernel/profile.c task_exit_notifier + kernel/sys.c reboot_notifier_list + net/core/dev.c netdev_chain + net/decnet/dn_dev.c: dnaddr_chain + net/ipv4/devinet.c: inetaddr_chain + + It's possible that some of these classifications are wrong. If they are, + please let us know or submit a patch to fix them. Note that any chain that + gets called very frequently should be atomic, because the rwsem read-locking + used for blocking chains is very likely to incur cache misses on SMP systems. + (However, if the chain's callout routines may sleep then the chain cannot be + atomic.) + + The patch set was written by Alan Stern and Chandra Seetharaman, incorporating + material written by Keith Owens and suggestions from Paul McKenney and Andrew + Morton. + + [jes@sgi.com: restructure the notifier chain initialization macros] + Signed-off-by: Alan Stern + Signed-off-by: Chandra Seetharaman + Signed-off-by: Jes Sorensen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 76b81e2b0e2241accebcc68e126bc5ab958661b9 +Author: Ingo Molnar +Date: Mon Mar 27 01:16:28 2006 -0800 + + [PATCH] lightweight robust futexes updates 2 + + futex.h updates: + + - get rid of FUTEX_OWNER_PENDING - it's not used + - reduce ROBUST_LIST_LIMIT to a saner value + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8f17d3a5049d32392b79925c73a0cf99ce6d5af0 +Author: Ingo Molnar +Date: Mon Mar 27 01:16:27 2006 -0800 + + [PATCH] lightweight robust futexes updates + + - fix: initialize the robust list(s) to NULL in copy_process. + + - doc update + + - cleanup: rename _inuser to _inatomic + + - __user cleanups and other small cleanups + + Signed-off-by: Ingo Molnar + Cc: Thomas Gleixner + Cc: Arjan van de Ven + Cc: Ulrich Drepper + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8fdd6c6df7889dc89df3d9fe0f5bbe6733e39f48 +Author: Ingo Molnar +Date: Mon Mar 27 01:16:26 2006 -0800 + + [PATCH] lightweight robust futexes: x86_64 + + x86_64: add the futex_atomic_cmpxchg_inuser() assembly implementation, and + wire up the new syscalls. + + Signed-off-by: Ingo Molnar + Signed-off-by: Thomas Gleixner + Signed-off-by: Arjan van de Ven + Acked-by: Ulrich Drepper + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dfd4e3ec246355274c9cf62c6b04a1ee6fa3caba +Author: Ingo Molnar +Date: Mon Mar 27 01:16:25 2006 -0800 + + [PATCH] lightweight robust futexes: i386 + + i386: add the futex_atomic_cmpxchg_inuser() assembly implementation, and wire + up the new syscalls. + + Signed-off-by: Ingo Molnar + Signed-off-by: Thomas Gleixner + Signed-off-by: Arjan van de Ven + Acked-by: Ulrich Drepper + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 34f192c6527f20c47ccec239e7d51a27691b93fc +Author: Ingo Molnar +Date: Mon Mar 27 01:16:24 2006 -0800 + + [PATCH] lightweight robust futexes: compat + + 32-bit syscall compatibility support. (This patch also moves all futex + related compat functionality into kernel/futex_compat.c.) + + Signed-off-by: Ingo Molnar + Signed-off-by: Thomas Gleixner + Signed-off-by: Arjan van de Ven + Acked-by: Ulrich Drepper + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2eec9ad91f71a3dbacece5c4fb5adc09fad53a96 +Author: Ingo Molnar +Date: Mon Mar 27 01:16:23 2006 -0800 + + [PATCH] lightweight robust futexes: docs + + Add robust-futex documentation. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0771dfefc9e538f077d0b43b6dec19a5a67d0e70 +Author: Ingo Molnar +Date: Mon Mar 27 01:16:22 2006 -0800 + + [PATCH] lightweight robust futexes: core + + Add the core infrastructure for robust futexes: structure definitions, the new + syscalls and the do_exit() based cleanup mechanism. + + Signed-off-by: Ingo Molnar + Signed-off-by: Thomas Gleixner + Signed-off-by: Arjan van de Ven + Acked-by: Ulrich Drepper + Cc: Michael Kerrisk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e9056f13bfcdd054a0c3d730e4e096748d8a363a +Author: Ingo Molnar +Date: Mon Mar 27 01:16:21 2006 -0800 + + [PATCH] lightweight robust futexes: arch defaults + + This patchset provides a new (written from scratch) implementation of robust + futexes, called "lightweight robust futexes". We believe this new + implementation is faster and simpler than the vma-based robust futex solutions + presented before, and we'd like this patchset to be adopted in the upstream + kernel. This is version 1 of the patchset. + + Background + ---------- + + What are robust futexes? To answer that, we first need to understand what + futexes are: normal futexes are special types of locks that in the + noncontended case can be acquired/released from userspace without having to + enter the kernel. + + A futex is in essence a user-space address, e.g. a 32-bit lock variable + field. If userspace notices contention (the lock is already owned and someone + else wants to grab it too) then the lock is marked with a value that says + "there's a waiter pending", and the sys_futex(FUTEX_WAIT) syscall is used to + wait for the other guy to release it. The kernel creates a 'futex queue' + internally, so that it can later on match up the waiter with the waker - + without them having to know about each other. When the owner thread releases + the futex, it notices (via the variable value) that there were waiter(s) + pending, and does the sys_futex(FUTEX_WAKE) syscall to wake them up. Once all + waiters have taken and released the lock, the futex is again back to + 'uncontended' state, and there's no in-kernel state associated with it. The + kernel completely forgets that there ever was a futex at that address. This + method makes futexes very lightweight and scalable. + + "Robustness" is about dealing with crashes while holding a lock: if a process + exits prematurely while holding a pthread_mutex_t lock that is also shared + with some other process (e.g. yum segfaults while holding a pthread_mutex_t, + or yum is kill -9-ed), then waiters for that lock need to be notified that the + last owner of the lock exited in some irregular way. + + To solve such types of problems, "robust mutex" userspace APIs were created: + pthread_mutex_lock() returns an error value if the owner exits prematurely - + and the new owner can decide whether the data protected by the lock can be + recovered safely. + + There is a big conceptual problem with futex based mutexes though: it is the + kernel that destroys the owner task (e.g. due to a SEGFAULT), but the kernel + cannot help with the cleanup: if there is no 'futex queue' (and in most cases + there is none, futexes being fast lightweight locks) then the kernel has no + information to clean up after the held lock! Userspace has no chance to clean + up after the lock either - userspace is the one that crashes, so it has no + opportunity to clean up. Catch-22. + + In practice, when e.g. yum is kill -9-ed (or segfaults), a system reboot is + needed to release that futex based lock. This is one of the leading + bugreports against yum. + + To solve this problem, 'Robust Futex' patches were created and presented on + lkml: the one written by Todd Kneisel and David Singleton is the most advanced + at the moment. These patches all tried to extend the futex abstraction by + registering futex-based locks in the kernel - and thus give the kernel a + chance to clean up. + + E.g. in David Singleton's robust-futex-6.patch, there are 3 new syscall + variants to sys_futex(): FUTEX_REGISTER, FUTEX_DEREGISTER and FUTEX_RECOVER. + The kernel attaches such robust futexes to vmas (via + vma->vm_file->f_mapping->robust_head), and at do_exit() time, all vmas are + searched to see whether they have a robust_head set. + + Lots of work went into the vma-based robust-futex patch, and recently it has + improved significantly, but unfortunately it still has two fundamental + problems left: + + - they have quite complex locking and race scenarios. The vma-based + patches had been pending for years, but they are still not completely + reliable. + + - they have to scan _every_ vma at sys_exit() time, per thread! + + The second disadvantage is a real killer: pthread_exit() takes around 1 + microsecond on Linux, but with thousands (or tens of thousands) of vmas every + pthread_exit() takes a millisecond or more, also totally destroying the CPU's + L1 and L2 caches! + + This is very much noticeable even for normal process sys_exit_group() calls: + the kernel has to do the vma scanning unconditionally! (this is because the + kernel has no knowledge about how many robust futexes there are to be cleaned + up, because a robust futex might have been registered in another task, and the + futex variable might have been simply mmap()-ed into this process's address + space). + + This huge overhead forced the creation of CONFIG_FUTEX_ROBUST, but worse than + that: the overhead makes robust futexes impractical for any type of generic + Linux distribution. + + So it became clear to us, something had to be done. Last week, when Thomas + Gleixner tried to fix up the vma-based robust futex patch in the -rt tree, he + found a handful of new races and we were talking about it and were analyzing + the situation. At that point a fundamentally different solution occured to + me. This patchset (written in the past couple of days) implements that new + solution. Be warned though - the patchset does things we normally dont do in + Linux, so some might find the approach disturbing. Parental advice + recommended ;-) + + New approach to robust futexes + ------------------------------ + + At the heart of this new approach there is a per-thread private list of robust + locks that userspace is holding (maintained by glibc) - which userspace list + is registered with the kernel via a new syscall [this registration happens at + most once per thread lifetime]. At do_exit() time, the kernel checks this + user-space list: are there any robust futex locks to be cleaned up? + + In the common case, at do_exit() time, there is no list registered, so the + cost of robust futexes is just a simple current->robust_list != NULL + comparison. If the thread has registered a list, then normally the list is + empty. If the thread/process crashed or terminated in some incorrect way then + the list might be non-empty: in this case the kernel carefully walks the list + [not trusting it], and marks all locks that are owned by this thread with the + FUTEX_OWNER_DEAD bit, and wakes up one waiter (if any). + + The list is guaranteed to be private and per-thread, so it's lockless. There + is one race possible though: since adding to and removing from the list is + done after the futex is acquired by glibc, there is a few instructions window + for the thread (or process) to die there, leaving the futex hung. To protect + against this possibility, userspace (glibc) also maintains a simple per-thread + 'list_op_pending' field, to allow the kernel to clean up if the thread dies + after acquiring the lock, but just before it could have added itself to the + list. Glibc sets this list_op_pending field before it tries to acquire the + futex, and clears it after the list-add (or list-remove) has finished. + + That's all that is needed - all the rest of robust-futex cleanup is done in + userspace [just like with the previous patches]. + + Ulrich Drepper has implemented the necessary glibc support for this new + mechanism, which fully enables robust mutexes. (Ulrich plans to commit these + changes to glibc-HEAD later today.) + + Key differences of this userspace-list based approach, compared to the vma + based method: + + - it's much, much faster: at thread exit time, there's no need to loop + over every vma (!), which the VM-based method has to do. Only a very + simple 'is the list empty' op is done. + + - no VM changes are needed - 'struct address_space' is left alone. + + - no registration of individual locks is needed: robust mutexes dont need + any extra per-lock syscalls. Robust mutexes thus become a very lightweight + primitive - so they dont force the application designer to do a hard choice + between performance and robustness - robust mutexes are just as fast. + + - no per-lock kernel allocation happens. + + - no resource limits are needed. + + - no kernel-space recovery call (FUTEX_RECOVER) is needed. + + - the implementation and the locking is "obvious", and there are no + interactions with the VM. + + Performance + ----------- + + I have benchmarked the time needed for the kernel to process a list of 1 + million (!) held locks, using the new method [on a 2GHz CPU]: + + - with FUTEX_WAIT set [contended mutex]: 130 msecs + - without FUTEX_WAIT set [uncontended mutex]: 30 msecs + + I have also measured an approach where glibc does the lock notification [which + it currently does for !pshared robust mutexes], and that took 256 msecs - + clearly slower, due to the 1 million FUTEX_WAKE syscalls userspace had to do. + + (1 million held locks are unheard of - we expect at most a handful of locks to + be held at a time. Nevertheless it's nice to know that this approach scales + nicely.) + + Implementation details + ---------------------- + + The patch adds two new syscalls: one to register the userspace list, and one + to query the registered list pointer: + + asmlinkage long + sys_set_robust_list(struct robust_list_head __user *head, + size_t len); + + asmlinkage long + sys_get_robust_list(int pid, struct robust_list_head __user **head_ptr, + size_t __user *len_ptr); + + List registration is very fast: the pointer is simply stored in + current->robust_list. [Note that in the future, if robust futexes become + widespread, we could extend sys_clone() to register a robust-list head for new + threads, without the need of another syscall.] + + So there is virtually zero overhead for tasks not using robust futexes, and + even for robust futex users, there is only one extra syscall per thread + lifetime, and the cleanup operation, if it happens, is fast and + straightforward. The kernel doesnt have any internal distinction between + robust and normal futexes. + + If a futex is found to be held at exit time, the kernel sets the highest bit + of the futex word: + + #define FUTEX_OWNER_DIED 0x40000000 + + and wakes up the next futex waiter (if any). User-space does the rest of + the cleanup. + + Otherwise, robust futexes are acquired by glibc by putting the TID into the + futex field atomically. Waiters set the FUTEX_WAITERS bit: + + #define FUTEX_WAITERS 0x80000000 + + and the remaining bits are for the TID. + + Testing, architecture support + ----------------------------- + + I've tested the new syscalls on x86 and x86_64, and have made sure the parsing + of the userspace list is robust [ ;-) ] even if the list is deliberately + corrupted. + + i386 and x86_64 syscalls are wired up at the moment, and Ulrich has tested the + new glibc code (on x86_64 and i386), and it works for his robust-mutex + testcases. + + All other architectures should build just fine too - but they wont have the + new syscalls yet. + + Architectures need to implement the new futex_atomic_cmpxchg_inuser() inline + function before writing up the syscalls (that function returns -ENOSYS right + now). + + This patch: + + Add placeholder futex_atomic_cmpxchg_inuser() implementations to every + architecture that supports futexes. It returns -ENOSYS. + + Signed-off-by: Ingo Molnar + Signed-off-by: Thomas Gleixner + Signed-off-by: Arjan van de Ven + Acked-by: Ulrich Drepper + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 62ac285f3c701f0457a15fe01baa64a965c4f5f1 +Author: Ingo Molnar +Date: Mon Mar 27 01:16:13 2006 -0800 + + [PATCH] mips: add ptr_to_compat() + + Add ptr_to_compat() - needed by the new robust futex code. + + Signed-off-by: Ingo Molnar + Cc: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 213b63b76a823e622d87df623aaec1119acaeaa0 +Author: Ingo Molnar +Date: Mon Mar 27 01:16:12 2006 -0800 + + [PATCH] parisc: add ptr_to_compat() + + Add ptr_to_compat() to parisc - needed by the new robust futex code. + + Signed-off-by: Ingo Molnar + Cc: Kyle McMartin + Cc: Grant Grundler + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f267fa9f5b377b5cecdb2baf332fec08bb71246d +Author: Ingo Molnar +Date: Mon Mar 27 01:16:09 2006 -0800 + + [PATCH] s390: add ptr_to_compat() + + Add ptr_to_compat() to s390 - needed by the new robust-futex code. + + Signed-off-by: Ingo Molnar + Cc: Heiko Carstens + Cc: Martin Schwidefsky + + untested. CHECKME: am i right about the 0x7fffffffUL masking? + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 66e863acd7f2fb02fef709d5f0ab069445d4a58c +Author: Ingo Molnar +Date: Mon Mar 27 01:16:06 2006 -0800 + + [PATCH] ia64: add ptr_to_compat() + + Add ptr_to_compat() to ia64 - needed by the robust-futex code. + + Signed-off-by: Ingo Molnar + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 22a9835c350782a5c3257343713932af3ac92ee0 +Author: Dave Hansen +Date: Mon Mar 27 01:16:04 2006 -0800 + + [PATCH] unify PFN_* macros + + Just about every architecture defines some macros to do operations on pfns. + They're all virtually identical. This patch consolidates all of them. + + One minor glitch is that at least i386 uses them in a very skeletal header + file. To keep away from #include dependency hell, I stuck the new + definitions in a new, isolated header. + + Of all of the implementations, sh64 is the only one that varied by a bit. + It used some masks to ensure that any sign-extension got ripped away before + the arithmetic is done. This has been posted to that sh64 maintainers and + the development list. + + Compiles on x86, x86_64, ia64 and ppc64. + + Signed-off-by: Dave Hansen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 95144c788dc01b6a0ff2c9c2222e37ffdab358b8 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:16:02 2006 -0800 + + [PATCH] uninline zone helpers + + Helper functions for for_each_online_pgdat/for_each_zone look too big to be + inlined. Speed of these helper macro itself is not very important. (inner + loops are tend to do more work than this) + + This patch make helper function to be out-of-lined. + + inline out-of-line + .text 005c0680 005bf6a0 + + 005c0680 - 005bf6a0 = FE0 = 4Kbytes. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ae0f15fb91274e67d78836d38c99ec363df33073 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:16:01 2006 -0800 + + [PATCH] for_each_online_pgdat: remove pgdat_list + + By using for_each_online_pgdat(), pgdat_list is not necessary now. This patch + removes it. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3571761fe49d960bb720c2308ffb9401f0a5e161 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:16:00 2006 -0800 + + [PATCH] for_each_online_pgdat: remove sorting pgdat + + Because pgdat_list was linked to pgdat_list in *reverse* order, (By default) + some of arch has to sort it by themselves. + + for_each_pgdat has gone..for_each_online_pgdat() uses node_online_map, which + doesn't need to be sorted. + + This patch removes codes for sorting pgdat. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ec936fc563715a9e2b2e363eb060655b49529325 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:59 2006 -0800 + + [PATCH] for_each_online_pgdat: renaming for_each_pgdat + + Replace for_each_pgdat() with for_each_online_pgdat(). + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 679bc9fbb508a0aac9539b2de747eb5849feb428 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:58 2006 -0800 + + [PATCH] for_each_online_pgdat: for_each_bootmem + + Add a list_head to bootmem_data_t and make bootmems use it. bootmem list is + sorted by node_boot_start. + + Only nodes against which init_bootmem() is called are linked to the list. + (i386 allocates bootmem only from one node(0) not from all online nodes.) + + A summary: + 1. for_each_online_pgdat() traverses all *online* nodes. + 2. alloc_bootmem() allocates memory only from initialized-for-bootmem nodes. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8357f8695d58b50fbf2bd507b4b0fc2cd1e43bd6 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:57 2006 -0800 + + [PATCH] define for_each_online_pgdat + + This patch defines for_each_online_pgdat() as a replacement of + for_each_pgdat() + + Now, online nodes are managed by node_online_map. But for_each_pgdat() + uses pgdat_link to iterate over all nodes(pgdat). This means management + structure for online pgdat is duplicated. + + I think using node_online_map for for_each_pgdat() is simple and sane + rather ather than pgdat_link. New macro is named as + for_each_online_pgdat(). Following patch will fix callers of + for_each_pgdat(). + + The bootmem allocater uses for_each_pgdat() before pgdat initialization. I + don't think it's sane. Following patch will fix it. + + Signed-off-by: Yasunori Goto + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a0140c1d85637ee5f4ea7c78f066e3611a6a79dc +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:55 2006 -0800 + + [PATCH] remove zone_mem_map + + This patch removes zone_mem_map. + + pfn_to_page uses pgdat, page_to_pfn uses zone. page_to_pfn can use pgdat + instead of zone, which is only one user of zone_mem_map. By modifing it, + we can remove zone_mem_map. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Dave Hansen + Cc: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0ecd702bcb924d5fb7f687e09986f688336ac896 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:53 2006 -0800 + + [PATCH] unify pfn_to_page: ia64 pfn_to_page + + ia64 has special config CONFIG_VIRTUAL_MEM_MAP. + CONFIG_DISCONTIGMEM=y && CONFIG_VIRTUAL_MEM_MAP!=y is bug ? + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 655a0443470a73d5dc36e974a241e8db59bb1ccb +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:52 2006 -0800 + + [PATCH] unify pfn_to_page: xtensa pfn_to_page + + xtensa can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Chris Zankel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e6009f1ba5f6ff0fc8723254ce89ef9c979cc370 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:52 2006 -0800 + + [PATCH] unify pfn_to_page: v850 pfn_to_page + + v850 can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Miles Bader + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9828c185db7ab41426c03c5539b1759ccf3c28ed +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:50 2006 -0800 + + [PATCH] unify pfn_to_page: uml pfn_to_page + + UML can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 064b2a0762ef7dca5f7068a90b260a309ffe2002 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:48 2006 -0800 + + [PATCH] unify pfn_to_page: sparc pfn_to_page + + sparc can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 309d34bbe521940de9098d306a58a1797a42d990 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:47 2006 -0800 + + [PATCH] unify pfn_to_page: sh64 pfn_to_page + + sh64 can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Paul Mundt + Cc: Richard Curnow + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 104b8deaa5c0144cccfc7d914413ff80c7176af1 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:46 2006 -0800 + + [PATCH] unify pfn_to_page: sh pfn_to_page + + sh can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Paul Mundt + Cc: Kazumoto Kojima + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aed630434c4fc0bca8ed62f6730d44ba00bdf595 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:45 2006 -0800 + + [PATCH] unify pfn_to_page: s390 pfn_to_page + + s390 can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Heiko Carstens + Cc: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f68d4c996d3062c8fe64e3ed36d4c83d23288ad8 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:44 2006 -0800 + + [PATCH] unify pfn_to_page: ppc pfn_to_page + + PPC can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0d833b41092df2f4a65cbdb0a0a947c35cdd2f9d +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:43 2006 -0800 + + [PATCH] unify pfn_to_page: parisc pfn_to_page + + PARISC can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a02036e796e5046fe0463b9a092e9b617c525866 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:43 2006 -0800 + + [PATCH] unify pfn_to_page: mips pfn_to_page + + MIPS can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7126cffe74f0dbcd015aaabab01069f422526535 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:42 2006 -0800 + + [PATCH] unify pfn_to_page: m32r pfn_to_page + + m32r can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Hirokazu Takata + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dd6cc7631cf2a63b3d6c32619054e017479e72ca +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:41 2006 -0800 + + [PATCH] unify pfn_to_page: h8300 pfn_to_page + + H8300 can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Yoshinori Sato + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5cdac7ca1b727184b1af21effaffcb9e2cd535c2 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:40 2006 -0800 + + [PATCH] unify pfn_to_page: FRV pfn_to_page + + FRV can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bb872f787a9b6a40a4aa206175e768137f595d9c +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:39 2006 -0800 + + [PATCH] unify pfn_to_page: cris pfn_to_page + + cris can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Mikael Starvik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 89fccaf2c4a4a8318153e3460a92284dadeb8f71 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:38 2006 -0800 + + [PATCH] unify pfn_to_page: arm26 pfn_to_page + + arm26 can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Ian Molton + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7eb98a2f3b605d8a11434d855b58d828393ea533 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:37 2006 -0800 + + [PATCH] unify pfn_to_page: arm pfn_to_page + + ARM can use generic funcs. + PFN_TO_NID, LOCAL_MAP_NR are defined by sub-archs. + + Signed-off-by: KAMEZAWA Hirotuki + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1c05dda2b6f025267ab79a267e0a84628a3760e1 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:36 2006 -0800 + + [PATCH] unify pfn_to_page: alpha pfn_to_page + + Alpha can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 659e35051b165fb40f1160190c2d23f3d5c319d5 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:35 2006 -0800 + + [PATCH] unify pfn_to_page: powerpc pfn_to_page + + PowerPC can use generic ones. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dc8ecb43701a78bd3c38e7fed1d1c76840579450 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:34 2006 -0800 + + [PATCH] unify pfn_to_page: x86_64 pfn_to_page + + x86_64 can use generic funcs. + For DISCONTIGMEM, CONFIG_OUT_OF_LINE_PFN_TO_PAGE is selected. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ad658b385e6308066f9084a7ea01305b223cd3a0 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:33 2006 -0800 + + [PATCH] unify pfn_to_page: i386 pfn_to_page + + i386 can use generic funcs. + + Signed-off-by: KAMEZAWA Hiroyuki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a117e66ed45ac0569c039ea60bd7a9a61e031858 +Author: KAMEZAWA Hiroyuki +Date: Mon Mar 27 01:15:25 2006 -0800 + + [PATCH] unify pfn_to_page: generic functions + + There are 3 memory models, FLATMEM, DISCONTIGMEM, SPARSEMEM. + Each arch has its own page_to_pfn(), pfn_to_page() for each models. + But most of them can use the same arithmetic. + + This patch adds asm-generic/memory_model.h, which includes generic + page_to_pfn(), pfn_to_page() definitions for each memory model. + + When CONFIG_OUT_OF_LINE_PFN_TO_PAGE=y, out-of-line functions are + used instead of macro. This is enabled by some archs and reduces + text size. + + Signed-off-by: KAMEZAWA Hiroyuki + Cc: Hugh Dickins + Cc: Andi Kleen + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Cc: Russell King + Cc: Ian Molton + Cc: Mikael Starvik + Cc: David Howells + Cc: Yoshinori Sato + Cc: Hirokazu Takata + Cc: Ralf Baechle + Cc: Kyle McMartin + Cc: Heiko Carstens + Cc: Martin Schwidefsky + Cc: Paul Mundt + Cc: Kazumoto Kojima + Cc: Richard Curnow + Cc: William Lee Irwin III + Cc: "David S. Miller" + Cc: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Cc: Miles Bader + Cc: Chris Zankel + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b06be912a3ad68c69dba0ed6e92723140020e392 +Author: Shaohua Li +Date: Mon Mar 27 01:15:24 2006 -0800 + + [PATCH] x86: don't use cpuid.2 to determine cache info if cpuid.4 is supported + + Don't use cpuid.2 to determine cache info if cpuid.4 is supported. The + exception is P4 trace cache. We always use cpuid.2 to get trace cache + under P4. + + Signed-off-by: Shaohua Li + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0806903316d516a3b3851c51cea5c71724d9051d +Author: Siddha, Suresh B +Date: Mon Mar 27 01:15:23 2006 -0800 + + [PATCH] sched: fix group power for allnodes_domains + + Current sched groups power calculation for allnodes_domains is wrong. We + should really be using cumulative power of the physical packages in that + group (similar to the calculation in node_domains) + + Signed-off-by: Suresh Siddha + Cc: Ingo Molnar + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7 +Author: Siddha, Suresh B +Date: Mon Mar 27 01:15:22 2006 -0800 + + [PATCH] sched: new sched domain for representing multi-core + + Add a new sched domain for representing multi-core with shared caches + between cores. Consider a dual package system, each package containing two + cores and with last level cache shared between cores with in a package. If + there are two runnable processes, with this appended patch those two + processes will be scheduled on different packages. + + On such systems, with this patch we have observed 8% perf improvement with + specJBB(2 warehouse) benchmark and 35% improvement with CFP2000 rate(with 2 + users). + + This new domain will come into play only on multi-core systems with shared + caches. On other systems, this sched domain will be removed by domain + degeneration code. This new domain can be also used for implementing power + savings policy (see OLS 2005 CMP kernel scheduler paper for more details.. + I will post another patch for power savings policy soon) + + Most of the arch/* file changes are for cpu_coregroup_map() implementation. + + Signed-off-by: Suresh Siddha + Cc: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 77e4bfbcf071f795b54862455dce8902b3fc29c2 +Author: Andreas Mohr +Date: Mon Mar 27 01:15:20 2006 -0800 + + [PATCH] Small schedule() optimization + + small schedule() microoptimization. + + Signed-off-by: Andreas Mohr + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 013d3868143387be99bb0373d49452eaa3c55d41 +Author: Martin Andersson +Date: Mon Mar 27 01:15:18 2006 -0800 + + [PATCH] sched: fix task interactivity calculation + + Is a truncation error in kernel/sched.c triggered when the nice value is + negative. The affected code is used in the TASK_INTERACTIVE macro. + + The code is: + #define SCALE(v1,v1_max,v2_max) \ + (v1) * (v2_max) / (v1_max) + + which is used in this way: + SCALE(TASK_NICE(p), 40, MAX_BONUS) + + Comments in the code says: + * This part scales the interactivity limit depending on niceness. + * + * We scale it linearly, offset by the INTERACTIVE_DELTA delta. + * Here are a few examples of different nice levels: + * + * TASK_INTERACTIVE(-20): [1,1,1,1,1,1,1,1,1,0,0] + * TASK_INTERACTIVE(-10): [1,1,1,1,1,1,1,0,0,0,0] + * TASK_INTERACTIVE( 0): [1,1,1,1,0,0,0,0,0,0,0] + * TASK_INTERACTIVE( 10): [1,1,0,0,0,0,0,0,0,0,0] + * TASK_INTERACTIVE( 19): [0,0,0,0,0,0,0,0,0,0,0] + * + * (the X axis represents the possible -5 ... 0 ... +5 dynamic + * priority range a task can explore, a value of '1' means the + * task is rated interactive.) + + However, the current code does not scale it linearly and the result differs + from the given examples. If the mathematical function "floor" is used when + the nice value is negative instead of the truncation one gets when using + integer division, the result conforms to the documentation. + + Output of TASK_INTERACTIVE when using the kernel code: + nice dynamic priorities + -20 1 1 1 1 1 1 1 1 1 0 0 + -19 1 1 1 1 1 1 1 1 0 0 0 + -18 1 1 1 1 1 1 1 1 0 0 0 + -17 1 1 1 1 1 1 1 1 0 0 0 + -16 1 1 1 1 1 1 1 1 0 0 0 + -15 1 1 1 1 1 1 1 0 0 0 0 + -14 1 1 1 1 1 1 1 0 0 0 0 + -13 1 1 1 1 1 1 1 0 0 0 0 + -12 1 1 1 1 1 1 1 0 0 0 0 + -11 1 1 1 1 1 1 0 0 0 0 0 + -10 1 1 1 1 1 1 0 0 0 0 0 + -9 1 1 1 1 1 1 0 0 0 0 0 + -8 1 1 1 1 1 1 0 0 0 0 0 + -7 1 1 1 1 1 0 0 0 0 0 0 + -6 1 1 1 1 1 0 0 0 0 0 0 + -5 1 1 1 1 1 0 0 0 0 0 0 + -4 1 1 1 1 1 0 0 0 0 0 0 + -3 1 1 1 1 0 0 0 0 0 0 0 + -2 1 1 1 1 0 0 0 0 0 0 0 + -1 1 1 1 1 0 0 0 0 0 0 0 + 0 1 1 1 1 0 0 0 0 0 0 0 + 1 1 1 1 1 0 0 0 0 0 0 0 + 2 1 1 1 1 0 0 0 0 0 0 0 + 3 1 1 1 1 0 0 0 0 0 0 0 + 4 1 1 1 0 0 0 0 0 0 0 0 + 5 1 1 1 0 0 0 0 0 0 0 0 + 6 1 1 1 0 0 0 0 0 0 0 0 + 7 1 1 1 0 0 0 0 0 0 0 0 + 8 1 1 0 0 0 0 0 0 0 0 0 + 9 1 1 0 0 0 0 0 0 0 0 0 + 10 1 1 0 0 0 0 0 0 0 0 0 + 11 1 1 0 0 0 0 0 0 0 0 0 + 12 1 0 0 0 0 0 0 0 0 0 0 + 13 1 0 0 0 0 0 0 0 0 0 0 + 14 1 0 0 0 0 0 0 0 0 0 0 + 15 1 0 0 0 0 0 0 0 0 0 0 + 16 0 0 0 0 0 0 0 0 0 0 0 + 17 0 0 0 0 0 0 0 0 0 0 0 + 18 0 0 0 0 0 0 0 0 0 0 0 + 19 0 0 0 0 0 0 0 0 0 0 0 + + Output of TASK_INTERACTIVE when using "floor" + nice dynamic priorities + -20 1 1 1 1 1 1 1 1 1 0 0 + -19 1 1 1 1 1 1 1 1 1 0 0 + -18 1 1 1 1 1 1 1 1 1 0 0 + -17 1 1 1 1 1 1 1 1 1 0 0 + -16 1 1 1 1 1 1 1 1 0 0 0 + -15 1 1 1 1 1 1 1 1 0 0 0 + -14 1 1 1 1 1 1 1 1 0 0 0 + -13 1 1 1 1 1 1 1 1 0 0 0 + -12 1 1 1 1 1 1 1 0 0 0 0 + -11 1 1 1 1 1 1 1 0 0 0 0 + -10 1 1 1 1 1 1 1 0 0 0 0 + -9 1 1 1 1 1 1 1 0 0 0 0 + -8 1 1 1 1 1 1 0 0 0 0 0 + -7 1 1 1 1 1 1 0 0 0 0 0 + -6 1 1 1 1 1 1 0 0 0 0 0 + -5 1 1 1 1 1 1 0 0 0 0 0 + -4 1 1 1 1 1 0 0 0 0 0 0 + -3 1 1 1 1 1 0 0 0 0 0 0 + -2 1 1 1 1 1 0 0 0 0 0 0 + -1 1 1 1 1 1 0 0 0 0 0 0 + 0 1 1 1 1 0 0 0 0 0 0 0 + 1 1 1 1 1 0 0 0 0 0 0 0 + 2 1 1 1 1 0 0 0 0 0 0 0 + 3 1 1 1 1 0 0 0 0 0 0 0 + 4 1 1 1 0 0 0 0 0 0 0 0 + 5 1 1 1 0 0 0 0 0 0 0 0 + 6 1 1 1 0 0 0 0 0 0 0 0 + 7 1 1 1 0 0 0 0 0 0 0 0 + 8 1 1 0 0 0 0 0 0 0 0 0 + 9 1 1 0 0 0 0 0 0 0 0 0 + 10 1 1 0 0 0 0 0 0 0 0 0 + 11 1 1 0 0 0 0 0 0 0 0 0 + 12 1 0 0 0 0 0 0 0 0 0 0 + 13 1 0 0 0 0 0 0 0 0 0 0 + 14 1 0 0 0 0 0 0 0 0 0 0 + 15 1 0 0 0 0 0 0 0 0 0 0 + 16 0 0 0 0 0 0 0 0 0 0 0 + 17 0 0 0 0 0 0 0 0 0 0 0 + 18 0 0 0 0 0 0 0 0 0 0 0 + 19 0 0 0 0 0 0 0 0 0 0 0 + + Signed-off-by: Martin Andersson + Acked-by: Ingo Molnar + Cc: Nick Piggin + Cc: Mike Galbraith + Cc: Peter Williams + Cc: Con Kolivas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 491214716755894986b99e0cf0a08b830d244577 +Author: NeilBrown +Date: Mon Mar 27 01:15:12 2006 -0800 + + [PATCH] knfsd: Update rpc-cache.txt to match recent changes + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ad1b5229def92b71631a927895b034ceec06c991 +Author: NeilBrown +Date: Mon Mar 27 01:15:11 2006 -0800 + + [PATCH] knfsd: Tidy up unix_domain_find + + We shouldn't really compare &new->h with anything when new ==NULL, and gather + three different if statements that all start + + if (rv ... + + into one large if. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 74cae61ab45f19a3e8c4d9f53c0e94df129c7915 +Author: Adrian Bunk +Date: Mon Mar 27 01:15:10 2006 -0800 + + [PATCH] fs/nfsd/export.c,net/sunrpc/cache.c: make needlessly global code static + + We can now make some code static. + + Signed-off-by: Adrian Bunk + Cc: Neil Brown + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit baab935ff3bdac20c558809da0d8e8f761840219 +Author: NeilBrown +Date: Mon Mar 27 01:15:09 2006 -0800 + + [PATCH] knfsd: Convert sunrpc_cache to use krefs + + .. it makes some of the code nicer. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ebd0cb1af3be2729cc1f574681dfba01fcf458d9 +Author: NeilBrown +Date: Mon Mar 27 01:15:08 2006 -0800 + + [PATCH] knfsd: Unexport cache_fresh and fix a small race + + Cache_fresh is now only used in cache.c, so unexport it. + + Part of cache_fresh (setting CACHE_VALID) should really be done under the + lock, while part (calling cache_revisit_request etc) must be done outside the + lock. So we split it up appropriately. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4d90452cb23b08a9a9dd001010f0ee6b1ee83a45 +Author: NeilBrown +Date: Mon Mar 27 01:15:07 2006 -0800 + + [PATCH] knfsd: Remove DefineCacheLookup + + This has been replaced by more traditional code. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4013edea9a0b6cdcb1fdf5d4011e47e068fd6efb +Author: NeilBrown +Date: Mon Mar 27 01:15:07 2006 -0800 + + [PATCH] knfsd: An assortment of little fixes to the sunrpc cache code + + - in cache_check, h must be non-NULL as it has been de-referenced, + so don't bother checking for NULL. + + - When a cache-item is updated, we need to call cache_revisit_request to see + if there is a pending request waiting for that item. We were using + a transition to CACHE_VALID to see if that was needed, however that is + wrong as an expired entry will still be marked 'valid' (as the data is valid + and will need to be released). So instead use an off transition for + CACHE_PENDING which is exactly the right thing to test. + + - Add a little bit more debugging info. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f9ecc921b5b5e135050e7f22fef873c249aee3fc +Author: NeilBrown +Date: Mon Mar 27 01:15:06 2006 -0800 + + [PATCH] knfsd: Use new cache code for name/id lookup caches + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 17f834b6d2e0b102ab53d73ba44d5dbb34c38f90 +Author: NeilBrown +Date: Mon Mar 27 01:15:05 2006 -0800 + + [PATCH] knfsd: Use new cache code for rsc cache + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d4d11ea9d6d6fcfaa66fbd10fd4a8d43aa575597 +Author: NeilBrown +Date: Mon Mar 27 01:15:04 2006 -0800 + + [PATCH] knfsd: Use new sunrpc cache for rsi cache + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8d270f7f4cdab792d7263926ac59f747258735ee +Author: NeilBrown +Date: Mon Mar 27 01:15:04 2006 -0800 + + [PATCH] knfsd: Use new cache_lookup for svc_expkey cache + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4f7774c3a0558526c0faaf525581f2029480b313 +Author: NeilBrown +Date: Mon Mar 27 01:15:03 2006 -0800 + + [PATCH] knfsd: Use new cache_lookup for svc_export + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1a9917c2da5b81fa536e560be0c431435e2c965b +Author: NeilBrown +Date: Mon Mar 27 01:15:02 2006 -0800 + + [PATCH] knfsd: Convert ip_map cache to use the new lookup routine + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 15a5f6bd23eddd5b3be80366f364be04fb1c1c99 +Author: NeilBrown +Date: Mon Mar 27 01:15:02 2006 -0800 + + [PATCH] knfsd: Create cache_lookup function instead of using a macro to declare one + + The C++-like 'template' approach proves to be too ugly and hard to work with. + + The old 'template' won't go away until all users are updated. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7d317f2c9f1e9dcf4f632fa98f91d1d4a36c4cae +Author: NeilBrown +Date: Mon Mar 27 01:15:01 2006 -0800 + + [PATCH] knfsd: Get rid of 'inplace' sunrpc caches + + These were an unnecessary wart. Also only have one 'DefineSimpleCache..' + instead of two. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eab7e2e647c348b418e8715ecaca0177e1b473c7 +Author: NeilBrown +Date: Mon Mar 27 01:15:00 2006 -0800 + + [PATCH] knfsd: Break the hard linkage from svc_expkey to svc_export + + Current svc_expkey holds a pointer to the svc_export structure, so updates to + that structure have to be in-place, which is a wart on the whole cache + infrastruct. So we break that linkage and just do a second lookup. + + If this became a performance issue, it would be possible to put a direct link + back in which was only used conditionally. i.e. when an object is replaced + in the cache, we set a flag in the old object. When dereferencing the link + from svc_expkey, if the flag is set, we drop the reference and do a fresh + lookup. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit efc36aa5608f5717338747e152c23f2cfdb14697 +Author: NeilBrown +Date: Mon Mar 27 01:14:59 2006 -0800 + + [PATCH] knfsd: Change the store of auth_domains to not be a 'cache' + + The 'auth_domain's are simply handles on internal data structures. They do + not cache information from user-space, and forcing them into the mold of a + 'cache' misrepresents their true nature and causes confusion. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3e7b19198003fc25b11838e709f17d4fa173b2d7 +Author: Ian Kent +Date: Mon Mar 27 01:14:59 2006 -0800 + + [PATCH] autofs4: atomic var underflow + + Fix accidental underflow of the atomic counter. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 871f94344cea36b2ce91231f442f9f9298529712 +Author: Ian Kent +Date: Mon Mar 27 01:14:58 2006 -0800 + + [PATCH] autofs4: follow_link missing functionality + + This functionality is also need for operation of autofs v5 direct mounts. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3370c74b2e147169d5bba6665e03d3281f5795ed +Author: Dave Jones +Date: Mon Mar 27 01:14:57 2006 -0800 + + [PATCH] Remove redundant check from autofs4_put_super + + We have to have a valid sbi here, or we'd have oopsed already. (There's a + dereference of sbi->catatonic a few lines above) + + Coverity #740 + + Signed-off-by: Dave Jones + Cc: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 44d53eb041d901620b1090590a549a705767fd10 +Author: Ian Kent +Date: Mon Mar 27 01:14:56 2006 -0800 + + [PATCH] autofs4: change AUTOFS_TYP_* AUTOFS_TYPE_* + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5c0a32fc2cd0be912511199449a37a4a6f0f582d +Author: Ian Kent +Date: Mon Mar 27 01:14:55 2006 -0800 + + [PATCH] autofs4: add new packet type for v5 communications + + This patch define a new autofs packet for autofs v5 and updates the waitq.c + functions to handle the additional packet type. + + Signed-off-by: Ian Kent + Cc: Al Viro + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3a15e2ab5d6e79a79291734ac24f33d51c0ae389 +Author: Ian Kent +Date: Mon Mar 27 01:14:55 2006 -0800 + + [PATCH] autofs4: add v5 expire logic + + This patch adds expire logic for autofs direct mounts. + + Signed-off-by: Ian Kent + Cc: Al Viro + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 34ca959cfc15cf09ad4da4f31ab034691e51af78 +Author: Ian Kent +Date: Mon Mar 27 01:14:54 2006 -0800 + + [PATCH] autofs4: add v5 follow_link mount trigger method + + This patch adds a follow_link inode method for the root of an autofs direct + mount trigger. It also adds the corresponding mount options and updates the + show_mount method. + + Signed-off-by: Ian Kent + Cc: Al Viro + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 051d381259eb57d6074d02a6ba6e90e744f1a29f +Author: Ian Kent +Date: Mon Mar 27 01:14:53 2006 -0800 + + [PATCH] autofs4: nameidata needs to be up to date for follow_link + + In order to be able to trigger a mount using the follow_link inode method the + nameidata struct that is passed in needs to have the vfsmount of the autofs + trigger not its parent. + + During a path walk if an autofs trigger is mounted on a dentry, when the + follow_link method is called, the nameidata struct contains the vfsmount and + mountpoint dentry of the parent mount while the dentry that is passed in is + the root of the autofs trigger mount. I believe it is impossible to get the + vfsmount of the trigger mount, within the follow_link method, when only the + parent vfsmount and the root dentry of the trigger mount are known. + + This patch updates the nameidata struct on entry to __do_follow_link if it + detects that it is out of date. It moves the path_to_nameidata to above + __do_follow_link to facilitate calling it from there. The dput_path is moved + as well as that seemed sensible. No changes are made to these two functions. + + Signed-off-by: Ian Kent + Cc: Al Viro + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f75ba3ade8a4599d67040a9493d75a864e7b329c +Author: Ian Kent +Date: Mon Mar 27 01:14:52 2006 -0800 + + [PATCH] autofs4: increase module version + + Update autofs4 version. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e3474a8eb38e48dea6690d1fabd75f3c7fd2f93f +Author: Ian Kent +Date: Mon Mar 27 01:14:51 2006 -0800 + + [PATCH] autofs4: change may_umount* functions to boolean + + Change the functions may_umount and may_umount_tree to boolean functions to + aid code readability. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 90a59c7cf5dd68b41ffab61dd30eba1ef5746e66 +Author: Ian Kent +Date: Mon Mar 27 01:14:50 2006 -0800 + + [PATCH] autofs4: rename simple_empty_nolock function + + Rename the function simple_empty_nolock to __simple_empty in line with kernel + naming conventions. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e77fbddf77c071a5735a4bc63a30649bd64baf14 +Author: Ian Kent +Date: Mon Mar 27 01:14:49 2006 -0800 + + [PATCH] autofs4: white space cleanup for waitq.c + + Whitespace and formating changes to waitq code. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d7c4a5f1080a61fd4a3a00ba5f741986f8fb71f0 +Author: Ian Kent +Date: Mon Mar 27 01:14:49 2006 -0800 + + [PATCH] autofs4: add a show mount options for proc filesystem + + Add show_options method to display autofs4 mount options in the proc + filesystem. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 862b110f0132401e422783bf68521ade3dc67578 +Author: Ian Kent +Date: Mon Mar 27 01:14:48 2006 -0800 + + [PATCH] autofs4: remove update_atime unused function + + Remove the update of i_atime from autofs4 in favour of having VFS update it. + i_atime is never used for expire in autofs4. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e0a7aae94030b878601eb67686b696de4a3764f0 +Author: Ian Kent +Date: Mon Mar 27 01:14:47 2006 -0800 + + [PATCH] autofs4: expire mounts that hold no (extra) references only + + Alter the expire semantics that define how "busyness" is determined. + Currently a last_used counter is updated on every revalidate from processes + other than the mount owner process group. + + This patch changes that so that an expire candidate is busy only if it has a + reference count greater than the expected minimum, such as when there is an + open file or working directory in use. + + This method is the only way that busyness can be established for direct mounts + within the new implementation. For consistency the expire semantic is made + the same for all mounts. + + A side effect of the patch is that mounts which remain mounted unessessarily + in the presence of some GUI programs that scan the filesystem should now + expire. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1aff3c8b0511b5bb54acf7859e0c6ec9ae7287a9 +Author: Ian Kent +Date: Mon Mar 27 01:14:46 2006 -0800 + + [PATCH] autofs4: fix false negative return from expire + + Fix the case where an expire returns busy on a tree mount when it is in fact + not busy. This case was overlooked when the patch to prevent the expiring + away of "scaffolding" directories for tree mounts was applied. + + The problem arises when a tree of mounts is a member of a map with other keys. + The current logic will not expire the tree if any other mount in the map is + busy. The solution is to maintain a "minimum" use count for each autofs + dentry and compare this to the actual dentry usage count during expire. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1ce12bad85863478619688c0c7363f93a9e5edb8 +Author: Ian Kent +Date: Mon Mar 27 01:14:45 2006 -0800 + + [PATCH] autofs4: simplify expire tree traversal + + Simplify the expire tree traversal code by using a function from namespace.c + to calculate the next entry in the top down tree traversals carried out during + the expire operation. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1f5f2c3059ae8cc23cb3303daf324b06ba79517a +Author: Ian Kent +Date: Mon Mar 27 01:14:44 2006 -0800 + + [PATCH] autofs4: expire code readability cleanup + + Change the names of the boolean functions autofs4_check_mount and + autofs4_check_tree to autofs4_mount_busy and autofs4_tree_busy respectively + and alters their return codes to suit in order to aid code readabilty. + + A couple of white space cleanups are included as well. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2d753e62b87ab2fc72bb4ff5153791d32ff9c08e +Author: Ian Kent +Date: Mon Mar 27 01:14:44 2006 -0800 + + [PATCH] autofs4: can't mount due to mount point dir not empty + + Addresse a problem where stale dentrys stop mounts from happening. + + When a mount point directory is pre-created and a non-existent entry within it + is requested a dentry ends up being created within the mount point directory + which stops future mounts. The problem is solved by ignoring negative, + unhashed dentrys in the mount point d_subdirs list. + + Additionally the apparent cacheing of -ENOENT returns from requests is + removed. The test on d_time is a tautology and d_time is not initialised and + has an unexpected value. In short it doesn't do what it's meant to. + + The cacheing of failed requests to the daemon is important and will be + followed up later. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f360ce3be466d50de153b001b24561ca7593042b +Author: Ian Kent +Date: Mon Mar 27 01:14:43 2006 -0800 + + [PATCH] autofs4: use libfs routines for readdir + + Change readdir routines to use the cursor based routines in libfs.c. This + removes reliance on old readdir code from 2.4 and should improve efficiency of + readdir in autofs4. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 718c604a28e35848754a65b839e4877ec34b2fca +Author: Ian Kent +Date: Mon Mar 27 01:14:42 2006 -0800 + + [PATCH] autofs4: lookup white space cleanup + + Whitespace and formating changes to lookup code. + + Signed-off-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 86c79cbcee7d617c5aaf9b4f7e6cc093397d3451 +Author: Jeff Dike +Date: Mon Mar 27 01:14:41 2006 -0800 + + [PATCH] uml: fix hostfs stack corruption + + Noted by Oleg Drokin: + We initialized an extra slot of struct kstatfs.spare, sometimes + causing stack corruption. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Cc: Oleg Drokin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5f4e8fd08f3993bc31a7dd91767fdb4da4fe6278 +Author: Jeff Dike +Date: Mon Mar 27 01:14:40 2006 -0800 + + [PATCH] uml: fix thread startup race + + This fixes a race in the starting of write_sigio_thread. Previously, some of + the data needed by the thread was initialized after the clone. If the thread + ran immediately, it would see the uninitialized data, including an empty + pollfds, which would cause it to hang. + + We move the data initialization to before the clone, and adjust the error + paths and cleanup accordingly. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1fbbd6844e6a84e5d166ab475dc298d3b89fa4bf +Author: Jeff Dike +Date: Mon Mar 27 01:14:39 2006 -0800 + + [PATCH] uml: prevent umid theft + + Behavior when booting two UMLs with the same umid was broken. The second one + would steal the umid. This fixes that, making the second UML take a random + umid instead. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 98c18238f146a9038098244d60a7d2b1f67ee790 +Author: Jeff Dike +Date: Mon Mar 27 01:14:38 2006 -0800 + + [PATCH] uml: fix segfault on signal delivery + + This fixes a process segfault where a signal was being delivered such that a + new stack page needed to be allocated to hold the signal frame. This was + tripping some logic in the page fault handler which wouldn't allocate the page + if the faulting address was more that 32 bytes lower than the current stack + pointer. Since a signal frame is greater than 32 bytes, this exercised that + case. + + It's fixed by updating the SP in the pt_regs before starting to copy the + signal frame. Since those are the registers that will be copied on to the + stack, we have to be careful to put the original SP, not the new one which + points to the signal frame, on the stack. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6c29256c5703ad7c3cf62276dbc38d802a05669e +Author: Jeff Dike +Date: Mon Mar 27 01:14:37 2006 -0800 + + [PATCH] uml: allow ubd devices to be shared in a cluster + + This adds a 'c' option to the ubd switch which turns off host file locking so + that the device can be shared, as with a cluster. There's also some + whitespace cleanup while I was in this file. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cf9165a50aa21027d2f0eefc90476ec59ae6d2b8 +Author: Jeff Dike +Date: Mon Mar 27 01:14:36 2006 -0800 + + [PATCH] uml: oS header cleanups + + This rearranges the OS declarations by moving some declarations into os.h. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c554f899b6747c9d8035bf91864d89b337ceb411 +Author: Jeff Dike +Date: Mon Mar 27 01:14:36 2006 -0800 + + [PATCH] uml: move tty logging to os-Linux + + The serial UML OS-abstraction layer patch (um/kernel dir). + + This moves all systemcalls from tty_log.c file under os-Linux dir + + Signed-off-by: Gennady Sharapov + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 81efcd3300754462537ffac60336158b2f773b4e +Author: Bodo Stroesser +Date: Mon Mar 27 01:14:34 2006 -0800 + + [PATCH] uml: more carefully test whether we are in a system call + + For security reasons, UML in is_syscall() needs to have access to code in + vsyscall-page. The current implementation grants this access by explicitly + allowing access to vsyscall in access_ok_skas(). With this change, + copy_from_user() may be used to read the code. Ptrace access to vsyscall-page + for debugging already was implemented in get_user_pages() by mainline. In + i386, copy_from_user can't access vsyscall-page, but returns EFAULT. + + To make UML behave as i386 does, I changed is_syscall to use + access_process_vm(current) to read the code from vsyscall-page. This doesn't + hurt security, but simplifies the code and prepares implementation of + stub-vmas. + + Signed-off-by: Bodo Stroesser + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f206aabb035318ac4bafbf0b87798335de3634df +Author: Jeff Dike +Date: Mon Mar 27 01:14:33 2006 -0800 + + [PATCH] uml: move sigio_user.c to os-Linux/sigio.c + + The serial UML OS-abstraction layer patch (um/kernel dir). + + This moves sigio_user.c to os-Linux dir + + Signed-off-by: Gennady Sharapov + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8e367065eea04a6fde5cb8f3854164af99c45693 +Author: Jeff Dike +Date: Mon Mar 27 01:14:32 2006 -0800 + + [PATCH] uml: move SIGIO startup code to os-Linux/start_up.c + + The serial UML OS-abstraction layer patch (um/kernel dir). + + This moves all startup code from sigio_user.c file under os-Linux dir + + Signed-off-by: Gennady Sharapov + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b4f018d92dbeff9305b4cf4aa80874c3974cfcc +Author: Jeff Dike +Date: Mon Mar 27 01:14:31 2006 -0800 + + [PATCH] uml: merge irq_user.c and irq.c + + The serial UML OS-abstraction layer patch (um/kernel dir). + + This joins irq_user.c and irq.c files. + + Signed-off-by: Gennady Sharapov + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 63ae2a94d98dd9d94163918539ec80df33f44a69 +Author: Jeff Dike +Date: Mon Mar 27 01:14:30 2006 -0800 + + [PATCH] uml: move libc-dependent irq code to os-Linux + + The serial UML OS-abstraction layer patch (um/kernel dir). + + This moves all systemcalls from irq_user.c file under os-Linux dir + + Signed-off-by: Gennady Sharapov + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d9f8b62a6b033fe7226d7c2b2efdd164ca1aa07c +Author: Jeff Dike +Date: Mon Mar 27 01:14:29 2006 -0800 + + [PATCH] uml: fix some printf formats + + Some printf formats are incorrect for large memory sizes. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c90e12b86595dbd9996336ac9d762487c638d934 +Author: Jeff Dike +Date: Mon Mar 27 01:14:29 2006 -0800 + + [PATCH] uml: fix declaration of exit() + + This fixes a conflict between a header and what gcc "knows" the declaration' + to be. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bb83da053319e81906473bec08e8f677d6ac615f +Author: Jeff Dike +Date: Mon Mar 27 01:14:27 2006 -0800 + + [PATCH] uml: fix build warnings in __get_user + + Fix a gcc warning about losing qualifiers to the first argument of + copy_from_user. The typeof change for correctness, and fixes a lot of the + warnings, but there are some cases where x has some extra qualifiers, like + volatile, which copy_from_user can't know about. For these, the void * cast + seems to be necessary. + + Also cleaned up some of the whitespace and got rid of the emacs comment at the + bottom. + + Signed-off-by: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dbffa471611d3fc4b401ebabf7bb63ac0e0272b1 +Author: OGAWA Hirofumi +Date: Mon Mar 27 01:14:26 2006 -0800 + + [PATCH] PM-Timer: don't use workaround if chipset is not buggy + + Current timer_pm.c reads I/O port triple times, in order to avoid the bug + of chipset. But I/O port is slow. + + 2.6.16 (pmtmr) + Simple gettimeofday: 3.6532 microseconds + + 2.6.16+patch (pmtmr) + Simple gettimeofday: 1.4582 microseconds + + [if chip is buggy, probably it will be 7us or more in 4.2% of probability.] + + This patch adds blacklist of buggy chip, and if chip is not buggy, this + uses fast normal version instead of slow workaround version. + + If chip is buggy, warnings "pmtmr is slow". But sounds like there is gray + zone. I found the PIIX4 errata, but I couldn't find the ICH4 errata. But + some motherboard seems to have problem. + + So, if we found a ICH4, generate warnings, and use a workaround version. + If user's ICH4 is good, the user can specify the "pmtmr_good" boot + parameter to use fast version. + + Acked-by: John Stultz + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cfa146e4be274fd04bfdb26b3c96cdfe81a43dc2 +Author: Jouni Malinen +Date: Fri Mar 24 21:24:55 2006 -0800 + + [PATCH] hostap: Fix EAPOL frame encryption + + Fixed encrypted of EAPOL frames from wlan#ap interface (hostapd). This + was broken when moving to use new frame control field defines in + net/ieee80211.h. hostapd uses Protected flag, not protocol version + (which was cleared in this function anyway). This fixes WPA group key + handshake and re-authentication. + http://hostap.epitest.fi/bugz/show_bug.cgi?id=126 + + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 79058acaf5b6d4bcc3056382619de3ca9cebc62f +Author: Jouni Malinen +Date: Fri Mar 24 21:24:54 2006 -0800 + + [PATCH] hostap: Make hostap_tx_encrypt() static + + hostap_tx_encrypt() is used only inside hostap_80211_tx.c and there + are no plans to use it elsewhere in the future either, so let's make + it static. As a bonus, this should silence Coverity scanner from + complaining about bogus FORWARD_NULL case (CID: 274). + + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 0073602544954002e35699477dc59cdd5e9112e3 +Author: Jean Tourrilhes +Date: Fri Mar 24 16:45:24 2006 -0800 + + [PATCH] zd1201 wireless stat update + + The "dev->get_wireless_stats" field is deprecated and slowly + be surely going away. Most drivers have been updated months + ago. Actually, there is an annoying message for driver still using it, + but it seems that user of zd1201 were not annoyed enough ;-) + + Signed-off-by: Jean Tourrilhes + Signed-off-by: John W. Linville + +commit e4a9af98bb0fab13be6e3adbe108d565b790158a +Author: Adrian Bunk +Date: Fri Mar 24 17:56:19 2006 +0100 + + [PATCH] PCMCIA_SPECTRUM must select FW_LOADER + + PCMCIA_SPECTRUM must select FW_LOADER. + + Reported by "Alexander E. Patrakov" . + + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit ec483781fe98bba92e00f4428f8d69dd5e071246 +Author: Michael Buesch +Date: Mon Mar 27 11:49:51 2006 +0200 + + [PATCH] bcm43xx: don't set the channel on a device, which is down. + + Initial patch by David Woodhouse and Michael Marineau. + Locking fix by me. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit adc40e9796d03d56e99bdac62492492a1098124b +Author: Michael Buesch +Date: Sat Mar 25 20:36:57 2006 +0100 + + [PATCH] bcm43xx: sync GPHY init with the specs. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 8afceb1e6a3b6361c7c2456ef488ee9c6db7b370 +Author: Michael Buesch +Date: Sat Mar 25 17:04:41 2006 +0100 + + [PATCH] bcm43xx: fix the remaining sparse warnings. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit b5e868edbeaa5fd832d42563195c0da00edfd3c9 +Author: Michael Buesch +Date: Sat Mar 25 16:27:32 2006 +0100 + + [PATCH] bcm43xx: remove some compilerwarnings. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit d1ca6c4ff6714826acb1a434e5d3862984eb26d5 +Author: Michael Buesch +Date: Sat Mar 25 15:43:18 2006 +0100 + + [PATCH] bcm43xx: fix "include" issues on some platforms. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 04b98f71e2e3facc15e73b7e3ae9516ecb737375 +Author: Michael Buesch +Date: Sat Mar 25 15:37:53 2006 +0100 + + [PATCH] bcm43xx: get rid of "/* vim: ..." lines at the end of several files. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 72fb851e971a416f47ad0a3ffca7342a424af37a +Author: Michael Buesch +Date: Wed Mar 22 18:10:19 2006 +0100 + + [PATCH] bcm43xx: add useless and broken statistics stuff. People seem to want it. well... + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit cf017e1b6f625978288e2cd8ede04f8185b97c08 +Author: Michael Buesch +Date: Wed Mar 22 17:58:47 2006 +0100 + + [PATCH] bcm43xx: fix nrssi_threshold calculation. + + patch by doctorzoidberg. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit e382c234cbc6fcd76e9ed1168c77fe88d75df73c +Author: Michael Buesch +Date: Tue Mar 21 18:16:28 2006 +0100 + + [PATCH] bcm43xx: sync interference mitigation code to the specs. + + This also includes a rewritten valuesave-stack. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 6ecb26904c9db15ca964d60b9483f19dc51bda5b +Author: Michael Buesch +Date: Mon Mar 20 00:01:04 2006 +0100 + + [PATCH] bcm43xx: set default attenuation values. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 0ac59daee5f7fbaab25784a643edede669b5419e +Author: Michael Buesch +Date: Sun Mar 19 21:43:40 2006 +0100 + + [PATCH] bcm43xx: some IRQ handler cleanups. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 6ab5b8e670c4bb7ac0035ec3c6d6a161fae12009 +Author: Michael Buesch +Date: Sun Mar 19 17:18:48 2006 +0100 + + [PATCH] bcm43xx: merge all iwmode code into the set_iwmode function. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 714eece7c7c300bbc5e8285890e7374958ca37f4 +Author: Michael Buesch +Date: Sat Mar 18 21:28:46 2006 +0100 + + [PATCH] bcm43xx: fix some gpio register trashing (hopefully :D) + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 4a1821e4c7a84569f788b7667affe2743317b63f +Author: Michael Buesch +Date: Sat Mar 18 20:19:12 2006 +0100 + + [PATCH] bcm43xx: remove check for mmio length, as it differs among platforms. (especially embedded) + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 5808bbbdf8c095745f0cac9110b245102243b243 +Author: Michael Buesch +Date: Wed Mar 15 18:13:53 2006 +0100 + + [PATCH] bcm43xx: properly mask txctl1 before writing it to hardware. + + This should not make a difference, but be careful to not trash the register. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit b3db5e553876c1743eefae5963aea431ec4d5ba6 +Author: Michael Buesch +Date: Wed Mar 15 16:31:45 2006 +0100 + + [PATCH] bcm43xx: Do boardflags workarounds for specific boards. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 4cf6f03e067d6d416f5c9219471daf64703afae4 +Author: Michael Buesch +Date: Tue Mar 14 18:23:43 2006 +0100 + + [PATCH] bcm43xx: Remove the workaround in dummy_transmission, + + as it causes more trouble than it solves + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 49f29efa7f44a79b64c7882c68e171898d0495a0 +Author: Michael Buesch +Date: Tue Mar 14 16:05:26 2006 +0100 + + [PATCH] bcm43xx: Fix crash on ifdown, by being careful in pio/dma freeing. + + This bug was caused by the packing of the bcm43xx_dma and bcm43xx_pio + structures into a union. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit e9357c056c5e62516f0044e60591d41f00ca7cfa +Author: Michael Buesch +Date: Mon Mar 13 19:27:34 2006 +0100 + + [PATCH] bcm43xx: reduce the size of bcm43xx_private by removing unneeded members. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit aae3778176ec7a57b1c4f539b7252acfd7d99a1b +Author: Michael Buesch +Date: Mon Mar 13 15:54:56 2006 +0100 + + [PATCH] bcm43xx: add functions bcm43xx_dma_read/write, bcm43xx_dma_tx_suspend/resume. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit e1b1b581b847a5ae9409a02a586476eaba2b3f89 +Author: Michael Buesch +Date: Mon Mar 13 15:20:05 2006 +0100 + + [PATCH] bcm43xx: receive TX status on MMIO or DMA unconditionally regarding the 80211 core rev. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 73733847beead47dc31b1f8e1532e5eea9f8ddd3 +Author: Michael Buesch +Date: Sun Mar 12 19:44:29 2006 +0100 + + [PATCH] bcm43xx: fix some stuff, add a few missing mmiowb(), remove dead code. + + This may workaround the XMIT ERRORs some people are getting. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 7ce942d0ff5df145831631f4df391c7207e676bb +Author: Michael Buesch +Date: Sat Mar 11 13:43:06 2006 +0100 + + [PATCH] bcm43xx: Remove the mmio access printing facility overhead. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit efccb647f486ff8174b4db0ab8145df8dd42ce6d +Author: Michael Buesch +Date: Sat Mar 11 13:39:14 2006 +0100 + + [PATCH] bcm43xx: Abstract the locking mechanism. + + This is the starting point to make the driver out-of-order-MMIO-stores safe. + There are more mmiowb() needed. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 4d5a9e0eeb7ec928c6bd55db410f09ed3779bc2a +Author: Michael Buesch +Date: Sat Mar 11 13:15:02 2006 +0100 + + [PATCH] bcm43xx: Set both, the DMAmask and the coherent DMAmask. + + This has a potential to fix the >1G bug. But I can not test that, yet. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 512a80916b8d04529c0915534c63529144f74e10 +Author: Pete Zaitcev +Date: Tue Mar 7 01:37:51 2006 +0100 + + [PATCH] bcm43xx: fix DMA TX skb freeing in case of fragmented packets. + + It seems to me that the today's wireless-2.6 git contains bcm43xx which + does not free txb's correctly, if I understand it right. + + Consider a situation where a txb with two skb's is sent down. + The dma_tx_fragment will save the pointer to meta->txb of the first + fragment. If fragments are freed in order, ieee80211_txb_free frees both + skb's when the first fragment is processed. This may result in reuse + of the second skb's memory. + + This danger is rather remote, but it seems to me that the patch + below not only fixes the problem, but also makes the code simpler, + which is good, right? + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 367f899ac3b52cf4611cd291ec2bfbf774b15bc7 +Author: Michael Buesch +Date: Tue Feb 28 15:32:19 2006 +0100 + + [PATCH] bcm43xx: Add sysfs attributes for device specific tunables. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit f398f02d12cdc372e16c5e86246b10acf7211abc +Author: Michael Buesch +Date: Thu Feb 23 21:15:39 2006 +0100 + + [PATCH] bcm43xx: Move TX/RX related functions to its own file. Add basic RTS/CTS code. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 1d1a73ccdc618168f2a5c962aab250605c93e517 +Author: Michael Buesch +Date: Tue Feb 21 18:19:59 2006 +0100 + + [PATCH] bcm43xx: add assert(bcm->initialized) to periodic_tasks_setup(). + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit cad2b31a76763d06048fb23a17b062acd5d46639 +Author: Michael Buesch +Date: Tue Feb 21 18:08:55 2006 +0100 + + [PATCH] bcm43xx: move initialized = 1 to the end of init_board. + + Note that the periodic work has to be started with initialized==1 + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit bf7b876043e6e1390b1234d740f4fd9af20b3b9e +Author: Michael Buesch +Date: Tue Feb 21 17:58:18 2006 +0100 + + [PATCH] bcm43xx: Workaround init_board vs IRQ race. + + The proper fix for this is to move IRQ enabling to the end of + init_board. But this is nontrivial and needs to be done with care. + Stay with this cheap workaround for now. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit c4c3beb7d70ae9d1fe97b7b49bc5a10ad26c2b01 +Author: Michael Buesch +Date: Mon Feb 20 22:48:55 2006 +0100 + + [PATCH] bcm43xx: Fix Kconfig typo (transfer mode default) + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 26533e7e292075df1daf94965a7f3f0d91bd08a8 +Author: Michael Buesch +Date: Sun Feb 19 22:25:09 2006 +0100 + + [PATCH] bcm43xx: remove old unused struct. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 10d8dd88dcc2c8ebe8ac7dcf75a2da7c9f9ee0f3 +Author: Michael Buesch +Date: Sun Feb 19 22:08:48 2006 +0100 + + [PATCH] bcm43xx: split the channel helper functions, so that they can be used without a valid running core. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit ad3f086c49aa682e493c935cda76f3850ee4a80e +Author: Michael Buesch +Date: Sun Feb 19 14:12:22 2006 +0100 + + [PATCH] bcm43xx: make bcm43xx_sprom_crc() static. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit ea0922b067a0863f9a4198740651fd47a22af7f1 +Author: Michael Buesch +Date: Sun Feb 19 14:09:20 2006 +0100 + + [PATCH] bcm43xx: Move sprom lowlevel reading/writing to its own functions. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 489423c8d0ba2b4311530502f7b5a331da9a60f9 +Author: Michael Buesch +Date: Mon Feb 13 00:11:07 2006 +0100 + + [PATCH] bcm43xx: Code cleanups. This removes various "inline" statements and reduces codesize. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit ab4977f881fc23cb02ef6f20d1e8ebbdcfef75ad +Author: Michael Buesch +Date: Sun Feb 12 22:40:39 2006 +0100 + + [PATCH] bcm43xx: rewrite and simplify the periodic task handling. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit dcfd720bd733544606b053e8e68b7419211ace72 +Author: Michael Buesch +Date: Sun Feb 12 20:25:55 2006 +0100 + + [PATCH] bcm43xx: fix LED code. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit d5dd8e28aa6ca08f73760a6b4a5d455319698201 +Author: Michael Buesch +Date: Sun Feb 12 17:15:06 2006 +0100 + + [PATCH] bcm43xx: update README + + + Signed-off-by: John W. Linville + +commit f1f566236dcc4cb57cfae89b539e19c1290e7f34 +Author: Michael Buesch +Date: Sun Feb 12 16:55:06 2006 +0100 + + [PATCH] Apple Airport: Add Kconfig note that the bcm43xx driver has to be used for Airport Extreme cards. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 8bcab3f55982cf28310f2303bef741424ad0f563 +Author: Michael Buesch +Date: Sun Feb 12 16:52:10 2006 +0100 + + [PATCH] bcm43xx: add a note that not all devices support PIO. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 77db31ea4322f2dd12dc814d6664ae96517604c0 +Author: Michael Buesch +Date: Sun Feb 12 16:47:44 2006 +0100 + + [PATCH] bcm43xx: Partially fix PIO code. Add Kconfig option for PIO or DMA mode (or both). + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 5c57807afcc28a6b8fb579ef2c79e49f0b688425 +Author: Michael Buesch +Date: Wed Feb 8 18:04:02 2006 +0100 + + [PATCH] bcm43xx: remove WX debugging. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit b5488beba8030b791e035c4da0122f98c42e355b +Author: Michael Buesch +Date: Wed Feb 8 18:00:30 2006 +0100 + + [PATCH] bcm43xx: fix compiletime warning (phy_xmitpower) + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 921e485f98b11656cdcc39a37605e116e34cb315 +Author: Michael Buesch +Date: Wed Feb 8 17:55:55 2006 +0100 + + [PATCH] bcm43xx: heavily increase mac_suspend timeout. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 62b7f0dfab0508a45a93045d49eda26d5285188d +Author: Michael Buesch +Date: Wed Feb 8 17:36:46 2006 +0100 + + [PATCH] bcm43xx: enable SPROM writing. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 393344f67b598aaed594b9006e9eaa44ab62caa0 +Author: Michael Buesch +Date: Sun Feb 5 15:28:20 2006 +0100 + + [PATCH] bcm43xx: fix txpower reporting in WE. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 67093a65c08dc45374f642b1ec1b86e7095a4dc8 +Author: Danny van Dyk +Date: Wed Feb 1 00:43:05 2006 +0100 + + [PATCH] Sync bcm43xx_phy_initb6() with specs + + Signed-off-by: John W. Linville + +commit 8fa252d099d864f8848a9890f26d1a51a9c7ad32 +Author: Michael Buesch +Date: Thu Feb 2 19:49:15 2006 +0100 + + [PATCH] bcm43xx: Wireless Ext update + + Wireless Ext update: + update we_version_source + set enc_capa + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 6465ce1bbf7fede82dccec342417105b10793b51 +Author: Michael Buesch +Date: Thu Feb 2 19:11:08 2006 +0100 + + [PATCH] bcm43xx: basic ethtool support + + This patch contains the beginnings of ethtool support for bcm43xx. + + It only implements get_drvinfo and get_link, but that's enough for + ifplugd to use ethtool to know whether we're associated or not and then + start or stop dhcp as necessary. + + Signed-off-by: Jason Lunz + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 9e4a375b15c9940b13e66e224570b35c471c0128 +Author: Michael Buesch +Date: Thu Feb 2 18:43:25 2006 +0100 + + [PATCH] bcm43xx: Remove function bcm43xx_channel_is_allowed() + + Geographical restriction should become part of the 80211 stack, + so every driver does not have to duplicate it. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit a4a600d3e17f450666a9086465122103e96140d7 +Author: Michael Buesch +Date: Wed Feb 1 22:09:52 2006 +0100 + + [PATCH] bcm43xx: Add more initvals sanity checks and error out, if one sanity check fails. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 65f3f19120cf32233f537562e69893b88727b634 +Author: Michael Buesch +Date: Tue Jan 31 20:11:38 2006 +0100 + + [PATCH] bcm43xx: Fix makefile. Remove all the "out-of-tree" stuff. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 6f3e2045cabd952a86bc819181d8a190cd0689c3 +Author: Michael Buesch +Date: Mon Jan 30 17:43:20 2006 +0100 + + [PATCH] bcm43xx: add DEBUG Kconfig option. Also fix indention. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit dda207ae2da37032524bbdd7a0133c37f2907ae8 +Author: Michael Buesch +Date: Fri Jan 27 17:39:44 2006 +0100 + + [PATCH] bcm43xx: remove redundant COPYING file. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 08ccd883f536d81d380522106c67bd5d7043fa4a +Author: Michael Buesch +Date: Fri Jan 27 17:37:05 2006 +0100 + + [PATCH] bcm43xx: Move README file to Documentation directory. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 4a2a2792d0cb3f2797ff179beef7b8c2981979c2 +Author: Michael Buesch +Date: Fri Jan 27 17:33:15 2006 +0100 + + [PATCH] bcm43xx: remove linux version compatibility code. + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit ea72ab229fe9cdfe3d3f70a6e64d98c725294b24 +Author: Michael Buesch +Date: Fri Jan 27 17:26:20 2006 +0100 + + [PATCH] bcm43xx: sync with svn.berlios.de + + Signed-off-by: Michael Buesch + Signed-off-by: John W. Linville + +commit 70e5e983f8a3f801a96bfeb0682cd2955ec3c8ce +Author: John W. Linville +Date: Mon Jan 23 17:00:39 2006 -0500 + + [PATCH] bcm43xx: patch Kconfig and wireless/Makefile for import + + Patch Kconfig and wireless/Makefile to merge bcm43xx 'properly' + + Signed-off-by: John W. Linville + +commit f222313a61a5e134de80767b35c672b91e78383c +Author: John W. Linville +Date: Mon Jan 23 16:59:58 2006 -0500 + + [PATCH] wireless: import bcm43xx sources + + Import the bcm43xx driver from the upstream sources here: + + ftp://ftp.berlios.de/pub/bcm43xx/snapshots/bcm43xx/bcm43xx-20060123.tar.bz2 + + Signed-off-by: John W. Linville + +commit 3747b36eeab93d8969e86987bbc1d44971229b26 +Author: Russell King +Date: Mon Mar 27 16:59:07 2006 +0100 + + [ARM] proc-v6: mark page table walks outer-cacheable, shared. Enable NX. + + Mark page table walks with outer-cacheable attribute, and enable no-execute + in page tables. + + Signed-off-by: Russell King + +commit 4682adcfb06448827fbdfd8b6c636796de569b7d +Author: Hyok S. Choi +Date: Mon Mar 27 15:46:06 2006 +0100 + + [ARM] nommu: trivial patch for arch/arm/lib/Makefile + + ifeq ($CONFIG_PREEMPT,y) -> ifeq ($(CONFIG_PREEMPT),y) + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit c8c4b939e8dff82ee2bc22ed506ae29ecffca4c2 +Author: Erik Mouw +Date: Mon Mar 27 15:32:30 2006 +0100 + + [ARM] 3416/1: Update LART site URL + + Patch from Erik Mouw + + The LART website moved to http://www.lartmaker.nl/. This patch + updates the URL in ARM specific files. + + Signed-off-by: Erik Mouw + Acked-by: Jan-Derk Bakker + Signed-off-by: Russell King + +commit c760fc1997e8156ebc4134c42c18f68137c689f9 +Author: Hyok S. Choi +Date: Mon Mar 27 15:18:50 2006 +0100 + + [ARM] nommu: fixups for the exception vectors + + The high page vector (0xFFFF0000) does not supported in nommu mode. + This patch allows the vectors to be 0x00000000 or the begining of DRAM + in nommu mode. + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit f8c07de6beac55c3273cbd679bfa67555ef14ef5 +Author: Hyok S. Choi +Date: Mon Mar 27 15:14:19 2006 +0100 + + [ARM] nommu: add nommu specific Kconfig and MMUEXT variable in Makefile + + This patch adds Kconfig-nommu for noMMU specific configurations + and MMUEXT variable into Makefile. + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit 75d90832d58aa5855972cfc2bdaa94970ccd4aca +Author: Hyok S. Choi +Date: Mon Mar 27 14:58:25 2006 +0100 + + [ARM] nommu: start-up code + + This patch adds nommu version start-up code head-nommu.S. + The common part of the start-up codes is moved to head-common.S. + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit 9618edab82fda8dbce5ea3abcdac9ded07abb2d4 +Author: Paul Mackerras +Date: Mon Mar 27 21:48:57 2006 +1100 + + powerpc: Fix event-scan code for 32-bit CHRP + + On CHRP machines we are supposed to call into firmware (RTAS) + periodically, to give it a chance to check for errors and other + events. Under ppc we had some special code in timer_interrupt + to do this, but that didn't get transferred over to arch/powerpc. + Instead, we use an array of timer_list structs, one per CPU, + and use add_timer_on to make sure each one gets called on the + appropriate CPU. + + With this we can remove the heartbeat_* elements of the ppc_md + struct. + + Signed-off-by: Paul Mackerras + +commit d0cc0dfa2dcf18854144b16a74502bd25c4eaedf +Author: Paul Mackerras +Date: Mon Mar 27 20:31:44 2006 +1100 + + ppc: Remove duplicate exports of __down, __up etc. + + __down, __down_interruptible and __up are defined and exported in + arch/powerpc/kernel/semaphore.c, and used from there for ARCH=ppc, + so there is no need to export them in arch/ppc/kernel/ppc_ksyms.c. + + Signed-off-by: Paul Mackerras + +commit 10c2df65060e1ab57b2f75e0749de0ee9b8f4810 +Author: Hyok S. Choi +Date: Mon Mar 27 10:21:34 2006 +0100 + + [ARM] nommu: MPU support in boot/compressed/head.S + + This patch adds MPU support in boot/compressed/head.S. + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit e7e2d2da26384b07dfee83f63e6090e386c63d7e +Author: Paul Mackerras +Date: Mon Mar 27 20:17:06 2006 +1100 + + powerpc: Don't compile in arch/ppc/kernel for 32-bit ARCH=powerpc + + All of the things needed for 32-bit ARCH=powerpc builds have now + moved to arch/powerpc/kernel, so we don't need to go down into + arch/ppc/kernel any more, and we can remove the CONFIG_PPC_MERGE + conditional from arch/ppc/kernel/Makefile. + + There were two files still referenced in the merge section of + arch/ppc/kernel/Makefile: ppc-stub.o, depending on CONFIG_KGDB, + and dma-mapping.o, depending on CONFIG_NOT_COHERENT_CACHE. None + of the platforms currently in ARCH=powerpc have caches that + aren't coherent with DMA, but when we do get one we'll move + dma-mapping.c over. As for CONFIG_KGDB, none of the Kconfig + files in the tree define it, so I'll let it languish for now. + + Signed-off-by: Paul Mackerras + +commit 8b844dd7591a820a618a8fb33c9c43186d43d1b9 +Author: Paul Mackerras +Date: Mon Mar 27 20:09:04 2006 +1100 + + powerpc: Move perfmon_fsl_booke.c over to arch/powerpc + + Signed-off-by: Paul Mackerras + +commit 7bebd83dbf096d0bf4b4bfbaf5d8844a05f5eafc +Author: David S. Miller +Date: Mon Mar 27 01:07:55 2006 -0800 + + [SPARC64]: Fix off-by-1 error in TSB grow check. + + The worst part about this bug is what it would cause + a hugepage TSB to be allocated for every address space + since "0 >= 0". + + Signed-off-by: David S. Miller + +commit ed981856ca8af30912fd61a6a4ac8d30a453a5ec +Author: Paul Mackerras +Date: Mon Mar 27 19:28:58 2006 +1100 + + powerpc: Move module.c over to arch/powerpc + + ... and rename it to module_32.c since it is the 32-bit version. + The 32-bit and 64-bit ABIs are sufficiently different that having + a merged version isn't really practical. + + Signed-off-by: Paul Mackerras + +commit 45320bcbabfa9149f43a5beb4b9a4f108dd98929 +Author: Paul Mackerras +Date: Mon Mar 27 19:21:46 2006 +1100 + + powerpc: Move swsusp.S over to arch/powerpc + + ... and rename it to swsusp_32.S, since it's 32-bit only at this stage. + + Signed-off-by: Paul Mackerras + +commit 9b781727fd1062671afa144b93e8c69b14bcac4d +Author: Paul Mackerras +Date: Mon Mar 27 19:15:26 2006 +1100 + + powerpc: Move cpu_setup_6xx.S and temp.c over to arch/powerpc + + Also renamed temp.c to tau_6xx.c (for thermal assist unit) and updated + the Kconfig option description and help text for CONFIG_TAU. + + Signed-off-by: Paul Mackerras + +commit ae36b883d29e53b6083ed3d1d44f254cee7507d3 +Author: Jens Axboe +Date: Sun Mar 26 14:38:54 2006 +0200 + + [PATCH] Don't make debugfs depend on DEBUG_KERNEL + + We use it generally now, at least blktrace isn't a specific debug + kernel feature. + + Signed-off-by: Jens Axboe + +commit 09540e691d7f57684b296b60241b2ff357fae3ab +Author: Jens Axboe +Date: Sun Mar 26 14:32:09 2006 +0200 + + [PATCH] Fix blktrace compile with sysfs not defined + + debugfs depends on sysfs, so make blktrace kconfig option depend + on that. + + Reported by Adrian Bunk. + + Signed-off-by: Jens Axboe + +commit 89a7689e5c039090d99cbdc3625252c3dee50f7f +Author: Eric Sesterhenn +Date: Fri Mar 24 10:00:57 2006 +0100 + + [PATCH] unused label in drivers/block/cciss. + + this patch removes a warning about an unused label, by + moving the label into the ifdef. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Jens Axboe + +commit 837c7878771c15ed8d85ecf814ece7fcb4551b46 +Author: Ben Woodard +Date: Wed Mar 22 08:09:31 2006 +0100 + + [BLOCK] increase size of disk stat counters + + The kernel's representation of the disk statistics uses the type unsigned + which is 32b on both 32b and 64b platforms. Unfortunately, most system + tools that work with these numbers that are exported in /proc/diskstats + including iostat read these numbers into unsigned longs. This works fine + on 32b platforms and when the number of IO transactions are small on 64b + platforms. However, when the numbers wrap on 64b platforms & you read the + numbers into unsigned longs, and compare the numbers to previous readings, + then you get an unsigned representation of a negative number. This looks + like a very large 64b number & gives you bizarre readouts in iostat: + + ilc4: Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util + ilc4: sda 5.50 0.00 143.96 0.00 307496983987862656.00 0.00 153748491993931328.00 0.00 2136028725038430.00 7.94 55.12 5.59 80.42 + + Though fixing iostat in user space is possible, and a quick survey + indicates that several other similar tools also use unsigned longs when + processing /proc/diskstats. Therefore, it seems like a better approach + would be to extend the length of the disk_stats structure on 64b + architectures to 64b. The following patch does that. It should not affect + the operation on 32b platforms. + + Signed-off-by: Ben Woodard + Cc: Rick Lindsley + Signed-off-by: Andrew Morton + Signed-off-by: Jens Axboe + +commit 4c5d0bbde9669cfb7f7fd4670dc9a117aea90384 +Author: Andrew Morton +Date: Wed Mar 22 08:08:01 2006 +0100 + + [PATCH] blk_execute_rq_nowait-speedup + + Both elv_add_request() and generic_unplug_device() grab the queue lock + and disable interrupts, do that locally and use the __ variants. + + Signed-off-by: Andrew Morton + Signed-off-by: Jens Axboe + +commit b8fca1c7682105c843319728d8e37b42b19092bb +Author: Jens Axboe +Date: Tue Mar 21 15:24:37 2006 +0100 + + [PATCH] ide-cd: quiet down GPCMD_READ_CDVD_CAPACITY failure + + Some drives like to throw a: + + ATAPI device hdc: + Error: Not ready -- (Sense key=0x02) + Incompatible medium installed -- (asc=0x30, ascq=0x00) + The failed "Read Cd/Dvd Capacity" packet command was: + "25 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 " + + warning on incompatible media, so quiet down this error. + + Signed-off-by: Jens Axboe + +commit f68110fc28859f5d7231d5c4fb6dbe68b1394c9b +Author: Jens Axboe +Date: Wed Mar 8 13:31:44 2006 +0100 + + [BLOCK] ll_rw_blk: kmalloc -> kzalloc conversion + + Signed-off-by: Jens Axboe + +commit 06ff37ffb4ba8bcbda0e9d19c712c954ef7b8a0a +Author: Eric Sesterhenn +Date: Wed Mar 8 11:21:52 2006 +0100 + + [PATCH] kzalloc() conversion in drivers/block + + this patch converts drivers/block to kzalloc usage. + Compile tested with allyesconfig. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Jens Axboe + +commit 28832e83379afd0b0e83b78ac317290c79ebd496 +Author: Mike Christie +Date: Wed Mar 8 11:19:51 2006 +0100 + + [PATCH] update max_sectors documentation + + The max_sectors has been split into max_hw_sectors and max_sectors for some + time. A patch to have blk_queue_max_sectors enforce this was sent by + me and it broke IDE. This patch updates the documentation. + + Signed-off-by: Jens Axboe + +commit 0eb4cb9b16aba6d610a0716503b96d299b308d44 +Author: Paul Mackerras +Date: Mon Mar 27 15:22:28 2006 +1100 + + powerpc: Move l2cr.S over to arch/powerpc + + No functional changes, but call it l2cr_6xx.S since it is specific + to 6xx-family (including G3/750 and G4/74xx) processors. + + Signed-off-by: Paul Mackerras + +commit fbd7740fdfdf9475f92287a84085a1913541cd5d +Author: Paul Mackerras +Date: Mon Mar 27 15:06:20 2006 +1100 + + powerpc: Simplify pSeries idle loop + + Since pSeries only wants to do something different in the idle loop when + there is no work to do, we can simplify the code by implementing + ppc_md.power_save functions instead of complete idle loops. There are + two versions: one for shared-processor partitions and one for dedicated- + processor partitions. + + With this we also do a cede_processor() call on dedicated processor + partitions if the poll_pending() call indicates that the hypervisor + has work it wants to do. + + Signed-off-by: Paul Mackerras + +commit a0652fc9a28c3ef8cd59264bfcb089c44d1b0e06 +Author: Paul Mackerras +Date: Mon Mar 27 15:03:03 2006 +1100 + + powerpc: Unify the 32 and 64 bit idle loops + + This unifies the 32-bit (ARCH=ppc and ARCH=powerpc) and 64-bit idle + loops. It brings over the concept of having a ppc_md.power_save + function from 32-bit to ARCH=powerpc, which lets us get rid of + native_idle(). With this we will also be able to simplify the idle + handling for pSeries and cell. + + Signed-off-by: Paul Mackerras + +commit 55aab8cd3a498201b769a19de861c77516bdfd45 +Author: Michael Neuling +Date: Sat Mar 25 17:30:00 2006 +1100 + + [PATCH] powerpc: HVC init race + + I've been hitting a crash on boot where tty_open is being called before the + hvc console driver setup is complete. This fixes the problem. + + Thanks to benh for his help on this. + + Signed-off-by: Michael Neuling + Acked-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 1f5e3b028c5b592b5a792a390c78d609219aebfd +Author: Sylvain Munaut +Date: Sun Mar 26 13:38:09 2006 +0200 + + [PATCH] ppc32: Reorganize and complete MPC52xx initial cpu setup + + ppc32: Reorganize and complete MPC52xx initial cpu setup + + This patch splits up the CPU setup into a generic part and a + platform specific part. We also add a few missing init at the + same time. + + Signed-off-by: Sylvain Munaut + Signed-off-by: Paul Mackerras + +commit f8dd311982c86141f4f2fd326c0edf0c2d9fd97b +Author: Sylvain Munaut +Date: Sun Mar 26 13:37:38 2006 +0200 + + [PATCH] ppc32: Adds support for the LITE5200B dev board + + ppc32: Adds support for the LITE5200B dev board + + This LITE5200B devboard is the new development board for the + Freescale MPC5200 processor. It has two PCI slots and so a + different PCI IRQ routing. + + Signed-off-by: John Rigby + Signed-off-by: Sylvain Munaut + Signed-off-by: Paul Mackerras + +commit 5931c4350059ce9bd5fe398b628c478753a11e44 +Author: Sylvain Munaut +Date: Sun Mar 26 13:37:07 2006 +0200 + + [PATCH] ppc32: Adds support for the PCI hostbridge in MPC5200B + + ppc32: Adds support for the PCI hostbridge in MPC5200B + + Signed-off-by: John Rigby + Signed-off-by: Sylvain Munaut + Signed-off-by: Paul Mackerras + +commit 37a801c776109dce801875b12525a9eaa12481e6 +Author: Michael Neuling +Date: Sun Mar 26 10:07:35 2006 +1000 + + [PATCH] powerpc: legacy_serial loop cleanup + + We only ever execute the loop once, so let's move it to a function + making it more readable. Cleanup patch, no functional change. + + Signed-off-by: Michael Neuling + Signed-off-by: Paul Mackerras + +commit b8c7b976a570aede21327e7d64781801e1641606 +Author: Anton Blanchard +Date: Sat Mar 25 17:31:30 2006 +1100 + + [PATCH] powerpc: Compile warning in hvcs driver + + We ended up with an unused variable after the tty updates went in. Fix it. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit c258dd40ab8851c41873516ef90125e3bcd2e3e1 +Author: Anton Blanchard +Date: Sat Mar 25 17:27:09 2006 +1100 + + [PATCH] powerpc: Consistent printing of node id + + We were printing node ids in hex in one spot. Lets be consistent and + always print them in decimal. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit 4df20460a3ff0d60280738b094945c56cb5567a5 +Author: Anton Blanchard +Date: Sat Mar 25 17:25:17 2006 +1100 + + [PATCH] powerpc: Allow non zero boot cpuids + + We currently have a hack to flip the boot cpu and its secondary thread + to logical cpuid 0 and 1. This means the logical - physical mapping will + differ depending on which cpu is boot cpu. This is most apparent on + kexec, where we might kexec on any cpu and therefore change the mapping + from boot to boot. + + The patch below does a first pass early on to work out the logical cpuid + of the boot thread. We then fix up some paca structures to match. + + Ive also removed the boot_cpuid_phys variable for ppc64, to be + consistent we use get_hard_smp_processor_id(boot_cpuid) everywhere. + + Signed-off-by: Anton Blanchard + Signed-off-by: Paul Mackerras + +commit b4f382a3e5e20ba867e7aa5b01189a3fd40eea2c +Author: Linas Vepstas +Date: Fri Mar 24 17:11:29 2006 -0600 + + [PATCH] powerpc/pseries: Cleanup device name printing. + + This avoids printk'ing a NULL string. + + Signed-off-by: Linas Vepstas + Signed-off-by: Paul Mackerras + +commit 79c227a92ce9fe0504e9c4aaadf3bfacb0f5f45e +Author: Arnd Bergmann +Date: Fri Mar 24 19:49:27 2006 +0100 + + [PATCH] spufs: Fix endless protection fault on LS writes by SPE. + + If an SPE attempts a DMA put to a local store after already doing + a get, the kernel must update the HW PTE to allow the write access. + This case was not being handled correctly. + + From: Mike Kistler + Signed-off-by: Mike Kistler + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 47952d5ea67dc7098667a954483a82acf81eb4da +Author: Arnd Bergmann +Date: Fri Mar 24 19:47:52 2006 +0100 + + [PATCH] powerpc: use guarded ioremap for cell on-chip mappings + + I'm not sure where the information came from, but I assumed + that doing cache-inhibited mappings for mmio regions was + sufficient. + + It seems we also need the guarded bit set, like everyone + else, which is the default for ioremap. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 2fa68747dad290f4415e2ea8565d57876747b2d3 +Author: Arnd Bergmann +Date: Fri Mar 24 19:46:29 2006 +0100 + + [PATCH] powerpc: fix spider-pic affinity setting + + As noticed by Milton Miller, setting the initial affinity in + spider-pic can go wrong if the target node field was not orinally + empty. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 16cc11daff0230bcd1ae7327c1c256c0aa02cad6 +Author: John Rose +Date: Fri Mar 24 11:25:32 2006 -0600 + + [PATCH] powerpc: dynamic probe - use ppc_md.pci_probe_mode() + + Change the dynamic PCI probe function for pSeries to use + ppc_md.pci_probe_mode() when appropriate. + + Signed-off-by: John Rose + Signed-off-by: Paul Mackerras + +commit add60ef303809087999412209d24d400a1c96670 +Author: Olaf Hering +Date: Thu Mar 23 22:03:57 2006 +0100 + + [PATCH] powerpc: return to OF via trap, not exit + + Do not call prom exit prom_panic. It clears the screen and the exit + message is lost. + + On some (or all?) pmacs it causes another crash when OF tries to print + the date and time in its banner. + + Set of_platform earlier to catch more prom_panic() calls. + + Signed-off-by: Olaf Hering + Acked-by: Segher Boessenkool + Signed-off-by: Paul Mackerras + +commit 069007ae07ab9286fbe42e9a66b78e184f752a05 +Author: Andrew Morton +Date: Fri Mar 24 02:34:46 2006 -0800 + + [PATCH] powerpc: hot_add_scn_to_nid() build fix + + The return statement is to prevent `warning: 'nid' might be used uninitialized + in this function'. + + Cc: Nathan Lynch + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 6088857b169c64e6e9672a2a66e76db3e957d5db +Author: Olaf Hering +Date: Thu Mar 23 21:50:59 2006 +0100 + + [PATCH] correct the comment about stackpointer alignment in __boot_from_prom + + The address of variable val in prom_init_stdout is passed to prom_getprop. + prom_getprop casts the pointer to u32 and passes it to call_prom in the hope + that OpenFirmware stores something there. + But the pointer is truncated in the lower bits and the expected value is + stored somewhere else. + + In my testing I had a stackpointer of 0x0023e6b4. val was at offset 120, + wich has address 0x0023e72c. But the value passed to OF was 0x0023e728. + + c00000000040b710: 3b 01 00 78 addi r24,r1,120 + ... + c00000000040b754: 57 08 00 38 rlwinm r8,r24,0,0,28 + ... + c00000000040b784: 80 01 00 78 lwz r0,120(r1) + ... + c00000000040b798: 90 1b 00 0c stw r0,12(r27) + ... + + The stackpointer came from 32bit code. + The chain was yaboot -> zImage -> vmlinux + + PowerMac OpenFirmware does appearently not handle the ELF sections + correctly. If yaboot was compiled in + /usr/src/packages/BUILD/lilo-10.1.1/yaboot, then the stackpointer is + unaligned. But the stackpointer is correct if yaboot is compiled in + /tmp/yaboot. + + This bug triggered since 2.6.15, now prom_getprop is an inline + function. gcc clears the lower bits, instead of just clearing the + upper 32 bits. + + Signed-off-by: Olaf Hering + Signed-off-by: Paul Mackerras + +commit ca3e91cb0cd53da70621f85d24a080b23751a013 +Author: Dirk Herrendoerfer +Date: Thu Mar 23 00:00:13 2006 +0100 + + [PATCH] spufs: initialize context correctly + + the mfc member of a new context was not initialized to zero, + which potentially leads to wild memory accesses. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 6df10a82f8de89c66eb91c371d62d76e87b2cbba +Author: Mark Nutter +Date: Thu Mar 23 00:00:12 2006 +0100 + + [PATCH] spufs: enable SPE problem state MMIO access. + + This patch is layered on top of CONFIG_SPARSEMEM + and is patterned after direct mapping of LS. + + This patch allows mmap() of the following regions: + "mfc", which represents the area from [0x3000 - 0x3fff]; + "cntl", which represents the area from [0x4000 - 0x4fff]; + "signal1" which begins at offset 0x14000; "signal2" which + begins at offset 0x1c000. + + The signal1 & signal2 files may be mmap()'d by regular user + processes. The cntl and mfc file, on the other hand, may + only be accessed if the owning process has CAP_SYS_RAWIO, + because they have the potential to confuse the kernel + with regard to parallel access to the same files with + regular file operations: the kernel always holds a spinlock + when accessing registers in these areas to serialize them, + which can not be guaranteed with user mmaps, + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit a33a7d7309d79656bc19a0e96fc4547a1633283e +Author: Arnd Bergmann +Date: Thu Mar 23 00:00:11 2006 +0100 + + [PATCH] spufs: implement mfc access for PPE-side DMA + + This patch adds a new file called 'mfc' to each spufs directory. + The file accepts DMA commands that are a subset of what would + be legal DMA commands for problem state register access. Upon + reading the file, a bitmask is returned with the completed + tag groups set. + + The file is meant to be used from an abstraction in libspe + that is added by a different patch. + + From the kernel perspective, this means a process can now + offload a memory copy from or into an SPE local store + without having to run code on the SPE itself. + + The transfer will only be performed while the SPE is owned + by one thread that is waiting in the spu_run system call + and the data will be transferred into that thread's + address space, independent of which thread started the + transfer. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 2dd14934c9138c562d93c501e88c6d6f061eb8ba +Author: Arnd Bergmann +Date: Thu Mar 23 00:00:09 2006 +0100 + + [PATCH] spufs: allow SPU code to do syscalls + + An SPU does not have a way to implement system calls + itself, but it can create intercepts to the kernel. + + This patch uses the method defined by the JSRE interface + for C99 host library calls from an SPU to implement + Linux system calls. It uses the reserved SPU stop code + 0x2104 for this, using the structure layout and syscall + numbers for ppc64-linux. + + I'm still undecided wether it is better to have a list + of allowed syscalls or a list of forbidden syscalls, + since we can't allow an SPU to call all syscalls that + are defined for ppc64-linux. + + This patch implements the easier choice of them, with a + blacklist that only prevents an SPU from calling anything + that interacts with its own execution, e.g fork, execve, + clone, vfork, exit, spu_run and spu_create and everything + that deals with signals. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit a7f31841a40776605c834053ad1eb82d539bd79f +Author: Arnd Bergmann +Date: Thu Mar 23 00:00:08 2006 +0100 + + [PATCH] powerpc: declare arch syscalls in + + powerpc currently declares some of its own system calls + in , but not all of them. That place also + contains remainders of the now almost unused kernel syscall + hack. + + - Add a new with clean declarations + - Include that file from every source that implements one + of these + - Get rid of old declarations in + + This patch is required as a base for implementing system + calls from an SPU, but also makes sense as a general + cleanup. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 5536408c21cdde38bfdbb59a6fd4fcbf1232699f +Author: Arnd Bergmann +Date: Thu Mar 23 00:00:07 2006 +0100 + + [PATCH] powerpc: work around a cell interrupt HW bug + + Apparently we have found a bug in the CPU that causes + external interrupts to sometimes get disabled indefinitely. + This adds a workaround for the problem. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit d0e57c68373f8ded8c50245fd082e606f9f63221 +Author: Jens Osterkamp +Date: Thu Mar 23 00:00:06 2006 +0100 + + [PATCH] powerpc: cell interrupt controller updates + + The current interrupt controller setup on Cell is done + in a rather ad-hoc way with device tree properties + that are not standardized at all. + + In an attempt to do something that follows the OF standard + (or at least the IBM extensions to it) more closely, + we have now come up with this patch. It still provides + a fallback to the old behaviour when we find older firmware, + that hack can not be removed until the existing customer + installations have upgraded. + + Cc: hpenner@de.ibm.com + Cc: stk@de.ibm.com + Cc: Segher Boessenkool + Cc: Milton Miller + Cc: benh@kernel.crashing.org + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 1a19f85584414ae0a9f94406ffd628096127583e +Author: Arnd Bergmann +Date: Thu Mar 23 00:00:05 2006 +0100 + + [PATCH] powerpc: update cell defconfig + + The default configuration in mainline got a little out of + sync with what we use internally. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit 5fa500bfc60f36c54bb20338795cc2facc0425f6 +Author: Arnd Bergmann +Date: Thu Mar 23 00:00:04 2006 +0100 + + [PATCH] powerpc: fix cell iommu setup + + A small bug crept in the iommu driver when we made it more + generic. This patch is needed for boards that have a dma + window that does not start at bus address zero. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Paul Mackerras + +commit dd4d7bfad635dddc56b74dab1894ef01c8c836e1 +Author: Michael Ellerman +Date: Thu Mar 23 23:33:03 2006 +1100 + + [PATCH] powerpc: Change firmware_has_feature() to a macro + + So that we can use firmware_has_feature() in a BUG_ON() and have the compiler + elide the code entirely if the feature can never be set, change + firmware_has_feature to a macro. Unfortunate, but necessary at least until + GCC bug #26724 is fixed. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit e3f94b85f98a346c5eb0ac0d9539b71cb7057143 +Author: Michael Ellerman +Date: Thu Mar 23 23:32:24 2006 +1100 + + [PATCH] powerpc: Make BUG_ON & WARN_ON play nice with compile-time optimisations + + Change BUG_ON and WARN_ON to give the compiler a chance to perform + compile-time optimsations. Depending on the complexity of the condition, + the compiler may not do this very well, so if it's important check the + object code. + + Current GCC's (4.x) produce good code as long as the condition does not + include a function call, including a static inline. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit af308377e204e25f1f58627d05fe0f483703b514 +Author: Stephen Rothwell +Date: Thu Mar 23 17:38:10 2006 +1100 + + [PATCH] powerpc: fix various sparse warnings + + Signed-off-by: Stephen Rothwell + Signed-off-by: Paul Mackerras + +commit 7c92943c7b6c42fa631ac2b67aeb507e727cd75b +Author: Stephen Rothwell +Date: Thu Mar 23 17:36:59 2006 +1100 + + [PATCH] powerpc: work around sparse warnings in cputable.h + + Christoph noticed that sparse warned about all the enum tags in cuptable.h + that had values that required them to be type log. (enum tags are ints + according to the standard.) + + This patch attempts to fix them in the least intrusive way possible by + turning them all into #defines except for the 32 bit CPU_FTRS_POSSIBLE and + CPU_FTRS_ALWAYS which are hard to construct that way. This works because + these last two contain no bits above 2^31. + + Signed-off-by: Stephen Rothwell + Signed-off-by: Paul Mackerras + +commit 3eb4801d7bde42b82f05137392a1ee0ece090bad +Author: Norbert Kiesel +Date: Sun Mar 26 17:39:55 2006 -0800 + + [NET]: drop duplicate assignment in request_sock + + Just noticed that request_sock.[ch] contain a useless assignment of + rskq_accept_head to itself. I assume this is a typo and the 2nd one + was supposed to be _tail. However, setting _tail to NULL is not + needed, so the patch below just drops the 2nd assignment. + + Signed-off-By: Norbert Kiesel + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit 6abaaaae6d5ed52422c8caf65f3cdbb95579bb58 +Author: Herbert Xu +Date: Sun Mar 26 17:37:54 2006 -0800 + + [IPSEC]: Fix tunnel error handling in ipcomp6 + + The error handling in ipcomp6_tunnel_create is broken in two ways: + + 1) If we fail to allocate an SPI (this should never happen in practice + since there are plenty of 32-bit SPI values for us to use), we will + still go ahead and create the SA. + + 2) When xfrm_init_state fails, we first of all may trigger the BUG_TRAP + in __xfrm_state_destroy because we didn't set the state to DEAD. More + importantly we end up returning the freed state as if we succeeded! + + This patch fixes them both. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 5d5d7727a8cde78f798ecf04bac8031eff536f9d +Author: David S. Miller +Date: Sun Mar 26 15:30:29 2006 -0800 + + [SPARC64]: Kill duplicate exports of string library functions. + + Kbuild now points these out. + + Signed-off-by: David S. Miller + +commit e7104b67040af98664dcd2c9cd36381ac0089f8b +Author: David S. Miller +Date: Sun Mar 26 14:58:40 2006 -0800 + + [SPARC64]: Update defconfig. + + Signed-off-by: David S. Miller + +commit aee85fe8e8143d3f54d9e6d3c6cdd40ead563267 +Author: Lennert Buytenhek +Date: Sun Mar 26 23:16:39 2006 +0100 + + [SERIAL] Provide Cirrus EP93xx AMBA PL010 serial support. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit fbb18a277a6f192404aa20ece49529acb1e1e76d +Author: Russell King +Date: Sun Mar 26 23:13:39 2006 +0100 + + [SERIAL] amba-pl010: allow platforms to specify modem control method + + The amba-pl010 hardware does not provide RTS and DTR control lines; it + is expected that these will be implemented using GPIO. Allow platforms + to supply a function to implement manipulation of modem control lines. + + Signed-off-by: Russell King + +commit bd8f103efef14980decf5d54a2de85835e9a6d9a +Author: Richard Purdie +Date: Sun Mar 26 21:40:27 2006 +0100 + + [ARM] 3415/1: Akita: Add missing EXPORT_SYMBOL + + Patch from Richard Purdie + + Add an EXPORT_SYMBOL for the Akita IO Expander Device. + + Signed-off-by: Richard Purdie + Signed-off-by: Russell King + +commit c9b4470e2d9d611181fe488fdf463948d8b24901 +Author: Lennert Buytenhek +Date: Sun Mar 26 21:40:27 2006 +0100 + + [ARM] 3414/1: ep93xx: reset ethernet controller before uncompressing + + Patch from Lennert Buytenhek + + The Redboot version that cirrus supplies for the cirrus ep93xx doesn't + turn off DMA from the ethernet MAC before jumping to linux, which means + that we might end up with bits of RX status and packet data scribbled + over the uncompressed kernel image. + + Work around this by resetting the ethernet MAC before we uncompress. + + We don't usually work around bootloader bugs, but considering that the + large majority of ep93xx boards out there have this problem, I figured + this it was justified in this case. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 335bd9dff31d042b773591933d3ee5bd62d5ea27 +Author: Ralf Baechle +Date: Sun Mar 26 21:25:57 2006 +0100 + + [SERIAL] Remove obsoleted au1x00_uart driver + + As announced in feature-removal-schedule.txt. + + Signed-off-by: Ralf Baechle + Signed-off-by: Russell King + +commit 8faaea3faa5ed0b2a15afb7b4e57ce0cd8dbe4ef +Author: Freddy Spierenburg +Date: Sun Mar 26 21:22:51 2006 +0100 + + [SERIAL] Small time UART configuration fix for AU1100 processor + + The AU1100 processor does not have an internal UART2. Only + UART0, UART1 and UART3 exist. This patch removes the non existing + UART2 and replaces it with a descriptive comment. + + Signed-off-by: Freddy Spierenburg + Signed-off-by: Russell King + +commit 64bc0430ee78c03c5c4ce549e217bb74bff7ea5d +Author: Manfred Spraul +Date: Sun Mar 26 12:19:42 2006 +0200 + + [PATCH] one ipc/sem.c->mutex.c converstion too many.. + + Ingo's sem2mutex patch incorrectly replaced one reference to ipc/sem.c + with ipc/mutex.c in a comment. + + Signed-off-by: Manfred Spraul + Signed-off-by: Linus Torvalds + +commit e9415777b1cd0eaf4d1d3d61772f0e6d5c2551ad +Author: Bastien Roucaries +Date: Sun Mar 26 19:18:07 2006 +0200 + + drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment + + This patch correct a comment about cli(). + + Signed-off-by: Bastien Roucaries + Signed-off-by: Adrian Bunk + +commit 8917f6f70b01ac6e4d534f8a387900caec11bf54 +Author: Adrian Bunk +Date: Sun Mar 26 19:15:03 2006 +0200 + + Kconfig help: MTD_JEDECPROBE already supports Intel + + Intel chips are already supported. + + Signed-off-by: Adrian Bunk + Acked-by: David Woodhouse + +commit f9b4192923fa6e38331e88214b1fe5fc21583fcc +Author: Akinobu Mita +Date: Sun Mar 26 01:40:00 2006 -0800 + + [PATCH] bitops: hweight() speedup + + wrote: + + This is an extremely well-known technique. You can see a similar version that + uses a multiply for the last few steps at + http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel whch + refers to "Software Optimization Guide for AMD Athlon 64 and Opteron + Processors" + http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/25112.PDF + + It's section 8.6, "Efficient Implementation of Population-Count Function in + 32-bit Mode", pages 179-180. + + It uses the name that I am more familiar with, "popcount" (population count), + although "Hamming weight" also makes sense. + + Anyway, the proof of correctness proceeds as follows: + + b = a - ((a >> 1) & 0x55555555); + c = (b & 0x33333333) + ((b >> 2) & 0x33333333); + d = (c + (c >> 4)) & 0x0f0f0f0f; + #if SLOW_MULTIPLY + e = d + (d >> 8) + f = e + (e >> 16); + return f & 63; + #else + /* Useful if multiply takes at most 4 cycles */ + return (d * 0x01010101) >> 24; + #endif + + The input value a can be thought of as 32 1-bit fields each holding their own + hamming weight. Now look at it as 16 2-bit fields. Each 2-bit field a1..a0 + has the value 2*a1 + a0. This can be converted into the hamming weight of the + 2-bit field a1+a0 by subtracting a1. + + That's what the (a >> 1) & mask subtraction does. Since there can be no + borrows, you can just do it all at once. + + Enumerating the 4 possible cases: + + 0b00 = 0 -> 0 - 0 = 0 + 0b01 = 1 -> 1 - 0 = 1 + 0b10 = 2 -> 2 - 1 = 1 + 0b11 = 3 -> 3 - 1 = 2 + + The next step consists of breaking up b (made of 16 2-bir fields) into + even and odd halves and adding them into 4-bit fields. Since the largest + possible sum is 2+2 = 4, which will not fit into a 4-bit field, the 2-bit + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + "which will not fit into a 2-bit field" + + fields have to be masked before they are added. + + After this point, the masking can be delayed. Each 4-bit field holds a + population count from 0..4, taking at most 3 bits. These numbers can be added + without overflowing a 4-bit field, so we can compute c + (c >> 4), and only + then mask off the unwanted bits. + + This produces d, a number of 4 8-bit fields, each in the range 0..8. From + this point, we can shift and add d multiple times without overflowing an 8-bit + field, and only do a final mask at the end. + + The number to mask with has to be at least 63 (so that 32 on't be truncated), + but can also be 128 or 255. The x86 has a special encoding for signed + immediate byte values -128..127, so the value of 255 is slower. On other + processors, a special "sign extend byte" instruction might be faster. + + On a processor with fast integer multiplies (Athlon but not P4), you can + reduce the final few serially dependent instructions to a single integer + multiply. Consider d to be 3 8-bit values d3, d2, d1 and d0, each in the + range 0..8. The multiply forms the partial products: + + d3 d2 d1 d0 + d3 d2 d1 d0 + d3 d2 d1 d0 + + d3 d2 d1 d0 + ---------------------- + e3 e2 e1 e0 + + Where e3 = d3 + d2 + d1 + d0. e2, e1 and e0 obviously cannot generate + any carries. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3be7d29fb9c02962b49be636b30ca9cadd0fda4b +Author: Artem B. Bityuckiy +Date: Sun Mar 26 18:58:31 2006 +0200 + + Remove ugly debugging stuff + + Signed-off-by: Adrian Bunk + +commit 37d54111c133bea05fbae9dfe6d3d61a1b19c09b +Author: Akinobu Mita +Date: Sun Mar 26 01:39:56 2006 -0800 + + [PATCH] bitops: hweight() related cleanup + + By defining generic hweight*() routines + + - hweight64() will be defined on all architectures + - hweight_long() will use architecture optimized hweight32() or hweight64() + + I found two possible cleanups by these reasons. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e9bebd6f3acee68fa07d44726895b40733cb1dc0 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:55 2006 -0800 + + [PATCH] bitops: remove unused generic bitops in include/linux/bitops.h + + generic_{ffs,fls,fls64,hweight{64,32,16,8}}() were moved into + include/asm-generic/bitops.h. So all architectures don't use them. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b9a2838cc26c4c5369fbd2482acbc5ab60573479 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:53 2006 -0800 + + [PATCH] bitops: ntfs: remove generic_ffs() + + Now the only user who are using generic_ffs() is ntfs filesystem. This patch + isolates generic_ffs() as ntfs_ffs() for ntfs. + + Signed-off-by: Akinobu Mita + Cc: Anton Altaparmakov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 55b0f8a68ab475cc68f88d1e7a873490869d022e +Author: Akinobu Mita +Date: Sun Mar 26 01:39:53 2006 -0800 + + [PATCH] bitops: ia64: make partial_page.bitmap an unsigned long + + The find_*_bit() routines are defined to work on a pointer to unsigned long. + But partial_page.bitmap is unsigned int and it is passed to find_*_bit() in + arch/ia64/ia32/sys_ia32.c. So the compiler will print warnings. + + This patch changes to unsigned long instead. + + Signed-off-by: Akinobu Mita + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6ecf66ae49390bb790673d46e5fb723edcc3733b +Author: Akinobu Mita +Date: Sun Mar 26 01:39:51 2006 -0800 + + [PATCH] bitops: sh: make thread_info.flags an unsigned long + + The test_bit() routines are defined to work on a pointer to unsigned long. + But thread_info.flags is __u32 (unsigned int) on sh and it is passed to flag + set/clear/test wrappers in include/linux/thread_info.h. So the compiler will + print warnings. + + This patch changes to unsigned long instead. + + Signed-off-by: Akinobu Mita + Cc: Paul Mundt + Cc: Kazumoto Kojima + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f51a05c16d3d051f5e000c50bccc4be91fe5f9f3 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:50 2006 -0800 + + [PATCH] bitops: update include/asm-generic/bitops.h + + Currently include/asm-generic/bitops.h is not referenced from anywhere. But + it will be the benefit of those who are trying to port Linux to another + architecture. + + So update it by same manner + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d4337aa5281a7357666f713339211fcd278f4e7a +Author: Akinobu Mita +Date: Sun Mar 26 01:39:43 2006 -0800 + + [PATCH] bitops: xtensa: use generic bitops + + - remove {,test_and_}{set,clear,change}_bit() + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove generic_fls64() + - remove find_{next,first}{,_zero}_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove generic_hweight{32,16,8}() + - remove sched_find_first_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Chris Zankel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f33e2fbacce8008984db99c45120db31081577c5 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:42 2006 -0800 + + [PATCH] bitops: x86_64: use generic bitops + + - remove sched_find_first_bit() + - remove generic_hweight{64,32,16,8}() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a58259cddf9f824af27abf8960ed604bee53f7c1 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:41 2006 -0800 + + [PATCH] bitops: v850: use generic bitops + + - remove ffz() + - remove find_{next,first}{,_zero}_bit() + - remove generic_ffs() + - remove generic_fls() + - remove generic_fls64() + - remove __ffs() + - remove sched_find_first_bit() + - remove generic_hweight{32,16,8}() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Miles Bader + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2d78d4beb64eb07d50665432867971c481192ebf +Author: Akinobu Mita +Date: Sun Mar 26 01:39:40 2006 -0800 + + [PATCH] bitops: sparc64: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove ffz() + - remove __ffs() + - remove generic_fls() + - remove generic_fls64() + - remove sched_find_first_bit() + - remove ffs() + + - unless defined(ULTRA_HAS_POPULATION_COUNT) + + - remove generic_hweight{64,32,16,8}() + + - remove find_{next,first}{,_zero}_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d59288b75797fd982546aee7ba24a495dee128dd +Author: Akinobu Mita +Date: Sun Mar 26 01:39:39 2006 -0800 + + [PATCH] bitops: sparc: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove ffz() + - remove __ffs() + - remove sched_find_first_bit() + - remove ffs() + - remove generic_fls() + - remove generic_fls64() + - remove generic_hweight{32,16,8}() + - remove find_{next,first}{,_zero}_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove ext2_{set,clear}_bit_atomic() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 62f1b2465bdf77bb95037a5418040edb2af142d0 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:37 2006 -0800 + + [PATCH] bitops: sh64: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove __ffs() + - remove find_{next,first}{,_zero}_bit() + - remove generic_hweight{32,16,8}() + - remove sched_find_first_bit() + - remove generic_ffs() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove ext2_{set,clear}_bit_atomic() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + - remove generic_fls() + - remove generic_fls64() + + Signed-off-by: Akinobu Mita + Cc: Paul Mundt + Cc: Richard Curnow + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e2268c7129e6cab53a5dac1ab0790a547555e21a +Author: Akinobu Mita +Date: Sun Mar 26 01:39:35 2006 -0800 + + [PATCH] bitops: sh: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove find_{next,first}{,_zero}_bit() + - remove generic_ffs() + - remove generic_hweight{32,16,8}() + - remove sched_find_first_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove ext2_{set,clear}_bit_atomic() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + - remove generic_fls() + - remove generic_fls64() + + Signed-off-by: Akinobu Mita + Cc: Paul Mundt + Cc: Kazumoto Kojima + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7e33db4e2e9d67ee01d105e33fb773eed8ba10f0 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:34 2006 -0800 + + [PATCH] bitops: s390: use generic bitops + + - remove generic_ffs() + - remove generic_fls() + - remove generic_fls64() + - remove generic_hweight{64,32,16,8}() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Heiko Carstens + Cc: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e779b2f95f3786cd9cfc804cd6f04f7267d75541 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:33 2006 -0800 + + [PATCH] bitops: powerpc: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove generic_fls64() + - remove generic_hweight{64,32,16,8}() + - remove sched_find_first_bit() + + Signed-off-by: Akinobu Mita + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 59e18a2e1c8f6642c307032939daaf474c16344e +Author: Akinobu Mita +Date: Sun Mar 26 01:39:31 2006 -0800 + + [PATCH] bitops: parisc: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove ffz() + - remove generic_fls64() + - remove generic_hweight{32,16,8}() + - remove generic_hweight64() + - remove sched_find_first_bit() + - remove find_{next,first}{,_zero}_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3c9ee7ef87414cba80dbdf433d3547bb20055ef7 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:30 2006 -0800 + + [PATCH] bitops: mips: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + + - unless defined(CONFIG_CPU_MIPS32) or defined(CONFIG_CPU_MIPS64) + + - remove __ffs() + - remove ffs() + - remove ffz() + - remove fls() + + - remove fls64() + - remove find_{next,first}{,_zero}_bit() + - remove sched_find_first_bit() + - remove generic_hweight64() + - remove generic_hweight{32,16,8}() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove ext2_{set,clear}_bit_atomic() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d2d7cdcf6e6d2a3db9885316d075940f12324413 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:29 2006 -0800 + + [PATCH] bitops: m68knommu: use generic bitops + + - remove ffs() + - remove __ffs() + - remove sched_find_first_bit() + - remove ffz() + - remove find_{next,first}{,_zero}_bit() + - remove generic_hweight() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + - remove generic_fls() + - remove generic_fls64() + + Signed-off-by: Akinobu Mita + Cc: Greg Ungerer + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4c5aea053d64bee7a776a4b874e1b417e9f316fe +Author: Akinobu Mita +Date: Sun Mar 26 01:39:28 2006 -0800 + + [PATCH] ppc: fix undefined reference to hweight32 + + Build fix for ppc + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d5728b45da6a510b74f07e385b3ef6b434b828e5 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:28 2006 -0800 + + [PATCH] m68k: fix undefined reference to generic_find_next_zero_le_bit + + This patch reverts ext2 bitmap functions. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ba1a5b32ba5e2fcb53b6943b8c9c33694ac68ce5 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:27 2006 -0800 + + [PATCH] bitops: m68k: use generic bitops + + - remove generic_fls64() + - remove sched_find_first_bit() + - remove generic_hweight() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Roman Zippel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d9f937b559d664b6f222cb91eca9c6802bfe89a +Author: Akinobu Mita +Date: Sun Mar 26 01:39:26 2006 -0800 + + [PATCH] bitops: m32r: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove ffz() + - remove find_{next,first}{,_zero}_bit() + - remove __ffs() + - remove generic_fls() + - remove generic_fls64() + - remove sched_find_first_bit() + - remove generic_ffs() + - remove generic_hweight{32,16,8}() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove ext2_{set,clear}_bit_atomic() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Hirokazu Takata + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2875aef8bd0e42367a66a78ef7abe10f3bba27b5 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:25 2006 -0800 + + [PATCH] bitops: ia64: use generic bitops + + - remove generic_fls64() + - remove find_{next,first}{,_zero}_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + - remove sched_find_first_bit() + + Signed-off-by: Akinobu Mita + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1cc2b9943b7b3a8d526aa8be5450d3ec083c3de4 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:24 2006 -0800 + + [PATCH] bitops: i386: use generic bitops + + - remove generic_fls64() + - remove sched_find_first_bit() + - remove generic_hweight{32,16,8}() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f6e0213f7c253086e17844df8ba21075100b5ead +Author: Akinobu Mita +Date: Sun Mar 26 01:39:23 2006 -0800 + + [PATCH] bitops: h8300: use generic bitops + + - remove generic_ffs() + - remove find_{next,first}{,_zero}_bit() + - remove sched_find_first_bit() + - remove generic_hweight{32,16,8}() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove ext2_{set,clear}_bit_atomic() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + - remove generic_fls() + - remove generic_fls64() + + Signed-off-by: Akinobu Mita + Cc: Yoshinori Sato + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1f6d7a93c141a473e2cff428a3dbf13b4bec9325 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:22 2006 -0800 + + [PATCH] bitops: frv: use generic bitops + + - remove ffz() + - remove find_{next,first}{,_zero}_bit() + - remove generic_ffs() + - remove __ffs() + - remove generic_fls64() + - remove sched_find_first_bit() + - remove generic_hweight{32,16,8}() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e9f26df17266a8bd327957bd1a5957a263bd7112 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:21 2006 -0800 + + [PATCH] bitops: cris: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove generic_fls() + - remove generic_fls64() + - remove generic_hweight{32,16,8}() + - remove find_{next,first}{,_zero}_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + - remove sched_find_first_bit() + + Signed-off-by: Akinobu Mita + Acked-by: Mikael Starvik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d142d8601993f423386556f1cbbacbdcf7b7a767 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:20 2006 -0800 + + [PATCH] bitops: arm26: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + - remove ffz() + - remove __ffs() + - remove generic_fls() + - remove generic_fls64() + - remove generic_ffs() + - remove sched_find_first_bit() + - remove generic_hweight{32,16,8}() + + Signed-off-by: Akinobu Mita + Cc: Ian Molton + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b89c3b165fbec605c60fd5a9e32d647e4c0befbb +Author: Akinobu Mita +Date: Sun Mar 26 01:39:19 2006 -0800 + + [PATCH] bitops: arm: use generic bitops + + - remove __{,test_and_}{set,clear,change}_bit() and test_bit() + + - if __LINUX_ARM_ARCH__ < 5 + + - remove ffz() + - remove __ffs() + - remove generic_fls() + - remove generic_ffs() + + - remove generic_fls64() + - remove sched_find_first_bit() + - remove generic_hweight{32,16,8}() + + Signed-off-by: Akinobu Mita + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f7c29678739e69b8298496f926e87e5991e745e8 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:18 2006 -0800 + + [PATCH] bitops: alpha: use generic bitops + + - unless defined(__alpha_cix__) and defined(__alpha_fix__) + + - remove generic_fls() + - remove generic_hweight{64,32,16,8}() + + - remove generic_fls64() + - remove find_{next,first}{,_zero}_bit() + - remove ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + - remove minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + Signed-off-by: Akinobu Mita + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b1bb9522daf2fb49c5793d128023e9ca1e08e13b +Author: Akinobu Mita +Date: Sun Mar 26 01:39:17 2006 -0800 + + [PATCH] bitops: generic minix_{test,set,test_and_clear,test,find_first_zero}_bit() + + This patch introduces the C-language equivalents of the functions below: + + int minix_test_and_set_bit(int nr, volatile unsigned long *addr); + int minix_set_bit(int nr, volatile unsigned long *addr); + int minix_test_and_clear_bit(int nr, volatile unsigned long *addr); + int minix_test_bit(int nr, const volatile unsigned long *addr); + unsigned long minix_find_first_zero_bit(const unsigned long *addr, + unsigned long size); + + In include/asm-generic/bitops/minix.h + and include/asm-generic/bitops/minix-le.h + + This code largely copied from: include/asm-sparc/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 765f34fe324bdf0c0544b3404d25aaa511e3834b +Author: Akinobu Mita +Date: Sun Mar 26 01:39:16 2006 -0800 + + [PATCH] bitops: generic ext2_{set,clear}_bit_atomic() + + This patch introduces the C-language equivalents of the functions below: + + int ext2_set_bit_atomic(int nr, volatile unsigned long *addr); + int ext2_clear_bit_atomic(int nr, volatile unsigned long *addr); + + In include/asm-generic/bitops/ext2-atomic.h + + This code largely copied from: include/asm-sparc/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 930ae745f50088279fdc06057a429f16495b53a2 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:15 2006 -0800 + + [PATCH] bitops: generic ext2_{set,clear,test,find_first_zero,find_next_zero}_bit() + + This patch introduces the C-language equivalents of the functions below: + + int ext2_set_bit(int nr, volatile unsigned long *addr); + int ext2_clear_bit(int nr, volatile unsigned long *addr); + int ext2_test_bit(int nr, const volatile unsigned long *addr); + unsigned long ext2_find_first_zero_bit(const unsigned long *addr, + unsigned long size); + unsinged long ext2_find_next_zero_bit(const unsigned long *addr, + unsigned long size); + + In include/asm-generic/bitops/ext2-non-atomic.h + + This code largely copied from: + + include/asm-powerpc/bitops.h + include/asm-parisc/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a54baa1487c51c8306dd6f457c1b5d5fcd539fff +Author: Akinobu Mita +Date: Sun Mar 26 01:39:14 2006 -0800 + + [PATCH] fix error: __u32 undeclared + + Build fix for s390 declare __u32 and __u64. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3b9ed1a5d2d121f32d2cb4f2b05f1fc57c99c946 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:13 2006 -0800 + + [PATCH] bitops: generic hweight{64,32,16,8}() + + This patch introduces the C-language equivalents of the functions below: + + unsigned int hweight32(unsigned int w); + unsigned int hweight16(unsigned int w); + unsigned int hweight8(unsigned int w); + unsigned long hweight64(__u64 w); + + In include/asm-generic/bitops/hweight.h + + This code largely copied from: include/linux/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 09020adb61416c4307de35941a9725a5e33d9beb +Author: Akinobu Mita +Date: Sun Mar 26 01:39:12 2006 -0800 + + [PATCH] bitops: generic ffs() + + This patch introduces the C-language equivalent of the function: int ffs(int + x); + + In include/asm-generic/bitops/ffs.h + + This code largely copied from: include/linux/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6d29ea23da033f46ac4ab359d46650a7f7474611 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:12 2006 -0800 + + [PATCH] bitops: generic sched_find_first_bit() + + This patch introduces the C-language equivalent of the function: int + sched_find_first_bit(const unsigned long *b); + + In include/asm-generic/bitops/sched.h + + This code largely copied from: include/asm-powerpc/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c7f612cdf091def01454e7e132c7d7a3f419fbc4 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:11 2006 -0800 + + [PATCH] bitops: generic find_{next,first}{,_zero}_bit() + + This patch introduces the C-language equivalents of the functions below: + + unsigned logn find_next_bit(const unsigned long *addr, unsigned long size, + unsigned long offset); + unsigned long find_next_zero_bit(const unsigned long *addr, unsigned long size, + unsigned long offset); + unsigned long find_first_zero_bit(const unsigned long *addr, + unsigned long size); + unsigned long find_first_bit(const unsigned long *addr, unsigned long size); + + In include/asm-generic/bitops/find.h + + This code largely copied from: arch/powerpc/lib/bitops.c + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2dfc383ad587bbead84739a9ff9273df3eda983d +Author: Akinobu Mita +Date: Sun Mar 26 01:39:10 2006 -0800 + + [PATCH] bitops: generic fls64() + + This patch introduces the C-language equivalent of the function: int + fls64(__u64 x); + + In include/asm-generic/bitops/fls64.h + + This code largely copied from: include/linux/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 136abb32d6b4acf196425fb3968ebb368d84280e +Author: Akinobu Mita +Date: Sun Mar 26 01:39:09 2006 -0800 + + [PATCH] bitops: generic fls() + + This patch introduces the C-language equivalent of the function: int fls(int + x); + + In include/asm-generic/bitops/fls.h + + This code largely copied from: include/linux/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 176d8b0c2709e764d491e63a0c1b3a3e1459fcf8 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:08 2006 -0800 + + [PATCH] bitops: generic ffz() + + This patch introduces the C-language equivalent of the function: unsigned long + ffz(unsigned long word); + + In include/asm-generic/bitops/ffz.h + + This code largely copied from: include/asm-parisc/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c1226a005ec400e966f4993dfcc0e99fd7baa6a1 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:08 2006 -0800 + + [PATCH] bitops: generic __ffs() + + This patch introduces the C-language equivalent of the function: unsigned long + __ffs(unsigned long word); + + In include/asm-generic/bitops/__ffs.h + + This code largely copied from: include/asm-sparc/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4117b02132d1cf96a3e1c57148e302c4801c974d +Author: Akinobu Mita +Date: Sun Mar 26 01:39:07 2006 -0800 + + [PATCH] bitops: generic __{,test_and_}{set,clear,change}_bit() and test_bit() + + This patch introduces the C-language equivalents of the functions below: + + void __set_bit(int nr, volatile unsigned long *addr); + void __clear_bit(int nr, volatile unsigned long *addr); + void __change_bit(int nr, volatile unsigned long *addr); + int __test_and_set_bit(int nr, volatile unsigned long *addr); + int __test_and_clear_bit(int nr, volatile unsigned long *addr); + int __test_and_change_bit(int nr, volatile unsigned long *addr); + int test_bit(int nr, const volatile unsigned long *addr); + + In include/asm-generic/bitops/non-atomic.h + + This code largely copied from: asm-powerpc/bitops.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7a8a2429956fcfa3f3ef8fc105a4c055d70239ab +Author: Akinobu Mita +Date: Sun Mar 26 01:39:06 2006 -0800 + + [PATCH] bitops: generic {,test_and_}{set,clear,change}_bit() + + This patch introduces the C-language equivalents of the functions below: + + void set_bit(int nr, volatile unsigned long *addr); + void clear_bit(int nr, volatile unsigned long *addr); + void change_bit(int nr, volatile unsigned long *addr); + int test_and_set_bit(int nr, volatile unsigned long *addr); + int test_and_clear_bit(int nr, volatile unsigned long *addr); + int test_and_change_bit(int nr, volatile unsigned long *addr); + + In include/asm-generic/bitops/atomic.h + + This code largely copied from: + + include/asm-powerpc/bitops.h + include/asm-parisc/bitops.h + include/asm-parisc/atomic.h + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 67b0ad574b5ee90f8ea58196ff8a7f3780b75365 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:05 2006 -0800 + + [PATCH] bitops: use non atomic operations for minix_*_bit() and ext2_*_bit() + + Bitmap functions for the minix filesystem and the ext2 filesystem except + ext2_set_bit_atomic() and ext2_clear_bit_atomic() do not require the atomic + guarantees. + + But these are defined by using atomic bit operations on several architectures. + (cris, frv, h8300, ia64, m32r, m68k, m68knommu, mips, s390, sh, sh64, sparc, + sparc64, v850, and xtensa) + + This patch switches to non atomic bit operation. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 72b61a3cfd80d1321eb898be8ceae2064f0fbea1 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:04 2006 -0800 + + [PATCH] bitops: cris: remove unnecessary local_irq_restore() + + remove unnecessary local_irq_restore() after cris_atomic_restore() in + test_and_set_bit(). + + Signed-off-by: Akinobu Mita + Cc: Mikael Starvik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3156054b02e263387d6cd27fd1b05eba2bc25459 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:04 2006 -0800 + + [PATCH] bitops: parisc: add ()-pair in __ffz() macro + + Noticed by Michael Tokarev + + add missing ()-pair in __ffz() macro for parisc + + Signed-off-by: Akinobu Mita + Cc: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4668f0cd0abd41a908ec7aa292e91fd158e0c8f8 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:03 2006 -0800 + + [PATCH] bitops: ia64: use cpu_set() instead of __set_bit() + + __set_bit() --> cpu_set() cleanup + + Signed-off-by: Akinobu Mita + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4b417d0c7cb6af4afb7bad6463f7f3227d8a5074 +Author: Akinobu Mita +Date: Sun Mar 26 01:39:01 2006 -0800 + + [PATCH] bitops: alpha: use config options instead of __alpha_fix__ and __alpha_cix__ + + Use config options instead of gcc builtin definition to tell the use of + instruction set extensions (CIX and FIX). + + This is introduced to tell the kbuild system the use of opmized hweight*() + routines on alpha architecture. + + Signed-off-by: Akinobu Mita + Cc: Richard Henderson + Cc: Ivan Kokshaysky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 20548664aa2d98ba0ee3dde4482b0a96b9273b6f +Author: Richard Knutsson +Date: Sun Mar 26 01:39:00 2006 -0800 + + [PATCH] oss/sonicvibes.c defines its own hweight32 + + sound/oss/sonicvibes.c:421: error: static declaration of hweight32 follows non-static declaration + include/asm-generic/bitops/hweight.h:6: error: previous declaration of hweight32 was here + + Signed-off-by: Richard Knutsson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 93635133663ea3155e74a0e3645b64754a046007 +Author: Akinobu Mita +Date: Sun Mar 26 01:38:59 2006 -0800 + + [PATCH] arm: fix undefined reference to generic_fls + + This patch defines constant_fls() instead of removed generic_fls(). + + Signed-off-by: Akinobu Mita + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f214ef3e193dea10a7b527d4f4b0c15d2d98c984 +Author: Akinobu Mita +Date: Sun Mar 26 01:38:59 2006 -0800 + + [PATCH] um: fix undefined reference to hweight32 + + Build fix for user mode linux. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0b28002fdf2d5b6ce3135a544c04940a16c5b0ba +Author: Akinobu Mita +Date: Sun Mar 26 01:38:58 2006 -0800 + + [PATCH] more s/fucn/func/ typo fixes + + s/fucntion/function/ typo fixes + + Signed-off-by: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0f7217f4accad73e0a86febadb5a5d6e74ff7c37 +Author: Akinobu Mita +Date: Sun Mar 26 01:38:57 2006 -0800 + + [PATCH] frv: remove unnesesary "&" + + Fix warning messages triggered by bitops code consolidation patches. + cxn_bitmap is the array of unsigned long. '&' is unnesesary for the argument + of *_bit() routins. + + Signed-off-by: Akinobu Mita + Acked-by: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6b53f7870d1657831df23788d1984aac3b5a97bd +Author: Andrew Morton +Date: Sun Mar 26 01:38:56 2006 -0800 + + [PATCH] cmpci: don't use generic_hweight32() + + It's about to go away. + + Cc: Akinobu Mita + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9110540f7f2bbcc3577d2580a696fbb7af68c892 +Author: Dave Peterson +Date: Sun Mar 26 01:38:55 2006 -0800 + + [PATCH] EDAC: use EXPORT_SYMBOL_GPL + + Change all instances of EXPORT_SYMBOL() in the core EDAC module to + EXPORT_SYMBOL_GPL(). + + Signed-off-by: David S. Peterson + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0e438e3f0089672f57a47467e1f0d15fc48778be +Author: Dave Peterson +Date: Sun Mar 26 01:38:55 2006 -0800 + + [PATCH] EDAC: add maintainers for chipset drivers + + - Add entries to MAINTAINERS list for EDAC-E752X, EDAC-E7XXX, and + EDAC-R82600 chipset drivers + + - Fix MAINTAINERS entry for EDAC-CORE so it uses tabs rather than + spaces to indent. This is consistent with how the other entries are + formatted. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e009356f738634d8a137cca35503b9b33322c858 +Author: Dave Peterson +Date: Sun Mar 26 01:38:54 2006 -0800 + + [PATCH] EDAC: use sysbus_message in e752x code + + Patch from Dave Jiang : Fix EDAC e752x driver so it + outputs sysbus-specific error message when sysbus error detected. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f3479816bb549bbbc04d2332e77bbe0b92230bbc +Author: Dave Peterson +Date: Sun Mar 26 01:38:53 2006 -0800 + + [PATCH] EDAC: documentation spelling fixes + + Fix spelling errors in EDAC documentation. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e7ecd8910293564d357dbaf18eb179e06fa35fd0 +Author: Dave Peterson +Date: Sun Mar 26 01:38:52 2006 -0800 + + [PATCH] EDAC: formatting cleanup + + Cosmetic indentation/formatting cleanup for EDAC code. Make sure we + are using tabs rather than spaces to indent, etc. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 54933dddc3e8ccd9db48966d8ada11951cb8a558 +Author: Dave Peterson +Date: Sun Mar 26 01:38:51 2006 -0800 + + [PATCH] EDAC: reorder EXPORT_SYMBOL macros + + Fix EDAC code so EXPORT_SYMBOL comes after the function that is being + exported. This is to maintain consistency with the rest of the kernel. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 39f1d8d38aa3f757889a09855b241b6a23e2cac5 +Author: Dave Peterson +Date: Sun Mar 26 01:38:50 2006 -0800 + + [PATCH] EDAC: Kconfig dependency changes + + - Add x86 dependency in drivers/edac/Kconfig for all current + platform-specific modules. + + - Add PCI dependency to Radisys 82600 driver + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 18dbc337af5d6efd30cb9291e74722c8ad134fd3 +Author: Dave Peterson +Date: Sun Mar 26 01:38:50 2006 -0800 + + [PATCH] EDAC: protect memory controller list + + - Fix code so we always hold mem_ctls_mutex while we are stepping + through the list of mem_ctl_info structures. Otherwise bad things + may happen if one task is stepping through the list while another + task is modifying it. We may eventually want to use reference + counting to manage the mem_ctl_info structures. In the meantime we + may as well fix this bug. + + - Don't disable interrupts while we are walking the list of + mem_ctl_info structures in check_mc_devices(). This is unnecessary. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 472678ebd30d87cbe8d97562dcc0e46d1076040f +Author: Dave Peterson +Date: Sun Mar 26 01:38:49 2006 -0800 + + [PATCH] EDAC: kobject/sysfs fixes + + - After we unregister a kobject, wait for our kobject release method + to call complete(). This causes us to wait until the kobject + reference count reaches 0. Otherwise, a task accessing the EDAC + sysfs interface can hold the reference count above 0 until after the + EDAC module has been unloaded. When the reference count finally + drops to 0, this will result in an attempt to call our release + method inside the EDAC module after the module has already been + unloaded. + + This isn't the best fix, since a process can get stuck sleeping forever + uninterruptibly if the user does the following: + + rmmod my_module < /sys/my_sysfs/file + + I'll go back and implement a better fix later. However this should + be ok for now. + + - Call edac_remove_sysfs_mci_device() from edac_mc_del_mc() rather + than from edac_mc_free(). Since edac_mc_add_mc() calls + edac_create_sysfs_mci_device(), edac_mc_del_mc() should call + edac_remove_sysfs_mci_device(). + + Signed-off-by: David S. Peterson + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6e5a8748507dea83386d1d76c58aeaed1ff5a1ec +Author: Dave Peterson +Date: Sun Mar 26 01:38:48 2006 -0800 + + [PATCH] EDAC: kobject_init/kobject_put fixes + + - Remove calls to kobject_init(). These are unnecessary because + kobject_register() calls kobject_init(). + + - Remove extra calls to kobject_put(). When we call + kobject_unregister(), this releases our reference to the kobject. + The extra calls to kobject_put() may cause the reference count to + drop to 0 while a kobject is still in use. + + Signed-off-by: David S. Peterson + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 028a7b6d3d9fa2cc41d76d45575345cca8d00a4c +Author: Dave Peterson +Date: Sun Mar 26 01:38:47 2006 -0800 + + [PATCH] EDAC: edac_mc_add_mc fix [2/2] + + This is part 2 of a 2-part patch set. + + Fix edac_mc_add_mc() so it cleans up properly if call to + edac_create_sysfs_mci_device() fails. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a1d03fcc1399b1e23922bcc3af1772b128aa6e93 +Author: Dave Peterson +Date: Sun Mar 26 01:38:46 2006 -0800 + + [PATCH] EDAC: edac_mc_add_mc fix [1/2] + + This is part 1 of a 2-part patch set. The code changes are split into + two parts to make the patches more readable. + + Move complete_mc_list_del() and del_mc_from_global_list() so we can + call del_mc_from_global_list() from edac_mc_add_mc() without forward + declarations. Perhaps using forward declarations would be better? + I'm doing things this way because the rest of the code is missing + them. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 749ede57443b2a7ede2db105145f21047efcea6a +Author: Dave Peterson +Date: Sun Mar 26 01:38:45 2006 -0800 + + [PATCH] EDAC: cleanup code for clearing initial errors + + Fix xxx_probe1() functions so they call xxx_get_error_info() functions + to clear initial errors. This is simpler and cleaner than duplicating + the low-level code for accessing PCI config space. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d38fde84f7521973fdfa5c3d03d62f014b42cd03 +Author: Dave Peterson +Date: Sun Mar 26 01:38:45 2006 -0800 + + [PATCH] EDAC: e7xxx fix minor logic bug + + Fix minor logic bug in e7xxx_remove_one(). + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 637beb697b8dc7b9d7a35c2b6488332e77963ded +Author: Dave Peterson +Date: Sun Mar 26 01:38:44 2006 -0800 + + [PATCH] EDAC: i82875p cleanup + + - Fix i82875p_probe1() so it calls pci_get_device() instead of + pci_find_device(). + - Fix i82875p_probe1() so it cleans up properly on failure. + - Fix i82875p_init() so it cleans up properly on failure. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e8a491b401dbbc5af9fe6483dc558d76343bfbb3 +Author: Dave Peterson +Date: Sun Mar 26 01:38:43 2006 -0800 + + [PATCH] EDAC: i82860 cleanup + + - Fix i82860_init() so it cleans up properly on failure. + - Fix i82860_exit() so it cleans up properly. + - Fix typo in comment (i.e. www.redhat.com.com). + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3847bccce80c8a01d7adbad9961564252207302a +Author: Dave Peterson +Date: Sun Mar 26 01:38:42 2006 -0800 + + [PATCH] EDAC: e752x cleanup + + - Add ctl_dev field to "struct e752x_dev_info". Then we can eliminate + ugly switch statement from e752x_probe1(). + + - Remove code from e752x_probe1() that clears initial PCI bus parity + errors. The core EDAC module already does this. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 225159bd0a349bfd8cd9ae7c6bf39d75df09304a +Author: Dave Peterson +Date: Sun Mar 26 01:38:41 2006 -0800 + + [PATCH] EDAC: amd76x pci_dev_get/pci_dev_put fixes + + Eliminate unnecessary calls to pci_dev_get() and pci_dev_put() from + amd76x driver. + + Signed-off-by: David S. Peterson + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 680cbbbb0e336b04b74be48b8ddd870537f1e226 +Author: Dave Peterson +Date: Sun Mar 26 01:38:41 2006 -0800 + + [PATCH] EDAC: name cleanup + + Perform the following name substitutions on all source files: + + sed 's/BS_MOD_STR/EDAC_MOD_STR/g' + sed 's/bs_thread_info/edac_thread_info/g' + sed 's/bs_thread/edac_thread/g' + sed 's/bs_xstr/edac_xstr/g' + sed 's/bs_str/edac_str/g' + + The names that start with BS_ or bs_ are artifacts of when the code + was called "bluesmoke". + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 537fba28928c01b7db1580627450691a4bb0b9b3 +Author: Dave Peterson +Date: Sun Mar 26 01:38:40 2006 -0800 + + [PATCH] EDAC: printk cleanup + + This implements the following idea: + + On Monday 30 January 2006 19:22, Eric W. Biederman wrote: + > One piece missing from this conversation is the issue that we need errors + > in a uniform format. That is why edac_mc has helper functions. + > + > However there will always be errors that don't fit any particular model. + > Could we add a edac_printk(dev, ); That is similar to dev_printk but + > prints out an EDAC header and the device on which the error was found? + > Letting the rest of the string be user specified. + > + > For actual control that interface may be to blunt, but at least for people + > looking in the logs it allows all of the errors to be detected and + > harvested. + + Signed-off-by: David S. Peterson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f2fe42abbf0d99a8c4b96f1cc55db10ac35d2fb9 +Author: Dave Peterson +Date: Sun Mar 26 01:38:38 2006 -0800 + + [PATCH] EDAC: switch to kthread_ API + + This patch was originally posted by Christoph Hellwig (see + http://lkml.org/lkml/2006/2/14/331): + + "Christoph Hellwig" wrote: + > Use the kthread_ API instead of opencoding lots of hairy code for kernel + > thread creation and teardown, including tasklist_lock abuse. + > + + Signed-off-by: Christoph Hellwig + Signed-off-by: David S. Peterson + Cc: + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dac5bafa3521a10a42a470ab612cd2bbc12d4203 +Author: Eric Sesterhenn +Date: Sun Mar 26 01:38:38 2006 -0800 + + [PATCH] Dead code in drivers/isdn/avm/avmcard.h + + This fixes coverity id #2. the if (i==0) is pretty useless, since we + assing i=0, just the line before. + + Signed-off-by: Eric Sesterhenn + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 07dc1f9f2f80f67823dc9ab4ebe3b1b3b071b911 +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:37 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - M105 USB DECT adapter + + And: Tilman Schmidt + + This patch adds the connection-specific module "usb_gigaset", the hardware + driver for Gigaset base stations connected via the M105 USB DECT adapter. It + contains the code for handling probe/disconnect, AT command/response + transmission, and call setup and termination, as well as handling asynchronous + data transfers, PPP framing, byte stuffing, and flow control. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 76bb4685bff8781b5dbcd7080171d1e1f8c82f5b +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:36 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - isochronous data handler + + And: Tilman Schmidt + + This patch adds the payload data handler for the connection-specific module + "bas_gigaset". It contains the code for handling isochronous data transfers, + HDLC framing and flow control. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cf7776dc05b89885a7ec6beff8409d48b077a3ac +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:34 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - direct USB connection + + And: Tilman Schmidt + + This patch adds the main source file of the connection-specific module + "bas_gigaset", the hardware driver for Gigaset base stations connected + directly to the computer via USB. It contains the code for handling + probe/disconnect, AT command/response transmission, and call setup and + termination. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 982da5a196a0859eedc5ca1ff88feaf1bc6d6e4e +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:33 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - procfs interface + + And: Tilman Schmidt + + This patch adds the procfs interface to the gigaset module. The procfs + interface provides access to status information and statistics about the + Gigaset devices. If the drivers are built with the debugging option it also + allows to change the amount of debugging output on the fly. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ee8a4b7f857fe7ba243e65c8925798cf8eda5ab0 +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:32 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - tty interface + + And: Tilman Schmidt + + This patch adds the tty interface to the gigaset module. The tty interface + provides direct access to the AT command set of the Gigaset devices. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3c66a22545dd88356bbf4efa45a7b178df8154e9 +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:31 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - isdn4linux interface + + And: Tilman Schmidt + + This patch adds the isdn4linux subsystem interface to the gigaset module. The + isdn4linux subsystem interface handles requests from and notifications to the + isdn4linux subsystem. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 14fa73a75df6a0ffe866f750e8dcd218d0171f51 +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:30 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - event layer + + And: Tilman Schmidt + + This patch adds the event layer to the gigaset module. The event layer + serializes events from hardware, userspace, and other kernel subsystems. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6fd5ea63f85e30fda55b80939b4f379ea5db62b1 +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:29 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - common module + + And: Tilman Schmidt + + This patch adds the common include file for the Siemens Gigaset drivers, + providing definitions used by all of the Gigaset ISDN driver source files. It + also adds the main source file of the gigaset module which manages common + functions not specific to the type of connection to the device. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0a34eb8f55a71678c379b47c25f562050c80efcc +Author: Hansjoerg Lipp +Date: Sun Mar 26 01:38:28 2006 -0800 + + [PATCH] isdn4linux: Siemens Gigaset drivers - Kconfigs and Makefiles + + And: Tilman Schmidt + + The following patches add drivers for the Siemens Gigaset 3070 family of ISDN + DECT PABXes connected via USB, either directly or over a DECT link using a + Gigaset M105 or compatible DECT data adapter. The devices are integrated as + ISDN adapters within the isdn4linux framework, supporting incoming and + outgoing voice and data connections, and also as tty devices providing access + to device specific AT commands. + + Supported devices include models 3070, 3075, 4170, 4175, SX205, SX255, and + SX353 from the Siemens Gigaset product family, as well as the technically + identical models 45isdn and 721X from the Deutsche Telekom Sinus series. + Supported DECT adapters are the Gigaset M105 data and the technically + identical Gigaset USB Adapter DECT, Sinus 45 data 2, and Sinus 721 data (but + not the Gigaset M34 and Sinus 702 data which advertise themselves as CDC-ACM + devices). + + These drivers have been developed over the last four years within the + SourceForge project http://sourceforge.net/projects/gigaset307x/. They are + being used successfully in several installations for dial-in Internet access + and for voice call switching with Asterisk. + + This is our second attempt at submitting these drivers, taking into account + the comments we received to our first submission on 2005-12-11. + + The patch set adds three kernel modules: + + - a common module "gigaset" encapsulating the common logic for + controlling the PABX and the interfaces to userspace and the + isdn4linux subsystem. + + - a connection-specific module "bas_gigaset" which handles + communication with the PABX over a direct USB connection. + + - a connection-specific module "usb_gigaset" which does the same + for a DECT connection using the Gigaset M105 USB DECT adapter. + + We also have a module "ser_gigaset" which supports the Gigaset M101 RS232 DECT + adapter, but we didn't judge it fit for inclusion in the kernel, as it does + direct programming of a i8250 serial port. It should probably be rewritten as + a serial line discipline but so far we lack the neccessary knowledge about + writing a line discipline for that. + + The drivers have been working with kernel releases 2.2 and 2.4 as well as 2.6, + and although we took efforts to remove the compatibility code for this + submission, it probably still shows in places. Please make allowances. + + This patch: + + Prepare the kernel build infrastructure for addition of the Gigaset ISDN + drivers. It creates a Makefile and Kconfig file for the Gigaset driver and + hooks them into those of the isdn4linux subsystem. It also adds a MAINTAINERS + entry for the driver. + + This patch depends on patches 2 to 9 of the present set, as without the actual + source files, activating the options added here will cause the kernel build to + fail. + + Signed-off-by: Hansjoerg Lipp + Signed-off-by: Tilman Schmidt + Cc: Karsten Keil + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b67000962f35313cfc5eabd675dc38b91678d9ed +Author: Prasanna S Panchamukhi +Date: Sun Mar 26 01:38:26 2006 -0800 + + [PATCH] kprobes: fix broken fault handling for sparc64 + + Provide proper kprobes fault handling, if a user-specified pre/post handlers + tries to access user address space, through copy_from_user(), get_user() etc. + + The user-specified fault handler gets called only if the fault occurs while + executing user-specified handlers. In such a case user-specified handler is + allowed to fix it first, later if the user-specifed fault handler does not fix + it, we try to fix it by calling fix_exception(). + + The user-specified handler will not be called if the fault happens when single + stepping the original instruction, instead we reset the current probe and + allow the system page fault handler to fix it up. + + I could not test this patch for sparc64. + + Signed-off-by: Prasanna S Panchamukhi + Cc: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c04c1c81e211c2c95b548add7923e1d4ba4847ab +Author: Prasanna S Panchamukhi +Date: Sun Mar 26 01:38:25 2006 -0800 + + [PATCH] kprobes: fix broken fault handling for ia64 + + Provide proper kprobes fault handling, if a user-specified pre/post handlers + tries to access user address space, through copy_from_user(), get_user() etc. + + The user-specified fault handler gets called only if the fault occurs while + executing user-specified handlers. In such a case user-specified handler is + allowed to fix it first, later if the user-specifed fault handler does not fix + it, we try to fix it by calling fix_exception(). + + The user-specified handler will not be called if the fault happens when single + stepping the original instruction, instead we reset the current probe and + allow the system page fault handler to fix it up. + + Signed-off-by: Prasanna S Panchamukhi + Acked-by: Anil S Keshavamurthy + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 50e21f2b2861711b6df0b72ffef4a70d1532b023 +Author: Prasanna S Panchamukhi +Date: Sun Mar 26 01:38:24 2006 -0800 + + [PATCH] kprobes: fix broken fault handling for powerpc64 + + Provide proper kprobes fault handling, if a user-specified pre/post handlers + tries to access user address space, through copy_from_user(), get_user() etc. + + The user-specified fault handler gets called only if the fault occurs while + executing user-specified handlers. In such a case user-specified handler is + allowed to fix it first, later if the user-specifed fault handler does not fix + it, we try to fix it by calling fix_exception(). + + The user-specified handler will not be called if the fault happens when single + stepping the original instruction, instead we reset the current probe and + allow the system page fault handler to fix it up. + + Signed-off-by: Prasanna S Panchamukhi + Cc: Paul Mackerras + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c28f896634f2c931a298490deab3861ab117716a +Author: Prasanna S Panchamukhi +Date: Sun Mar 26 01:38:23 2006 -0800 + + [PATCH] kprobes: fix broken fault handling for x86_64 + + Provide proper kprobes fault handling, if a user-specified pre/post handlers + tries to access user address space, through copy_from_user(), get_user() etc. + + The user-specified fault handler gets called only if the fault occurs while + executing user-specified handlers. In such a case user-specified handler is + allowed to fix it first, later if the user-specifed fault handler does not fix + it, we try to fix it by calling fix_exception(). + + The user-specified handler will not be called if the fault happens when single + stepping the original instruction, instead we reset the current probe and + allow the system page fault handler to fix it up. + + Signed-off-by: Prasanna S Panchamukhi + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b4026513b88e7eaa52a31117e2b7bafdc1e40ef1 +Author: Prasanna S Panchamukhi +Date: Sun Mar 26 01:38:22 2006 -0800 + + [PATCH] kprobes: fix broken fault handling for i386 + + Provide proper kprobes fault handling, if a user-specified pre/post handlers + tries to access user address space, through copy_from_user(), get_user() etc. + + The user-specified fault handler gets called only if the fault occurs while + executing user-specified handlers. In such a case user-specified handler is + allowed to fix it first, later if the user-specifed fault handler does not fix + it, we try to fix it by calling fix_exception(). + + The user-specified handler will not be called if the fault happens when single + stepping the original instruction, instead we reset the current probe and + allow the system page fault handler to fix it up. + + Signed-off-by: Prasanna S Panchamukhi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2326c77017c79fd6d55c69d8a49a57a252921bcd +Author: bibo,mao +Date: Sun Mar 26 01:38:21 2006 -0800 + + [PATCH] kprobe handler: discard user space trap + + Currently kprobe handler traps only happen in kernel space, so function + kprobe_exceptions_notify should skip traps which happen in user space. + This patch modifies this, and it is based on 2.6.16-rc4. + + Signed-off-by: bibo mao + Cc: Ananth N Mavinakayanahalli + Cc: "Keshavamurthy, Anil S" + Cc: + Signed-off-by: Prasanna S Panchamukhi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c6fd91f0bdcd294a0ae0ba2b2a7f7456ef4b7144 +Author: bibo mao +Date: Sun Mar 26 01:38:20 2006 -0800 + + [PATCH] kretprobe instance recycled by parent process + + When kretprobe probes the schedule() function, if the probed process exits + then schedule() will never return, so some kretprobe instances will never + be recycled. + + In this patch the parent process will recycle retprobe instances of the + probed function and there will be no memory leak of kretprobe instances. + + Signed-off-by: bibo mao + Cc: Masami Hiramatsu + Cc: Prasanna S Panchamukhi + Cc: Ananth N Mavinakayanahalli + Cc: Anil S Keshavamurthy + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c9becf58d935265919bf1cb348b2c04492c8949d +Author: Masami Hiramatsu +Date: Sun Mar 26 01:38:19 2006 -0800 + + [PATCH] kretprobe: kretprobe-booster + + In normal operation, kretprobe makes a target function return to trampoline + code. A kprobe (called trampoline_probe) has been inserted in the trampoline + code. When the kernel hits this kprobe, it calls kretprobe's handler and it + returns to the original return address. + + Kretprobe-booster removes the trampoline_probe. It allows the trampoline code + to call kretprobe's handler directly instead of invoking kprobe. The + trampoline code returns to the original return address. + + (changelog from Chuck Ebbert <76306.1226@compuserve.com> - thanks ;)) + + Signed-off-by: Masami Hiramatsu + Cc: Prasanna S Panchamukhi + Cc: Ananth N Mavinakayanahalli + Cc: Anil S Keshavamurthy + Cc: David S. Miller + Cc: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 311ac88fd2d4194a95e9e38d2fe08917be98723c +Author: Masami Hiramatsu +Date: Sun Mar 26 01:38:17 2006 -0800 + + [PATCH] x86: kprobes-booster + + Current kprobe copies the original instruction at the probe point and replaces + it with a breakpoint instruction (int3). When the kernel hits the probe + point, kprobe handler is invoked. And the copied instruction is single-step + executed on the copied buffer (not on the original address) by kprobe. After + that, the kprobe checks registers and modify it (if need) as if the + instructions was executed on the original address. + + My proposal is based on the fact there are many instructions which do NOT + require the register modification after the single-step execution. When the + copied instruction is a kind of them, kprobe just jumps back to the next + instruction after single-step execution. If so, why don't we execute those + instructions directly? + + With kprobe-booster patch, kprobes will execute a copied instruction directly + and (if need) jump back to original code. This direct execution is executed + when the kprobe don't have both post_handler and break_handler, and the copied + instruction can be executed directly. + + I sorted instructions which can be executed directly or not; + + - Call instructions are NG(can not be executed directly). + We should correct the return address pushed into top of stack. + - Indirect instructions except for absolute indirect-jumps + are NG. Those instructions changes EIP randomly. We should + check EIP and correct it. + - Instructions that change EIP beyond the range of the + instruction buffer are NG. + - Instructions that change EIP to tail 5 bytes of the + instruction buffer (it is the size of a jump instruction). + We must write a jump instruction which backs to original + kernel code in the instruction buffer. + - Break point instruction is NG. We should not touch EIP and + pass to other handlers. + - Absolute direct/indirect jumps are OK.- Conditional Jumps are NG. + - Halt and software-interruptions are NG. Because it will stay on + the instruction buffer of kprobes. + - Prefixes are NG. + - Unknown/reserved opcode is NG. + - Other 1 byte instructions are OK. But those instructions need a + jump back code. + - 2 bytes instructions are mapped sparsely. So, in this release, + this patch don't boost those instructions. + + >From Intel's IA-32 opcode map described in IA-32 Intel Architecture Software + Developer's Manual Vol.2 B, I determined that following opcodes are not + boostable. + + - 0FH (2byte escape) + - 70H - 7FH (Jump on condition) + - 9AH (Call) and 9CH (Pushf) + - C0H-C1H (Grp 2: includes reserved opcode) + - C6H-C7H (Grp11: includes reserved opcode) + - CCH-CEH (Software-interrupt) + - D0H-D3H (Grp2: includes reserved opcode) + - D6H (Reserved) + - D8H-DFH (Coprocessor) + - E0H-E3H (loop/conditional jump) + - E8H (Call) + - F0H-F3H (Prefixes and reserved) + - F4H (Halt) + - F6H-F7H (Grp3: includes reserved opcode) + - FEH-FFH(Grp4,5: includes reserved opcode) + + Kprobe-booster checks whether target instruction can be boosted (can be + executed directly) at arch_copy_kprobe() function. If the target instruction + can be boosted, it clears "boostable" flag. If not, it sets "boostable" flag + -1. This is disabled status. In resume_execution() function, If "boostable" + flag is cleared, kprobe-booster measures the size of the target instruction + and sets "boostable" flag 1. + + In kprobe_handler(), kprobe checks the "boostable" flag. If the flag is 1, it + resets current kprobe and executes instruction buffer directly instead of + single stepping. + + When unregistering a boosted kprobe, it calls synchronize_sched() + after "int3" is removed. So we can ensure followings after + the synchronize_sched() called. + - interrupt handlers are finished on all CPUs. + - instruction buffer is not executed on all CPUs. + And we can release the boosted kprobe safely. + + And also, on preemptible kernel, the booster is not enabled where the kernel + preemption is enabled. So, there are no preempted threads on the instruction + buffer. + + The description of kretprobe-booster: + ==================================== + + In the normal operation, kretprobe make a target function return to trampoline + code. And a kprobe (called trampoline_probe) have been inserted at the + trampoline code. When the kernel hits this kprobe, it calls kretprobe's + handler and it returns to original return address. + + Kretprobe-booster patch removes the trampoline_probe. It allows the + trampoline code to call kretprobe's handler directly instead of invoking + kprobe. And tranpoline code returns to original return address. + + This new trampoline code stores and restores registers, so the kretprobe + handler is still able to access those registers. + + Current kprobe has about 1.3 usec/probe(*) overhead, and kprobe-booster patch + reduces it to 0.6 usec/probe(*). Also current kretprobe has about 2.0 + usec/probe(*) overhead. Kprobe-booster patch reduces it to 1.3 usec/probe(*), + and the combination of both kprobe-booster patch and kretprobe-booster patch + reduces it to 0.9 usec/probe(*). + + I expect the combination of both patches can reduce half of a probing + overhead. + + Performance numbers strongly depend on the processor model. + + Andrew Morton wrote: + > These preempt tricks look rather nasty. Can you please describe what the + > problem is, precisely? And how this code avoids it? Perhaps we can find + > something cleaner. + + The problem is how to remove the copied instructions of the + kprobe *safely* on the preemptable kernel (CONFIG_PREEMPT=y). + + Kprobes basically executes the following actions; + + (1)int3 + (2)preempt_disable() + (3)kprobe_prehandler() + (4)copied instructioin(single step) + (5)kprobe_posthandler() + (6)preempt_enable() + (7)return to the original code + + During the execution of copied instruction, preemption is + disabled (from step (2) to (6)). + When unregistering the probes, Kprobe waits for RCU + quiescent state by using synchronize_sched() after removing + int3 instruction. + Thus we can ensure the copied instruction is not executed. + + On the other hand, kprobe-booster executes the following actions; + + (1)int3 + (2)preempt_disable() + (3)kprobe_prehandler() + (4)preempt_enable() <-- this one is added by my patch + (5)copied instruction(direct execution) + (6)jmp back to the original code + + The problem is that we have no way to prevent preemption on + step (5) or (6). We cannot call preempt_disable() after step (6), + because there are no rooms to do that. Thus, some other + processes may be preempted at step(5) or (6) on preemptable kernel. + And I couldn't find the easy way to ensure that other processes' + stack do *not* have the address of them. (I thought some way + to do that, but those are very costly.) + + So currently, I simply boost the kprobe only when the probe + point is already preemption disabled. + + > Also, the patch adds a preempt_enable() but I don't see a corresponding + > preempt_disable(). Am I missing something? + + It is corresponding to the preempt_disable() in the top of + kprobe_handler(). + I copied the code of kprobe_handler() here: + + static int __kprobes kprobe_handler(struct pt_regs *regs) + { + struct kprobe *p; + int ret = 0; + kprobe_opcode_t *addr = NULL; + unsigned long *lp; + struct kprobe_ctlblk *kcb; + + /* + * We don't want to be preempted for the entire + * duration of kprobe processing + */ + preempt_disable(); <-- HERE + kcb = get_kprobe_ctlblk(); + + Signed-off-by: Masami Hiramatsu + Cc: Prasanna S Panchamukhi + Cc: Ananth N Mavinakayanahalli + Cc: Anil S Keshavamurthy + Cc: David S. Miller + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b50ea74c7bc3ebe3d88a357893f0b96ae9092f13 +Author: Masami Hiramatsu +Date: Sun Mar 26 01:38:13 2006 -0800 + + [PATCH] kprobes: clean up resume_execute() + + Clean up kprobe's resume_execute() for i386 arch. + + Signed-off-by: Masami Hiramatsu + Cc: Prasanna S Panchamukhi + Cc: Ananth N Mavinakayanahalli + Cc: Anil S Keshavamurthy + Cc: David S. Miller + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 05cfb614ddbf3181540ce09d44d96486f8ba8d6a +Author: Roman Zippel +Date: Sun Mar 26 01:38:12 2006 -0800 + + [PATCH] hrtimers: remove data field + + The nanosleep cleanup allows to remove the data field of hrtimer. The + callback function can use container_of() to get it's own data. Since the + hrtimer structure is anyway embedded in other structures, this adds no + overhead. + + Signed-off-by: Roman Zippel + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit df869b630d9d9131c10cf073fb61646048874b2f +Author: Roman Zippel +Date: Sun Mar 26 01:38:11 2006 -0800 + + [PATCH] hrtimers: remove nsec_t typedef + + nsec_t predates ktime_t and has mostly been superseded by it. In the few + places that are left it's better to make it explicit that we're dealing with + 64 bit values here. + + Signed-off-by: Roman Zippel + Acked-by: Thomas Gleixner + Acked-by: John Stultz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 272705c5979c114e63dbfcd28ea15093038a4c42 +Author: Roman Zippel +Date: Sun Mar 26 01:38:10 2006 -0800 + + [PATCH] hrtimers: remove DEFINE_KTIME and ktime_to_clock_t() + + Now that it_real_value is gone, the last user of DEFINE_KTIME and + ktime_to_clock_t are also gone, so remove it before someone starts using it + again. + + Signed-off-by: Roman Zippel + Acked-by: Ingo Molnar + Acked-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4dee26b7e26eb3c78da8bf6c1c52ee5419145b28 +Author: Roman Zippel +Date: Sun Mar 26 01:38:10 2006 -0800 + + [PATCH] hrtimers: remove it_real_value calculation from proc/*/stat + + Remove the it_real_value from /proc/*/stat, during 1.2.x was the last time it + returned useful data (as it was directly maintained by the scheduler), now + it's only a waste of time to calculate it. Return 0 instead. + + Signed-off-by: Roman Zippel + Acked-by: Ingo Molnar + Acked-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b75f7a51ca75c977d7d77f735d7a7859194eb39e +Author: Roman Zippel +Date: Sun Mar 26 01:38:09 2006 -0800 + + [PATCH] hrtimers: remove state field + + Remove the state field and encode this information in the rb_node similiar to + normal timer. + + Signed-off-by: Roman Zippel + Acked-by: Ingo Molnar + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 432569bb9d9d424d7ffe5b21f8205c55bdd1aaa8 +Author: Roman Zippel +Date: Sun Mar 26 01:38:08 2006 -0800 + + [PATCH] hrtimers: simplify nanosleep + + nanosleep is the only user of the expired state, so let it manage this itself, + which makes the hrtimer code a bit simpler. The remaining time is also only + calculated if requested. + + Signed-off-by: Roman Zippel + Acked-by: Ingo Molnar + Acked-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3b98a5328171cebc867f70484b20bd34948cd7f6 +Author: Roman Zippel +Date: Sun Mar 26 01:38:07 2006 -0800 + + [PATCH] hrtimers: posix-timer: cleanup common_timer_get() + + Cleanup common_timer_get() a little. + + Signed-off-by: Roman Zippel + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 44f21475511bbc0135b52c66ad74dcc6a9026da3 +Author: Roman Zippel +Date: Sun Mar 26 01:38:06 2006 -0800 + + [PATCH] hrtimers: pass current time to hrtimer_forward() + + Pass current time to hrtimer_forward(). This allows to use the softirq time + in the timer base when the forward function is called from the timer callback. + Other places pass current time with a call to timer->base->get_time(). + + Signed-off-by: Roman Zippel + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 92127c7a45d4d167d9b015a5f9de6b41ed66f1d0 +Author: Thomas Gleixner +Date: Sun Mar 26 01:38:05 2006 -0800 + + [PATCH] hrtimers: optimize softirq runqueues + + The hrtimer softirq is called from the timer softirq every tick. Retrieve the + current time from xtime and wall_to_monotonic instead of calling + base->get_time() for each timer base. Store the time in the base structure + and provide a hook once clock source abstractions are in place and to keep the + code open for new base clocks. + + Based on a patch from: Roman Zippel + + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a0e9285233a32edf267d27cd03fe0056951422cf +Author: Badari Pulavarty +Date: Sun Mar 26 01:38:05 2006 -0800 + + [PATCH] ext3: "nobh" writeback support for filesystems blocksize < pagesize + + There is no valid reason why we can't support "nobh" option for filesystems + with blocksize != PAGESIZE. + + This patch lets them use "nobh" option for writeback mode for blocksize < + pagesize. + + Signed-off-by: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f91a2ad2ed97099fb565e3336f8df0df717f2ba9 +Author: Badari Pulavarty +Date: Sun Mar 26 01:38:04 2006 -0800 + + [PATCH] ext3: multi-block get_block() + + Mingming Cao recently added multi-block allocation support for ext3, + currently used only by DIO. I added support to map multiple blocks for + mpage_readpages(). This patch add support for ext3_get_block() to deal + with multi-block mapping. Basically it renames ext3_direct_io_get_blocks() + as ext3_get_block(). + + Signed-off-by: Badari Pulavarty + Cc: Mingming Cao + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d6859bfca8cbfe4105704e410b0afa50beabbbb9 +Author: Andrew Morton +Date: Sun Mar 26 01:38:03 2006 -0800 + + [PATCH] ext3: cleanups and WARN_ON() + + - Clean up a few little layout things and comments. + + - Add a WARN_ON to a case which I was wondering about. + + - Tune up some inlines. + + Cc: Mingming Cao + Cc: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1d8fa7a2b9a39d18727acc5c468e870df606c852 +Author: Badari Pulavarty +Date: Sun Mar 26 01:38:02 2006 -0800 + + [PATCH] remove ->get_blocks() support + + Now that get_block() can handle mapping multiple disk blocks, no need to have + ->get_blocks(). This patch removes fs specific ->get_blocks() added for DIO + and makes it users use get_block() instead. + + Signed-off-by: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fa30bd058b746c0e2318a77ff8b4977faa924c2c +Author: Badari Pulavarty +Date: Sun Mar 26 01:38:01 2006 -0800 + + [PATCH] map multiple blocks for mpage_readpages() + + This patch changes mpage_readpages() and get_block() to get the disk mapping + information for multiple blocks at the same time. + + b_size represents the amount of disk mapping that needs to mapped. On the + successful get_block() b_size indicates the amount of disk mapping thats + actually mapped. Only the filesystems who care to use this information and + provide multiple disk blocks at a time can choose to do so. + + No changes are needed for the filesystems who wants to ignore this. + + [akpm@osdl.org: cleanups] + Signed-off-by: Badari Pulavarty + Cc: Mingming Cao + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b0cf2321c6599138f860517745503691556d8453 +Author: Badari Pulavarty +Date: Sun Mar 26 01:38:00 2006 -0800 + + [PATCH] pass b_size to ->get_block() + + Pass amount of disk needs to be mapped to get_block(). This way one can + modify the fs ->get_block() functions to map multiple blocks at the same time. + + [akpm@osdl.org: performance tweak] + [akpm@osdl.org: remove unneeded assignments] + Signed-off-by: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 205f87f6b342444f722e4559d33318686f7df2ca +Author: Badari Pulavarty +Date: Sun Mar 26 01:38:00 2006 -0800 + + [PATCH] change buffer_head.b_size to size_t + + Increase the size of the buffer_head b_size field (only) for 64 bit platforms. + Update some old and moldy comments in and around the structure as well. + + The b_size increase allows us to perform larger mappings and allocations for + large I/O requests from userspace, which tie in with other changes allowing + the get_block_t() interface to map multiple blocks at once. + + Signed-off-by: Nathan Scott + Signed-off-by: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d48589bfad0e60bff0aa3f9e4875983f607bd44b +Author: Mingming Cao +Date: Sun Mar 26 01:37:59 2006 -0800 + + [PATCH] ext3_get_blocks: Adjust reservation window size for mblocks + + Optimize the block reservation and the multiple block allocation: with the + knowledge of the total number of blocks ahead, set or adjust the reservation + window size properly (based on the number of blocks needed) before block + allocation happens: if there isn't any reservation yet, make sure the + reservation window equals to or greater than the number of blocks needed, + before create an reservation window; if a reservation window is already + exists, try to extends the window size to match the number of blocks to + allocate. This could increase the possibility of completing multiple blocks + allocation in a single request, as blocks are only allocated in the range of + the inode's reservation window. + + Signed-off-by: Mingming Cao + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit faa569763a7753e0a7cb8fd3919a62c0f7cc1e3c +Author: Mingming Cao +Date: Sun Mar 26 01:37:58 2006 -0800 + + [PATCH] ext3_get_blocks: Adjust accounting info in ext3_new_blocks() + + Update accounting information (quota, boundary checks, free blocks number etc) + in ext3_new_blocks(). + + Signed-off-by: Mingming Cao + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b54e41ec17ae91dce174eb5a3515e7af4a440d42 +Author: Mingming Cao +Date: Sun Mar 26 01:37:57 2006 -0800 + + [PATCH] ext3_get_blocks: support multiple blocks allocation in ext3_new_block() + + Change ext3_try_to_allocate() (called via ext3_new_blocks()) to try to + allocate the requested number of blocks on a best effort basis: After + allocated the first block, it will always attempt to allocate the next few(up + to the requested size and not beyond the reservation window) adjacent blocks + at the same time. + + Signed-off-by: Mingming Cao + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b47b24781c59565f45acd765dc995a752d561e96 +Author: Mingming Cao +Date: Sun Mar 26 01:37:56 2006 -0800 + + [PATCH] ext3_get_blocks: multiple block allocation + + Add support for multiple block allocation in ext3-get-blocks(). + + Look up the disk block mapping and count the total number of blocks to + allocate, then pass it to ext3_new_block(), where the real block allocation is + performed. Once multiple blocks are allocated, prepare the branch with those + just allocated blocks info and finally splice the whole branch into the block + mapping tree. + + Signed-off-by: Mingming Cao + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 89747d369d34e333b9b60f10f333a0b727b4e4e2 +Author: Mingming Cao +Date: Sun Mar 26 01:37:55 2006 -0800 + + [PATCH] ext3_get_blocks: Mapping multiple blocks at a once + + Currently ext3_get_block() only maps or allocates one block at a time. This + is quite inefficient for sequential IO workload. + + I have posted a early implements a simply multiple block map and allocation + with current ext3. The basic idea is allocating the 1st block in the existing + way, and attempting to allocate the next adjacent blocks on a best effort + basis. More description about the implementation could be found here: + http://marc.theaimsgroup.com/?l=ext2-devel&m=112162230003522&w=2 + + The following the latest version of the patch: break the original patch into 5 + patches, re-worked some logicals, and fixed some bugs. The break ups are: + + [patch 1] Adding map multiple blocks at a time in ext3_get_blocks() + [patch 2] Extend ext3_get_blocks() to support multiple block allocation + [patch 3] Implement multiple block allocation in ext3-try-to-allocate + (called via ext3_new_block()). + [patch 4] Proper accounting updates in ext3_new_blocks() + [patch 5] Adjust reservation window size properly (by the given number + of blocks to allocate) before block allocation to increase the + possibility of allocating multiple blocks in a single call. + + Tests done so far includes fsx,tiobench and dbench. The following numbers + collected from Direct IO tests (1G file creation/read) shows the system time + have been greatly reduced (more than 50% on my 8 cpu system) with the patches. + + 1G file DIO write: + 2.6.15 2.6.15+patches + real 0m31.275s 0m31.161s + user 0m0.000s 0m0.000s + sys 0m3.384s 0m0.564s + + 1G file DIO read: + 2.6.15 2.6.15+patches + real 0m30.733s 0m30.624s + user 0m0.000s 0m0.004s + sys 0m0.748s 0m0.380s + + Some previous test we did on buffered IO with using multiple blocks allocation + and delayed allocation shows noticeable improvement on throughput and system + time. + + This patch: + + Add support of mapping multiple blocks in one call. + + This is useful for DIO reads and re-writes (where blocks are already + allocated), also is in line with Christoph's proposal of using getblocks() in + mpage_readpage() or mpage_readpages(). + + Signed-off-by: Mingming Cao + Cc: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e2d53f9525790dfacbcf09f359536311d3913d98 +Author: Takashi Sato +Date: Sun Mar 26 01:37:54 2006 -0800 + + [PATCH] 2TB files: change type of kstatfs entries + + This fix was proposed by Trond Myklebust. He says: The type "sector_t" is + heavily tied in to the block layer interface as an offset/handle to a block, + and is subject to a supposedly block-specific configuration option: + CONFIG_LBD. Despite this, it is used in struct kstatfs to save a couple of + bytes on the stack whenever we call the filesystems' ->statfs(). + + So kstatfs's entries related to blocks are invalid on statfs64 for a network + filesystem which has more than 2^32-1 blocks when CONFIG_LBD is disabled. + + - struct kstatfs + Change the type of following entries from sector_t to u64. + f_blocks + f_bfree + f_bavail + f_files + f_ffree + + Signed-off-by: Trond Myklebust + Signed-off-by: Takashi Sato + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5515eff811cb807f0d3221a6e8cc223c7850d205 +Author: Andrew Morton +Date: Sun Mar 26 01:37:53 2006 -0800 + + [PATCH] 2tb-files-add-blkcnt_t-fixes + + Cc: Takashi Sato + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a0f62ac6362c168754cccb36f196b3dfbddc3bc3 +Author: Takashi Sato +Date: Sun Mar 26 01:37:52 2006 -0800 + + [PATCH] 2TB files: add blkcnt_t + + Add blkcnt_t as the type of inode.i_blocks. This enables you to make the size + of blkcnt_t either 4 bytes or 8 bytes on 32 bits architecture with CONFIG_LSF. + + - CONFIG_LSF + Add new configuration parameter. + - blkcnt_t + On h8300, i386, mips, powerpc, s390 and sh that define sector_t, + blkcnt_t is defined as u64 if CONFIG_LSF is enabled; otherwise it is + defined as unsigned long. + On other architectures, it is defined as unsigned long. + - inode.i_blocks + Change the type from sector_t to blkcnt_t. + + Signed-off-by: Takashi Sato + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit abcb6c9fd13fc2ad7757b818924dc8109a0e3775 +Author: Takashi Sato +Date: Sun Mar 26 01:37:51 2006 -0800 + + [PATCH] 2TB files: st_blocks is invalid when calling stat64 + + This patch series fixes the following problems on 32 bits architecture. + + o stat64 returns the lower 32 bits of blocks, although userland st_blocks + has 64 bits, because i_blocks has only 32 bits. The ioctl with FIOQSIZE has + the same problem. + + o As Dave Kleikamp said, making >2TB file on JFS results in writing an + invalid block number to disk inode. The cause is the same as above too. + + o In generic quota code dquot_transfer(), the file usage is calculated from + i_blocks via inode_get_bytes(). If the file is over 2TB, the change of + usage is less than expected. The cause is the same as above too. + + o As Trond Myklebust said, statfs64's entries related to blocks are invalid + on statfs64 for a network filesystem which has more than 2^32-1 blocks with + CONFIG_LBD disabled. [PATCH 3/3] + + We made patches to fix problems that occur when handling a large filesystem + and a large file. It was discussed on the mails titled "stat64 for over 2TB + file returned invalid st_blocks". + + Signed-off-by: Takashi Sato + Cc: Dave Kleikamp + Cc: Jan Kara + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 93d2341c750cda0df48a6cc67b35fe25f1ec47df +Author: Matthew Dobson +Date: Sun Mar 26 01:37:50 2006 -0800 + + [PATCH] mempool: use mempool_create_slab_pool() + + Modify well over a dozen mempool users to call mempool_create_slab_pool() + rather than calling mempool_create() with extra arguments, saving about 30 + lines of code and increasing readability. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fec433aaaae32a02329ad7d71b0f3c91b7525077 +Author: Matthew Dobson +Date: Sun Mar 26 01:37:49 2006 -0800 + + [PATCH] mempool: add mempool_create_slab_pool() + + Create a simple wrapper function for the common case of creating a slab-based + mempool. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 26b6e051bc36b968a0b5ac96903b99e050d20b87 +Author: Matthew Dobson +Date: Sun Mar 26 01:37:48 2006 -0800 + + [PATCH] mempool: use common mempool kzalloc allocator + + This patch changes a mempool user, which is basically just a wrapper around + kzalloc(), to use the common mempool_kmalloc/kfree, rather than its own + wrapper function, removing duplicated code. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f183323d3822dee4d7b3147a59b6e8987fe201e0 +Author: Matthew Dobson +Date: Sun Mar 26 01:37:48 2006 -0800 + + [PATCH] mempool: add kzalloc allocator + + Add another allocator to the common mempool code: a kzalloc/kfree allocator + + This will be used by the next patch in the series to replace a mempool-backed + kzalloc allocator. It is also very likely that there will be more users in + the future. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0eaae62abaa1ad1f231932b6cdd9fb1b91df6651 +Author: Matthew Dobson +Date: Sun Mar 26 01:37:47 2006 -0800 + + [PATCH] mempool: use common mempool kmalloc allocator + + This patch changes several mempool users, all of which are basically just + wrappers around kmalloc(), to use the common mempool_kmalloc/kfree, rather + than their own wrapper function, removing a bunch of duplicated code. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 53184082b070dfb077218828fdf839826102ed96 +Author: Matthew Dobson +Date: Sun Mar 26 01:37:46 2006 -0800 + + [PATCH] mempool: add kmalloc allocator + + Add another allocator to the common mempool code: a kmalloc/kfree allocator + + This will be used by the next patch in the series to replace duplicate + mempool-backed kmalloc allocators in several places in the kernel. It is also + very likely that there will be more users in the future. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a19b27ce3847c3a5d4ea6b6c91b6f7154759af23 +Author: Matthew Dobson +Date: Sun Mar 26 01:37:45 2006 -0800 + + [PATCH] mempool: use common mempool page allocator + + Convert two mempool users that currently use their own mempool-backed page + allocators to use the generic mempool page allocator. + + Also included are 2 trivial whitespace fixes. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6e0678f394c7bd21bfa5d252b071a09e10e7a749 +Author: Matthew Dobson +Date: Sun Mar 26 01:37:44 2006 -0800 + + [PATCH] mempool: add page allocator + + This will be used by the next patch in the series to replace duplicate + mempool-backed page allocators in 2 places in the kernel. It is also likely + that there will be more users in the future. + + Signed-off-by: Matthew Dobson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8219dd5710c1daec2d7a086eeeee5187decfde60 +Author: Steffen Klassert +Date: Sun Mar 26 01:37:44 2006 -0800 + + [PATCH] 3c59x: documentation update + + Update driver documentation. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a880c4cd2538293be59121a3658b8de8e3a058e5 +Author: Steffen Klassert +Date: Sun Mar 26 01:37:43 2006 -0800 + + [PATCH] 3c59x: minor cleanups + + Remove some whitespaces and codingstyle issues. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 61238602622c965db052927c89901aa08f88d933 +Author: Steffen Klassert +Date: Sun Mar 26 01:37:42 2006 -0800 + + [PATCH] 3c59x: remove per-driver versioning + + Remove per-driver versioning. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 373a688742d7ba31cafc4c7b9bc09eba257860bd +Author: Steffen Klassert +Date: Sun Mar 26 01:37:41 2006 -0800 + + [PATCH] 3c59x: use ethtool_op_get_link + + Use ethtool_op_get_link instead of vortex_get_link. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e94d10eb0d77ae70378f9218631a7be91e0aecff +Author: Steffen Klassert +Date: Sun Mar 26 01:37:41 2006 -0800 + + [PATCH] 3c59x: carriercheck for forced media + + Handle netif_carrier_{on,of} also if media is forced to 10baseT/100baseTx. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b4ff6450f5336c492d1e2f184d3b8186e0716b7a +Author: Steffen Klassert +Date: Sun Mar 26 01:37:40 2006 -0800 + + [PATCH] 3c59x: decrease polling interval + + Set the polling interval for media changes to 5 seconds if link is down and + 60 seconds if link is up. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 125d5ce8a4e9e4babaed52518fecc9eb6958455d +Author: Steffen Klassert +Date: Sun Mar 26 01:37:39 2006 -0800 + + [PATCH] 3c59x: use mii_check_media + + Check for media changes and netif_carrier by using mii_check_media() if mii is + used. + + Signed-off-by: Steffen Klassert + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 33644c5e15917b36c26f0c30c48786c5e8e62be1 +Author: Jason Gunthorpe +Date: Sun Mar 26 01:37:38 2006 -0800 + + [PATCH] Fix typo causing bad mode of /initrd.image + + I noticed that after boot with an initrd in 2.6.16 the rootfs had: + + --w-r-xr-T 1 root root 6241141 Jan 1 1970 initrd.image + + Which is caused by a small typo: + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8f3b50fc72d538c79dd2c1f728f5e594a0192da2 +Author: Eric Sesterhenn +Date: Sun Mar 26 01:37:37 2006 -0800 + + [PATCH] Fix compilation for sound/oss/vwsnd.c + + Fix compilation for sound/oss/vwsnd.o, by moving li_destroy() above + li_create() + + sound/oss/vwsnd.c:275: warning: conflicting types for ‘li_destroy’ + sound/oss/vwsnd.c:275: error: static declaration of ‘li_destroy’ follows non-static declaration + sound/oss/vwsnd.c:264: error: previous implicit declaration of ‘li_destroy’ was here + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1751ace034bba6b423c1de4668f0e65cc9ef2b84 +Author: H. Peter Anvin +Date: Sun Mar 26 01:37:36 2006 -0800 + + [PATCH] Update documentation for BLK_DEV_INITRD to match current usage + + Cc: Al Viro + Cc: Christoph Hellwig + Cc: Zdenek Pavlas + Signed-off-by: H. Peter Anvin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5ff2a7e25ddd648e9096d45cdc5e7d656a8bb0ff +Author: maximilian attems +Date: Sun Mar 26 01:37:35 2006 -0800 + + [PATCH] isicom: select FW_LOADER + + The isicom driver uses request_firmware() and thus needs to select + FW_LOADER. + + Signed-off-by: maximilian attems + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d6d21dfdd305bf94300df13ff472141d3411ea17 +Author: Darren Jenkins +Date: Sun Mar 26 01:37:34 2006 -0800 + + [PATCH] fix array overrun in efi.c + + Coverity found an over-run @ line 364 of efi.c + + This is due to the loop checking the size correctly, then adding a '\0' + after possibly hitting the end of the array. + + Ensure the loop exits with one space left in the array. + + Signed-off-by: Darren Jenkins + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ac8bf077d0f13b9c3131dd61f9f76c78c322858 +Author: Andrew Morton +Date: Sun Mar 26 01:37:33 2006 -0800 + + [PATCH] ads7846: sparc32 warning fix + + drivers/input/touchscreen/ads7846.c: In function `ads7846_read12_ser': + drivers/input/touchscreen/ads7846.c:207: warning: implicit declaration of function `disable_irq' + drivers/input/touchscreen/ads7846.c:209: warning: implicit declaration of function `enable_irq' + + Cc: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9a98e2f7326d626d75cab2fe108c34b733227918 +Author: Andrew Morton +Date: Sun Mar 26 01:37:32 2006 -0800 + + [PATCH] remove fixup_cpu_present_map() + + Since the addition of boot_cpu_init(), fixup_cpu_present_map() has been a + no-op. That's because fixup_cpu_present_map() won't touch cpu_present_map if + it has any bits set, and boot_cpu_init() sets a bit. + + So remove fixup_cpu_present_map(). + + A consequence of this (actually of the boot_cpu_init() change) is that the + architecture _must_ populate cpu_present_map itself (probably in + smp_prepare_cpus()). fixup_cpu_present_map() won't do it any more. + + If the architecture doesn't do this, it'll only bring up a single CPU. + + The other side effect (though less serious) is that smp_prepare_boot_cpu() no + longer needs to mark the boot cpu in the online and present maps - + boot_cpu_init() does that for everyone (to make early printks work). + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 222b9f933a76b127a073f45278d2b0199587e8ce +Author: Andrew Morton +Date: Sun Mar 26 01:37:31 2006 -0800 + + [PATCH] tlclk: fix handling of device major + + tlclk calls register_chrdev() and permits register_chrdev() to allocate the + major, but it promptly forgets what that major was. So if there's no hardware + present you still get "telco_clock" appearing in /proc/devices and, I assume, + an oops reading /proc/devices if tlclk was a module. + + Fix. + + Mark, I'd suggest that that we not call register_chrdev() until _after_ we've + established that the hardware is present. + + Cc: Mark Gross + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3e88c17d404c5787afd5bd1763380317f5ccbf84 +Author: Herbert Poetzl +Date: Sun Mar 26 01:37:30 2006 -0800 + + [PATCH] loop: potential kernel hang waiting for kthread + + Check that kernel_thread() succeeded, so we don't wait for something which + cannot happen. + + Signed-off-by: Herbert Poetzl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 22e6c1b39c648850438decd491f62d311800c7db +Author: Maneesh Soni +Date: Sun Mar 26 01:37:29 2006 -0800 + + [PATCH] Use loff_t for size in struct proc_dir_entry + + Change proc_dir_entry->size to be loff_t to represent files like + /proc/vmcore for 32bit systems with more than 4G memory. + + Needed for seeing correct size for /proc/vmcore for 32-bit systems with > + 4G RAM. + + Signed-off-by: Maneesh Soni + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3158e9411a66fb98d495ac441c242264f31aaf3e +Author: Stephen Rothwell +Date: Sun Mar 26 01:37:29 2006 -0800 + + [PATCH] consolidate sys32/compat_adjtimex + + Create compat_sys_adjtimex and use it an all appropriate places. + + Signed-off-by: Stephen Rothwell + Cc: Arnd Bergmann + Acked-by: Paul Mackerras + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 88959ea968709c35e8b979ac9f5a398fa748091a +Author: Stephen Rothwell +Date: Sun Mar 26 01:37:27 2006 -0800 + + [PATCH] create struct compat_timex and use it everywhere + + We had a copy of the compatibility version of struct timex in each 64 bit + architecture. This patch just creates a global one and replaces all the + usages of the old ones. + + Signed-off-by: Stephen Rothwell + Cc: Arnd Bergmann + Acked-by: Kyle McMartin + Acked-by: Tony Luck + Acked-by: Paul Mackerras + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eb76b3fda1f7c2aa2d1523b36835048a15e5e5d2 +Author: Andy Adamson +Date: Sun Mar 26 01:37:26 2006 -0800 + + [PATCH] NFSD4: return conflict lock without races + + Update the NFSv4 server to use the new posix_lock_file_conf() interface. + Remove unnecessary (and race-prone) posix_test_file() calls. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + Cc: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5842add2f3b519111b6401f3a35862bd00a3aa7e +Author: Andy Adamson +Date: Sun Mar 26 01:37:26 2006 -0800 + + [PATCH] VFS,fs/locks.c,NFSD4: add race_free posix_lock_file_conf() interface + + Lockd and the NFSv4 server both exercise a race condition where + posix_test_lock() is called either before or after posix_lock_file() to + deal with a denied lock request due to a conflicting lock. + + Remove the race condition for the NFSv4 server by adding a new conflicting + lock parameter to __posix_lock_file() , changing the name to + __posix_lock_file_conf(). + + Keep posix_lock_file() interface, add posix_lock_conf() interface, both + call __posix_lock_file_conf(). + + [akpm@osdl.org: Put the EXPORT_SYMBOL() where it belongs] + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6dc0fe8f8b40854982929e4f24d8c65115769b60 +Author: J. Bruce Fields +Date: Sun Mar 26 01:37:24 2006 -0800 + + [PATCH] VFS,fs/locks.c: cleanup locks_insert_block + + BUG instead of handling a case that should never happen. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fa3536cc144c1298f2ed9416c33f3b77fa2cd37a +Author: Eric Dumazet +Date: Sun Mar 26 01:37:24 2006 -0800 + + [PATCH] Use __read_mostly on some hot fs variables + + I discovered on oprofile hunting on a SMP platform that dentry lookups were + slowed down because d_hash_mask, d_hash_shift and dentry_hashtable were in + a cache line that contained inodes_stat. So each time inodes_stats is + changed by a cpu, other cpus have to refill their cache line. + + This patch moves some variables to the __read_mostly section, in order to + avoid false sharing. RCU dentry lookups can go full speed. + + Signed-off-by: Eric Dumazet + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 878a9f30d7b13015f3aa4534d7877d985f150183 +Author: Randy Dunlap +Date: Sun Mar 26 01:37:23 2006 -0800 + + [PATCH] hpet header sanitization + + Add __KERNEL__ block. + Use __KERNEL__ to allow ioctl interface to be usable. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a23f9a3cfeb1d37ad090a751777665fd03bc067a +Author: Corey Minyard +Date: Sun Mar 26 01:37:22 2006 -0800 + + [PATCH] ipmi: Increment driver version to v39.0 + + Need to increment the version number because of the new PCI and sysfs + capabilities of the driver. People maintaining things for distros have + asked that I do this after interface or major functional changes. + + Signed-off-by: Corey Minyard + Acked-by: Matt Domsch + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 50c812b2b9513e3df34eae8c30cb2c221b79b2cb +Author: Corey Minyard +Date: Sun Mar 26 01:37:21 2006 -0800 + + [PATCH] ipmi: add full sysfs support + + Add full driver model support for the IPMI driver. It links in the proper + bus and device support. + + It adds an "ipmi" driver interface that has each BMC discovered by the + driver (as a device). These BMCs appear in the devices/platform directory. + If there are multiple interfaces to the same BMC, the driver should + discover this and will only have one BMC entry. The BMC entry will have + pointers to each interface device that connects to it. + + The device information (statistics and config information) has not yet been + ported over to the driver model from proc, that will come later. + + This work was based on work by Yani Ioannou. I basically rewrote it using + that code as a guide, but he still deserves credit :). + + [bunk@stusta.de: make ipmi_find_bmc_guid() static] + Signed-off-by: Corey Minyard + Signed-off-by: Yani Ioannou + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b0defcdbd2b7da7694e2645da92716cea0a3c0ff +Author: Corey Minyard +Date: Sun Mar 26 01:37:20 2006 -0800 + + [PATCH] ipmi: add generic PCI handling + + Modify the PCI hanling code for the IPMI driver to use the new method of + tables and registering, and adds more generic PCI handling for IPMI. + Unfortunately, this required a rather large rework of the way the driver + did detection so it would be more event-driven. + + [bunk@stusta.de: make a struct static] + Signed-off-by: Corey Minyard + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3c30b06df404c8892c225a99ecfd3f02789c0513 +Author: Con Kolivas +Date: Sun Mar 26 01:37:19 2006 -0800 + + [PATCH] cleanup smp_call_function UP build + + net/core/flow.c: In function 'flow_cache_flush': + net/core/flow.c:299: warning: statement with no effect + + Signed-off-by: Con Kolivas + Cc: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2ff28e22bdb8727fbc7d7889807bc5a73aae56c5 +Author: NeilBrown +Date: Sun Mar 26 01:37:18 2006 -0800 + + [PATCH] Make address_space_operations->invalidatepage return void + + The return value of this function is never used, so let's be honest and + declare it as void. + + Some places where invalidatepage returned 0, I have inserted comments + suggesting a BUG_ON. + + [akpm@osdl.org: JBD BUG fix] + [akpm@osdl.org: rework for git-nfs] + [akpm@osdl.org: don't go BUG in block_invalidate_page()] + Signed-off-by: Neil Brown + Acked-by: Dave Kleikamp + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3978d7179d3849848df8a37dd0a5acc20bcb8750 +Author: NeilBrown +Date: Sun Mar 26 01:37:17 2006 -0800 + + [PATCH] Make address_space_operations->sync_page return void + + The only user ignores the return value, and the only instanace + (block_sync_page) always returns 0... + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5f921ae96f1529a55966f25cd5c70fab11d38be7 +Author: Ingo Molnar +Date: Sun Mar 26 01:37:17 2006 -0800 + + [PATCH] sem2mutex: ipc, id.sem + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Manfred Spraul + Signed-off-by: Lee Schermerhorn + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 14cc3e2b633bb64063698980974df4535368e98f +Author: Ingo Molnar +Date: Sun Mar 26 01:37:14 2006 -0800 + + [PATCH] sem2mutex: misc static one-file mutexes + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Dave Jones + Cc: Paul Mackerras + Cc: Ralf Baechle + Cc: Jens Axboe + Cc: Neil Brown + Acked-by: Alasdair G Kergon + Cc: Greg KH + Cc: Dominik Brodowski + Cc: Adam Belay + Cc: Martin Schwidefsky + Cc: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 353ab6e97b8f209dbecc9f650f1f84e3da2a7bb1 +Author: Ingo Molnar +Date: Sun Mar 26 01:37:12 2006 -0800 + + [PATCH] sem2mutex: fs/ + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Eric Van Hensbergen + Cc: Robert Love + Cc: Thomas Gleixner + Cc: David Woodhouse + Cc: Neil Brown + Cc: Trond Myklebust + Cc: Dave Kleikamp + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e655a250d5fc12b6dfe0d436180ba4a3bfffdc9f +Author: Con Kolivas +Date: Sun Mar 26 01:37:11 2006 -0800 + + [PATCH] swswsup: return correct load_image error + + If there's an error in load_image() we should return that without checking + snapshot_image_loaded. + + Signed-off-by: Con Kolivas + Acked-by: "Rafael J. Wysocki" + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9f4fd61fa7c13ea905dac18b9baa766a35b88485 +Author: Bjorn Helgaas +Date: Sun Mar 26 01:37:10 2006 -0800 + + [PATCH] ACPI: clean up memory attribute checking for map/read/write + + ia64 ioremap is now smart enough to use the correct memory attributes, so + remove the EFI checks from osl.c. + + Signed-off-by: Bjorn Helgaas + Cc: Matt Domsch + Cc: "Tolentino, Matthew E" + Cc: "Brown, Len" + Cc: Andi Kleen + Acked-by: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 23dd842c0033dbb05248c42929c3c526c55386de +Author: Tolentino, Matthew E +Date: Sun Mar 26 01:37:09 2006 -0800 + + [PATCH] EFI fixes + + Here's a patch that fixes EFI boot for x86 on 2.6.16-rc5-mm3. The + off-by-one is admittedly my fault, but the other two fix up the rest. + + Cc: Bjorn Helgaas + Cc: Matt Domsch + Cc: "Tolentino, Matthew E" + Cc: "Brown, Len" + Cc: Andi Kleen + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b2c99e3c70d77fb194df5aa1642030080d28ea48 +Author: Bjorn Helgaas +Date: Sun Mar 26 01:37:08 2006 -0800 + + [PATCH] EFI: keep physical table addresses in efi structure + + Almost all users of the table addresses from the EFI system table want + physical addresses. So rather than doing the pa->va->pa conversion, just keep + physical addresses in struct efi. + + This fixes a DMI bug: the efi structure contained the physical SMBIOS address + on x86 but the virtual address on ia64, so dmi_scan_machine() used ioremap() + on a virtual address on ia64. + + This is essentially the same as an earlier patch by Matt Tolentino: + http://marc.theaimsgroup.com/?l=linux-kernel&m=112130292316281&w=2 + except that this changes all table addresses, not just ACPI addresses. + + Matt's original patch was backed out because it caused MCAs on HP sx1000 + systems. That problem is resolved by the ioremap() attribute checking added + for ia64. + + Signed-off-by: Bjorn Helgaas + Cc: Matt Domsch + Cc: "Tolentino, Matthew E" + Cc: "Brown, Len" + Cc: Andi Kleen + Acked-by: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 27d8e3d15bcf9d7cd99bf6ca910ea9e34328c7fb +Author: Bjorn Helgaas +Date: Sun Mar 26 01:37:07 2006 -0800 + + [PATCH] DMI: only ioremap stuff we actually need + + dmi_scan_machine() tries to ioremap 0x10000 (64K) bytes, even though it only + looks at the first 32 bytes or so. If the SMBIOS table is near the end of a + memory region, the ioremap() may fail when it shouldn't. + + This is in the efi_enabled path, so it really only affects ia64 at the moment. + + Signed-off-by: Bjorn Helgaas + Cc: Matt Domsch + Cc: "Tolentino, Matthew E" + Cc: "Brown, Len" + Cc: Andi Kleen + Acked-by: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e9b0a0712148abe96ff717a2b9f8dab1d433e0d5 +Author: Bjorn Helgaas +Date: Sun Mar 26 01:37:06 2006 -0800 + + [PATCH] ia64: ioremap: check EFI for valid memory attributes + + Check the EFI memory map so we can use the correct memory attributes for + ioremap(). Previously, we always used uncacheable access, which blows up on + some machines for regular system memory. + + Signed-off-by: Bjorn Helgaas + Cc: Matt Domsch + Cc: "Tolentino, Matthew E" + Cc: "Brown, Len" + Cc: Andi Kleen + Acked-by: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 136939a2b5aa4302281215745ccd567e1df2e8d4 +Author: Bjorn Helgaas +Date: Sun Mar 26 01:37:05 2006 -0800 + + [PATCH] EFI, /dev/mem: simplify efi_mem_attribute_range() + + Pass the size, not a pointer to the size, to efi_mem_attribute_range(). + + This function validates memory regions for the /dev/mem read/write/mmap paths. + The pointer allows arches to reduce the size of the range, but I think that's + unnecessary complexity. Simplifying it will let me use + efi_mem_attribute_range() to improve the ia64 ioremap() implementation. + + Signed-off-by: Bjorn Helgaas + Cc: Matt Domsch + Cc: "Tolentino, Matthew E" + Cc: "Brown, Len" + Cc: Andi Kleen + Acked-by: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ed3bce846abc7ef460104b461cac793e41afe5e +Author: Matt Domsch +Date: Sun Mar 26 01:37:03 2006 -0800 + + [PATCH] ia64: use i386 dmi_scan.c + + Enable DMI table parsing on ia64. + + Andi Kleen has a patch in his x86_64 tree which enables the use of i386 + dmi_scan.c on x86_64. dmi_scan.c functions are being used by the + drivers/char/ipmi/ipmi_si_intf.c driver for autodetecting the ports or + memory spaces where the IPMI controllers may be found. + + This patch adds equivalent changes for ia64 as to what is in the x86_64 + tree. In addition, I reworked the DMI detection, such that on EFI-capable + systems, it uses the efi.smbios pointer to find the table, rather than + brute-force searching from 0xF0000. On non-EFI systems, it continues the + brute-force search. + + My test system, an Intel S870BN4 'Tiger4', aka Dell PowerEdge 7250, with + latest BIOS, does not list the IPMI controller in the ACPI namespace, nor + does it have an ACPI SPMI table. Also note, currently shipping Dell x8xx + EM64T servers don't have these either, so DMI is the only method for + obtaining the address of the IPMI controller. + + Signed-off-by: Matt Domsch + Acked-by: "Luck, Tony" + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 10dbe196a8da6b3196881269c6639c0ec11c36cb +Author: Vivek Goyal +Date: Sun Mar 26 01:37:02 2006 -0800 + + [PATCH] i386: export: memory more than 4G through /proc/iomem + + Currently /proc/iomem exports physical memory also apart from io device + memory. But on i386, it truncates any memory more than 4GB. This leads to + problems for kexec/kdump. + + Kexec reads /proc/iomem to determine the system memory layout and prepares a + memory map based on that and passes it to the kernel being kexeced. Given the + fact that memory more than 4GB has been truncated, new kernel never gets to + see and use that memory. + + Kdump also reads /proc/iomem to determine the physical memory layout of the + system and encodes this informaiton in ELF headers. After a crash new kernel + parses these ELF headers being used by previous kernel and vmcore is prepared + accordingly. As memory more than 4GB has been truncated, kdump never sees + that memory and never prepares ELF headers for it. Hence vmcore is truncated + and limited to 4GB even if there is more physical memory in the system. + + This patch exports memory more than 4GB through /proc/iomem on i386. + + Signed-off-by: Vivek Goyal + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 20c0d2d4402973050e7aad8a481ec6f847ee40d8 +Author: Jan Beulich +Date: Sun Mar 26 01:37:01 2006 -0800 + + [PATCH] i386: pass proper trap numbers to die chain handlers + + Pass the trap number causing the call to notify_die() to the die + notification handler chain in a number of instances. Also, honor the + return value from the handler chain invocation in die() as, through a + debugger, the fault may have been fixed. + + Signed-off-by: Jan Beulich + Acked-By: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 841b8a46bffec232377d2de157f971e812be4fe4 +Author: H. Peter Anvin +Date: Sun Mar 26 01:36:59 2006 -0800 + + [PATCH] x86: "make isoimage" support; FDINITRD= support; minor cleanups + + Add a "make isoimage" to i386 and x86-64, which allows the automatic + creation of a bootable CD image. It also adds an option FDINITRD= to + include an initrd of the user's choice in generated floppy- or CD boot + images. Finally, some minor cleanups of the image generation code. + + Signed-off-by: H. Peter Anvin + Cc: Andi Kleen + Cc: Sam Ravnborg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5a3a5a98b6422d05c39eaa32c8b3f83840c7b768 +Author: James Bottomley +Date: Sun Mar 26 01:36:59 2006 -0800 + + [PATCH] Add flush_kernel_dcache_page() API + + We have a problem in a lot of emulated storage in that it takes a page from + get_user_pages() and does something like + + kmap_atomic(page) + modify page + kunmap_atomic(page) + + However, nothing has flushed the kernel cache view of the page before the + kunmap. We need a lightweight API to do this, so this new API would + specifically be for flushing the kernel cache view of a user page which the + kernel has modified. The driver would need to add + flush_kernel_dcache_page(page) before the final kunmap. + + Signed-off-by: James Bottomley + Cc: Russell King + Cc: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 03beb07664d768db97bf454ae5c9581cd4737bb4 +Author: James Bottomley +Date: Sun Mar 26 01:36:57 2006 -0800 + + [PATCH] Add API for flushing Anon pages + + Currently, get_user_pages() returns fully coherent pages to the kernel for + anything other than anonymous pages. This is a problem for things like + fuse and the SCSI generic ioctl SG_IO which can potentially wish to do DMA + to anonymous pages passed in by users. + + The fix is to add a new memory management API: flush_anon_page() which + is used in get_user_pages() to make anonymous pages coherent. + + Signed-off-by: James Bottomley + Cc: Russell King + Cc: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 64a07bd82ed526d813b64b0957543eef55bdf9c0 +Author: Steven Rostedt +Date: Sun Mar 26 01:36:55 2006 -0800 + + [PATCH] protect remove_proc_entry + + It has been discovered that the remove_proc_entry has a race in the removing + of entries in the proc file system that are siblings. There's no protection + around the traversing and removing of elements that belong in the same + subdirectory. + + This subdirectory list is protected in other areas by the BKL. So the BKL was + at first used to protect this area too, but unfortunately, remove_proc_entry + may be called with spinlocks held. The BKL may schedule, so this was not a + solution. + + The final solution was to add a new global spin lock to protect this list, + called proc_subdir_lock. This lock now protects the list in + remove_proc_entry, and I also went around looking for other areas that this + list is modified and added this protection there too. Care must be taken + since these locations call several functions that may also schedule. + + Since I don't see any location that these functions that modify the + subdirectory list are called by interrupts, the irqsave/restore versions of + the spin lock was _not_ used. + + Signed-off-by: Steven Rostedt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cd7b24bb1891a10ee25168a912ff2304a9571d23 +Author: Ingo Molnar +Date: Sun Mar 26 01:36:54 2006 -0800 + + [PATCH] warn if free_irq() is called from IRQ context + + Warn if free_irq() is called in IRQ context - free_irq() can execute /proc + VFS work, which must not be done in IRQ context. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6dc659d813fdd1789e605d69d0b8762d284e8c60 +Author: Ingo Molnar +Date: Sun Mar 26 01:36:54 2006 -0800 + + [PATCH] drivers/block/floppy.c: dont free_irq() from irq context + + free_irq() should not be executed from softirq context. + + Found by the lock validator. The fix is to push fd_free_irq() into + keventd. The code validates fine with this patch applied. + + (akpm: this is revolting, but so is floppy.c) + + [akpm@osdl.org: added flush_scheduled_work()] + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5ac35783f4a471d43c557db27928bc29f8a9c6d0 +Author: Florin Malita +Date: Sun Mar 26 18:53:34 2006 +0200 + + do_mounts.c: Minor ROOT_DEV comment cleanup + + The ROOT_DEV comment is no longer accurate, it now seems to be + initialized in init/do_mounts.c. + + Signed-off-by: Florin Malita + Signed-off-by: Adrian Bunk + +commit 606f44228e257ea1e35557c2fec7133cca634096 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:33:07 2006 +0200 + + BUG_ON() Conversion in drivers/s390/block/dasd_devmap.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit f02e1fafb534459522a8c46bc46b32820684623e +Author: Eric Sesterhenn +Date: Sun Mar 26 18:31:56 2006 +0200 + + BUG_ON() Conversion in mm/mempool.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 5bcb28b139cffc736177ceb775d1c8b5c5a411e2 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:30:52 2006 +0200 + + BUG_ON() Conversion in mm/memory.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 910dea7fdda22f0ee83d26d459e460c79ed94557 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:29:26 2006 +0200 + + BUG_ON() Conversion in kernel/fork.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 27315c96a4c3d5f24a902111dae537cdc28302e4 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:28:38 2006 +0200 + + BUG_ON() Conversion in ipc/sem.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 309be53da60dc24b73f3f0bceab8f0707c05371f +Author: Eric Sesterhenn +Date: Sun Mar 26 18:27:41 2006 +0200 + + BUG_ON() Conversion in fs/ext2/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 4d4ef9abe34a472fbfc9ab75cfde0d58bc342c44 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:26:51 2006 +0200 + + BUG_ON() Conversion in fs/hfs/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 28133c7b2b9bbdf8a8765a319e818c1652f38c1f +Author: Eric Sesterhenn +Date: Sun Mar 26 18:25:39 2006 +0200 + + BUG_ON() Conversion in fs/dcache.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit e827f92355e1eeec2d227d3bd3350d04042a011e +Author: Eric Sesterhenn +Date: Sun Mar 26 18:24:46 2006 +0200 + + BUG_ON() Conversion in fs/buffer.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit fddaaae16ba4d9f4d392a9ef94616d9d22485571 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:23:47 2006 +0200 + + BUG_ON() Conversion in input/serio/hp_sdc_mlc.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 547bc92649345af6014578a64b27cc5787617935 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:22:50 2006 +0200 + + BUG_ON() Conversion in md/dm-table.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit c163c7293eb68bf6c0c824d122a2192b9f129193 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:21:58 2006 +0200 + + BUG_ON() Conversion in md/dm-path-selector.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 6dd44a74469c203c5106ada2082c46267b4ac674 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:19:26 2006 +0200 + + BUG_ON() Conversion in drivers/isdn + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 56ee48277fa214b3b7b0fd91e7fd3464e12597de +Author: Eric Sesterhenn +Date: Sun Mar 26 18:17:21 2006 +0200 + + BUG_ON() Conversion in drivers/char + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 373ebfbf17a8ecad304f65cb92c4d2d10adc0a19 +Author: Eric Sesterhenn +Date: Sun Mar 26 18:15:12 2006 +0200 + + BUG_ON() Conversion in drivers/mtd/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 7c9d8c0e84d395a01289ebd1597758939a875a86 +Author: Dominik Brodowski +Date: Sun Mar 26 11:11:03 2006 +0200 + + [PATCH] cpufreq_ondemand: add range check + + Assert that cpufreq_target is, at least, called with the minimum frequency + allowed by this policy, not something lower. It triggered problems on ARM. + + Signed-off-by: Dominik Brodowski + +commit 9cbad61b41f0b6f0a4c600fe96d8292ffd592b50 +Author: Eric Piel +Date: Fri Mar 10 11:35:27 2006 +0200 + + [PATCH] cpufreq_ondemand: keep ignore_nice_load value when it is reselected + + Keep the value of ignore_nice_load of the ondemand governor even after + the governor has been deselected and selected back. This is the behavior + of the other exported values of the ondemand governor and it's much more + user-friendly. + + Signed-off-by: Eric Piel + Acked-by: Venkatesh Pallipadi + Signed-off-by: Dominik Brodowski + +commit ff8c288d7d1a368b663058cdee1ea0adcdef2fa2 +Author: Eric Piel +Date: Fri Mar 10 11:34:16 2006 +0200 + + [PATCH] cpufreq_ondemand: Warn if it cannot run due to too long transition latency + + Display a warning if the ondemand governor can not be selected due to a + transition latency of the cpufreq driver which is too long. + + Signed-off-by: Eric Piel + Acked-by: Venkatesh Pallipadi + Signed-off-by: Dominik Brodowski + +commit a159b82770ab84e1b5e0306fa65e158188492b16 +Author: Alexander Clouter +Date: Wed Mar 22 10:00:18 2006 +0000 + + [PATCH] cpufreq_conservative: alternative initialise approach + + Venki, author of cpufreq_ondemand, came up with a neater way to remove the + initialiser code from the main loop of my code and out to the point when the + governor is actually initialised. + + Not only does it look but it also feels cleaner, plus its simpler to + understand. It also saves a bunch of pointless conditional statements in the + main loop. + + Signed-off-by: Alexander Clouter + Signed-off-by: Dominik Brodowski + +commit 08a28e2e98aa821cf6f15f8a267beb2f33377bb9 +Author: Alexander Clouter +Date: Wed Mar 22 09:59:16 2006 +0000 + + [PATCH] cpufreq_conservative: make for_each_cpu() safe + + All these changes should make cpufreq_conservative safe in regards to the x86 + for_each_cpu cpumask.h changes and whatnot. + + Whilst making it safe a number of pointless for loops related to the cpu + mask's were removed. I was never comfortable with all those for loops, + especially as the iteration is over the same data again and again for each + CPU you had in a single poll, an O(n^2) outcome to frequency scaling. + + The approach I use is to assume by default no CPU's exist and it sets the + requested_freq to zero as a kind of flag, the reasoning is in the source ;) + If the CPU is queried and requested_freq is zero then it initialises the + variable to current_freq and then continues as if nothing happened which + should be the same net effect as before? + + Signed-off-by: Alexander Clouter + Signed-off-by: Dominik Brodowski + +commit e8a02572252f9115c2b8296c40fd8b985f06f872 +Author: Alexander Clouter +Date: Wed Mar 22 09:56:23 2006 +0000 + + [PATCH] cpufreq_conservative: alter default responsiveness + + The sensible approach to making conservative less responsive than ondemand :) + As mentioned in patch [1/4]. We do not want conservative to shoot through + all the frequencies, its point (by default) is to slowly move through them. + + By default its ten times less responsive. + + Signed-off-by: Alexander Clouter + Signed-off-by: Dominik Brodowski + +commit 2c906b317b2d9c7e32b0d513e102bd68a2c49112 +Author: Alexander Clouter +Date: Wed Mar 22 09:54:10 2006 +0000 + + [PATCH] cpufreq_conservative: aligning of codebase with ondemand + + Since the conservative govenor was released its codebase has drifted from the + the direction and updates that have been applied to the ondemand govornor. + + This patch addresses the lack of updates in that period and brings + conservative back up to date. The resulting diff file between + cpufreq_ondemand.c and cpufreq_conservative.c is now much smaller and shows + more clearly the differences between the two. + + Another reason to do this is ages ago, knowingly, I did a piss poor attempt + at making conservative less responsive by knocking up + DEF_SAMPLING_RATE_LATENCY_MULTIPLIER by two orders of magnitude. I did fix + this ages ago but in my dis-organisation I must have toasted the diff and + left it the way it was. About two weeks ago a user contacted me saying he + was having problems with the conservative governor with his AMD Athlon XP-M + 2800+ as /sys/devices/system/cpu/cpu0/cpufreq/conservative showed + sampling_rate_min 9950000 + sampling_rate_max 1360065408 + + Nine seconds to decide about changing the frequency....not too responsive :) + + Signed-off-by: Alexander Clouter + Signed-off-by: Dominik Brodowski + +commit 0b5c59a1e41636afa77b90d34e8c394d8d929733 +Author: Andi Kleen +Date: Sun Mar 26 02:24:07 2006 +0100 + + [PATCH] Fix compilation of processor_idle.c on IA64 + + Broken earlier by me by a x86-64 patch. + + The code was optimized away, but the compiler still complained about an + undeclared function. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 104c7b03ea0913a24be103db66d8cf1f1f99a49a +Author: Lennert Buytenhek +Date: Sat Mar 25 23:03:13 2006 +0000 + + [ARM] 3383/3: ixp2000: ixdp2x01 platform serial conversion + + Patch from Lennert Buytenhek + + Add a PLAT8250_DEV_PLATFORM2, and convert the two ixdp2x01 CPLD serial + ports to use platform serial devices with ids PLAT8250_DEV_PLATFORM[12]. + (The on-chip xscale UART is PLAT8250_DEV_PLATFORM, id #0.) + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 2ce9804fbd9d4da75fb5bb53331b46b614a7d5c3 +Author: Nicolas Pitre +Date: Sat Mar 25 22:44:05 2006 +0000 + + [ARM] 3030/2: fix permission check in the obscur cmpxchg syscall + + Patch from Nicolas Pitre + + Quoting RMK: + + |pte_write() just says that the page _may_ be writable. It doesn't say + |that the MMU is programmed to allow writes. If pte_dirty() doesn't + |return true, that means that the page is _not_ writable from userspace. + |If you write to it from kernel mode (without using put_user) you'll + |bypass the MMU read-only protection and may end up writing to a page + |owned by two separate processes. + + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit 3ee357f0f38a5fddebab18500c290d3879a2d89c +Author: Malcolm Parsons +Date: Sat Mar 25 21:58:03 2006 +0000 + + [ARM] 3399/1: Fix link problem when CONFIG_PRINTK is disabled + + Patch from Malcolm Parsons + + Printking a backtrace requires printk, so disable backtrace code + when printk is disabled. + + Without this patch, a kernel with CONFIG_PRINTK disabled does not link: + + arch/arm/lib/lib.a(backtrace.o): In function `c_backtrace': + arch/arm/lib/backtrace.S:(.text+0x108): undefined reference to `printk' + arch/arm/lib/backtrace.S:(.text+0x11c): undefined reference to `printk' + arch/arm/lib/lib.a(backtrace.o):(.fixup+0x8): undefined reference to `printk' + + Signed-off-by: Malcolm Parsons + Signed-off-by: Russell King + +commit 80ed354725825035616fb369a8c38ff77494695c +Author: Catalin Marinas +Date: Sat Mar 25 21:58:00 2006 +0000 + + [ARM] 3398/1: Fix the VFP registers loading/storing base address + + Patch from Catalin Marinas + + The current VFP code corrupts the VFP registers (including the control + ones) if more than one floating point application is executed at the same + time. This patch fixes the updating of the load/store base addresses for + the VFP registers. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit 1310eda4bec331fd951a8cbe80619f050f9036fc +Author: Andrew Victor +Date: Sat Mar 25 21:57:59 2006 +0000 + + [ARM] 3397/1: AT91RM9200 Header update + + Patch from Andrew Victor + + This patch updates the hardware header to include definitions for the + Memory Controller registers. + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit 48a03ae863e0031def037fc828d7ea1a29b6fb7b +Author: Pavel Machek +Date: Sat Mar 25 21:57:57 2006 +0000 + + [ARM] 3385/1: Battery support for sharp zaurus sl-5500 (collie) + + Patch from Pavel Machek + + This adds support for battery reading on collie. Collie slowly charges + battery even with charging disabled, so I did not yet enable fast + charge. + + Signed-off-by: Pavel Machek + Signed-off-by: Russell King + +commit 091c539f08a6700e0cca8cd620c3d72dd9f9e2bb +Author: Russell King +Date: Sat Mar 25 21:37:29 2006 +0000 + + [ARM] SMP: don't set cpu_*_map in smp_prepare_boot_cpu + + The recent addition of boot_cpu_init() implements the initialisation + of the online, present and possible cpu maps for the boot CPU, so + there is no reason to duplicate this in the architecture + smp_prepare_boot_cpu() hook. + + Signed-off-by: Russell King + +commit 98639a67a9482fbfc4f9c91b4b59bf0d06b1f6c1 +Author: Russell King +Date: Sat Mar 25 21:30:11 2006 +0000 + + [SERIAL] amba-pl010: Remove accessor macros + + Remove unnecessary accessor macros, using readb/writel directly + instead. + + Signed-off-by: Russell King + +commit 7d3aee9a9686ffc235c343dcab85c3ebea78908a +Author: David S. Miller +Date: Sat Mar 25 13:00:17 2006 -0800 + + [SPARC64]: Keep cpu_present_map in sync with phys_cpu_present_map. + + Don't rely on fixup_cpu_present_map() to do this as that function + is about to be removed. + + Signed-off-by: David S. Miller + +commit 686f8c5d77149f78ff6090dde774b2e43a7319b2 +Author: Todd Poynor +Date: Sat Mar 25 18:15:24 2006 +0000 + + include/linux/clk.h is betraying its ARM origins + + include/linux/clk.h is betraying its ARM origins. + + Signed-off-by: Todd Poynor + Signed-off-by: Russell King + +commit 111c9bf8c5cfa92363b3719c8956d29368b5b9de +Author: Bjorn Helgaas +Date: Sat Mar 25 17:49:47 2006 +0000 + + [SERIAL] remove 8250_acpi (replaced by 8250_pnp and PNPACPI) + + With the combination of PNPACPI and 8250_pnp, we no longer need 8250_acpi. + + Signed-off-by: Bjorn Helgaas + Signed-off-by: Russell King + +commit cb2fc532d0a304631c92b175f886934654c60907 +Author: maximilian attems +Date: Sat Mar 25 17:44:20 2006 +0000 + + [SERIAL] icom: select FW_LOADER + + The icom driver uses request_firmware() + and thus needs to select FW_LOADER. + + Signed-off-by: maximilian attems + Signed-off-by: Russell King + +commit 3cbb90a9cb7854b1110663919d5bc3da3f46d5e3 +Author: Linus Torvalds +Date: Sat Mar 25 09:41:40 2006 -0800 + + powerpc: fix strncasecmp prototype + + It takes a size_t, not an int, as its third argument. + + Signed-off-by: Linus Torvalds + +commit c36cd16f78a5dd740a619ef8445e35a73484d58b +Author: Andi Kleen +Date: Sat Mar 25 16:32:04 2006 +0100 + + [PATCH] x86_64: Add cpu_relax() to busy loops in PM timer code + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 6a0f03e0d35c10e07f1160ca75fc9a367931e38b +Author: Andi Kleen +Date: Sat Mar 25 16:32:01 2006 +0100 + + [PATCH] x86_64: Don't enable CONFIG_UNWIND_INFO by default for DEBUG_KERNEL + + DEBUG_KERNEL is often enabled just for sysrq, but this doesn't + mean the user wants more heavyweight debugging information. + + Cc: jbeulich@novell.com + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit f271a6f557497830f3995138b0c78d8634b33863 +Author: Andi Kleen +Date: Sat Mar 25 16:31:58 2006 +0100 + + [PATCH] x86_64: Removed duplicated declaration of force_iommu + + Noticed by Andrew Morton. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 3076a492a5e8dd624f237886646b35d12193502d +Author: Andi Kleen +Date: Sat Mar 25 16:31:55 2006 +0100 + + [PATCH] x86_64: Report SIGSEGV for IRET faults + + tcsh is not happy with the -9999 error code. + + Suggested by Ernie Petrides + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit ad90573f93533ddf1035b0468ed27b4453e50c46 +Author: Andi Kleen +Date: Sat Mar 25 16:31:52 2006 +0100 + + [PATCH] x86_64: Initialize powernow_data[] for all siblings + + I got an oops on a dual core system because the lost tick handler + called cpufreq_get() on core 1 and powernow tried to follow + a NULL powernow_data[] pointer there. + + Initialize powernow_data for all cores of a CPU. + + Cc: Jacob Shin + Cc: Dave Jones + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 0085979006fd55ec7c2f721bdaa9af130a08d62a +Author: Andi Kleen +Date: Sat Mar 25 16:31:49 2006 +0100 + + [PATCH] x86_64: Remove bogus special case in AMD core parsing. + + No need to restrict to power of two here. + + TBD needs more double checking + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit dcf36bfa5de6d4e37878d4c98b6986fee4eb8b4c +Author: Eric Dumazet +Date: Sat Mar 25 16:31:46 2006 +0100 + + [PATCH] x86_64: group memnodemap and memnodeshift in a memnode structure + + pfn_to_page() and others need to access both memnode_shift and the very + first bytes of memnodemap[]. If we force memnode_shift to be just before the + memnodemap array, we can reduce the memory footprint to one cache line + instead of two for most setups. This patch introduce a 'memnode' structure + where shift and map[] are carefully placed. + + Signed-off-by: Eric Dumazet + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 40caa884650fc6931cf55918dbf7496c49b3ddf8 +Author: Kevin Winchester +Date: Sat Mar 25 16:31:43 2006 +0100 + + [PATCH] x86_64: Eliminate register_die_notifier symbol exported + + register_die_notifier is exported twice, once in traps.c and once in + x8664_ksyms.c. This results in a warning on build. + + Signed-off-by: Kevin Winchester + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 9c01dda02f417270e733e38effe1084c77ae107d +Author: Navin Boppuri +Date: Sat Mar 25 16:31:40 2006 +0100 + + [PATCH] x86_64: Search K8 devices on more devices. + + arch/x86_64/kernel/aperture.c: The search for the AGP bridge has been + extended to search for all the 256 buses instead of the first 32. This + is required since on a some systems, the bridge may be located on a bus + much farther than the first 32. By searching all 256 buses, we guarantee + that the search succeeds on such systems. + + arch/x86_64/kernel/pci-gart.c: The search for the Northbridge is not + limited to just bus 0 anymore. This is required because on certain + systems, we may not find one on bus 0. + + Signed-off-by: Navin Boppuri + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 94949436191f69dac735919a9698612ef6b3dbba +Author: Andi Kleen +Date: Sat Mar 25 16:31:37 2006 +0100 + + [PATCH] x86_64: Make local_t 64bit instead of 32bit + + For consistency with other architectures + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 5d05f4de414c98348219b633401ad9c9a5348a8b +Author: Jon Mason +Date: Sat Mar 25 16:31:34 2006 +0100 + + [PATCH] x86_64: Make GART_IOMMU kconfig help text more specific (trivial) + + Have the GART_IOMMU help text specify that this is the hardware IOMMU in + amd64 processors. This will be significant if/when other IOMMUs are + added to the x86-64 architecture. :-) + + Also, note that the previous help text stated that IOMMU was needed for + >3GB memory instead of >4GB. This is fixed in the newer version. + + Signed-off-by: Jon Mason + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit ba22f13563de5773701fc318ccaaa37b1fb6d294 +Author: Andi Kleen +Date: Sat Mar 25 16:31:31 2006 +0100 + + [PATCH] x86_64: Remove CONFIG_UNORDERED_IO + + It was a failed experiment - all benchmarks done with it on both AMD + and Intel showed it was a loss. That was probably because the store + buffers of the CPUs for write combining traffic weren't large enough. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 9d95dd849ccc43c4b21504e1829b5bed68cdb1bc +Author: Andi Kleen +Date: Sat Mar 25 16:31:22 2006 +0100 + + [PATCH] i386/x86-64: List Intel LaGrange AKA SMX in /proc/cpuinfo + + Spec just got published so we know the CPUID bit. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit c912c2db2f5c2467ba34e4e655008a14532a3900 +Author: Jon Mason +Date: Sat Mar 25 16:31:19 2006 +0100 + + [PATCH] x86_64: free_bootmem_node needs __pa in allocate_aperture + + free_bootmem_node expects a physical address to be passed in, but + __alloc_bootmem_node returns a virtual one. That address needs to be + translated to physical. + + Signed-off-by: Jon Mason + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit da7ed9f98f6f3f18664f8ab24303f9428b9d78f8 +Author: Vivek Goyal +Date: Sat Mar 25 16:31:16 2006 +0100 + + [PATCH] x86_64: timer interrupt lockup due to pending interrupt + + o check_timer() routine fails while second kernel is booting after a crash + on an opetron box. Problem happens because timer vector (0x31) seems to be + locked. + + o After a system crash, it is not safe to service interrupts any more, hence + interrupts are disabled. This leads to pending interrupts at LAPIC. LAPIC + sends these interrupts to the CPU during early boot of second kernel. Other + pending interrupts are discarded saying unexpected trap but timer interrupt + is serviced and CPU does not issue an LAPIC EOI because it think this + interrupt came from i8259 and sends ack to 8259. This leads to vector 0x31 + locking as LAPIC does not clear respective ISR and keeps on waiting for + EOI. + + o This patch issues extra EOI for the pending interrupts who have ISR set. + + o Though today only timer seems to be the special case because in early + boot it thinks interrupts are coming from i8259 and uses + mask_and_ack_8259A() as ack handler and does not issue LAPIC EOI. But + probably doing it in generic manner for all vectors makes sense. + + Signed-off-by: Vivek Goyal + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit b1fc513d81b0f50f9543428ce95ec63ae70ab184 +Author: Brian Gerst +Date: Sat Mar 25 16:31:13 2006 +0100 + + [PATCH] x86_64: Use cpumask bitops for cpu_vm_mask + + cpu_vm_mask is of type cpumask_t, so use the proper bitops. + + Signed-off-by: Brian Gerst + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 267b48014a5c0c2ae90b04dad5d95ceb903365a6 +Author: Andi Kleen +Date: Sat Mar 25 16:31:10 2006 +0100 + + [PATCH] x86_64: Try to allocate node memmap near the end of node + + This fixes problems with very large nodes (over 128GB) filling up all of + the first 4GB with their mem_map and not leaving enough space for the + swiotlb. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit bd6633476922b7b51227f7f704c2546e763ae5ed +Author: Andi Kleen +Date: Sat Mar 25 16:31:07 2006 +0100 + + [PATCH] x86_64: Force broadcast timer on AMD systems with C3 too. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 7682968b7d4d42bb076051b962c3926b4c98539a +Author: Andi Kleen +Date: Sat Mar 25 16:31:04 2006 +0100 + + [PATCH] x86_64: Change default setting for noexec32 to match i386 kernel + + This means i386 processes compiled with a recent compiler will get non + executable heap by default now. This is the same default as a 32bit PAE + kernel would use on a NX enabled CPU. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit df92004ce60a0bb60c8315903c0765873c34a702 +Author: Arjan van de Ven +Date: Sat Mar 25 16:31:01 2006 +0100 + + [PATCH] x86_64: Reorder one field of the PDA to reduce padding + + This reorders the mmu_state int in the pda, such that there is no more + padding (there currently is 4 bytes of padding). Boot tested. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 01d4bed417b5943577e9290fbf672ea9a449dc46 +Author: Andi Kleen +Date: Sat Mar 25 16:30:58 2006 +0100 + + [PATCH] x86_64: Limit max number of CPUs to 255 + + Because 256 causes overflows in some code that stores them in 8 bit + fields and the x86 APIC architecture cannot handle more than 255 + anyways. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 5b922cd429675059f7a7798f7a0b3898c38dc070 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Sat Mar 25 16:30:55 2006 +0100 + + [PATCH] x86_64: fix orphaned bits of timer init messages + + When x86_64 timer init messages were changed to use apic verbosity + levels, two messages were missed and one got the wrong level. This + causes the last word of a suppressed message to print on a line by + itself. Fix that so either the entire message prints or none of it + does. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 2ab7f1833baf0f0a0ca9868ee21f8273e2858132 +Author: Andi Kleen +Date: Sat Mar 25 16:30:52 2006 +0100 + + [PATCH] x86_64: Quieten down microcode update driver + + Only log data in microcode driver when something is changed Otherwise it + was far too noisy on large systems. + + Also remove the printk when it is unloaded. + + Cc: tigran@veritas.com + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 4bdc3b7f1b730c07f5a6ccca77ee68e044036ffc +Author: Arjan van de Ven +Date: Sat Mar 25 16:30:49 2006 +0100 + + [PATCH] x86_64: Basic reorder infrastructure + + This patch puts the infrastructure in place to allow for a reordering of + functions based inside the vmlinux. The general idea is that it is possible + to put all "common" functions into the first 2Mb of the code, so that they + are covered by one TLB entry. This as opposed to the current situation where + a typical vmlinux covers about 3.5Mb (on x86-64) and thus 2 TLB entries. + + This is done by enabling the -ffunction-sections flag in gcc, which puts + each function in its own ELF section, so that the linker can then order them + in a way defined by the linker script. + + As per previous discussions, Linus said he wanted a "static" list for this, + eg a list provided by the kernel tarbal, so that most people have the same + ordering at least. A script is provided to create this list based on + readprofile(1) output. The included list is provisional, and entirely biased + on my own testbox and me running a few kernel compiles and some other + things. + + I think that to get to a better list we need to invite people to submit + their own profiles, and somehow add those all up and base the final list on + that. I'm willing to do that effort if this is ends up being the prefered + approach. Such an effort probably needs to be repeated like once a year or + so to adopt to the changing nature of the kernel. + + Made it a CONFIG with default n because it increases link times + dramatically. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 9b2a13b963dece8d45e07692b7872ae5a075ca2a +Author: Andi Kleen +Date: Sat Mar 25 16:30:46 2006 +0100 + + [PATCH] x86_64: Always use IO-APIC routing for timer. + + I tested it on a couple of chipsets and it worked everywhere so it + should be ok as default for now. + + So far I haven't done the great purge of the useless old check_timer + code yet though. + + Can be overwritten with enable_8254_timer in the worst case + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 3056d6be19b50cbd3f0290e816d702cc3e54a6f3 +Author: Andi Kleen +Date: Sat Mar 25 16:30:43 2006 +0100 + + [PATCH] x86_64: Don't invoke OOM killer during dma_alloc_coherent() + + There is a fallback logic, so it's better to not use the OOM killer + in the allocations. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 554d284ba90bc2306c31e5363789f05c320969c3 +Author: Andi Kleen +Date: Sat Mar 25 16:30:40 2006 +0100 + + [PATCH] x86_64: Don't invoke OOM killer while allocating floppy DMA buffers + + Floppy can fall back to smaller buffers, so don't do OOM killing. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 28456edeff2ef9273c55cd12e4b193208717d4cd +Author: Andi Kleen +Date: Sat Mar 25 16:30:37 2006 +0100 + + [PATCH] x86_64: Reename CMOS update warning + + Was disabled due to an old bug, long gone. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 7351c0bfe825db2239b835c771c95affe006f51c +Author: Andi Kleen +Date: Sat Mar 25 16:30:34 2006 +0100 + + [PATCH] x86_64: Fix formatting in time.c + + Only white space changes, code should be identical + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 6954bee829a037e4a3e06f7ecd7fc0466fadde41 +Author: Andi Kleen +Date: Sat Mar 25 16:30:31 2006 +0100 + + [PATCH] x86_64: Handle years beyond 2100 + + ACPIv2 has an official but optional way to get a date >2100. Use it. + But all the platforms I tested didn't seem to support it. But anyways + the x86-64 kernel should be ready for the 22nd century now. Actually i + shouldn't care about this because I will be dead by then @) + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit eaeae0cc985fa1df753da7edc8d02635cbc1ba39 +Author: Arjan van de Ven +Date: Sat Mar 25 16:30:28 2006 +0100 + + [PATCH] x86_64: Patch to make the head.S-must-be-first-in-vmlinux order explicit + + This patch puts the code from head.S in a special .bootstrap.text + section. + + I'm working on a patch to reorder the functions in the kernel (I'll post + that later), but for x86-64 at least the kernel bootstrap requires that + the head.S functions are on the very first page/pages of the kernel + text. This is understandable since the bootstrap is complex enough + already and not a problem at all, it just means they aren't allowed to + be reordered. This patch puts these special functions into a separate + section to document this, and to guarantee this in the light of possibly + reordering the rest later. + + (So this patch doesn't fix a bug per se, but makes things more robust by + making the order of these functions explicit) + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 5f44a669805ab2c18b347436ec5333173b821268 +Author: Andi Kleen +Date: Sat Mar 25 16:30:25 2006 +0100 + + [PATCH] x86_64: Add __init to fixmap functions that are only called during boot + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit f2d3efedbecc04dc348d723e4c90b46731b3bb48 +Author: Andi Kleen +Date: Sat Mar 25 16:30:22 2006 +0100 + + [PATCH] x86_64: Implement early DMI scanning + + There are more and more cases where we need to know DMI information + early to work around bugs. i386 already had early DMI scanning, but + x86-64 didn't. Implement this now. + + This required some cleanup in the i386 code. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit f083a329e63d471a5e9238e837772b1b76c218db +Author: Andi Kleen +Date: Sat Mar 25 16:30:19 2006 +0100 + + [PATCH] x86_64: Clean up and tweak ACPI blacklist year code + + - Move the core parser into dmi_scan.c. It can be useful for other + subsystems too. + - Differentiate between field doesn't exist and field is 0 or + unparseable. The first case is likely an old BIOS with broken ACPI, + the later is likely a slightly buggy BIOS where someone forget to + edit the date. Don't blacklist in the later case. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit e6fc99c6aba0350a3c4c0206b7047d4893491485 +Author: Dave Jones +Date: Sat Mar 25 16:30:16 2006 +0100 + + [PATCH] x86_64: s/Overwrite/Override/ in arch/x86-64 + + s/Overwrite/Override/ + + Signed-off-by: Dave Jones + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 04103609322daca31197068e310ba8037ecd3470 +Author: Andi Kleen +Date: Sat Mar 25 16:30:13 2006 +0100 + + [PATCH] x86_64: Move kernel to 2MB + + As suggested by Andi (and Alan), move the default kernel location + from 1Mb to 2Mb, to align to the start of a TLB entry. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit a9ba9a3b3897561d01e04cd21433746df46548c0 +Author: Arjan van de Ven +Date: Sat Mar 25 16:30:10 2006 +0100 + + [PATCH] x86_64: prefetch the mmap_sem in the fault path + + In a micro-benchmark that stresses the pagefault path, the down_read_trylock + on the mmap_sem showed up quite high on the profile. Turns out this lock is + bouncing between cpus quite a bit and thus is cache-cold a lot. This patch + prefetches the lock (for write) as early as possible (and before some other + somewhat expensive operations). With this patch, the down_read_trylock + basically fell out of the top of profile. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 4bc32c4d5cde5c57edcc9c2fe5057da8a4dd0153 +Author: Andi Kleen +Date: Sat Mar 25 16:30:07 2006 +0100 + + [PATCH] x86_64: Implement compat code for raw1394 read/write + + Not for the ioctls so far because I was too lazy. + + Cc: bcollins@debian.org + Cc: dan@dennedy.org + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 60c1bc82d9d42486e2b96de668b0b49fadaffd12 +Author: Ravikiran G Thirumalai +Date: Sat Mar 25 16:30:04 2006 +0100 + + [PATCH] x86_64: to use lapic ids instead of initial apic ids + + phys_proc_id[] on AMD boxes is right now populated with the initial + apic id, obtained by the cpuid instruction. But, the initial apic id + need not be the local apic id on clustered APIC systems (see comment at + x86_64/kernel/genapic_cluster.c, line 110). On vSMPowered with AMD + CPUs the cpu_to_node will turn out to be incorrect (as apicid_to_node[] is + indexed by the initial apic id rather than the local apic id). + On vSMPowered boxes with Intel CPUs this is working correctly as + phys_proc_id[] is initialized correctly in detect_ht(). + + This fixes AMD boot path according to specification, to use the correct + routines for local apic id and socket ids. We use + hard_smp_processor_id() to read the local apic id, and phys_pkg_id() to + determine socket id for phys_proc_id[] + + Patch tested on Tyan multicore boxes as well as vSMPowered boxes. + + Signed-off-by: Ravikiran Thirumalai + Signed-off-by: Shai Fultheim + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit e57113bc1ff591005ec0b0fb4885d97c01de73d8 +Author: Jan Beulich +Date: Sat Mar 25 16:30:01 2006 +0100 + + [PATCH] x86_64: miscellaneous cleanup + + - adjust limits of GDT/IDT pseudo-descriptors (some were off by one) + - move empty_zero_page into .bss.page_aligned + - move cpu_gdt_table into .data.page_aligned + - move idt_table into .bss + - align inital_code and init_rsp + - eliminate pointless (re-)declaration of idt_table in traps.c + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 1f50249e940baa7133e0bdb32cd564bb3ba28456 +Author: Andi Kleen +Date: Sat Mar 25 16:29:58 2006 +0100 + + [PATCH] x86_64: Make pfn_valid work early in boot + + It needs num_physpages, so initialize it early. It's later overwritten + again. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 2b692a872c21849edb0a398937e31991526a9216 +Author: Roberto Nibali +Date: Sat Mar 25 16:29:55 2006 +0100 + + [PATCH] x86_64: Clean up white space in traps.c + + Attached is a small code style cleanup patch that resulted from my + skimming through the arch/x86_64/kernel/traps.c code to figure out what + went haywire. + + Signed-off-by: Roberto Nibali + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit b2b978f98036717e2508cf3288aecb8f9c7d724e +Author: Henrik Kretzschmar +Date: Sat Mar 25 16:29:52 2006 +0100 + + [PATCH] x86_64: Fix wrong PCI ID for ALI M1695 AGP bridge + + [description by AK] + Made a cut'n'paste error when adding the entry for the ALI M1695 + AGP bridge and added a second entry for the 1689 + + Cc: Dave Jones + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 6edfba1b33c701108717f4e036320fc39abe1912 +Author: Andi Kleen +Date: Sat Mar 25 16:29:49 2006 +0100 + + [PATCH] x86_64: Don't define string functions to builtin + + gcc should handle this anyways, and it causes problems when + sprintf is turned into strcpy by gcc behind our backs and + the C fallback version of strcpy is actually defining __builtin_strcpy + + Then drop -ffreestanding from the main Makefile because it isn't + needed anymore and implies -fno-builtin, which is wrong now. + (it was only added for x86-64, so dropping it should be safe) + + Noticed by Roman Zippel + + Cc: Roman Zippel + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 681558fdb5848f0a6dc248108f0f7323f7380857 +Author: Andi Kleen +Date: Sat Mar 25 16:29:46 2006 +0100 + + [PATCH] x86_64: Check that early arguments are words on their own + + We've always had the problem that arguments only did a prefix match, + which resulted e.g. in noapic and noapictimer getting confused. + + Fix the early argument parsing code to always check that arguments are + whole words (except for those that take additional arguments of course) + I factored out the checking code for that while also makes the code + easier to maintain. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 86ebcea899ff01274c1e8e15bf1d1f1cf5fac471 +Author: Jan Beulich +Date: Sat Mar 25 16:29:43 2006 +0100 + + [PATCH] x86_64: remove dead do_softirq_thunk + + Appearantly a left-over... + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 8c914cb704a11460eec7ed2a572bb5e9bd513d24 +Author: Jan Beulich +Date: Sat Mar 25 16:29:40 2006 +0100 + + [PATCH] x86_64: actively synchronize vmalloc area when registering certain callbacks + + While the modular aspect of the respective i386 patch doesn't apply to + x86-64 (as the top level page directory entry is shared between modules + and the base kernel), handlers registered with register_die_notifier() + are still under similar constraints for touching ioremap()ed or + vmalloc()ed memory. The likelihood of this problem becoming visible is + of course significantly lower, as the assigned virtual addresses would + have to cross a 2**39 byte boundary. This is because the callback gets + invoked + (a) in the page fault path before the top level page table propagation + gets carried out (hence a fault to propagate the top level page table + entry/entries mapping to module's code/data would nest infinitly) and + (b) in the NMI path, where nested faults must absolutely not happen, + since otherwise the IRET from the nested fault re-enables NMIs, + potentially resulting in nested NMI occurences. + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 85f9eebccde51e24896f31383f5b70776362e1a6 +Author: Andi Kleen +Date: Sat Mar 25 16:29:37 2006 +0100 + + [PATCH] x86_64: Use cpu_relax in poll loop in GART IOMMU + + The code waits for the GART to clear the TLB flush bit. Use cpu_relax + in this time to allow hypervisors to yield the CPU in this time. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 77d910f557c44db0fa72ee856c41cdd56972cfca +Author: Andi Kleen +Date: Sat Mar 25 16:29:34 2006 +0100 + + [PATCH] x86_64: Report local APIC ID when initializing CPU + + Makes some debugging easier. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 9ede6b0945223d1e353501f41b988a3db56b4e27 +Author: Andi Kleen +Date: Sat Mar 25 16:29:31 2006 +0100 + + [PATCH] x86_64: Don't need to read PIT in timer handler when PM timer is used + + The PM timer path through main_timer_handler doesn't need + the delay variable because it figures it out in a different way. + Don't try to read it from the PIT. With stopped PIT timer + it is even useless. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 51f62e186b78f8743246a349b09be370c8735479 +Author: Ashok Raj +Date: Sat Mar 25 16:29:28 2006 +0100 + + [PATCH] x86_64: cleanup allocating logical cpu numbers in x86_64 + + Minor cleanup to lend better for physical CPU hotplug. + Earlier way of using num_processors as index doesnt + fit if CPUs come and go. This makes the code little bit better + to read, and helps physical hotplug use the same functions as boot. + + Reserving CPU0 for BSP is too late to be done in smp_prepare_boot_cpu(). + Since logical assignments from MADT is already done via + setup_arch()->acpi_boot_init()->parse lapic + + Signed-off-by: Ashok Raj + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 45948d7720e8bd0104696087c6305fdd90e3b298 +Author: Jan Beulich +Date: Sat Mar 25 16:29:25 2006 +0100 + + [PATCH] x86_64: save FPU context slightly later + + Touching of the floating point state in a kernel debugger must be + NMI-safe, specifically math_state_restore() must be able to deal with + being called out of an NMI context. In order to do that reliably, the + context switch code must take care to not leave a window open where + the current task's TS_USEDFPU flag and CR0.TS could get out of sync. + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 2b514e74f4e59e3b8e54891580fef2c9ff6c7bd0 +Author: Jan Beulich +Date: Sat Mar 25 16:29:22 2006 +0100 + + [PATCH] x86_64: eliminate set_debug() + + For consistency and to have only a single place of definition, replace + set_debug() uses with set_debugreg(), and eliminate the definition of + thj former. + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 893efca9279d7a78bae6532de0524e53370819d5 +Author: Jan Beulich +Date: Sat Mar 25 16:29:19 2006 +0100 + + [PATCH] x86_64: disallow multi-byte hardware execution breakpoints + + While AMD formally permits multi-byte execution breakpoints, Intel + disallows 8-byte as much as 2- or 4-byte ones. + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 3240114d23793384fa9c3c53f391f672d1c22d2e +Author: Jan Beulich +Date: Sat Mar 25 16:29:16 2006 +0100 + + [PATCH] x86_64: cpu_pda array to macro followup correction + + Fix one place where the previous change of cpu_pda from being an array + to being a macro was not properly carried out. + + Signed-off-by: Jan Beulich + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit abe059e7590fd4475285f2d037c70dec712a4572 +Author: Andi Kleen +Date: Sat Mar 25 16:29:12 2006 +0100 + + [PATCH] x86_64: Rename struct node in x86-64 NUMA code to struct bootnode + + It conflicts with the struct node in node.h + Actually the x86-64 version was there first, but .. + + Suggested by Jan Beulich + + Cc: jbeulich@novell.com + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 913bd906019514579b3c7ec5ab9c463e89207a57 +Author: Andi Kleen +Date: Sat Mar 25 16:29:09 2006 +0100 + + [PATCH] x86_64: Increase the variability of the process stack on 64bit architectures + + 8MB is not really very random, use 1GB (or more with larger page sizes) + instead. + + Also use the low bits of the random generator output now instead of + throwing them away. + + Only enabled on x86-64 right now. Other architectures need to add + a suitable STACK_RND_MASK + + Cc: mingo@elte.hu + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit dca99a38bccceda9e079d4c95abefbd9028605fe +Author: Andi Kleen +Date: Sat Mar 25 16:29:06 2006 +0100 + + [PATCH] x86-64: Use -mtune=generic for generic kernels + + The upcomming gcc 4.2 got a new option -mtune=generic to tune + code for both common AMD and Intel CPUs. Use this option + when available for generic kernels. + + On x86-64 it is used with CONFIG_GENERIC_CPU. On i386 it is + enabled with CONFIG_X86_GENERIC. It won't affect the base + line CPU support in any ways and also not the minimum supported CPU. + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit c7ea1a96ec007ba761c9d5d11d788cd8fdd5c8b6 +Author: Jan Beulich +Date: Sat Mar 25 16:29:03 2006 +0100 + + [PATCH] x86_64: Use correct PUD for memory hotadd + + Memory >39bits has a different PUD. + + Cc: "Tolentino, Matthew E" + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit af8fc1f528fd744e0b92cdb981eec0c8841f6f61 +Author: Andi Kleen +Date: Sat Mar 25 16:29:00 2006 +0100 + + [PATCH] x86_64: Update defconfig + + Signed-off-by: Andi Kleen + Signed-off-by: Linus Torvalds + +commit 315ab19a6d12d6af7b6957090822f3057ab7e80f +Author: Nick Piggin +Date: Sat Mar 25 16:20:22 2006 +0100 + + [PATCH] mm: restore vm_normal_page check + + Hugh is rightly concerned that the CONFIG_DEBUG_VM coverage has gone too + far in vm_normal_page, considering that we expect production kernels to be + shipped with the option turned off, and that the code has been under some + large changes recently. + + Signed-off-by: Nick Piggin + Signed-off-by: Linus Torvalds + +commit f081a529f808ed450c22553de7b3275e0ffde9a0 +Author: Andrew Morton +Date: Sat Mar 25 01:51:51 2006 -0800 + + [PATCH] cpufreq: speedstep-smi asm fix + + Fix bug identified by Linus Torvalds : the `out' + instruction depends upon the state of memory_data[], so we need to tell gcc + that before executing it. (The opcode, not gcc). + + Fixes http://bugzilla.kernel.org/show_bug.cgi?id=5553 + + Thanks to Antonio Ospite for testing. + + Cc: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a9312fb839e90668d05a90024f3a7e7ff646a4a3 +Author: Andrew Morton +Date: Sat Mar 25 03:08:30 2006 -0800 + + [PATCH] git-scsi-misc: min() warning fix + + drivers/scsi/sd.c: In function `sd_store_cache_type': + drivers/scsi/sd.c:193: warning: comparison of distinct pointer types lacks a cast + + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a9e102b60c51faa62506132e8780d8003888c98f +Author: NeilBrown +Date: Sat Mar 25 03:08:29 2006 -0800 + + [PATCH] More corrections to vfs.txt update + + Thanks "Randy.Dunlap" + + Cc: "Randy.Dunlap" + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5ddcfa878d5b10b0ab94251a4229a8a9daaf93ed +Author: Roman Zippel +Date: Sat Mar 25 03:08:28 2006 -0800 + + [PATCH] remove pps support + + This removes the support for pps. It's completely unused within the kernel + and is basically in the way for further cleanups. It should be easier to + readd proper support for it after the rest has been converted to NTP4 + (where the pps mechanisms are quite different from NTP3 anyway). + + Signed-off-by: Roman Zippel + Cc: Adrian Bunk + Cc: john stultz + Cc: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e4294b3ecd1da9abeb66709c89f71b1ba888b3b1 +Author: Mark A. Greer +Date: Sat Mar 25 03:08:28 2006 -0800 + + [PATCH] serial: merge mpsc.h into mpsc.c + + Merge mpsc.h into mpsc.c because its the only file that #include's mpsc.h. + + Signed-off-by: Mark A. Greer + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6261c8e34f07f09270b37e14c05962c952cbeebe +Author: Mark A. Greer +Date: Sat Mar 25 03:08:27 2006 -0800 + + [PATCH] serial: mpsc driver has definition of SUPPORT_SYSRQ below include of serial_core.h + + The definition of SUPPORT_SYSRQ must come before #include of serial_core.h. + This patch moves the definition of SUPPORT_SYSRQ to be just after the #include + of config.h to make it consistent with 8250.c. + + Reported-by: Stephane Chazelas + Signed-off-by: Mark A. Greer + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a30ff2e348af9d3a1782103130c88960550a773f +Author: Mark A. Greer +Date: Sat Mar 25 03:08:26 2006 -0800 + + [PATCH] serial: mpsc driver passes bad devname to request_irq() + + The devname passed to request_irq() contained a '/' which is wrong. At + a minimum, the '/' prevented the devname from showing up in + /proc/irq//. This patch replaces the '/' with a '-' to + fixes that problem. + + Reported-by: Stephane Chazelas + Signed-off-by: Mark A. Greer + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 37f1e984253c7eeee8e0f2be9d134d1e9e34b9d4 +Author: Eugene Teo +Date: Sat Mar 25 03:08:25 2006 -0800 + + [PATCH] Fix sequencer missing negative bound check + + 'int dev' came out of an 'unsigned char *' - as such, it will not get + a negative value. Thanks Valdis. + + Signed-off-by: Eugene Teo + Cc: Jaroslav Kysela + Acked-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1ad3dcc09c88c6e01d7624398c591ff3aee22fbe +Author: Luke Yang +Date: Sat Mar 25 03:08:24 2006 -0800 + + [PATCH] flat binary loader doesn't check fd table full + + In binfmt_flat.c, the flat binary loader should check file descriptor table + and install the fd on the file. + + Convert the function to single-exit and fix this bug. + + Signed-off-by: "Luke Yang" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f5163427453bc6ca2dd497eeb3e7a30d1c74b487 +Author: Dimitri Sivanich +Date: Sat Mar 25 03:08:23 2006 -0800 + + [PATCH] Add SA_PERCPU_IRQ flag support + + Add support for SA_PERCPU_IRQ (only mmtimer.c uses this at this stage). + + Signed-off-by: Dimitri Sivanich + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6cc6b1226b71132a1d6e95449d78e051f1f3b506 +Author: Carsten Otte +Date: Sat Mar 25 03:08:23 2006 -0800 + + [PATCH] remove needless check in fs/read_write.c + + nr_segs is unsigned long and thus cannot be negative. We checked against 0 + few lines before. + + Signed-off-by: Carsten Otte + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 55148548124e3e52e8921f1cb0e325111ef9cbb1 +Author: Carsten Otte +Date: Sat Mar 25 03:08:22 2006 -0800 + + [PATCH] remove needless check in binfmt_elf.c + + Local variable i is unsigned int and thus cannot be negative. + + (akpm: unsigneds shouldn't be called `i'. This value cannot possibly be + negative anyway). + + Signed-off-by: Carsten Otte + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 06842415149371127b91d15774cff95dcccc1845 +Author: Randy Dunlap +Date: Sat Mar 25 03:08:21 2006 -0800 + + [PATCH] Doc: fix example firmware source code + + Fix Documentation/firmware_class/ examples so that they will build. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d12ddde2bbf46b34eae3fb3fd36c0e42832b537c +Author: Pekka Enberg +Date: Sat Mar 25 03:08:21 2006 -0800 + + [PATCH] udf: remove duplicate definitions + + This patch removes duplicate definitions from include/linux/udf_fs_i.h + which are already defined in fs/udf/ecma_167.h. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1e0a91ad52c741d09288450674fc7c7f1695200a +Author: Ralf Baechle +Date: Sat Mar 25 03:08:19 2006 -0800 + + [PATCH] EISA: Ignore generated file drivers/eisa/devlist.h + + Signed-off-by: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d74beb9f33a5f16d2965f11b275e401f225c949d +Author: Eric Dumazet +Date: Sat Mar 25 03:08:19 2006 -0800 + + [PATCH] Use unsigned int types for a faster bsearch + + This patch avoids arithmetic on 'signed' types that are slower than + 'unsigned'. This saves space and cpu cycles. + + size of kernel/sys.o before the patch (gcc-3.4.5) + + text data bss dec hex filename + 10924 252 4 11180 2bac kernel/sys.o + + size of kernel/sys.o after the patch + text data bss dec hex filename + 10903 252 4 11159 2b97 kernel/sys.o + + I noticed that gcc-4.1.0 (from Fedora Core 5) even uses idiv instruction for + (a+b)/2 if a and b are signed. + + Signed-off-by: Eric Dumazet + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 34f361ade2fb4a869f6a7714d01c04ce4cfa75d9 +Author: Ashok Raj +Date: Sat Mar 25 03:08:18 2006 -0800 + + [PATCH] Check if cpu can be onlined before calling smp_prepare_cpu() + + - Moved check for online cpu out of smp_prepare_cpu() + + - Moved default declaration of smp_prepare_cpu() to kernel/cpu.c + + - Removed lock_cpu_hotplug() from smp_prepare_cpu() to around it, since + its called from cpu_up() as well now. + + - Removed clearing from cpu_present_map during cpu_offline as it breaks + using cpu_up() directly during a subsequent online operation. + + Signed-off-by: Ashok Raj + Cc: Srivatsa Vaddagiri + Cc: "Li, Shaohua" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f1a1c2dc2a956c375b432d2a9a28e52ba9d81c7c +Author: Randy Dunlap +Date: Sat Mar 25 03:08:17 2006 -0800 + + [PATCH] doc: more serial-console info + + Add info on flow control for serial consoles. Refer to netconsole option + also. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 174e27c607cfa3ebb92934d28c0fdfcf5ce6c3af +Author: Chen, Kenneth W +Date: Sat Mar 25 03:08:16 2006 -0800 + + [PATCH] direct-io: bug fix in dio handling write error + + There is a bug in direct-io on propagating write error up to the higher I/O + layer. When performing an async ODIRECT write to a block device, if a + device error occurred (like media error or disk is pulled), the error code + is only propagated from device driver to the DIO layer. The error code + stops at finished_one_bio(). The aysnc write, however, is supposedly have + a corresponding AIO event with appropriate return code (in this case -EIO). + Application which waits on the async write event, will hang forever since + such AIO event is lost forever (if such app did not use the timeout option + in io_getevents call. Regardless, an AIO event is lost). + + The discovery of above bug leads to another discovery of potential race + window with dio->result. The fundamental problem is that dio->result is + overloaded with dual use: an indicator of fall back path for partial dio + write, and an error indicator used in the I/O completion path. In the + event of device error, the setting of -EIO to dio->result clashes with + value used to track partial write that activates the fall back path. + + It was also pointed out that it is impossible to use dio->result to track + partial write and at the same time to track error returned from device + driver. Because direct_io_work can only determines whether it is a partial + write at the end of io submission and in mid stream of those io submission, + a return code could be coming back from the driver. Thus messing up all + the subsequent logic. + + Proposed fix is to separating out error code returned by the IO completion + path from partial IO submit tracking. A new variable is added to dio + structure specifically to track io error returned in the completion path. + + Signed-off-by: Ken Chen + Acked-by: Zach Brown + Acked-by: Suparna Bhattacharya + Cc: Badari Pulavarty + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0e6b3e5e97e2e8a25bcfc528dad94edf5220dfeb +Author: Phillip Susi +Date: Sat Mar 25 03:08:14 2006 -0800 + + [PATCH] udf: fix uid/gid options and add uid/gid=ignore and forget options + + As Pekka Enberg pointed out, with the if still following the else, you can + still get a null uid written to the disk if you specify a default uid= without + uid=forget. In other words, if the desktop user is uid=1000 and the mount + option uid=1000 is given ( which is done on ubuntu automatically and probably + other distributions that use hal ), then if any other user besides uid 1000 + owns a file then a 0 will be written to the media as the owning uid instead. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 11b0b5abb2097a63c1081d9b7e825b987b227972 +Author: Oliver Neukum +Date: Sat Mar 25 03:08:13 2006 -0800 + + [PATCH] use kzalloc and kcalloc in core fs code + + Signed-off-by: Oliver Neukum + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 656bde5728b824ca23fcab8bc5800b309ea48d64 +Author: Jesper Juhl +Date: Sat Mar 25 03:08:12 2006 -0800 + + [PATCH] Fix memory leak in isapnp + + Spotted by the Coverity checker as bug #666 + + akpm; there are several other `return 1;'s in there which aren't freeing + `dev'. (A fix which converts this function to single-exit would be + preferred..) + + Signed-off-by: Jesper Juhl + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bda44e1d168ac76fce5183eb141592fc645c7818 +Author: Jesper Juhl +Date: Sat Mar 25 03:08:11 2006 -0800 + + [PATCH] OSS: Fix leak in awe_wave, also remove pointless cast. + + Fix resource leak and remove pointless cast of kmalloc return value. + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 96a9b4d31eba4722ba7aad2cc15118a7799f499f +Author: Andrew Morton +Date: Sat Mar 25 03:08:10 2006 -0800 + + [PATCH] cpumask: uninline any_online_cpu() + + text data bss dec hex filename + before: 3605597 1363528 363328 5332453 515de5 vmlinux + after: 3605295 1363612 363200 5332107 515c8b vmlinux + + 218 bytes saved. + + Also, optimise any_online_cpu() out of existence on CONFIG_SMP=n. + + This function seems inefficient. Can't we simply AND the two masks, then use + find_first_bit()? + + Cc: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8630282070b4a52b12cfa514ba8558e2f3d56360 +Author: Andrew Morton +Date: Sat Mar 25 03:08:09 2006 -0800 + + [PATCH] cpumask: uninline highest_possible_processor_id() + + Shrinks the only caller (net/bridge/netfilter/ebtables.c) by 174 bytes. + + Also, optimise highest_possible_processor_id() out of existence on + CONFIG_SMP=n. + + Cc: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3d18bd74a22d0bed3bc81fc64c4ba6344a10f155 +Author: Andrew Morton +Date: Sat Mar 25 03:08:09 2006 -0800 + + [PATCH] cpumask: uninline next_cpu() + + text data bss dec hex filename + before: 3488027 1322496 360128 5170651 4ee5db vmlinux + after: 3485112 1322480 359968 5167560 4ed9c8 vmlinux + + 2931 bytes saved + + Cc: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ccb46000f4bb459777686611157ac0eac928704e +Author: Andrew Morton +Date: Sat Mar 25 03:08:08 2006 -0800 + + [PATCH] cpumask: uninline first_cpu() + + text data bss dec hex filename + before: 3490577 1322408 360000 5172985 4eeef9 vmlinux + after: 3488027 1322496 360128 5170651 4ee5db vmlinux + + Cc: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 64b91379439ff0fb007bde90eb496299c14a9b2a +Author: Pat Gefre +Date: Sat Mar 25 03:08:07 2006 -0800 + + [PATCH] Altix: rs422 support for ioc4 serial driver + + Add rs422 support to the Altix ioc4 serial driver. + + Signed-off-by: Patrick Gefre + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fe9bab2df96cec7011773aab272515b9faa9b6c4 +Author: Eugene Teo +Date: Sat Mar 25 03:08:07 2006 -0800 + + [PATCH] Fix sb_mixer use before validation + + dev should be validated before it is being used as index to array. + + Coverity bug #871 + + Signed-off-by: Eugene Teo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1f4d4a80fbcb1e09cfb95660bcd2b677ea6d04c1 +Author: Adrian Bunk +Date: Sat Mar 25 03:08:06 2006 -0800 + + [PATCH] i4l/isdn_tty.c: fix a check-after-use + + Fix a check-after-use spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit daff89f324755f87a060d5125a205c0755811ea9 +Author: Jonathan Corbet +Date: Sat Mar 25 03:08:05 2006 -0800 + + [PATCH] radix-tree documentation cleanups + + Documentation changes to help radix tree users avoid overrunning the tags + array. RADIX_TREE_TAGS moves to linux/radix-tree.h and is now known as + RADIX_TREE_MAX_TAGS (Nick Piggin's idea). Tag parameters are changed to + unsigned, and some comments are updated. + + Signed-off-by: Jonathan Corbet + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 57070d012cd425c3a71663528c56a436abd2d9da +Author: Peter Staubach +Date: Sat Mar 25 03:08:04 2006 -0800 + + [PATCH] compat_sys_nfsservctl(): handle errors correctly + + Correct some error handling on the compat version of the nfsservctl() + system. It was detecting errors while copying in the arguments from user + space, but then attempting to use the arguments anyway. This didn't seem + so good. + + Signed-off-by: Peter Staubach + Cc: Trond Myklebust + Cc: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 30087baf8810cd96b0ca2858993f29a89965ffff +Author: Vasily Averin +Date: Sat Mar 25 03:08:03 2006 -0800 + + [PATCH] i2o_dump_hrt() output cleanup + + This patch fixes i2o_dump_hrt output from dmesg: + + iop0: HRT has 1 entries of 16 bytes each. + Adapter 00000012: <7>TID 0000:[<7>H<7>P<7>C<7>*<7>]:<7>PCI 1: Bus 1 Device 22 + Function 0<7> + + Signed-off-by: Vasily Averin + Cc: Markus Lidel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6e692ed37a507e18d8afe8e5faebd8c4722c5f12 +Author: John Hawkes +Date: Sat Mar 25 03:08:02 2006 -0800 + + [PATCH] fix alloc_large_system_hash() roundup + + The "rounded up to nearest power of 2 in size" algorithm in + alloc_large_system_hash is not correct. As coded, it takes an otherwise + acceptable power-of-2 value and doubles it. For example, we see the error + if we boot with thash_entries=2097152 which produces a hash table with + 4194304 entries. + + Signed-off-by: John Hawkes + Cc: Roland Dreier + Cc: "Chen, Kenneth W" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 962749af67b145c57917bfbff3c303ebd7d5988c +Author: Andrew Morton +Date: Sat Mar 25 03:08:01 2006 -0800 + + [PATCH] roundup_pow_of_two() 64-bit fix + + fls() takes an integer, so roundup_pow_of_two() is busted for ulongs larger + than 2^32-1. + + Fix this by implementing and using fls_long(). + + (Why does roundup_pow_of_two() return a long?) + + (Why is roundup_pow_of_two() __attribute_const__ whereas long_log2() is + __attribute_pure__?) + + (Why does long_log2() suck so much? Because we were missing fls_long()?) + + Cc: Roland Dreier + Cc: "Chen, Kenneth W" + Cc: John Hawkes + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 231bed205879236357171e50bd8965e70797ecdc +Author: Eric Dumazet +Date: Sat Mar 25 03:08:00 2006 -0800 + + [PATCH] No need to protect current->group_info in sys_getgroups(), in_group_p() and in_egroup_p() + + While doing some benchmarks of an Apache/PHP SMP server, I noticed high + oprofile numbers in in_group_p() and _atomic_dec_and_lock(). + + rank percent + 1 4.8911 % __link_path_walk + 2 4.8503 % __d_lookup + *3 4.2911 % _atomic_dec_and_lock + 4 3.9307 % __copy_to_user_ll + 5 4.9004 % sysenter_past_esp + *6 3.3248 % in_group_p + + It appears that in_group_p() does an uncessary + + get_group_info(current->group_info); /* atomic_inc() */ + ... /* access current->group_info */ + put_group_info(current->group_info); /* _atomic_dec_and_lock */ + + It is not necessary to do this, because the current task holds a reference + on its own group_info, and this reference cannot change during the lookup. + + This patch deletes the get_group_info()/put_group_info() pair from + sys_getgroups(), in_group_p() and in_egroup_p() functions. + + Signed-off-by: Eric Dumazet + Cc: Tim Hockin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 76c67de460b3d00b7ab8a96bb18f07ca47d65fba +Author: Rob Landley +Date: Sat Mar 25 03:07:58 2006 -0800 + + [PATCH] Ext2 flags shouldn't report "nogrpid" + + If I mount ext2 "rw", I want it to say "rw", not "rw,nogrpid". + + I caught this writing an automated regression test script for the busybox + mount command. The symptom is + /dev/loop0 on /images/ext2.dir type ext2 (rw,nogrpid) + instead of: + /dev/loop0 on /images/ext2.dir type ext2 (rw) + + The behavior was introduced by git commit + 8fc2751beb0941966d3a97b26544e8585e428c08. + + Signed-off-by: Rob Landley + Cc: Mark Bellon + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 258f4885e3b7b3ed06a35c02a94c8c62a4ac4739 +Author: Johannes Stezenbach +Date: Sat Mar 25 03:07:57 2006 -0800 + + [PATCH] MAINTAINERS: remove dead URL + + http://mpeg.openprojects.net/ doesn't exist + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7e53cac41da9ebb9be774220c1b2615182667c9d +Author: NeilBrown +Date: Sat Mar 25 03:07:57 2006 -0800 + + [PATCH] Honour AOP_TRUNCATE_PAGE returns in page_symlink + + As prepare_write, commit_write and readpage are allowed to return + AOP_TRUNCATE_PAGE, page_symlink should respond to them. + + Signed-off-by: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 341546f5ad6fce584531f744853a5807a140f2a9 +Author: NeilBrown +Date: Sat Mar 25 03:07:56 2006 -0800 + + [PATCH] Update some VFS documentation + + Flesh out the description of the address_space operations. + + Signed-off-by: Neil Brown + Cc: Avishay Traeger + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d5ee4ea8334368b7d284a7d82855f6f16ba599b4 +Author: Benoit Boissinot +Date: Sat Mar 25 03:07:54 2006 -0800 + + [PATCH] indirect_print_item() warning fix + + fs/reiserfs/item_ops.c: In function 'indirect_print_item': + fs/reiserfs/item_ops.c:278: warning: 'num' may be used uninitialized in this function + + (akpm: this is probably just gcc being dumb) + + Signed-off-by: Benoit Boissinot + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 66777b795ca49f0e8708f1953022449e7e2acb48 +Author: Dave Jones +Date: Sat Mar 25 03:07:53 2006 -0800 + + [PATCH] remove dead address from maintainers list. + + Mailing this address gives.. Sorry your message to max_mk@yahoo.com cannot + be delivered. This account has been disabled or discontinued [#102]. + mta129.mail.re4.yahoo.com) + + Signed-off-by: Dave Jones + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a5315b0e7fbc028f6e6443cf7fb67b5881e7fa3 +Author: Jamie Lokier +Date: Sat Mar 25 03:07:53 2006 -0800 + + [PATCH] Remova long-incorrect address for Jamie Lokier + + Nice place isn't it? I've lived in 7 other houses since then. + + Signed-off-by: Jamie Lokier + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5c98d29ae4d8cb0e2ce78b82b2c1957bcfd7dbd3 +Author: Adrian Bunk +Date: Sat Mar 25 03:07:52 2006 -0800 + + [PATCH] drivers/char/ipmi/ipmi_msghandler.c: fix a memory leak + + The Coverity checker found this memory leak. + + Signed-off-by: Adrian Bunk + Acked-by: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7e3176555003a45318010d9820eb5ad1abb596bf +Author: Adrian Bunk +Date: Sat Mar 25 03:07:51 2006 -0800 + + [PATCH] md/bitmap.c:bitmap_mask_state(): fix inconsequent NULL checking + + We dereference bitmap both one line above and one line below this check + rendering this check quite useless. + + Spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Cc: Alasdair G Kergon + Cc: Neil Brown + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3cdc409c169c9f2155151eea82cb9868e4d62788 +Author: Adrian Bunk +Date: Sat Mar 25 03:07:50 2006 -0800 + + [PATCH] reiserfs/xattr_acl.c:reiserfs_get_acl(): make size an int + + The Coverity checker wasn't happy seeing a size_t compared with -ENODATA + and -ENOSYS. + + Since the only place where size is set is through the result of + reiserfs_xattr_get() which is an int, we could simply make size an int. + + Signed-off-by: Adrian Bunk + Cc: Jeff Mahoney + Cc: Chris Mason + Cc: Hans Reiser + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 340e48e662dc9bf79cdd9dc755cb2eb2bad580cd +Author: Zdenek Pavlas +Date: Sat Mar 25 03:07:49 2006 -0800 + + [PATCH] BLK_DEV_INITRD: do not require BLK_DEV_RAM=y + + Initramfs initrd images do not need a ramdisk device, so remove this + restriction in Kconfig. BLK_DEV_RAM=n saves about 13k on i386. Also + without ramdisk device there's no need for "dry run", so initramfs unpacks + much faster. + + People using cramfs, squashfs, or gzipped ext2/minix initrd images are + probably smart enough not to turn off ramdisk support by accident. + + Cc: Al Viro + Cc: Christoph Hellwig + Cc: "H. Peter Anvin" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 05eeae208d08a05a6980cf2ff61f02843c0955fd +Author: Andrew Morton +Date: Sat Mar 25 03:07:48 2006 -0800 + + [PATCH] find_task_by_pid() needs tasklist_lock + + A couple of places are forgetting to take it. + + The kswapd case is probably unimportant. keventd_create_kthread() was racy. + + The whole thing is a bit flakey: you start a kernel thread, get its pid from + kernel_thread() then look up its task_struct. + + a) It assumes that pid recycling takes a "long" time. + + b) We get a task_struct but no reference was taken on it. The owner of the + kswapd and kthread task_struct*'s must assume that the new thread won't + exit unexpectedly. Because if it does, they're left holding dead memory + and any attempt to control or stop that task will crash. + + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c1f5a1944657ba6abe375e3bb2a3238a46849f70 +Author: Kirk True +Date: Sat Mar 25 03:07:47 2006 -0800 + + [PATCH] ext3: Fix debug logging-only compilation error + + When EXT3FS_DEBUG is #define-d, the compile breaks due to #include file + issues. + + Signed-off-by: Kirk True + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f1a136e0d098a4478236a1c24f9a57db5abf0755 +Author: Jesper Juhl +Date: Sat Mar 25 03:07:46 2006 -0800 + + [PATCH] kallsyms: handle malloc() failure + + This fixes coverity bugs #398 and #397 + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2ab13460852e65c2ec0e77000baba5e859a6a2cf +Author: Kirill Korotaev +Date: Sat Mar 25 03:07:45 2006 -0800 + + [PATCH] Reduce sched latency in shrink_dcache_sb() + + This patch reduces scheduling latency in shrink_dcache_sb() noticed during + remounting of big partitions with many cached dentries. The same latency + fix was applied to select_parent() long ago. + + Signed-off-by: Denis Lunev + Signed-off-by: Pavel Emelianov + Signed-off-by: Kirill Korotaev + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4ffc84442572669727dc4fcd976582508eaf23e7 +Author: OGAWA Hirofumi +Date: Sat Mar 25 03:07:44 2006 -0800 + + [PATCH] Move cond_resched() after iput() in sync_sb_inodes() + + In here, I think the following order is more cache-friendly. + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d25b9a1ff0741e71a46f37f45263b5ddcbc948c4 +Author: OGAWA Hirofumi +Date: Sat Mar 25 03:07:44 2006 -0800 + + [PATCH] freeze_bdev() cleanup + + freeze_bdev() uses a fsync_super() without sync_blockdev(). This patch + makes __fsync_super() and shares it. + + Signed-off-by: OGAWA Hirofumi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 11b8448751ba114416c63899638a8e473ebd21e7 +Author: Denis Vlasenko +Date: Sat Mar 25 03:07:42 2006 -0800 + + [PATCH] fix messages in fs/minix + + Believe it or not, but in fs/minix/*, the oldest filesystem in the kernel, + something still can be fixed: + + printk("new_inode: bit already set"); + + "\n" is missing! + + While at it, I also removed periods from the end of error messages and made + capitalization uniform. Also s/i-node/inode/, s/printk (/printk(/ + + Signed-ff-by: Denis Vlasenko + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d4eb82c783992551c574580eb55fddc8bb006ad0 +Author: Chris Wright +Date: Sat Mar 25 03:07:41 2006 -0800 + + [PATCH] make cap_ptrace enforce PTRACE_TRACME checks + + PTRACE_TRACEME doesn't have proper capabilities validation when parent is + less privileged than child. Issue pointed out by Ram Gupta + . + + Note: I haven't identified a strong security issue, and it's a small ABI + change that could break apps that rely on existing behaviour (which allows + parent that is less privileged than child to ptrace when child does + PTRACE_TRACEME). + + Signed-off-by: Chris Wright + Cc: Ram Gupta + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 12b5989be10011387a9da5dee82e5c0d6f9d02e7 +Author: Chris Wright +Date: Sat Mar 25 03:07:41 2006 -0800 + + [PATCH] refactor capable() to one implementation, add __capable() helper + + Move capable() to kernel/capability.c and eliminate duplicate + implementations. Add __capable() function which can be used to check for + capabiilty of any process. + + Signed-off-by: Chris Wright + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 77d47582c2345e071df02afaf9191641009287c4 +Author: Adrian Bunk +Date: Sat Mar 25 03:07:39 2006 -0800 + + [PATCH] add a proper prototype for setup_arch() + + This patch adds a proper prototype for setup_arch() in init.h. + + This patch is based on a patch by Ben Dooks . + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f348d70a324e15afc701a494f32ec468abb7d1eb +Author: Davide Libenzi +Date: Sat Mar 25 03:07:39 2006 -0800 + + [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications + + Implement the half-closed devices notifiation, by adding a new POLLRDHUP + (and its alias EPOLLRDHUP) bit to the existing poll/select sets. Since the + existing POLLHUP handling, that does not report correctly half-closed + devices, was feared to be changed, this implementation leaves the current + POLLHUP reporting unchanged and simply add a new bit that is set in the few + places where it makes sense. The same thing was discussed and conceptually + agreed quite some time ago: + + http://lkml.org/lkml/2003/7/12/116 + + Since this new event bit is added to the existing Linux poll infrastruture, + even the existing poll/select system calls will be able to use it. As far + as the existing POLLHUP handling, the patch leaves it as is. The + pollrdhup-2.6.16.rc5-0.10.diff defines the POLLRDHUP for all the existing + archs and sets the bit in the six relevant files. The other attached diff + is the simple change required to sys/epoll.h to add the EPOLLRDHUP + definition. + + There is "a stupid program" to test POLLRDHUP delivery here: + + http://www.xmailserver.org/pollrdhup-test.c + + It tests poll(2), but since the delivery is same epoll(2) will work equally. + + Signed-off-by: Davide Libenzi + Cc: "David S. Miller" + Cc: Michael Kerrisk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 501f2499b897ca4be68b1acc7a4bc8cf66f5fd24 +Author: Bryan Holty +Date: Sat Mar 25 03:07:37 2006 -0800 + + [PATCH] IRQ: prevent enabling of previously disabled interrupt + + This fix prevents re-disabling and enabling of a previously disabled + interrupt. On an SMP system with irq balancing enabled; If an interrupt is + disabled from within its own interrupt context with disable_irq_nosync and is + also earmarked for processor migration, the interrupt is blindly moved to the + other processor and enabled without regard for its current "enabled" state. + If there is an interrupt pending, it will unexpectedly invoke the irq handler + on the new irq owning processor (even though the irq was previously disabled) + + The more intuitive fix would be to invoke disable_irq_nosync and + enable_irq, but since we already have the desc->lock from __do_IRQ, we + cannot call them directly. Instead we can use the same logic to disable + and enable found in disable_irq_nosync and enable_irq, with regards to the + desc->depth. + + This now prevents a disabled interrupt from being re-disabled, and more + importantly prevents a disabled interrupt from being incorrectly enabled on + a different processor. + + Signed-off-by: Bryan Holty + Cc: Andi Kleen + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c777ac5594f772ac760e02c3ac71d067616b579d +Author: Andrew Morton +Date: Sat Mar 25 03:07:36 2006 -0800 + + [PATCH] irq: uninline migration functions + + Uninline some massive IRQ migration functions. Put them in the new + kernel/irq/migration.c. + + Cc: Andi Kleen + Cc: "Luck, Tony" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4cae59d2e85c1ee2ab1ee284db1945c5394cd965 +Author: Andrew Morton +Date: Sat Mar 25 03:07:35 2006 -0800 + + [PATCH] ads7846 build fix + + sparc32: + + drivers/input/touchscreen/ads7846.c: In function `ads7846_read12_ser': + drivers/input/touchscreen/ads7846.c:206: warning: implicit declaration of function `disable_irq' + drivers/input/touchscreen/ads7846.c:208: warning: implicit declaration of function `enable_irq' + + Cc: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 276ad0c109e69a32b634f0550d096f9381135b7d +Author: Andrew Morton +Date: Sat Mar 25 03:07:35 2006 -0800 + + [PATCH] tpm: sparc32 build fix + + In file included from drivers/char/tpm/tpm_nsc.c:23: + drivers/char/tpm/tpm.h: In function `tpm_read_index': + drivers/char/tpm/tpm.h:92: warning: implicit declaration of function `outb' + drivers/char/tpm/tpm.h:93: warning: implicit declaration of function `inb' + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 44575b2f0873c30ba6010e58048b317474f2bbd0 +Author: Pavel Machek +Date: Sat Mar 25 03:07:34 2006 -0800 + + [PATCH] collie: fix missing pcmcia bits + + This adds missing bits of collie (sharp sl-5500) PCMCIA support and + MFD support. + + Signed-off-by: Pavel Machek + Acked-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 36a95bf5cd2c33280282da18eff0180a99cff201 +Author: Pavel Machek +Date: Sat Mar 25 03:07:33 2006 -0800 + + [PATCH] fix hardcoded values in collie frontlight + + In frontlight support, we should really use values from flash-ROM instead + of hardcoding our own. Cleanup includes. + + Signed-off-by: Pavel Machek + Acked-by: Richard Purdie + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bd34596239bfff615db7be7812d84c4ff6093f63 +Author: Adrian Bunk +Date: Sat Mar 25 03:07:32 2006 -0800 + + [PATCH] remove MAINTAINERS entry for rtlinux + + It's already big enough and there's no reason to list maintainers of + external patches. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c654d60e8f0ea13e35b15cff54c0e473b8b162be +Author: Jan Beulich +Date: Sat Mar 25 03:07:31 2006 -0800 + + [PATCH] adjust /dev/{kmem,mem,port} write handlers + + The /dev/mem and /dev/kmem write handlers weren't fully POSIX compliant in + that they wouldn't always force the file pointer to be updated when + returning success status. + + The /dev/port write handler was inconsistent with the /dev/mem and + /dev/kmem handlers in that when encountering a -EFAULT condition after + already having written a number of items it would return -EFAULT rather + than the number of bytes written. + + Signed-off-by: Jan Beulich + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 58bf6a2db2a4a1b41712674d9165510180259dec +Author: Kirk True +Date: Sat Mar 25 03:07:30 2006 -0800 + + [PATCH] smbfs: Fix debug logging-only compilation error + + When SMBFS_DEBUG_VERBOSE is #define-d, the compile breaks: + + fs/smbfs/inode.c:217: error: aggregate value used where an integer was expected + + This is a simple matter of using the .tv_sec attribute of struct time_spec. + + Signed-off-by: Kirk True + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ed1f559b9b9896ad40fe9606e0946efa590d7648 +Author: Eric Van Hensbergen +Date: Sat Mar 25 03:07:30 2006 -0800 + + [PATCH] 9p: update documentation + + Fix documentation to match current implementation. + + Signed-off-by: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 67543e508d74ad1a8e80290580c9d1440beba4d9 +Author: Eric Van Hensbergen +Date: Sat Mar 25 03:07:29 2006 -0800 + + [PATCH] 9p: fix name consistency problems + + There were a number of conflicting naming schemes used in the v9fs project. + The directory was fs/9p, but MAINTAINERS and Documentation referred to + v9fs. The module name itself was 9p2000, and the file system type was 9P. + This patch attempts to clean that up, changing all references to 9p in + order to match the directory name. We'll also start using 9p instead of + v9fs as our patch prefix. + + There is also a minor consistency cleanup in the options changing the name + option to uname in order to more closely match the Plan 9 options. + + Signed-off-by: Eric Van Hensbergevan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 42e8c509cfa3d92b3dcbfe95edf6be00e5d4b0eb +Author: Eric Van Hensbergen +Date: Sat Mar 25 03:07:28 2006 -0800 + + [PATCH] v9fs: update license boilerplate + + Update license boilerplate to specify GPLv2 and remove the (at your option + clause). This change was agreed to by all the copyright holders (approvals + can be found on v9fs-developer mailing list). + + Signed-off-by: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c0291a05f8e6a72c9807b0e2a369ee82bec659c3 +Author: Eugene Teo +Date: Sat Mar 25 03:07:27 2006 -0800 + + [PATCH] v9fs: fix vfs_inode dereference before NULL check + + __getname, which in turn will call kmem_cache_alloc, may return NULL. + + Coverity bug #977 + + Signed-off-by: Eugene Teo + Signed-off-by: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 16cce6d27ef52e00cc124196046bbae7150024c1 +Author: Latchesar Ionkov +Date: Sat Mar 25 03:07:26 2006 -0800 + + [PATCH] v9fs: add extension field to Tcreate + + Implement a new way of creating special files. Instead of Tcreate+Twstat, + add one more field to Tcreate that contains special file description. + + Signed-off-by: Latchesar Ionkov + Signed-off-by: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5174fdab9f58181249debab6e959ae4fd4abd0ed +Author: Latchesar Ionkov +Date: Sat Mar 25 03:07:25 2006 -0800 + + [PATCH] v9fs: print 9p messages + + Print 9p messages. + + Signed-off-by: Latchesar Ionkov + Cc: Eric Van Hensbergen + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4a26c2429b8c1ab2be140a4b29aaf16d4dcd8f92 +Author: Russ Cox +Date: Sat Mar 25 03:07:24 2006 -0800 + + [PATCH] v9fs: rename tids to tags to be consistent with Plan 9 documentation + + The code talks about these things called tids, which I eventually figured + out are tags. + + Signed-off-by: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 27979bb2ff748613dba96ae66392a76fb0678527 +Author: Russ Cox +Date: Sat Mar 25 03:07:23 2006 -0800 + + [PATCH] v9fs: consolidate trans_sock into trans_fd + + Here is a new trans_fd.c that replaces the current trans_fd.c and + trans_sock.c. + + Signed-off-by: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4a2f0acf0f951599fd9e4af95cf9483449970c26 +Author: Andrew Morton +Date: Sat Mar 25 03:07:22 2006 -0800 + + [PATCH] kconfig: clarify memory debug options + + The Kconfig text for CONFIG_DEBUG_SLAB and CONFIG_DEBUG_PAGEALLOC have always + seemed a bit confusing. Change them to: + + CONFIG_DEBUG_SLAB: "Debug slab memory allocations" + CONFIG_DEBUG_PAGEALLOC: "Debug page memory allocations" + + Cc: "David S. Miller" + Cc: Hirokazu Takata + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 33d8675ea66e79d21da3ed64ce88dfb2a18bc6a7 +Author: Bjorn Helgaas +Date: Sat Mar 25 03:07:20 2006 -0800 + + [PATCH] amiga: fix driver_register() return handling, remove zorro_module_init() + + Remove the assumption that driver_register() returns the number of devices + bound to the driver. In fact, it returns zero for success or a negative + error value. + + zorro_module_init() used the device count to automatically unregister and + unload drivers that found no devices. That might have worked at one time, + but has been broken for some time because zorro_register_driver() returned + either a negative error or a positive count (never zero). So it could only + unregister on failure, when it's not needed anyway. + + This functionality could be resurrected in individual drivers by counting + devices in their .probe() methods. + + Signed-off-by: Bjorn Helgaas + Cc: Geert Uytterhoeven + Cc: Roman Zippel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c2f6fabb2ed3b869bc254c6cdc73d6beaaaf700f +Author: Bjorn Helgaas +Date: Sat Mar 25 03:07:19 2006 -0800 + + [PATCH] EISA: tidy-up driver_register() return value + + Remove the assumption that driver_register() returns the number of devices + bound to the driver. In fact, it returns zero for success or a negative + error value. + + Signed-off-by: Bjorn Helgaas + Acked-by: Jeff Garzik + Acked-by: Marc Zyngier + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e51c01b08474ea454a965a937fff0407ab6714c7 +Author: Bjorn Helgaas +Date: Sat Mar 25 03:07:17 2006 -0800 + + [PATCH] hp300: fix driver_register() return handling, remove dio_module_init() + + Remove the assumption that driver_register() returns the number of devices + bound to the driver. In fact, it returns zero for success or a negative + error value. + + dio_module_init() used the device count to automatically unregister and + unload drivers that found no devices. That might have worked at one time, + but has been broken for some time because dio_register_driver() returned + either a negative error or a positive count (never zero). So it could only + unregister on failure, when it's not needed anyway. + + This functionality could be resurrected in individual drivers by counting + devices in their .probe() methods. + + Signed-off-by: Bjorn Helgaas + Cc: Philip Blundell + Cc: Jochen Friedrich + Cc: "Antonino A. Daplas" + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5930860296ca438071d3824bf7306ad0dfd33fc1 +Author: Alexander Zarochentsev +Date: Sat Mar 25 03:07:16 2006 -0800 + + [PATCH] reiserfs: use balance_dirty_pages_ratelimited_nr in reiserfs_file_write() + + Use the new balance_dirty_pages_ratelimited_nr in reiserfs "largeio" file + write. + + Signed-off-by: Hans Reiser + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c1cda48af8b330a23206eceef3bd030b53c979cd +Author: Andrew Morton +Date: Sat Mar 25 03:07:15 2006 -0800 + + [PATCH] initcall failure reporting + + We presently ignore the return values from initcalls. But that can carry + useful debugging information. So print it out if it's non-zero. + + It turns out the -ENODEV happens quite a lot, due to built-in drivers which + have no hardware to drive. So suppress that unless initcall_debug was + specified. + + Also make the warning message more friendly by printing the name of the + initcall function. + + Also drop the KERN_DEBUG from the initcall_debug message. If we specified + inticall_debug then we obviously want to see the messages. + + Acked-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cd02b966bfcad12d1b2e265dc8dbc331d4c184c4 +Author: Vladimir V. Saveliev +Date: Sat Mar 25 03:07:15 2006 -0800 + + [PATCH] reiserfs: cleanups + + Clean up several places where gcc issues warnings when -W is specified. + Thanks to Neil for finding that. + + Signed-off-by: Vladimir V. Saveliev + Cc: Neil Brown + Signed-off-by: Hans Reiser + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e6a6784627483381d012b507bb0d49809658a1fa +Author: Rene Herman +Date: Sat Mar 25 03:07:13 2006 -0800 + + [PATCH] parport: move PP_MAJOR from ppdev.h to major.h + + Today I wondered about /dev/parport after not seeing anything in + drivers/parport register char-major-99. Having PP_MAJOR in + include/linux/major.h would've allowed me to more quickly determine that it + was the ppdev driver driving these. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1efa64696bc55cc396eefa9838a90d106dfab6bf +Author: Sam Ravnborg +Date: Sat Mar 25 03:07:13 2006 -0800 + + [PATCH] block/floppy: fix section mismatch warnings + + In latest -mm a number of section mismatch warnings are generated for + floppy.o like the following: + + WARNING: drivers/block/floppy.o - Section mismatch: reference to \ + .init.data: from .text between 'init_module' (at offset 0x6976) and \ + 'cleanup_module' + + The warning are caused by a reference to floppy_init() which is __init from + init_module() which is not declared __init. Declaring init_module() _init + fixes this. + + Signed-off-by: Sam Ravnborg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fbd8ad30596409070801832335d3ea8cf1513ded +Author: Sam Ravnborg +Date: Sat Mar 25 03:07:11 2006 -0800 + + [PATCH] ide: fix section mismatch warning + + In latest -mm ide-code.o gave a number of warnings like the following: + + WARNING: drivers/ide/ide-core.o - Section mismatch: reference to \ + .init.text: from .text between 'init_module' (at offset 0x1f97) and \ + 'cleanup_module' + + The warning was caused by init_module() calling parse_option() and + ide_init() both declared __init. + + Declaring init_module() __init fixes the warnings. + + Signed-off-by: Sam Ravnborg + Cc: Bartlomiej Zolnierkiewicz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c32ccd87bfd1414b0aabfcd8dbc7539ad23bcbaa +Author: Nick Piggin +Date: Sat Mar 25 03:07:09 2006 -0800 + + [PATCH] inotify: lock avoidance with parent watch status in dentry + + Previous inotify work avoidance is good when inotify is completely unused, + but it breaks down if even a single watch is in place anywhere in the + system. Robin Holt notices that udev is one such culprit - it slows down a + 512-thread application on a 512 CPU system from 6 seconds to 22 minutes. + + Solve this by adding a flag in the dentry that tells inotify whether or not + its parent inode has a watch on it. Event queueing to parent will skip + taking locks if this flag is cleared. Setting and clearing of this flag on + all child dentries versus event delivery: this is no in terms of race + cases, and that was shown to be equivalent to always performing the check. + + The essential behaviour is that activity occuring _after_ a watch has been + added and _before_ it has been removed, will generate events. + + Signed-off-by: Nick Piggin + Cc: Robert Love + Cc: John McCutchan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bf36b9011e3c5b2739f9da2f6de8a6fa3edded32 +Author: Andrew Morton +Date: Sat Mar 25 03:07:08 2006 -0800 + + [PATCH] sysrq cleanup + + sysrq.c is fairly revolting. Fix. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 21e4f9526989009282fe26280560ff3fbc21c9e0 +Author: Jesper Juhl +Date: Sat Mar 25 03:07:08 2006 -0800 + + [PATCH] fix 'defined but not used' warning in net/rxrpc/main.c::rxrpc_initialise + + net/rxrpc/main.c: In function `rxrpc_initialise': + net/rxrpc/main.c:83: warning: label `error_proc' defined but not used + + Signed-off-by: Jesper Juhl + Acked-by: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2c3ca07d2f691a463b715c83122c87f57c2a7b7c +Author: Andrey Borzenkov +Date: Sat Mar 25 03:07:07 2006 -0800 + + [PATCH] Fix EDD to properly ignore signature of non-existing drives + + Some BIOSes do not always set CF on error before return from int13. The + patch adds additional check for status being zero (AH == 0). + + Signed-off-by: Andrey Borzenkov + Cc: Matt Domsch + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9871728b756646e0d758a966ba00f2c0ff812817 +Author: Adrian Bunk +Date: Sat Mar 25 03:07:06 2006 -0800 + + [PATCH] kernel/params.c: make param_array() static + + param_array() in kernel/params.c can now become static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8d3b33f67fdc0fb364a1ef6d8fbbea7c2e4e6c98 +Author: Rusty Russell +Date: Sat Mar 25 03:07:05 2006 -0800 + + [PATCH] Remove MODULE_PARM + + MODULE_PARM was actually breaking: recent gcc version optimize them out as + unused. It's time to replace the last users, which are generally in the + most unloved drivers anyway. + + Signed-off-by: Rusty Russell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c721bccece2b3abca4f7b0b95108e68b78445cec +Author: Andrew Morton +Date: Sat Mar 25 03:07:04 2006 -0800 + + [PATCH] hysdn: remove custom types + + hysdn defines its own types: ulong, uint, uchar and word. + + Problem is, the module_param macros rely upon some of those identifiers having + special meanings too. The net effect is that module_param() and friends + cannot be used in ISDN because of this namespace clash. + + So remove the hysdn-private defines and open-code them all. + + Cc: Karsten Keil + Cc: Rusty Russell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5b7b18ccdeb17dcc4a2ddbf4ce87094c7365f4b9 +Author: Adrian Bunk +Date: Sat Mar 25 03:07:04 2006 -0800 + + [PATCH] drivers/block/nbd.c: don't defer compile error to runtime + + If we can detect a problem at compile time, the compilation should fail. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1aef821a6b3aeca8c19d06aee012ed9db617d1e3 +Author: Thomas Koeller +Date: Sat Mar 25 03:07:03 2006 -0800 + + [PATCH] constify tty flip buffer handling + + Add a couple of 'const' qualifiers to the TTY flip buffer APIs, where + appropriate. + + Signed-off-by: Thomas Koeller + Acked-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c41a24ce1fe13638732885859011321af862960a +Author: Jesper Juhl +Date: Sat Mar 25 03:07:02 2006 -0800 + + [PATCH] ISDN: fix copy_to_user() unused result warning in isdn_ppp + + drivers/isdn/i4l/isdn_ppp.c:785: warning: ignoring return value of `copy_to_user', declared with attribute warn_unused_result + + Signed-off-by: Jesper Juhl + Signed-off-by: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9a56c213929d83139fd1e12727e1037d71b519f8 +Author: Oleg Drokin +Date: Sat Mar 25 03:07:02 2006 -0800 + + [PATCH] Add lookup_instantiate_filp usage warning + + I think it would be nice to put an usage warning in header of + lookup_instantiate_filp() to indicate it is unsafe to use it on anything + but regular files (even that is potentially unsafe, but there your ->open() + is usually in your hands anyway), so that others won't fall into the same + trap I did. + + Signed-off-by: Oleg Drokin + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b500531e6f5f234ed267bd7060ee06d144faf0ca +Author: Oleg Drokin +Date: Sat Mar 25 03:07:01 2006 -0800 + + [PATCH] Introduce FMODE_EXEC file flag + + Introduce FMODE_EXEC file flag, to indicate that file is being opened for + execution. This is useful for distributed filesystems to maintain + consistent behavior for returning ETXTBUSY when opening for write and + execution happens on different nodes. + + akpm: + + Needed by Lustre at present. I assume their objective to to work towards + being able to install Lustre on an unmodified distro kernel, which seems + sane. It should have zero runtime cost. + + Trond and Chuck indicate that NFS4 can probably use this too, for the same + thing. + + Steven says it's also on the GFS todo list. + + Signed-off-by: Oleg Drokin + Cc: Trond Myklebust + Cc: Chuck Lever + Cc: Steven Whitehouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 619d5d8a2b3f800ea3a0301a58ede570684956b0 +Author: Jeff Mahoney +Date: Sat Mar 25 03:07:00 2006 -0800 + + [PATCH] reiserfs: reiserfs_file_write() will lose error code when a 0-length write occurs w/ O_SYNC + + When an error occurs in reiserfs_file_write before any data is written, and + O_SYNC is set, the return code of generic_osync_write will overwrite the + error code, losing it. + + This patch ensures that generic_osync_inode() doesn't run under an error + condition, losing the error. This duplicates the logic from + generic_file_buffered_write(). + + Signed-off-by: Jeff Mahoney + Cc: Chris Mason + Cc: Jeff Mahoney + Cc: Alexander Zarochentsev + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a44c94a7b82a425b73384c104d5cb3dd3caa075e +Author: Alexander Zarochentsev +Date: Sat Mar 25 03:06:59 2006 -0800 + + [PATCH] reiserfs: handle trans_id overflow + + Reiserfs does not handle transaction ID overflow correctly. Transaction ID + == 0 causes reiserfs to crash. The patch fixes all places where the + transaction ID is incremented. + + Signed-off-by: Alexander Zarochentsev + Signed-off-by: Hans Reiser + Cc: Chris Mason + Cc: Jeff Mahoney + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 23f9e0f891c9b159a199629d4426f6ae0c383508 +Author: Alexander Zarochentzev +Date: Sat Mar 25 03:06:57 2006 -0800 + + [PATCH] reiserfs: fix transaction overflowing + + This patch fixes a bug in reiserfs truncate. A transaction might overflow + when truncating long highly fragmented file. The fix is to split + truncation into several transactions to avoid overflowing. + + Signed-off-by: Vladimir V. Saveliev + Cc; Charles McColgan + Cc: Alexander Zarochentsev + Cc: Hans Reiser + Cc: Chris Mason + Cc: Jeff Mahoney + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bdfc326614b90e7bc47ee4a8fed05988555f0169 +Author: Adrian Bunk +Date: Sat Mar 25 03:06:56 2006 -0800 + + [PATCH] fs/inode.c: make iprune_mutex static + + There's no reason for iprune_mutex being global. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ca5734db60630f7c5564a61a5b9034c1bb369c3d +Author: Jan Kara +Date: Sat Mar 25 03:06:55 2006 -0800 + + [PATCH] Small cleanup in quota.h + + Remove unused quota flag. + + Signed-off-by: Jan Kara + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4af4c52f34606bdaab6930a845550c6fb02078a4 +Author: Oleg Drokin +Date: Sat Mar 25 03:06:54 2006 -0800 + + [PATCH] Missed error checking for intent's filp in open_namei(). + + It seems there is error check missing in open_namei for errors returned + through intent.open.file (from lookup_instantiate_filp). + + If there is plain open performed, then such a check done inside + __path_lookup_intent_open called from path_lookup_open(), but when the open + is performed with O_CREAT flag set, then __path_lookup_intent_open is only + called with LOOKUP_PARENT set where no file opening can occur yet. + + Later on lookup_hash is called where exact opening might take place and + intent.open.file may be filled. If it is filled with error value of some + sort, then we get kernel attempting to dereference this error value as + address (and corresponding oops) in nameidata_to_filp() called from + filp_open(). + + While this is relatively simple to workaround in ->lookup() method by just + checking lookup_instantiate_filp() return value and returning error as + needed, this is not so easy in ->d_revalidate(), where we can only return + "yes, dentry is valid" or "no, dentry is invalid, perform full lookup + again", and just returning 0 on error would cause extra lookup (with + potential extra costly RPCs). + + So in short, I believe that there should be no difference in error handling + for opening a file and creating a file in open_namei() and propose this + simple patch as a solution. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8d8c85117fbcbaea7718870ad4b1ddd12940d9b0 +Author: Andrew Morton +Date: Sat Mar 25 03:06:53 2006 -0800 + + [PATCH] jbd: convert kjournald to kthread API + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e3df18983ea090a2e00dd5c2c6167bb431a0e0a2 +Author: Andrew Morton +Date: Sat Mar 25 03:06:53 2006 -0800 + + [PATCH] jbd: embed j_commit_timer in journal struct + + The kjournald timer is currently on the kernel thread's stack and the journal + structure points at it. Save a pointer hop by moving the timer into the + journal structure. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1d9b7d97d6661edb44ce08f17e47c66d4ac20e34 +Author: David Howells +Date: Sat Mar 25 03:06:52 2006 -0800 + + [PATCH] Keys: Replace duplicate non-updateable keys rather than failing + + Cause an attempt to add a duplicate non-updateable key (such as a keyring) to + a keyring to discard the extant copy in favour of the new one rather than + failing with EEXIST: + + # do the test in an empty session + keyctl session + # create a new keyring called "a" and attach to session + keyctl newring a @s + # create another new keyring called "a" and attach to session, + # displacing the keyring added by the second command: + keyctl newring a @s + + Without this patch, the third command will fail. + + For updateable keys (such as those of "user" type), the update method will + still be called rather than a new key being created. + + Signed-off-by: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3dccff8dc00994428777f483922058c554db85bd +Author: David Howells +Date: Sat Mar 25 03:06:51 2006 -0800 + + [PATCH] Keys: Fix key quota management on key allocation + + Make key quota detection generate an error if either quota is exceeded rather + than only if both quotas are exceeded. + + Signed-off-by: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a7d06ca7b626c9257bee4439d9d80a7e44ae237e +Author: Chen, Kenneth W +Date: Sat Mar 25 03:06:50 2006 -0800 + + [PATCH] x86: HUGETLBFS and DEBUG_PAGEALLOC are incompatible + + DEBUG_PAGEALLOC is not compatible with hugetlb page support. That debug + option turns off PSE. Once it is turned off in CR4, the cpu will ignore + pse bit in the pmd and causing infinite page-not- present faults. + + So disable DEBUG_PAGEALLOC if the user selected hugetlbfs. + + Signed-off-by: Ken Chen + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d3f4aaa3d7b4152dac28751ee902f769d03289a1 +Author: Ashok Raj +Date: Sat Mar 25 03:06:50 2006 -0800 + + [PATCH] x86: make CONFIG_HOTPLUG_CPU depend on !X86_PC + + Make CONFIG_HOTPLUG_CPU depend on !X86_PC, so we need to turn on either + CONFIG_GENERICARCH, CONFIG_BIGSMP or any other subarch except X86_PC when + CONFIG_HOTPLUG_CPU=y + + With 2.6.15+ kernels when CONFIG_HOTPLUG_CPU is turned on we switch to + bigsmp mode for sending IPI's and ioapic configurations that caused the + following error message. + + >> More than 8 CPUs detected and CONFIG_X86_PC cannot handle it. + >> Use CONFIG_X86_GENERICARCH or CONFIG_X86_BIGSMP. + + Originally bigsmp was added just to handle >8 cpus, but now with hotplug + cpu support we need to use bigsmp mode (why? see below), that cause the + above error message even if there were less than 8 cpus in the system. + + The message is bogus, but we are cannot use logical flat mode due to issues + with broadcast IPI can confuse a CPU just comming up. We use flat physical + mode just like x86_64 case. More details on why bigsmp now uses flat + physical mode (vs. cluster mode) in following link. + + http://marc.theaimsgroup.com/?l=linux-kernel&m=113261865814107&w=2 + + Signed-off-by: Ashok Raj + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f5335c0f1bcba16907972b66b905f62402433e23 +Author: Anton Blanchard +Date: Sat Mar 25 03:06:49 2006 -0800 + + [PATCH] quieten zone_pcp_init + + In zone_pcp_init we print out all zones even if they are empty: + + On node 0 totalpages: 245760 + DMA zone: 245760 pages, LIFO batch:31 + DMA32 zone: 0 pages, LIFO batch:0 + Normal zone: 0 pages, LIFO batch:0 + HighMem zone: 0 pages, LIFO batch:0 + + To conserve dmesg space why not print only the non zero zones. + + Signed-off-by: Anton Blanchard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d784124cfe9377c1a24d8efba31401f81c7c11f9 +Author: Christoph Lameter +Date: Sat Mar 25 03:06:48 2006 -0800 + + [PATCH] mm: make page migration dependent on swap and NUMA + + The page migration code could function without NUMA but we currently have + no users for the non-NUMA case. + + Signed-off-by: Christoph Lameter + Cc: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0718dc2a82c865ca75975acabaf984057f9fd488 +Author: Christoph Lameter +Date: Sat Mar 25 03:06:47 2006 -0800 + + [PATCH] slab: fix memory leak in alloc_kmemlist + + We have had this memory leak for a while now. The situation is complicated + by the use of alloc_kmemlist() as a function to resize various caches by + do_tune_cpucache(). + + What we do here is first of all make sure that we deallocate properly in + the loop over all the nodes. + + If we are just resizing caches then we can simply return with -ENOMEM if an + allocation fails. + + If the cache is new then we need to rollback and remove all earlier + allocations. + + We detect that a cache is new by checking if the link to the global cache + chain has been setup. This is a bit hackish .... + + (also fix up too overlong lines that I added in the last patch...) + + Signed-off-by: Christoph Lameter + Cc: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cafeb02e098ecd58fb0bd797b2c9fbba3edf54f8 +Author: Christoph Lameter +Date: Sat Mar 25 03:06:46 2006 -0800 + + [PATCH] alloc_kmemlist: Some cleanup in preparation for a real memory leak fix + + Inspired by Jesper Juhl's patch from today + + 1. Get rid of err + We do not set it to anything else but zero. + + 2. Drop the CONFIG_NUMA stuff. + There are definitions for alloc_alien_cache and free_alien_cache() + that do the right thing for the non NUMA case. + + 3. Better naming of variables. + + 4. Remove redundant cachep->nodelists[node] expressions. + + Signed-off-by: Christoph Lameter + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e00946fe2351307eb3eda7a3343530f6d2d1af2e +Author: Christoph Lameter +Date: Sat Mar 25 03:06:45 2006 -0800 + + [PATCH] slab: Bypass free lists for __drain_alien_cache() + + __drain_alien_cache() currently drains objects by freeing them to the + (remote) freelists of the original node. However, each node also has a + shared list containing objects to be used on any processor of that node. + We can avoid a number of remote node accesses by copying the pointers to + the free objects directly into the remote shared array. + + And while we are at it: Skip alien draining if the alien cache spinlock is + already taken. + + Kiran reported that this is a performance benefit. + + Signed-off-by: Christoph Lameter + Cc: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ded175a4b7a4548f3358dcf5f3ad65f63cdb4ed +Author: Christoph Lameter +Date: Sat Mar 25 03:06:44 2006 -0800 + + [PATCH] slab: add transfer_objects() function + + slabr_objects() can be used to transfer objects between various object + caches of the slab allocator. It is currently only used during + __cache_alloc() to retrieve elements from the shared array. We will be + using it soon to transfer elements from the alien caches to the remote + shared array. + + Signed-off-by: Christoph Lameter + Cc: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c5e3b83e97be4e09961c0af101644643e5d03d17 +Author: Pekka Enberg +Date: Sat Mar 25 03:06:43 2006 -0800 + + [PATCH] mm: use kmem_cache_zalloc + + Convert mm/ to use the new kmem_cache_zalloc allocator. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 40c07ae8daa659b8feb149c84731629386873c16 +Author: Pekka Enberg +Date: Sat Mar 25 03:06:43 2006 -0800 + + [PATCH] slab: optimize constant-size kzalloc calls + + As suggested by Eric Dumazet, optimize kzalloc() calls that pass a + compile-time constant size. Please note that the patch increases kernel + text slightly (~200 bytes for defconfig on x86). + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a8c0f9a41f88da703ade33f9c1626a55c786e8bb +Author: Pekka Enberg +Date: Sat Mar 25 03:06:42 2006 -0800 + + [PATCH] slab: introduce kmem_cache_zalloc allocator + + Introduce a memory-zeroing variant of kmem_cache_alloc. The allocator + already exits in XFS and there are potential users for it so this patch + makes the allocator available for the general public. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 871751e25d956ad24f129ca972b7851feaa61d53 +Author: Al Viro +Date: Sat Mar 25 03:06:39 2006 -0800 + + [PATCH] slab: implement /proc/slab_allocators + + Implement /proc/slab_allocators. It produces output like: + + idr_layer_cache: 80 idr_pre_get+0x33/0x4e + buffer_head: 2555 alloc_buffer_head+0x20/0x75 + mm_struct: 9 mm_alloc+0x1e/0x42 + mm_struct: 20 dup_mm+0x36/0x370 + vm_area_struct: 384 dup_mm+0x18f/0x370 + vm_area_struct: 151 do_mmap_pgoff+0x2e0/0x7c3 + vm_area_struct: 1 split_vma+0x5a/0x10e + vm_area_struct: 11 do_brk+0x206/0x2e2 + vm_area_struct: 2 copy_vma+0xda/0x142 + vm_area_struct: 9 setup_arg_pages+0x99/0x214 + fs_cache: 8 copy_fs_struct+0x21/0x133 + fs_cache: 29 copy_process+0xf38/0x10e3 + files_cache: 30 alloc_files+0x1b/0xcf + signal_cache: 81 copy_process+0xbaa/0x10e3 + sighand_cache: 77 copy_process+0xe65/0x10e3 + sighand_cache: 1 de_thread+0x4d/0x5f8 + anon_vma: 241 anon_vma_prepare+0xd9/0xf3 + size-2048: 1 add_sect_attrs+0x5f/0x145 + size-2048: 2 journal_init_revoke+0x99/0x302 + size-2048: 2 journal_init_revoke+0x137/0x302 + size-2048: 2 journal_init_inode+0xf9/0x1c4 + + Cc: Manfred Spraul + Cc: Alexander Nyberg + Cc: Pekka Enberg + Cc: Christoph Lameter + Cc: Ravikiran Thirumalai + Signed-off-by: Al Viro + DESC + slab-leaks3-locking-fix + EDESC + From: Andrew Morton + + Update for slab-remove-cachep-spinlock.patch + + Cc: Al Viro + Cc: Manfred Spraul + Cc: Alexander Nyberg + Cc: Pekka Enberg + Cc: Christoph Lameter + Cc: Ravikiran Thirumalai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f52ac8fec8a13e207f675b0c16e0d5f800c1c204 +Author: Alessandro Zummo +Date: Sat Mar 25 03:06:37 2006 -0800 + + [PATCH] cirrus ep93xx watchdog driver + + Add a driver for the on-chip watchdog on the cirrus ep93xx series of ARM + CPUs. + + Signed-off-by: Lennert Buytenhek + Cc: Wim Van Sebroeck + Cc: Russell King + Signed-off-by: Alessandro Zummo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 214fda1f6e1b8ef2a5292b0372744037fc80d318 +Author: David Howells +Date: Sat Mar 25 03:06:36 2006 -0800 + + [PATCH] Optimise d_find_alias() + + The attached patch optimises d_find_alias() to only take the spinlock if + there's anything in the the inode's alias list. If there isn't, it returns + NULL immediately. + + With respect to the superblock sharing patch, this should reduce by one the + number of times the dcache_lock is taken by nfs_lookup() for ordinary + directory lookups. + + Only in the case where there's already a dentry for particular directory inode + (such as might happen when another mountpoint is rooted at that dentry) will + the lock then be taken the extra time. + + Signed-off-by: David Howells + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7d99b7d634d81bb372e03e4561c80430aa4cfac2 +Author: Thomas Gleixner +Date: Sat Mar 25 03:06:35 2006 -0800 + + [PATCH] Validate and sanitze itimer timeval from userspace + + According to the specification the timevals must be validated and an + errorcode -EINVAL returned in case the timevals are not in canonical form. + This check was never done in Linux. + + The pre 2.6.16 code converted invalid timevals silently. Negative timeouts + were converted by the timeval_to_jiffies conversion to the maximum timeout. + + hrtimers and the ktime_t operations expect timevals in canonical form. + Otherwise random results might happen on 32 bits machines due to the + optimized ktime_add/sub operations. Negative timeouts are treated as + already expired. This might break applications which work on pre 2.6.16. + + To prevent random behaviour and API breakage the timevals are checked and + invalid timevals sanitized in a simliar way as the pre 2.6.16 code did. + + Invalid timevals are reported with a per boot limited number of kernel + messages so applications which use this misfeature can be corrected. + + After a grace period of one year the sanitizing should be replaced by a + correct validation check. This is also documented in + Documentation/feature-removal-schedule.txt + + The validation and sanitizing is done inside do_setitimer so all callers + (sys_setitimer, compat_sys_setitimer, osf_setitimer) are catched. + + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c08b8a49100715b20e6f7c997e992428b5e06078 +Author: Thomas Gleixner +Date: Sat Mar 25 03:06:33 2006 -0800 + + [PATCH] sys_alarm() unsigned signed conversion fixup + + alarm() calls the kernel with an unsigend int timeout in seconds. The + value is stored in the tv_sec field of a struct timeval to setup the + itimer. The tv_sec field of struct timeval is of type long, which causes + the tv_sec value to be negative on 32 bit machines if seconds > INT_MAX. + + Before the hrtimer merge (pre 2.6.16) such a negative value was converted + to the maximum jiffies timeout by the timeval_to_jiffies conversion. It's + not clear whether this was intended or just happened to be done by the + timeval_to_jiffies code. + + hrtimers expect a timeval in canonical form and treat a negative timeout as + already expired. This breaks the legitimate usage of alarm() with a + timeout value > INT_MAX seconds. + + For 32 bit machines it is therefor necessary to limit the internal seconds + value to avoid API breakage. Instead of doing this in all implementations + of sys_alarm the duplicated sys_alarm code is moved into a common function + in itimer.c + + Signed-off-by: Thomas Gleixner + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 185ae6d7a32721e9062030a9f2d24ed714fa45df +Author: Andrew Morton +Date: Sat Mar 25 03:06:32 2006 -0800 + + [PATCH] timer irq driven soft watchdog fix + + I seem to have lost this hunk in yesterday's patch. It brings the + coming-online CPU's softlockup timer up to date so we don't get false-positive + tripups during CPU hot-add. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bc83455bc8336f57cd74d6e86b0f8fcad187d179 +Author: Andrey Panin +Date: Sat Mar 25 03:06:31 2006 -0800 + + [PATCH] fix DMI onboard device discovery + + Attached patch fixes invalid pointer arithmetic in DMI code to make onboard + device discovery working again. + + akpm: bug has been present since dmi_find_device() was added in 2.6.14. + Affects ipmi only (I think) - the symptoms weren't described. + + akpm: changed to use pointer arithmetic rather than open-coded sizeof. + + Signed-off-by: Andrey Panin + Cc: Corey Minyard + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 22fe087f0139e2f5cbe004f24f84cb1c08b4711e +Author: Andrew Morton +Date: Sat Mar 25 09:24:19 2006 -0300 + + V4L/DVB (3604): V4l printk fix + + drivers/media/video/v4l2-common.c: In function `v4l_printk_ioctl_arg': + drivers/media/video/v4l2-common.c:477: warning: `0' flag used with `%p' printf format + Someone went and "improved" my patch ;) + + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 48773e685b118ef56dcf5258ef7388a4bea16137 +Author: Mauro Carvalho Chehab +Date: Sat Mar 25 09:21:43 2006 -0300 + + V4L/DVB (3599c): Whitespace cleanups under Documentation/video4linux + + Signed-off-by: Mauro Carvalho Chehab + +commit d56410e0a594150c5ca06319da7bc8901c4d455e +Author: Mauro Carvalho Chehab +Date: Sat Mar 25 09:19:53 2006 -0300 + + V4L/DVB (3599b): Whitespace cleanups under drivers/media + + Signed-off-by: Mauro Carvalho Chehab + +commit 9f6933be665ce3b049c274c99810ac754edabf19 +Author: Mauro Carvalho Chehab +Date: Sat Mar 25 09:05:39 2006 -0300 + + V4L/DVB (3599a): Move drivers/usb/media to drivers/media/video + + Because of historic reasons, there are two separate directories with + V4L stuff. Most drivers are located at driver/media/video. However, some + code for USB Webcams were inserted under drivers/usb/media. + + This makes difficult for module authors to know were things should be. + Also, makes Kconfig menu confusing for normal users. + + This patch moves all V4L content under drivers/usb/media to + drivers/media/video, and fixes Kconfig/Makefile entries. + + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: Mauro Carvalho Chehab + +commit 9e19bb6d7a0959f5028d46e1ab99c50f0d36eda8 +Author: Ingo Molnar +Date: Sat Mar 25 01:41:10 2006 -0800 + + [NETFILTER] x_table.c: sem2mutex + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit cef2685e0053945ea0f3c02297386b040f486ea7 +Author: Ilia Sotnikov +Date: Sat Mar 25 01:38:55 2006 -0800 + + [IPV4]: Aggregate route entries with different TOS values + + When we get an ICMP need-to-frag message, the original TOS value in the + ICMP payload cannot be used as a key to look up the routes to update. + This is because the TOS field may have been modified by routers on the + way. Similarly, ip_rt_redirect should also ignore the TOS as the router + that gave us the message may have modified the TOS value. + + The patch achieves this objective by aggregating entries with different + TOS values (but are otherwise identical) into the same bucket. This + makes it easy to update them at the same time when an ICMP message is + received. + + In future we should use a twin-hashing scheme where teh aggregation + occurs at the entry level. That is, the TOS goes back into the hash + for normal lookups while ICMP lookups will end up with a node that + gives us a list that contains all other route entries that differ + only by TOS. + + Signed-off-by: Ilia Sotnikov + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit b8059eadf9f4dc24bd72da71daa832a9a9899fb4 +Author: David S. Miller +Date: Sat Mar 25 01:36:56 2006 -0800 + + [TCP]: Mark tcp_*mem[] __read_mostly. + + Suggested by Stephen Hemminger. + + Signed-off-by: David S. Miller + +commit 7b4f4b5ebceab67ce440a61081a69f0265e17c2a +Author: John Heffner +Date: Sat Mar 25 01:34:07 2006 -0800 + + [TCP]: Set default max buffers from memory pool size + + This patch sets the maximum TCP buffer sizes (available to automatic + buffer tuning, not to setsockopt) based on the TCP memory pool size. + The maximum sndbuf and rcvbuf each will be up to 4 MB, but no more + than 1/128 of the memory pressure threshold. + + Signed-off-by: John Heffner + Signed-off-by: David S. Miller + +commit 2babf9daae4a3561f3264638a22ac7d0b14a6f52 +Author: Herbert Xu +Date: Sat Mar 25 01:25:29 2006 -0800 + + [SCTP]: Fix up sctp_rcv return value + + I was working on the ipip/xfrm problem and as usual I get side-tracked by + other problems. + + As part of an attempt to change the IPv4 protocol handler calling + convention I found that SCTP violated the existing convention. + + It's returning non-zero values after freeing the skb. This is doubly bad + as 1) the skb gets resubmitted; 2) the return value is interpreted as a + protocol number. + + This patch changes those return values to zero. + + IPv6 doesn't suffer from this problem because it uses a positive return + value as an indication for resubmission. So the only effect of this patch + there is to increment the IPSTATS_MIB_INDELIVERS counter which IMHO is + the right thing to do. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit 9f514950bb907e98f280492a091aa1889b97304e +Author: Herbert Xu +Date: Sat Mar 25 01:24:25 2006 -0800 + + [NET]: Take RTNL when unregistering notifier + + The netdev notifier call chain is currently unregistered without taking + any locks outside the notifier system. Because the notifier system itself + does not synchronise unregistration with respect to the calling of the + chain, we as its user need to do our own locking. + + We are supposed to take the RTNL for all calls to netdev notifiers, so + taking the RTNL should be sufficient to protect it. + + The registration path in dev.c already takes the RTNL so it's OK. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit f3dd5c37382472a8b245ad791ed768771594e60c +Author: Dave Airlie +Date: Sat Mar 25 18:09:46 2006 +1100 + + drm: add new radeon PCI ids.. + + This adds all the r300 and r400 PCI ids from DRM CVS, it also + makes these cards only initialise when the new xorg driver is + used, as otherwise the DRM can cause lockups. + + Signed-off-by: Dave Airlie + +commit 600511e86babe3727264a0883a3a264f6fb6caf5 +Author: Tejun Heo +Date: Sat Mar 25 11:14:07 2006 +0900 + + [PATCH] libata: add FIXME above ata_dev_xfermask() + + Add FIXME above ata_dev_xfermask noting that the current + implementation limits all transfer modes to the fastest of the slowest + device on a port which isn't necessary. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 298a41ca41b4c933adc7b5a56a0adb0e1df2e556 +Author: Tejun Heo +Date: Sat Mar 25 02:58:13 2006 +0900 + + [PATCH] libata: cosmetic changes in ata_bus_softreset() + + ata_bus_softreset() should return AC_ERR_* on failure not arbitrary + positive number. While at it, reformat comment above it. + + Signed-off-by: Tejun Heo + Acked-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 9d1f6b28ee2429a1f94a9f7074ffae7f918d33be +Author: Andi Kleen +Date: Thu Mar 23 21:31:34 2006 +0100 + + [AGPGART] x86_64: Enable VIA AGP driver on x86-64 for VIA P4 chipsets + + Untested so far + [davej: but needed for some newer EM64T systems] + + Signed-off-by: Andi Kleen + Signed-off-by: Dave Jones + +commit 5c48b0e3599ff7559b39093219e8a428776f7932 +Author: Henrik Kretzschmar +Date: Thu Mar 23 21:29:19 2006 +0100 + + [AGPGART] x86_64: Fix wrong PCI ID for ALI M1695 AGP bridge + + [description by AK] + Made a cut'n'paste error when adding the entry for the ALI M1695 + AGP bridge and added a second entry for the 1689 + + Signed-off-by: Andi Kleen + Signed-off-by: Dave Jones + +commit 7a343d4c46bc59fe617f968e996ce2fd67c5d179 +Author: Leonid Arsh +Date: Thu Mar 23 19:52:51 2006 +0200 + + IPoIB: P_Key change event handling + + This patch causes the network interface to respond to P_Key change + events correctly. As a result, you'll see a child interface in the + "RUNNING" state (netif_carrier_on()) only when the corresponding P_Key + is configured by the SM. When SM removes a P_Key, the "RUNNING" state + will be disabled for the corresponding network interface. To + implement this, I added IB_EVENT_PKEY_CHANGE event handling. To + prevent flushing the device before the device is open by the "delay + open" mechanism, I added an additional device flag called + IPOIB_FLAG_INITIALIZED. + + This also prevents the child network interface from trying to join to + multicast groups until the PKEY is configured. We used to get error + messages like: + + ib0.f2f2: couldn't attach QP to multicast group ff12:401b:f2f2:0:0:0:ffff:ffff + + in this case. To fix this, I just check IPOIB_FLAG_OPER_UP flag in + ipoib_set_mcast_list(). + + Signed-off-by: Leonid Arsh + Signed-off-by: Roland Dreier + +commit 192daa18dd7bfcaeb092a2ef928135745f2e6883 +Author: Roland Dreier +Date: Fri Mar 24 15:47:30 2006 -0800 + + IB/mthca: Fix modify QP error path + + If the call to mthca_MODIFY_QP() failed, then mthca_modify_qp() would + still do some things it shouldn't, such as store away attributes for + special QPs. Fix this, and simplify the code, by simply jumping to + the exit path if mthca_MODIFY_QP() fails. + + Signed-off-by: Roland Dreier + +commit 4e37b956161c3a3b160972c11c55f07b38b9830c +Author: Leonid Arsh +Date: Wed Mar 22 19:54:24 2006 +0200 + + IPoIB: Fix network interface "RUNNING" status + + With the current IPoIB driver, the status of network interfaces stays + "RUNNING" even if the link goes down (for example because a cable is + unplugged). Fix this by flushing the IPoIB interface when the link + goes down. + + Signed-off-by: Leonid Arsh + Signed-off-by: Roland Dreier + +commit b0b3a8e1939d18c9bd4caca0b4b859b118a4167e +Author: Roland Dreier +Date: Fri Mar 24 15:47:29 2006 -0800 + + IB/mthca: Fix indentation + + Fix some whitespace damage (indenting with spaces) that snuck in. + + Signed-off-by: Roland Dreier + +commit b3f64967fafad2d3487cdba18bc5166aec33a823 +Author: Jack Morgenstein +Date: Wed Mar 22 09:52:31 2006 +0200 + + IB/mthca: Fix uninitialized variable in mthca_alloc_qp() + + mthca_alloc_sqp() by mthca_set_qp_size() need to set qp->transport + before calling mthca_set_qp_size(), since the value is used there. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Roland Dreier + +commit d4301e2c6685c87206f24f54969120b182119ab0 +Author: Jack Morgenstein +Date: Mon Mar 20 17:32:43 2006 +0200 + + IB/mthca: Check SRQ limit in modify SRQ operation + + When setting the shared receive queue (SRQ) watermark in a modify SRQ + operation, make sure that the supplied value is not larger than the + full size of the SRQ. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Roland Dreier + +commit ded9ad721d220d47989177076a181ae1f1b93af5 +Author: Jack Morgenstein +Date: Mon Mar 20 12:35:34 2006 +0200 + + IB/mthca: Check that SRQ WQE size does not exceed device's max value + + Guarantee the calculated work queue entry size does not exceed the max + allowable WQE size when creating an SRQ. This is a problem with Arbel + in Tavor-compatibility mode because the current WQE size computation + method rounds up to next power of 2. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Roland Dreier + +commit 0ef61db837c93d4377fabd37182bb6f83ea5ca70 +Author: Dotan Barak +Date: Sun Mar 19 17:20:36 2006 +0200 + + IB/mthca: Check that sgid_index and path_mtu are valid in modify_qp + + Add a check that the modify QP parameters sgid_index and path_mtu are + valid, since they might come from userspace. + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit cf368713a3f3b2eb737a92d1b7186dedcc51167c +Author: Roland Dreier +Date: Fri Mar 24 15:47:26 2006 -0800 + + IB/srp: Use a fake scatterlist for non-SG SCSI commands + + Since the SCSI midlayer is moving towards entirely getting rid of + commands with use_sg == 0, we should treat this case as an exception. + Therefore, change the IB SRP initiator to create a fake scatterlist + for these commands with sg_init_one(). This simplifies the flow of + DMA mapping and unmapping, since SRP can just use dma_map_sg() and + dma_unmap_sg() unconditionally, rather than having to choose between + the dma_{map,unmap}_sg() and dma_{map,unmap}_single() variants. + + Signed-off-by: Roland Dreier + +commit 868d2c1efe9cdd259b67a80d60a7fb2fcecd3d68 +Author: Dave Jones +Date: Fri Mar 24 15:47:25 2006 -0800 + + [WIRELESS]: Fix config dependencies. + + I accidentally ended up with a config that set NET_RADIO off, + and NET_WIRELESS_RTNETLINK on, which blew up thus.. + + net/built-in.o: In function `do_setlink':net/core/rtnetlink.c:479: undefined reference to `wireless_rtnetlink_set' + net/built-in.o: In function `do_getlink':net/core/rtnetlink.c:521: undefined reference to `wireless_rtnetlink_get' + + Signed-off-by: Dave Jones + Signed-off-by: David S. Miller + +commit 6f633c8d69415aabbccfcc494008e8e1300a98c1 +Author: Leonid Arsh +Date: Fri Mar 24 15:47:25 2006 -0800 + + IPoIB: Pass correct pointer when flushing child interfaces + + ipoib_ib_dev_flush() should get passed cpriv->dev, not &cpriv->dev. + + Signed-off-by: Leonid Arsh + Signed-off-by: Roland Dreier + +commit 9932cf954691f20d548cd6010d89d1d48597e104 +Author: David S. Miller +Date: Fri Mar 24 15:12:37 2006 -0800 + + [NET]: Fill in a 32-bit hole in struct sock on 64-bit platforms. + + This makes struct sock 8 bytes smaller on 64-bit. + + Signed-off-by: David S. Miller + +commit f67ed26f2b3e92c0450deae3ffc3fff21c878a75 +Author: David S. Miller +Date: Thu Mar 23 22:47:40 2006 -0800 + + [NET]: Ensure device name passed to SO_BINDTODEVICE is NULL terminated. + + Found by Solar Designer. + + Signed-off-by: David S. Miller + +commit a1a8feed1743ec8d2af1dafa7c5321679f0a3e4f +Author: Patrick McHardy +Date: Thu Mar 23 22:07:34 2006 -0800 + + [MODULES]: Don't allow statically declared exports + + Add an extern declaration for exported symbols to make the compiler warn + on symbols declared statically. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 4dc6d9cc38cea1004a7f827cf76409ae42231fee +Author: Peter Chubb +Date: Thu Mar 23 21:39:47 2006 -0800 + + [BRIDGE]: Unaligned accesses in the ethernet bridge + + I see lots of + kernel unaligned access to 0xa0000001009dbb6f, ip=0xa000000100811591 + kernel unaligned access to 0xa0000001009dbb6b, ip=0xa0000001008115c1 + kernel unaligned access to 0xa0000001009dbb6d, ip=0xa0000001008115f1 + messages in my logs on IA64 when using the ethernet bridge with 2.6.16. + + Appended is a patch to fix them. + + Signed-off-by: Peter Chubb + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit ea8aa68d36026c4c3d938170b06957aeac9682f4 +Author: Mark Fasheh +Date: Mon Mar 6 12:33:14 2006 -0800 + + ocfs2: finally remove MLF* macros + + Signed-off-by: Mark Fasheh + +commit b0697053f9e8de9cea3d510d9e290851ece9460b +Author: Mark Fasheh +Date: Fri Mar 3 10:24:33 2006 -0800 + + ocfs2: don't use MLF* in the file system + + Signed-off-by: Mark Fasheh + +commit 29004858a76ba9e26393dd8a85e653f105a33753 +Author: Kurt Hackel +Date: Thu Mar 2 16:43:36 2006 -0800 + + ocfs2: don't use MLF* in dlm/ files + + Signed-off-by: Kurt Hackel + Signed-off-by: Mark Fasheh + +commit 70bacbdbfa6f63f8cd10432891f9ecee62397ff2 +Author: Mark Fasheh +Date: Thu Mar 2 11:10:05 2006 -0800 + + ocfs2: don't use MLF* in cluster/ files + + Signed-off-by: Mark Fasheh + +commit c03872f5f50bc10f2a1a485f08879a8d01bcfe49 +Author: Kurt Hackel +Date: Mon Mar 6 14:08:49 2006 -0800 + + [PATCH] ocfs2: dlm recovery fixes + + when starting lock mastery (excepting the recovery lock) wait on any nodes + needing recovery. fix one instance where lock resources were left attached + to the recovery list after recovery completed. ensure that the node_down + code is run uniformly regardless of which node found the dead node first. + + Signed-off-by: Kurt Hackel + Signed-off-by: Mark Fasheh + +commit 9c6510a5bfe2f1c5f5b93386c06954be02e974e4 +Author: Kurt Hackel +Date: Thu Mar 2 18:09:26 2006 -0800 + + [PATCH] ocfs2: fix hang in dlm lock resource mastery + + fixes hangs in lock mastery related to refcounting on the mle structure + + Signed-off-by: Kurt Hackel + Signed-off-by: Mark Fasheh + +commit a74e1f0e8a7858c9ba6065480c88d7feba3520ac +Author: Mark Fasheh +Date: Fri Mar 3 10:18:58 2006 -0800 + + ocfs2: use __attribute__ format + + Use the "format" attribute on ocfs2_error() and ocfs2_abort() so that the + compiler will warn when we get calls to those functions wrong. + + Signed-off-by: Mark Fasheh + +commit 4129a953ad4db379d8e07b0dd2157998653a1325 +Author: Fenghua Yu +Date: Mon Feb 27 16:16:22 2006 -0800 + + [IA64] New IA64 core/thread detection patch + + IPF SDM 2.2 changes definition of PAL_LOGICAL_TO_PHYSICAL to add + proc_number=-1 to get core/thread mapping info on the running processer. + + Based on this change, we had better to update existing core/thread + detection in IA64 kernel correspondingly. The attached patch implements + this change. It simplifies detection code and eliminates potential race + condition. It also runs a bit faster and has better scalability especially + when cores and threads number grows up in one package. + + Signed-off-by: Fenghua Yu + Signed-off-by: Tony Luck + +commit 4d357acadd7a5e60767c748ed7807e11c4387bdf +Author: Jack Steiner +Date: Thu Mar 2 16:02:32 2006 -0600 + + [IA64] Increase max node count on SN platforms + + Update configuration files with new CONFIG option. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit a9de98351436b25b3c2f234addb6d66a6a6f42f8 +Author: Jack Steiner +Date: Thu Mar 2 16:02:28 2006 -0600 + + [IA64] Increase max node count on SN platforms + + Node number are kept in the cpu_to_node_map which is + currently defined as u8. Change to u16 to accomodate + larger node numbers. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit 3ad5ef8b9d0d0cc2d4b2c63e766ef903d482dfc7 +Author: Jack Steiner +Date: Thu Mar 2 16:02:25 2006 -0600 + + [IA64] Increase max node count on SN platforms + + Add support in IA64 acpi for platforms that support more than + 256 nodes. Currently, ACPI is limited to 256 nodes because the + proximity domain number is 8-bits. + + Long term, we expect to use ACPI3.0 to support >256 nodes. + This patch is an interim solution that works with platforms + that pass the high order bits of the proximity domain in + "reserved" fields of the ACPI tables. This code is enabled + ONLY on SN platforms. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit b354a8388891adc5dc5e5fb0130f000152f3fb94 +Author: Jack Steiner +Date: Thu Mar 2 16:02:21 2006 -0600 + + [IA64] Increase max node count on SN platforms + + Add a configuration option to allow the maximum + number of nodes to be configurable for GENERIC or SN + kernels. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit f90aa8c4febb306e1266e1ad34fd8464e201aa7f +Author: Prarit Bhargava +Date: Wed Mar 8 13:30:18 2006 -0500 + + [IA64] Tollhouse HP: IA64 arch changes + + arch/ia64/sn and include/asm-ia64/sn changes required to support Tollhouse + system PCI hotplug, fixes the ia64_sn_sysctl_ioboard_get call, and introduces + the PRF_HOTPLUG_SUPPORT feature bit. + + Signed-off-by: Prarit Bhargava + Signed-off-by: Tony Luck + +commit b17ea91a43ea0c746ab4cabb698275e1771ed23d +Author: Chen, Kenneth W +Date: Sun Mar 12 11:10:00 2006 -0800 + + [IA64] cleanup dig_irq_init + + dig_irq_init is equivalent to machvec_noop, no need to define + another empty function. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 7fa033b103bc3f5c37f934695473f63adf140dba +Author: Hans Verkuil +Date: Thu Mar 23 20:12:26 2006 -0300 + + V4L/DVB (3599): Implement new routing commands for wm8775 and cs53l32a. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit a20c522498330ba0f4970a9bcd11890312277ae2 +Author: Hans Verkuil +Date: Thu Mar 23 19:37:58 2006 -0300 + + V4L/DVB (3598): Add bit algorithm adapter for the Conexant CX2341X boards. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit f13df9195b2b4db874ba2d6bd1c2a09ea64d39e0 +Author: Michael Krufky +Date: Thu Mar 23 22:01:44 2006 -0300 + + V4L/DVB (3597): Vivi: fix warning: implicit declaration of function 'in_interrupt' + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit e3bb83420346534b51a500e3b13f75e269c3dd60 +Author: Hans Verkuil +Date: Mon Mar 20 16:32:52 2006 -0300 + + V4L/DVB (3588): Remove VIDIOC_G/S_AUDOUT from msp3400 + + VIDIOC_G/S_AUDOUT does not belong in msp3400 (it's a user level command, + not to be used in internal i2c drivers). Also fix a compile warning and + improve LOG_STATUS. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit c68735180c6e274d938b8c07d61dcf5077085c7f +Author: Hans Verkuil +Date: Sun Mar 19 18:43:50 2006 -0300 + + V4L/DVB (3587): Always wake thread after routing change. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 301e22d69140898eddd38a9134da711cb5dfc170 +Author: Hans Verkuil +Date: Sat Mar 18 17:15:00 2006 -0300 + + V4L/DVB (3584): Implement V4L2_TUNER_MODE_LANG1_LANG2 audio mode + + Add a new audio mode V4L2_TUNER_MODE_LANG1_LANG2 (used by VIDIOC_G/S_TUNER). + This mode allows the user to select both languages of a bilingual transmission, + one language on the left, one on the right audio channel. If there is no + bilingual transmission, or it is not supported, then this mode should act like + V4L2_TUNER_MODE_STEREO. + This mode is introduced for PVR-like drivers where it is useful to be able to + record both languages of a bilingual broadcast. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 2474ed444b475614ef795523076be7cc8437ae00 +Author: Hans Verkuil +Date: Sun Mar 19 12:35:57 2006 -0300 + + V4L/DVB (3582): Implement correct msp3400 input/output routing + + - implement VIDIOC_INT_S_AUDIO_ROUTING for msp3400 and tvaudio + - use the new command in bttv, pvrusb2 and em28xx. + - remove the now obsolete MSP_SET_MATRIX from msp3400 (yeah!) + - remove the obsolete VIDIOC_S_AUDIO from msp3400. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 49965a80a4c4f5cbe15fb3bb1f8f8b0ec4ef02bc +Author: Hans Verkuil +Date: Sun Mar 19 08:45:38 2006 -0300 + + V4L/DVB (3581): Add new media/msp3400.h header containing the routing macros + + Moved msp3400.h to msp3400-driver.h. + Created media/msp3400.h with the new routing defines and lots of comments. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit de533ccf8dd51f38ef3c1751f9eb5ad3f2fcfad9 +Author: Hans Verkuil +Date: Sun Mar 19 08:21:56 2006 -0300 + + V4L/DVB (3580): Last round of msp3400 cleanups before adding routing commands + + Lots of cleanups: + - remove duplicate actions + - add D/K3 Dual FM-Stereo and D/K NICAM FM (HDEV3) support + - put prescales in the proper place + - add missing D/K NICAM + - msp34xxg_reset now only resets instead of also starting the autodetect + (moved that to msp34xxg_thread) + - fix support for SAP. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 9a80a93da738c631de644175fbd669ab9a9cb624 +Author: Hans Verkuil +Date: Sun Mar 19 07:25:42 2006 -0300 + + V4L/DVB (3579): Move msp_modus to msp3400-kthreads, add JP and KR std detection + + msp_modus is 'G' model specific. Moved it to kthreads and also added proper + handling for the Japanese and South Korean TV standards. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 427725748b38997628d95ffdf8501bcc176cf631 +Author: Hans Verkuil +Date: Sun Mar 19 06:48:51 2006 -0300 + + V4L/DVB (3578): Make scart definitions easier to handle + + For the new routing implementation it is easier if all the 'normal' + scart inputs (IN1-IN4) are consecutive. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 8bf2f8e747700419cc5bbc56c4496774eb8f2f1f +Author: Hans Verkuil +Date: Sat Mar 18 21:31:00 2006 -0300 + + V4L/DVB (3577): Cleanup audio input handling + + Cleanup audio input handling in bttv and tvaudio: + - inputs were specified that were never used + - mute was handled as a special input which led to confusing code + - confusing naming made it difficult to see if the setting was for + i2c or gpio. + The old audiochip.h input names moved to tvaudio.h. Currently this + is used both by tvaudio and msp3400 until the msp3400 implements the + new msp3400-specific inputs. + Detect in bttv the tvaudio and msp3400 i2c clients and use these + client pointers to set the inputs directly instead of broadcasting the + command. + Removed AUDC_SET_INPUT. Now replaced by VIDIOC_S_AUDIO. This will be + replaced again later by the new ROUTING commands. + Removed VIDIOC_G_AUDIO implementations in i2c drivers: this command is + a user level command and not to be used internally. It wasn't called at + all anyway. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit ae62e3d4a8194680023b47ab778bf1dcea8d6b42 +Author: Michael Krufky +Date: Thu Mar 23 01:11:18 2006 -0300 + + V4L/DVB (3575): Cxusb: fix i2c debug messages for bluebird devices + + Only the Medion boxes return 0x08 after an i2c read/write. + The bluebird devices do not return anything at all. + This patch conditionalizes the test for the 0x08 return code + to produce a warning message when using the Medion box, only. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 4d6e772d989c11af7d7e41095f976cff5eeb43f3 +Author: Michael Krufky +Date: Thu Mar 23 00:55:23 2006 -0300 + + V4L/DVB (3574): Cxusb: fix debug messages + + - corrects the wording in some of the debug messages. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit afdebc94ea86168973102fa77128764ac034d569 +Author: Michael Krufky +Date: Thu Mar 23 00:15:55 2006 -0300 + + V4L/DVB (3573): Cxusb: remove FIXME: comment in bluebird_patch_dvico_firmware_download + + Removed the FIXME comment from bluebird_patch_dvico_firmware_download: + /* FIXME: are we allowed to change the fw-data ? */ + Yes, we are allowed. DViCO's Windows driver also does the same thing. + A single firmware image is used to support all of the bluebird boxes. + The firmware sets all devices to PID: d700. Instead of using that, the + driver replaces the d700 with the cold PID+1 before the download. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 5e805eff15b17e64d5a0913c9e4c816a96677398 +Author: Michael Krufky +Date: Thu Mar 23 00:01:34 2006 -0300 + + V4L/DVB (3572): Cxusb: conditionalize gpio write for the medion box + + This patch removes the (harmless) -ETIMEDOUT during device init + for the DViCO FusionHDTV Bluebird boxes, by conditionalizing the + gpio write inside cxusb_i2c_xfer to happen only for Medion boxes. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 5245953e1893152662dad47c87fa88213d5d09a1 +Author: Andrew Morton +Date: Wed Mar 22 15:01:59 2006 -0300 + + V4L/DVB (3571): Printk warning fixes + + On ppc64, u64 is `unsigned long' + drivers/media/video/v4l2-common.c: In function `v4l_printk_ioctl_arg': + drivers/media/video/v4l2-common.c:486: warning: cast from pointer to integer of different size + drivers/media/video/v4l2-common.c:580: warning: long long int format, v4l2_std_id arg (arg 8) + drivers/media/video/v4l2-common.c:625: warning: long long int format, v4l2_std_id arg (arg 8) + drivers/media/video/v4l2-common.c:693: warning: long long int format, v4l2_std_id arg (arg 4) + drivers/media/video/v4l2-common.c:910: warning: long long unsigned int format, long unsigned int a$ + + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 2ae151911e31e6a012a46431cc515cc251242573 +Author: Alan Cox +Date: Mon Mar 20 13:59:42 2006 -0300 + + V4L/DVB (3569): PATCH: switch cpia2 to mutexes and use ioctl 32 compat lib func + + Signed-off-by: Alan Cox + Signed-off-by: Mauro Carvalho Chehab + +commit bc2c7c365bd18c00f5fefaf1a560c440f3ce13f3 +Author: Michael Krufky +Date: Sat Mar 18 18:36:44 2006 -0300 + + V4L/DVB (3557): Kconfig: fix title and description for VIDEO_CX88_ALSA + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 73dcddc583c40bcc9e6bf468c78c31930899922c +Author: Hans Verkuil +Date: Thu Mar 16 20:23:47 2006 -0300 + + V4L/DVB (3551): Fix saturation bug. Fix NTSC->PAL standard change. Detect NTSC-KR standard. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 6637e6fd2a930567f1878e4585d70b444a9cb3b3 +Author: Patrick Boettcher +Date: Sat Mar 18 14:13:22 2006 -0300 + + V4L/DVB (3549): Make hotplug automatically load the b2c2-flexcop-usb module + + There was no MODULE_DEVICE_TABLE for the b2c2-flexcop-usb module. This makes it + impossible for hotplug to load the module automatically, when such a device is + connected. + + Signed-off-by: Patrick Boettcher + Signed-off-by: Mauro Carvalho Chehab + +commit 09df1c163adcf43e2c4234b52985f34b95b7634e +Author: Mauro Carvalho Chehab +Date: Sat Mar 18 08:31:34 2006 -0300 + + V4L/DVB (3548): Renamed I2C_foo addresses to I2C_ADDR_foo + + I2C_foo were used for some i2c addresses. Bad, since those constants could + mean other i2c chip things. + + Signed-off-by: Mauro Carvalho Chehab + +commit 7c9b5048305ead226fb16def98d86f3ed67c4807 +Author: Mauro Carvalho Chehab +Date: Sat Mar 18 08:08:14 2006 -0300 + + V4L/DVB (3547): Tvaudio.h are just i2c addresses. Merged into i2c-addr.h + + Signed-off-by: Mauro Carvalho Chehab + +commit fa3fcceb30eb8a3cb2ac299c207c6f89b9aed379 +Author: Mauro Carvalho Chehab +Date: Thu Mar 23 21:45:24 2006 -0300 + + V4L/DVB (3546): Fix Compilation after moving bttv code + + - Missing a Makefile for bt8xx + - rds.h were at wrong directory, since it is a global header for an internal + interface + - tda7432 and tda9875 were dependent from bttv.h + - bttv.h were holding i2c addresses + + Signed-off-by: Mauro Carvalho Chehab + +commit c72602b8250cc0d3ace59d1a7334c5cd7aa9490e +Author: Manu Abraham +Date: Fri Mar 17 18:21:17 2006 -0300 + + V4L/DVB (3543): Fix Makefile to adapt to bt8xx/ conversion + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit faecfb1760325613debd8df9b9374ce4a28c01d9 +Author: Manu Abraham +Date: Fri Mar 17 12:07:22 2006 -0300 + + V4L/DVB (3539): Move bttv fragments to bt8xx/ + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 280323ddbc595c463f89c30f3f0f823b076bb4e3 +Author: Mauro Carvalho Chehab +Date: Fri Mar 10 13:41:26 2006 -0300 + + V4L/DVB (3519): Corrects MODULE_AUTHOR + + Signed-off-by: Mauro Carvalho Chehab + +commit 1e6dd65e17b8b584026334b16485365bab486422 +Author: Mauro Carvalho Chehab +Date: Fri Mar 10 12:40:10 2006 -0300 + + V4L/DVB (3518): Creates a virtual video device driver + + The Virtual Video Device Driver (aka vivi) is a device that + can be used to: + 1) test core v4l functionalities; + 2) be a prototype for newer development. + Vivi were developed using the best practices for v4l driver. + When loaded, it provides a video device that generates a + standard color bar, with a timestamp placed at top left corner. + + Signed-off-by: Mauro Carvalho Chehab + +commit c7b0ac0546985fc6361a8d92cf808d46da797677 +Author: Mauro Carvalho Chehab +Date: Fri Mar 10 12:29:15 2006 -0300 + + V4L/DVB (3516): Make video_buf more generic + + Video_buf were concerned to allow PCI devices to be used as + video capture devices. This patch extends video_buf features + by virtualizing pci-dependent functions and allowing other + type of devices to use it. + It is still DMA centric, although it may be used also by + devices that emulates scatter/gather behavior or a DMA device + + Signed-off-by: Mauro Carvalho Chehab + +commit 232443e2c90cc2930624dec89df327615b002c55 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:53:18 2006 +0100 + + BUG_ON() Conversion in drivers/video/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit b74945547f0679003ede4d1afcd0aa169059a436 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:52:10 2006 +0100 + + BUG_ON() Conversion in drivers/parisc/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 089fe1b23da5468bbf02b721472f71f349837a7d +Author: Eric Sesterhenn +Date: Fri Mar 24 18:50:27 2006 +0100 + + BUG_ON() Conversion in drivers/block/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit d2a28ad9fa7bf16761d070d8a3338375e1574b32 +Author: Russ Anderson +Date: Fri Mar 24 09:49:52 2006 -0800 + + [IA64] MCA recovery: kernel context recovery table + + Memory errors encountered by user applications may surface + when the CPU is running in kernel context. The current code + will not attempt recovery if the MCA surfaces in kernel + context (privilage mode 0). This patch adds a check for cases + where the user initiated the load that surfaces in kernel + interrupt code. + + An example is a user process lauching a load from memory + and the data in memory had bad ECC. Before the bad data + gets to the CPU register, and interrupt comes in. The + code jumps to the IVT interrupt entry point and begins + execution in kernel context. The process of saving the + user registers (SAVE_REST) causes the bad data to be loaded + into a CPU register, triggering the MCA. The MCA surfaces in + kernel context, even though the load was initiated from + user context. + + As suggested by David and Tony, this patch uses an exception + table like approach, puting the tagged recovery addresses in + a searchable table. One difference from the exception table + is that MCAs do not surface in precise places (such as with + a TLB miss), so instead of tagging specific instructions, + address ranges are registers. A single macro is used to do + the tagging, with the input parameter being the label + of the starting address and the macro being the ending + address. This limits clutter in the code. + + This patch only tags one spot, the interrupt ivt entry. + Testing showed that spot to be a "heavy hitter" with + MCAs surfacing while saving user registers. Other spots + can be added as needed by adding a single macro. + + Signed-off-by: Russ Anderson (rja@sgi.com) + Signed-off-by: Tony Luck + +commit 817dd6eed4bf40fa14d1e96ac4905efebd5e03f2 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:49:12 2006 +0100 + + BUG_ON() Conversion in sound/sparc/cs4231.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 7ac1e877d48061aa6ebca936189c32b44ccf8d9c +Author: Eric Sesterhenn +Date: Fri Mar 24 18:48:13 2006 +0100 + + BUG_ON() Conversion in drivers/s390/block/dasd.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 34814545890db603b7648ea2ea477d1f83b61297 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:47:11 2006 +0100 + + BUG_ON() Conversion in lib/swiotlb.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 6978c7052f2e22c6c40781cdd4eba5c4bce9a789 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:45:21 2006 +0100 + + BUG_ON() Conversion in kernel/cpu.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 8cd5283b897f56004631944dd2888e9a7b843f89 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:44:22 2006 +0100 + + BUG_ON() Conversion in ipc/msg.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit ce52449742697f6f51be2a7c275a4ab2a73885b8 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:43:26 2006 +0100 + + BUG_ON() Conversion in block/elevator.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit c5d3237c2424c4a3cf69d33abc1f229943468367 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:42:13 2006 +0100 + + BUG_ON() Conversion in fs/coda/ + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner, contains unlikely() and can better optimized away. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 88bcd51262ed45212d1b3a65abbac46eaf36bfeb +Author: Eric Sesterhenn +Date: Fri Mar 24 18:38:48 2006 +0100 + + BUG_ON() Conversion in fs/binfmt_elf_fdpic.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit b1eecf7e04f34e3248ca8d14e49156da63f05117 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:37:43 2006 +0100 + + BUG_ON() Conversion in input/serio/hil_mlc.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 4401d138993c652dc7463207fa3afde71b7ae509 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:36:27 2006 +0100 + + BUG_ON() Conversion in md/dm-hw-handler.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 5daf2cf19a7d03843d8d2d1b4aaf5260479cc5a7 +Author: Eric Sesterhenn +Date: Fri Mar 24 18:35:26 2006 +0100 + + BUG_ON() Conversion in md/bitmap.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Adrian Bunk + +commit 16538c40776b8be6b0f23966e08fdc7b8fff823f +Author: Amos Waterland +Date: Fri Mar 24 18:30:53 2006 +0100 + + The comment describing how MS_ASYNC works in msync.c is confusing + because of a typo. This patch just changes "my" to "by", which I + believe was the original intent. + + Signed-off-by: Adrian Bunk + +commit de0dfcdf550e6339e9f373587da62cffb5b559f8 +Author: Baruch Even +Date: Fri Mar 24 18:25:25 2006 +0100 + + rcu: undeclared variable used in documentation + + The RCU documentation uses an fp variable which is not declared in the code + snippets. Use the new_fp variable instead. + + Signed-Off-By: Baruch Even + Acked-by: + Signed-off-by: Adrian Bunk + +commit aec5c3c1a929d7d79a420e943285cf3ba26a7c0d +Author: Tejun Heo +Date: Sat Mar 25 01:33:34 2006 +0900 + + [PATCH] libata: kill E.D.D. + + E.D.D. has no user in-tree and mostly useless. Kill it. For possible + out-of-tree users, add a nice warning message and error handling if + LLDD doesn't report any useable reset mechanism (and thus tries to use + E.D.D.). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit c30fe7f73194650148b58ee80908c1bc38246397 +Author: Uwe Zeisberger +Date: Fri Mar 24 18:23:14 2006 +0100 + + fix typos "wich" -> "which" + + Signed-off-by: Uwe Zeisberger + Signed-off-by: Adrian Bunk + +commit c690a72253b962b7274559f2cdf4844553076c03 +Author: Michael Owen +Date: Fri Mar 24 18:21:44 2006 +0100 + + typo patch for fs/ufs/super.c + + Quick and simple typo fix. neTXstep -> neXTstep + + Signed-off-by: Adrian Bunk + +commit 13fce8062968996da496d4f65cc1c1f845704604 +Author: Andrzej Zaborowski +Date: Fri Mar 24 18:13:37 2006 +0100 + + Fix simple typos + + This corrects some trivial errors in ARM docs and comments, + + Signed-off-by: Adrian Bunk + +commit b2fd16b4ff2508ac16ae994f4bcd941f97754c00 +Author: Horms +Date: Thu Mar 23 16:36:28 2006 +0900 + + [PATCH] net: ne2k.c won't compile if pci_clone_list is const + + net: ne2k.c won't compile if pci_clone_list is const + + f71e130966ba429dbd24be08ddbcdf263df9a5ad which (amongst other things) + made pci_clone_list in ne2k-pci.c const causes the following compile error. + This patch reverses that portion of that changeset + + drivers/net/ne2k-pci.c:123: error: pci_clone_list causes a section type + conflict + + ~/ gcc --version + gcc (GCC) 4.0.3 (Debian 4.0.3-1) + ~/ dpkg gcc-4.0 | grep Version + Version: 4.0.3-1 + + Signed-Off-By: Horms + +commit d4b7780ea1d2e08410fcc9963a57254147ae577a +Author: Andrew Victor +Date: Fri Mar 24 11:50:17 2006 +0200 + + [PATCH] AT91RM9200 Ethernet driver + + This patch adds support for the Ethernet controller integrated in the + Atmel AT91RM9200 SoC processor. + + Changes since the previous submission (01/02/2006) are: + - Make use of the clk.h clock infrastructure. + - The multicast hash function is not crc32. [Patch by Pedro Perez] + + Signed-off-by: Andrew Victor + Signed-off-by: Jeff Garzik + +commit 53813158012f4d9272e5ccdc005671e780a39931 +Author: Jim Cromie +Date: Fri Mar 24 18:10:34 2006 +0100 + + tabify drivers/char/Makefile + + this trivial patch tabifies drivers/char/Makefile for readability. + + Signed-off-by: Jim Cromie + Signed-off-by: Adrian Bunk + +commit dd49d0f5625064e8fc790beb6f5256254a1dde2f +Author: Jim Cromie +Date: Fri Mar 24 18:08:17 2006 +0100 + + Re-alphabetize a couple MAINTANTER entries. + + Signed-off-by: Adrian Bunk + +commit f125b56113be4956867cc9bd098bb99b1b9bb93f +Author: Andrew Morton +Date: Fri Mar 24 03:18:44 2006 -0800 + + [PATCH] fix build error if CONFIG_SYSFS=n + + uevent_seqnum and uevent_helper are only defined if CONFIG_HOTPLUG=y, + CONFIG_NET=n. + + (I stole this back from Greg's tree - it makes allnoconfig work). + + Cc: Greg KH + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0cb409d98e351e6817e0bc37fe6815fc14b2c036 +Author: Davi Arnaut +Date: Fri Mar 24 03:18:43 2006 -0800 + + [PATCH] strndup_user: convert keyctl + + Copies user-space string with strndup_user() and moves the type string + duplication code to a function (thus fixing a wrong check on the length of the + type.) + + Signed-off-by: Davi Arnaut + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 24277dda3a54aa5e6265487e1a3091e27f3c0c45 +Author: Davi Arnaut +Date: Fri Mar 24 03:18:43 2006 -0800 + + [PATCH] strndup_user: convert module + + Change hand-coded userspace string copying to strndup_user. + + Signed-off-by: Davi Arnaut + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 96840aa00a031069a136ec4c55d0bdd09ac6d3a7 +Author: Davi Arnaut +Date: Fri Mar 24 03:18:42 2006 -0800 + + [PATCH] strndup_user() + + This patch series creates a strndup_user() function to easy copying C strings + from userspace. Also we avoid common pitfalls like userspace modifying the + final \0 after the strlen_user(). + + Signed-off-by: Davi Arnaut + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6687a97d4041f996f725902d2990e5de6ef5cbe5 +Author: Ingo Molnar +Date: Fri Mar 24 03:18:41 2006 -0800 + + [PATCH] timer-irq-driven soft-watchdog, cleanups + + Make the softlockup detector purely timer-interrupt driven, removing + softirq-context (timer) dependencies. This means that if the softlockup + watchdog triggers, it has truly observed a longer than 10 seconds + scheduling delay of a SCHED_FIFO prio 99 task. + + (the patch also turns off the softlockup detector during the initial bootup + phase and does small style fixes) + + Signed-off-by: Ingo Molnar + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81 +Author: Sergey Vlasov +Date: Fri Mar 24 03:18:38 2006 -0800 + + [PATCH] Fix module refcount leak in __set_personality() + + If the change of personality does not lead to change of exec domain, + __set_personality() returned without releasing the module reference + acquired by lookup_exec_domain(). + + Signed-off-by: Sergey Vlasov + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b5a7c4f5835ae2805d00ca39709002cb03364143 +Author: Glauber de Oliveira Costa +Date: Fri Mar 24 03:18:37 2006 -0800 + + [PATCH] ext3: Properly report backup block present in a group + + In filesystems with the meta block group flag on, ext3_bg_num_gdb() fails + to report the correct number of blocks used to store the group descriptor + backups in a given group. It happens because meta_bg follows a different + logic from the original ext3 backup placement in groups multiples of 3, 5 + and 7. + + Signed-off-by: Glauber de Oliveira Costa + Cc: Andreas Dilger + Cc: "Stephen C. Tweedie" + Cc: Alex Tomas + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d3561f78fd379a7110e46c87964ba7aa4120235c +Author: Andrew Morton +Date: Fri Mar 24 03:18:36 2006 -0800 + + [PATCH] RLIMIT_CPU: document wrong return value + + Document the fact that setrlimit(RLIMIT_CPU) doesn't return error codes when + it should. I don't think we can fix this without a 2.7.x.. + + Cc: Martin Schwidefsky + Cc: Ulrich Weigand + Cc: Cliff Wickman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e0661111e5441995f7a69dc4336c9f131cb9bc58 +Author: Andrew Morton +Date: Fri Mar 24 03:18:35 2006 -0800 + + [PATCH] RLIMIT_CPU: fix handling of a zero limit + + At present the kernel doesn't honour an attempt to set RLIMIT_CPU to zero + seconds. But the spec says it should, and that's what 2.4.x does. + + Fixing this for real would involve some complexity (such as adding a new + it-has-been-set flag to the task_struct, and testing that everwhere, instead + of overloading the value of it_prof_expires). + + Given that a 2.4 kernel won't actually send the signal until one second has + expired anyway, let's just handle this case by treating the caller's + zero-seconds as one second. + + Cc: Martin Schwidefsky + Cc: Ulrich Weigand + Cc: Cliff Wickman + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ec9e16bacdba1da1ee15dd162384e22df5c87e09 +Author: Andrew Morton +Date: Fri Mar 24 03:18:34 2006 -0800 + + [PATCH] sys_setrlimit() cleanup + + - Whitespace cleanups + + - Make that expression comprehensible. + + There's a potential logic change here: we do the "is it_prof_expires equal to + zero" test after converting it to seconds, rather than doing the comparison + between raw cputime_t's. + + But given that it's in units of seconds anyway, that shouldn't change + anything. + + Cc: Martin Schwidefsky + Cc: Ulrich Weigand + Cc: Cliff Wickman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit de62a97ef576a1f6b5013139ded9893226375bbb +Author: Christoph Hellwig +Date: Fri Mar 24 03:18:33 2006 -0800 + + [PATCH] deprecate the tasklist_lock export + + Drivers have no business looking at the task list and thus using this lock. + The only possibly modular users left are: + + arch/ia64/kernel/mca.c + drivers/edac/edac_mc.c + fs/binfmt_elf.c + + which I'll send out fixes for soon. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 554b7c801e379e8c0072533b4da89a3a003cbfac +Author: Alan Cox +Date: Fri Mar 24 03:18:32 2006 -0800 + + [PATCH] Yet more rio cleaning (2 of 2) + + - Remove more unused headers + - Remove various typedefs + - Correct type of PaddrP (physical addresses should be ulong) + - Kill use of bcopy + - More printk cleanups + - Kill true/false + - Clean up direct access to pci BARs + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 57c2d60e1e3db506cdcecbf60f939593125db7f8 +Author: Alan Cox +Date: Fri Mar 24 03:18:31 2006 -0800 + + [PATCH] Yet more rio cleaning (1 of 2) + + - Remove more unused headers + - Remove various typedefs + - Correct type of PaddrP (physical addresses should be ulong) + - Kill use of bcopy + - More printk cleanups + - Kill true/false + - Clean up direct access to pci BARs + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit db3185242a9a369d5ef13cd2baf196507925009e +Author: Alan Cox +Date: Fri Mar 24 03:18:30 2006 -0800 + + [PATCH] rio driver rework continued #5 + + Final polish. There is no more save_flags/cli type locking left. We also no + longer use the pcicopy function and file so they can go. + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3d336aa257ba382c3ad7883ee000cbacb761e411 +Author: Alan Cox +Date: Fri Mar 24 03:18:29 2006 -0800 + + [PATCH] rio driver rework continued #4 + + Third large chunk of code cleanup. The split between this and #3 and #4 is + fairly arbitary and due to the message length limit on the list. These + patches continue the process of ripping out macros and typedefs while cleaning + up lots of 32bit assumptions. Several inlines for compatibility also get + removed and that causes a lot of noise. + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 00d83a54aa824b11ebc8c66c4a879cfeb5029a22 +Author: Alan Cox +Date: Fri Mar 24 03:18:28 2006 -0800 + + [PATCH] rio driver rework continued #3 + + Second large chunk of code cleanup. The split between this and #3 and #4 is + fairly arbitary and due to the message length limit on the list. These + patches continue the process of ripping out macros and typedefs while cleaning + up lots of 32bit assumptions. Several inlines for compatibility also get + removed and that causes a lot of noise. + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e2b3afd676ad3e15ca2efca3b3605c7d817ec6e3 +Author: Alan Cox +Date: Fri Mar 24 03:18:27 2006 -0800 + + [PATCH] rio driver rework continued #2 + + First large chunk of code cleanup. The split between this and #3 and #4 is + fairly arbitary and due to the message length limit on the list. These + patches continue the process of ripping out macros and typedefs while cleaning + up lots of 32bit assumptions. Several inlines for compatibility also get + removed and that causes a lot of noise. + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 27c6e526f34760a9c48a90112242b7165064fa85 +Author: Alan Cox +Date: Fri Mar 24 03:18:26 2006 -0800 + + [PATCH] rio driver rework continued #1 + + More header cleanups, strip out typedefs and remove cruft. There are a lot of + magic macros that can go and also a great deal of abuse of volatile that is + not needed any more as this patch set cleans up the misuse of pointer access + to ISA and PCI space. + + It now builds cleanly on 64bit, although there is more work left to do + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b6c6b6021ec735bd105e130ac1ee1606575f74c3 +Author: Alan Cox +Date: Fri Mar 24 03:18:26 2006 -0800 + + [PATCH] rioboot: post-Lindent + + After the indent we can now clean up unused code, and fix all myriad cases + that don't use readb/writeb properly. + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3b8e3f1e44326115f2a28a63ede62b1f5c53e46e +Author: Alan Cox +Date: Fri Mar 24 03:18:24 2006 -0800 + + [PATCH] rioboot: lindent + + This is the result of indent -kr -i8 -bri0 -l255 + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 74769abfcb430b839914f3fe91e23a4f628d9553 +Author: Alan Cox +Date: Fri Mar 24 03:18:24 2006 -0800 + + [PATCH] rio: more header cleanup + + Strip some of the typedef mess out Remove a small subset of unused defines + and the like. + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 10e705f83c3e796893a70fb872895ba604901166 +Author: Takashi Iwai +Date: Fri Mar 24 03:18:23 2006 -0800 + + [PATCH] Fix "value computed not used" warnings + + Fixes for annoying gcc-4.1 compile warnings "value computed not used". + Simply cast to void. + + (akpm: Linus will go ballistic...) + + Signed-off-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ac515898f35eaf7b77529cb0560115345d73bc15 +Author: Christoph Hellwig +Date: Fri Mar 24 03:18:22 2006 -0800 + + [PATCH] deprecate the kernel_thread export + + Announce that the kernel_thread export will be removed in half a year, + after all it's users have been converted to the kthread_ API, which I plan + to do over the next month. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 208a08f7cc2a8932ed76162d9844f9ae7d7fc015 +Author: Kumar Gala +Date: Fri Mar 24 03:18:21 2006 -0800 + + [PATCH] ide: Allow IDE interface to specify its not capable of 32-bit operations + + In some embedded systems the IDE hardware interface may only support 16-bit + or smaller accesses. Allow the interface to specify if this is the case + and don't allow the drive or user to override the setting. + + Signed-off-by: Kumar Gala + Acked-by: Bartlomiej Zolnierkiewicz + Cc: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f751d50f6dea1446797c9a31f5c183002e5780a8 +Author: Adrian Bunk +Date: Fri Mar 24 03:18:21 2006 -0800 + + [PATCH] show MCP menu only on ARCH_SA1100 + + On architectures like i386, the "Multimedia Capabilities Port drivers" menu is + visible, but it can't be visited since it contains nothing usable for + !ARCH_SA1100. + + This patch therefore shows this menu only on ARCH_SA1100. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 82d821ddca8f5c990067cc37543010aa9346a172 +Author: Kyle McMartin +Date: Fri Mar 24 03:18:20 2006 -0800 + + [PATCH] Conditionalize compat_sys_newfstatat + + If we don't want sys_newfstatat because __ARCH_WANT_STAT64 is defined, then + we certainly don't want compat_sys_newfstatat either. + + Signed-off-by: Grant Grundler + Signed-off-by: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2ea1c5392cc8ce249fb661db4f4cdfbbae373a89 +Author: John Z. Bohach +Date: Fri Mar 24 03:18:19 2006 -0800 + + [PATCH] console_setup() depends (wrongly?) on CONFIG_PRINTK + + It appears that console_setup() code only gets compiled into the kernel if + CONFIG_PRINTK is enabled. One detrimental side-effect of this is that + serial8250_console_setup() never gets invoked when CONFIG_PRINTK is not + set, resulting in baud rate not being read/parsed from command line (i.e. + console=ttyS0,115200n8 is ignored, at least the baud rate part...) + + Attached patch moves console_setup() code from inside + + #ifdef CONFIG_PRINTK + + to outside (in printk.c), removing dependence on said config. option. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7e9dd124b90af80824754f68c0b246cfd0fb624b +Author: Nico Schottelius +Date: Fri Mar 24 03:18:18 2006 -0800 + + [PATCH] Updated Documentation/nfsroot.txt + + I today booted the first time my embedded device using Linux 2.6.15.2, + which was booted by pxelinux, which then bootet itself from the nfsroot. + + This went pretty fine, but when I was reading through + Documentation/nfsroot.txt I saw that there are some more modern versions + available of loading the kernel and passing parameters. + + Signed-off-by: Nico Schottelius + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d129bceb1d44ed3c23b99164849193703372bab4 +Author: Pierre Ossman +Date: Fri Mar 24 03:18:17 2006 -0800 + + [PATCH] mmc: Secure Digital Host Controller Interface driver + + Driver for the Secure Digital Host Controller Interface specification. + + Signed-off-by: Pierre Ossman + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 97f2478db161714d0e3e864f38f5789c66f98b81 +Author: Pierre Ossman +Date: Fri Mar 24 03:18:16 2006 -0800 + + [PATCH] Secure Digital Host Controller id and regs + + Class code and register definitions for the Secure Digital Host Controller + standard. + + Signed-off-by: Pierre Ossman + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8f2e9f157a94f444dad974b088b853ac40785b02 +Author: Andrew Morton +Date: Fri Mar 24 03:18:15 2006 -0800 + + [PATCH] msync(): use do_fsync() + + No need to duplicate all that code. + + Cc: Hugh Dickins + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 18e79b40ed9c5223b88771f805c69f5993fc131b +Author: Andrew Morton +Date: Fri Mar 24 03:18:14 2006 -0800 + + [PATCH] fsync: extract internal code + + Pull the guts out of do_fsync() - we can use it elsewhere. + + Cc: Hugh Dickins + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 676758bdb7bfca8413a85203921746f446e237be +Author: Andrew Morton +Date: Fri Mar 24 03:18:14 2006 -0800 + + [PATCH] msync: fix return value + + msync() does a strange thing. Essentially: + + vma = find_vma(); + for ( ; ; ) { + if (!vma) + return -ENOMEM; + ... + vma = vma->vm_next; + } + + so an msync() request which starts within or before a valid VMA and which ends + within or beyond the final VMA will incorrectly return -ENOMEM. + + Fix. + + Cc: Hugh Dickins + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 707c21c848deeb0200ba3f07e4ba90e6dc419c2f +Author: Andrew Morton +Date: Fri Mar 24 03:18:13 2006 -0800 + + [PATCH] msync(MS_SYNC): don't hold mmap_sem while syncing + + It seems bad to hold mmap_sem while performing synchronous disk I/O. Alter + the msync(MS_SYNC) code so that the lock is released while we sync the file. + + Cc: Hugh Dickins + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9c50823eebf7c256b92b4e0f02b5fb30e97788c2 +Author: Andrew Morton +Date: Fri Mar 24 03:18:12 2006 -0800 + + [PATCH] msync(): perform dirty page levelling + + It seems sensible to perform dirty page throttling in msync: as the application + dirties pages we can kick off pdflush early, or even force the msync() caller + to perform writeout, or even throttle the msync() caller. + + The main effect of this is to start disk writeback earlier if we've just + discovered that a large amount of pagecache has been dirtied. (Otherwise it + wouldn't happen for up to five seconds, next time pdflush wakes up). + + It also will cause the page-dirtying process to get panalised for dirtying + those pages rather than whacking someone else with the problem. + + We should do this for munmap() and possibly even exit(), too. + + We drop the mmap_sem while performing the dirty page balancing. It doesn't + seem right to hold mmap_sem for that long. + + Note that this patch only affects MS_ASYNC. MS_SYNC will be syncing all the + dirty pages anyway. + + We note that msync(MS_SYNC) does a full-file-sync inside mmap_sem, and always + has. We can fix that up... + + The patch also tightens up the mmap_sem coverage in sys_msync(): no point in + taking it while we perform the incoming arg checking. + + Cc: Hugh Dickins + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4741c9fd36b3bcadd37238321c469049da94a4b9 +Author: Andrew Morton +Date: Fri Mar 24 03:18:11 2006 -0800 + + [PATCH] set_page_dirty() return value fixes + + We need set_page_dirty() to return true if it actually transitioned the page + from a clean to dirty state. This wasn't right in a couple of places. Do a + kernel-wide audit, fix things up. + + This leaves open the possibility of returning a negative errno from + set_page_dirty() sometime in the future. But we don't do that at present. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fa5a734e406b53761fcc5ee22366006f71112c2d +Author: Andrew Morton +Date: Fri Mar 24 03:18:10 2006 -0800 + + [PATCH] balance_dirty_pages_ratelimited: take nr_pages arg + + Modify balance_dirty_pages_ratelimited() so that it can take a + number-of-pages-which-I-just-dirtied argument. For msync(). + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8a14342683b1e3adcf5f78660a42fcbd95b44a35 +Author: Eric Dumazet +Date: Fri Mar 24 03:18:10 2006 -0800 + + [PATCH] HOTPLUG_CPU: avoid hitting too many cachelines in recalc_bh_state() + + Instead of using for_each_cpu(i), we can use for_each_online_cpu(i). + + When a CPU goes offline (ie removed from online map), it might have a non + null bh_accounting.nr, so this patch adds a transfer of this counter to an + online CPU counter. + + We already have a hotcpu_notifier, (function buffer_cpu_notify()), where we + can do this bh_accounting. + + Signed-off-by: Eric Dumazet + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2ecb9e633c5057d1203a59ef3e5c3aaea37c402e +Author: Arthur Othieno +Date: Fri Mar 24 03:18:08 2006 -0800 + + [PATCH] sound: remove PC98-specific OPL3_HW_OPL3_PC98 + + OPL3_HW_OPL3_PC98 #define isn't used anywhere; previously in + sound/drivers/opl3/opl3_lib.c and sound/isa/cs423x/pc98.c, the latter of which + went away with the rest of PC98 subarch. + + Signed-off-by: Arthur Othieno + Cc: Jaroslav Kysela + Cc: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 453ae9337aa3a7da12db723223998c7f75a026c0 +Author: Arthur Othieno +Date: Fri Mar 24 03:18:07 2006 -0800 + + [PATCH] block: floppy98 removal, really. + + floppy98 went out together with the rest of PC98 subarch. Remove stale + Makefile entry that remained. + + Signed-off-by: Arthur Othieno + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit df1e2fb540368d0f9640045235f81923fa63acb7 +Author: Hugh Dickins +Date: Fri Mar 24 03:18:06 2006 -0800 + + [PATCH] shmdt: check address alignment + + SUSv3 says the shmdt() function shall fail with EINVAL if the value of + shmaddr is not the data segment start address of a shared memory segment: + our sys_shmdt needs to reject a shmaddr which is not page-aligned. + + Does it have the potential to break existing apps? + + Hugh says + + "sys_shmdt() just does the wrong (unexpected) thing with a misaligned + address: it'll fail on what you might expect it to succeed on, and only + succeed on what it should definitely fail on. + + "That is, I think it behaves as if shmaddr gets rounded up, when the only + understandable behaviour would be if it rounded it down. + + "Which does mean you'd have to be devious to see anything but EINVAL from + a misaligned shmaddr there, so it's not terribly important." + + Signed-off-by: Hugh Dickins + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 38885bd4c2a4b59ddb22271d3e6c621859c76f02 +Author: Coywolf Qi Hunt +Date: Fri Mar 24 03:18:05 2006 -0800 + + [PATCH] sb_set_blocksize cleanup + + sb_set_blocksize() cleanup: make sb_set_blocksize() use blksize_bits(). + + Signed-off-by: Coywolf Qi Hunt + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a94ddf3ab866df9c187c9d8b3870b7ec38c6f7ad +Author: Randy Dunlap +Date: Fri Mar 24 03:18:05 2006 -0800 + + [PATCH] early_printk: cleanup trailiing whitespace + + Remove all trailing tabs and spaces. No other changes. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ebcf28e1c7a295f3321249dd235ad2e45938fdd9 +Author: Andrew Morton +Date: Fri Mar 24 03:18:04 2006 -0800 + + [PATCH] fadvise(): write commands + + Add two new linux-specific fadvise extensions(): + + LINUX_FADV_ASYNC_WRITE: start async writeout of any dirty pages between file + offsets `offset' and `offset+len'. Any pages which are currently under + writeout are skipped, whether or not they are dirty. + + LINUX_FADV_WRITE_WAIT: wait upon writeout of any dirty pages between file + offsets `offset' and `offset+len'. + + By combining these two operations the application may do several things: + + LINUX_FADV_ASYNC_WRITE: push some or all of the dirty pages at the disk. + + LINUX_FADV_WRITE_WAIT, LINUX_FADV_ASYNC_WRITE: push all of the currently dirty + pages at the disk. + + LINUX_FADV_WRITE_WAIT, LINUX_FADV_ASYNC_WRITE, LINUX_FADV_WRITE_WAIT: push all + of the currently dirty pages at the disk, wait until they have been written. + + It should be noted that none of these operations write out the file's + metadata. So unless the application is strictly performing overwrites of + already-instantiated disk blocks, there are no guarantees here that the data + will be available after a crash. + + To complete this suite of operations I guess we should have a "sync file + metadata only" operation. This gives applications access to all the building + blocks needed for all sorts of sync operations. But sync-metadata doesn't fit + well with the fadvise() interface. Probably it should be a new syscall: + sys_fmetadatasync(). + + The patch also diddles with the meaning of `endbyte' in sys_fadvise64_64(). + It is made to represent that last affected byte in the file (ie: it is + inclusive). Generally, all these byterange and pagerange functions are + inclusive so we can easily represent EOF with -1. + + As Ulrich notes, these two functions are somewhat abusive of the fadvise() + concept, which appears to be "set the future policy for this fd". + + But these commands are a perfect fit with the fadvise() impementation, and + several of the existing fadvise() commands are synchronous and don't affect + future policy either. I think we can live with the slight incongruity. + + Cc: Michael Kerrisk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 469eb4d03878b676418f853011ebfb54ccf83a5e +Author: Andrew Morton +Date: Fri Mar 24 03:17:45 2006 -0800 + + [PATCH] filemap_fdatawrite_range() api: clarify -end parameter + + I had trouble understanding working out whether filemap_fdatawrite_range()'s + `end' parameter describes the last-byte-to-be-written or the last-plus-one. + Clarify that in comments. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 604bf5a216e7f2d97cdf62614ca1281921531040 +Author: Jan Beulich +Date: Fri Mar 24 03:16:19 2006 -0800 + + [PATCH] CONFIG_UNWIND_INFO + + As a foundation for reliable stack unwinding, this adds a config option + (available to all architectures except IA64 and those where the module + loader might have problems with the resulting relocations) to enable the + generation of frame unwind information. + + Signed-off-by: Jan Beulich + Cc: Miles Bader + Cc: "Luck, Tony" + Cc: Ralf Baechle + Cc: Kyle McMartin + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: "David S. Miller" + Cc: Paul Mundt , + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ab7efcc97ebc92e03c0474dfd38f9c7b84b84115 +Author: Jan Beulich +Date: Fri Mar 24 03:16:17 2006 -0800 + + [PATCH] abstract type/size specification for assembly + + Provide abstraction for generating type and size information of assembly + routines and data, while permitting architectures to override these + defaults. + + Signed-off-by: Jan Beulich + Cc: "Russell King" + Cc: Ralf Baechle + Cc: "Andi Kleen" + Cc: "Luck, Tony" + Cc: Miles Bader + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 09fe316a7b10219be592118626850e1dfdfcc1aa +Author: Alex Tomas +Date: Fri Mar 24 03:16:16 2006 -0800 + + [PATCH] fast ext3_statfs + + Under I/O load it may take up to a dozen seconds to read all group + descriptors. This is what ext3_statfs() does. At the same time, we already + maintain global numbers of free inodes/blocks. Why don't we use them instead + of group reading and summing? + + Cc: Ravikiran G Thirumalai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e933b6d6511dc80c63ab36fd584715371ae293c7 +Author: Olaf Hering +Date: Fri Mar 24 03:16:15 2006 -0800 + + [PATCH] remove ipmi pm_power_off redefinition + + Use the global define of pm_power_off + + Signed-off-by: Olaf Hering + Cc: Corey Minyard + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5b3cf3e0f019fcfe1e0c26aedb4d54b5e5be3a7b +Author: Pekka Enberg +Date: Fri Mar 24 03:16:14 2006 -0800 + + [PATCH] isofs: remove unused debugging macros + + Remove unused debugging macros from isofs. The referred debug functions do + not exist in the kernel. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 53b3531bbbf70ac7551b32d1acc229d94de52658 +Author: Alexey Dobriyan +Date: Fri Mar 24 03:16:13 2006 -0800 + + [PATCH] s/;;/;/g + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 29afd49b72a9b2c26fa8c678bcf3976d0540446b +Author: Paul Jackson +Date: Fri Mar 24 03:16:12 2006 -0800 + + [PATCH] cpuset: remove useless local variable initialization + + Remove a useless variable initialization in cpuset __cpuset_zone_allowed(). + The local variable 'allowed' is unconditionally set before use, later on + in the code, so does not need to be initialized. + + Not that it seems to matter to the code generated any, as the compiler + optimizes out the superfluous assignment anyway. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b2455396be35383c4eebc6745cc718b1dd9e23df +Author: Paul Jackson +Date: Fri Mar 24 03:16:12 2006 -0800 + + [PATCH] cpuset: memory_spread_slab drop useless PF_SPREAD_PAGE check + + The hook in the slab cache allocation path to handle cpuset memory + spreading for tasks in cpusets with 'memory_spread_slab' enabled has a + modest performance bug. The hook calls into the memory spreading handler + alternate_node_alloc() if either of 'memory_spread_slab' or + 'memory_spread_page' is enabled, even though the handler does nothing + (albeit harmlessly) for the page case + + Fix - drop PF_SPREAD_PAGE from the set of flag bits that are used to + trigger a call to alternate_node_alloc(). + + The page case is handled by separate hooks -- see the calls conditioned on + cpuset_do_page_mem_spread() in mm/filemap.c + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 151a44202d097ae8b1bbaa6d8d2f97df30e3cd1e +Author: Paul Jackson +Date: Fri Mar 24 03:16:11 2006 -0800 + + [PATCH] cpuset: don't need to mark cpuset_mems_generation atomic + + Drop the atomic_t marking on the cpuset static global + cpuset_mems_generation. Since all access to it is guarded by the global + manage_mutex, there is no need for further serialization of this value. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8488bc359d674baf710992e4b641513ea5ebd212 +Author: Paul Jackson +Date: Fri Mar 24 03:16:10 2006 -0800 + + [PATCH] cpuset: remove unnecessary NULL check + + Remove a no longer needed test for NULL cpuset pointer, with a little + comment explaining why the test isn't needed. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b0196009d8c3ecf6ea6ec080c63d2ccc146e7ad9 +Author: Paul Jackson +Date: Fri Mar 24 03:16:09 2006 -0800 + + [PATCH] cpuset memory spread slab cache hooks + + Change the kmem_cache_create calls for certain slab caches to support cpuset + memory spreading. + + See the previous patches, cpuset_mem_spread, for an explanation of cpuset + memory spreading, and cpuset_mem_spread_slab_cache for the slab cache support + for memory spreading. + + The slab caches marked for now are: dentry_cache, inode_cache, some xfs slab + caches, and buffer_head. This list may change over time. In particular, + other file system types that are used extensively on large NUMA systems may + want to allow for spreading their directory and inode slab cache entries. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c61afb181c649754ea221f104e268cbacfc993e3 +Author: Paul Jackson +Date: Fri Mar 24 03:16:08 2006 -0800 + + [PATCH] cpuset memory spread slab cache optimizations + + The hooks in the slab cache allocator code path for support of NUMA + mempolicies and cpuset memory spreading are in an important code path. Many + systems will use neither feature. + + This patch optimizes those hooks down to a single check of some bits in the + current tasks task_struct flags. For non NUMA systems, this hook and related + code is already ifdef'd out. + + The optimization is done by using another task flag, set if the task is using + a non-default NUMA mempolicy. Taking this flag bit along with the + PF_SPREAD_PAGE and PF_SPREAD_SLAB flag bits added earlier in this 'cpuset + memory spreading' patch set, one can check for the combination of any of these + special case memory placement mechanisms with a single test of the current + tasks task_struct flags. + + This patch also tightens up the code, to save a few bytes of kernel text + space, and moves some of it out of line. Due to the nested inlines called + from multiple places, we were ending up with three copies of this code, which + once we get off the main code path (for local node allocation) seems a bit + wasteful of instruction memory. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 101a50019ae5e370d73984ee05d56dd3b08f330a +Author: Paul Jackson +Date: Fri Mar 24 03:16:07 2006 -0800 + + [PATCH] cpuset memory spread slab cache implementation + + Provide the slab cache infrastructure to support cpuset memory spreading. + + See the previous patches, cpuset_mem_spread, for an explanation of cpuset + memory spreading. + + This patch provides a slab cache SLAB_MEM_SPREAD flag. If set in the + kmem_cache_create() call defining a slab cache, then any task marked with the + process state flag PF_MEMSPREAD will spread memory page allocations for that + cache over all the allowed nodes, instead of preferring the local (faulting) + node. + + On systems not configured with CONFIG_NUMA, this results in no change to the + page allocation code path for slab caches. + + On systems with cpusets configured in the kernel, but the "memory_spread" + cpuset option not enabled for the current tasks cpuset, this adds a call to a + cpuset routine and failed bit test of the processor state flag PF_SPREAD_SLAB. + + For tasks so marked, a second inline test is done for the slab cache flag + SLAB_MEM_SPREAD, and if that is set and if the allocation is not + in_interrupt(), this adds a call to to a cpuset routine that computes which of + the tasks mems_allowed nodes should be preferred for this allocation. + + ==> This patch adds another hook into the performance critical + code path to allocating objects from the slab cache, in the + ____cache_alloc() chunk, below. The next patch optimizes this + hook, reducing the impact of the combined mempolicy plus memory + spreading hooks on this critical code path to a single check + against the tasks task_struct flags word. + + This patch provides the generic slab flags and logic needed to apply memory + spreading to a particular slab. + + A subsequent patch will mark a few specific slab caches for this placement + policy. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fffb60f93ce5880aade88e01d7133b52a4879710 +Author: Paul Jackson +Date: Fri Mar 24 03:16:06 2006 -0800 + + [PATCH] cpuset memory spread: slab cache format + + Rewrap the overly long source code lines resulting from the previous + patch's addition of the slab cache flag SLAB_MEM_SPREAD. This patch + contains only formatting changes, and no function change. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4b6a9316fab51af611dc8671f296734089f6a22a +Author: Paul Jackson +Date: Fri Mar 24 03:16:05 2006 -0800 + + [PATCH] cpuset memory spread: slab cache filesystems + + Mark file system inode and similar slab caches subject to SLAB_MEM_SPREAD + memory spreading. + + If a slab cache is marked SLAB_MEM_SPREAD, then anytime that a task that's + in a cpuset with the 'memory_spread_slab' option enabled goes to allocate + from such a slab cache, the allocations are spread evenly over all the + memory nodes (task->mems_allowed) allowed to that task, instead of favoring + allocation on the node local to the current cpu. + + The following inode and similar caches are marked SLAB_MEM_SPREAD: + + file cache + ==== ===== + fs/adfs/super.c adfs_inode_cache + fs/affs/super.c affs_inode_cache + fs/befs/linuxvfs.c befs_inode_cache + fs/bfs/inode.c bfs_inode_cache + fs/block_dev.c bdev_cache + fs/cifs/cifsfs.c cifs_inode_cache + fs/coda/inode.c coda_inode_cache + fs/dquot.c dquot + fs/efs/super.c efs_inode_cache + fs/ext2/super.c ext2_inode_cache + fs/ext2/xattr.c (fs/mbcache.c) ext2_xattr + fs/ext3/super.c ext3_inode_cache + fs/ext3/xattr.c (fs/mbcache.c) ext3_xattr + fs/fat/cache.c fat_cache + fs/fat/inode.c fat_inode_cache + fs/freevxfs/vxfs_super.c vxfs_inode + fs/hpfs/super.c hpfs_inode_cache + fs/isofs/inode.c isofs_inode_cache + fs/jffs/inode-v23.c jffs_fm + fs/jffs2/super.c jffs2_i + fs/jfs/super.c jfs_ip + fs/minix/inode.c minix_inode_cache + fs/ncpfs/inode.c ncp_inode_cache + fs/nfs/direct.c nfs_direct_cache + fs/nfs/inode.c nfs_inode_cache + fs/ntfs/super.c ntfs_big_inode_cache_name + fs/ntfs/super.c ntfs_inode_cache + fs/ocfs2/dlm/dlmfs.c dlmfs_inode_cache + fs/ocfs2/super.c ocfs2_inode_cache + fs/proc/inode.c proc_inode_cache + fs/qnx4/inode.c qnx4_inode_cache + fs/reiserfs/super.c reiser_inode_cache + fs/romfs/inode.c romfs_inode_cache + fs/smbfs/inode.c smb_inode_cache + fs/sysv/inode.c sysv_inode_cache + fs/udf/super.c udf_inode_cache + fs/ufs/super.c ufs_inode_cache + net/socket.c sock_inode_cache + net/sunrpc/rpc_pipe.c rpc_inode_cache + + The choice of which slab caches to so mark was quite simple. I marked + those already marked SLAB_RECLAIM_ACCOUNT, except for fs/xfs, dentry_cache, + inode_cache, and buffer_head, which were marked in a previous patch. Even + though SLAB_RECLAIM_ACCOUNT is for a different purpose, it marks the same + potentially large file system i/o related slab caches as we need for memory + spreading. + + Given that the rule now becomes "wherever you would have used a + SLAB_RECLAIM_ACCOUNT slab cache flag before (usually the inode cache), use + the SLAB_MEM_SPREAD flag too", this should be easy enough to maintain. + Future file system writers will just copy one of the existing file system + slab cache setups and tend to get it right without thinking. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 44110fe385af23ca5eee8a6ad4ff55d50339097a +Author: Paul Jackson +Date: Fri Mar 24 03:16:04 2006 -0800 + + [PATCH] cpuset memory spread page cache implementation and hooks + + Change the page cache allocation calls to support cpuset memory spreading. + + See the previous patch, cpuset_mem_spread, for an explanation of cpuset memory + spreading. + + On systems without cpusets configured in the kernel, this is no change. + + On systems with cpusets configured in the kernel, but the "memory_spread" + cpuset option not enabled for the current tasks cpuset, this adds a call to a + cpuset routine and failed bit test of the processor state flag PF_SPREAD_PAGE. + + On tasks in cpusets with "memory_spread" enabled, this adds a call to a cpuset + routine that computes which of the tasks mems_allowed nodes should be + preferred for this allocation. + + If memory spreading applies to a particular allocation, then any other NUMA + mempolicy does not apply. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 825a46af5ac171f9f41f794a0a00165588ba1589 +Author: Paul Jackson +Date: Fri Mar 24 03:16:03 2006 -0800 + + [PATCH] cpuset memory spread basic implementation + + This patch provides the implementation and cpuset interface for an alternative + memory allocation policy that can be applied to certain kinds of memory + allocations, such as the page cache (file system buffers) and some slab caches + (such as inode caches). + + The policy is called "memory spreading." If enabled, it spreads out these + kinds of memory allocations over all the nodes allowed to a task, instead of + preferring to place them on the node where the task is executing. + + All other kinds of allocations, including anonymous pages for a tasks stack + and data regions, are not affected by this policy choice, and continue to be + allocated preferring the node local to execution, as modified by the NUMA + mempolicy. + + There are two boolean flag files per cpuset that control where the kernel + allocates pages for the file system buffers and related in kernel data + structures. They are called 'memory_spread_page' and 'memory_spread_slab'. + + If the per-cpuset boolean flag file 'memory_spread_page' is set, then the + kernel will spread the file system buffers (page cache) evenly over all the + nodes that the faulting task is allowed to use, instead of preferring to put + those pages on the node where the task is running. + + If the per-cpuset boolean flag file 'memory_spread_slab' is set, then the + kernel will spread some file system related slab caches, such as for inodes + and dentries evenly over all the nodes that the faulting task is allowed to + use, instead of preferring to put those pages on the node where the task is + running. + + The implementation is simple. Setting the cpuset flags 'memory_spread_page' + or 'memory_spread_cache' turns on the per-process flags PF_SPREAD_PAGE or + PF_SPREAD_SLAB, respectively, for each task that is in the cpuset or + subsequently joins that cpuset. In subsequent patches, the page allocation + calls for the affected page cache and slab caches are modified to perform an + inline check for these flags, and if set, a call to a new routine + cpuset_mem_spread_node() returns the node to prefer for the allocation. + + The cpuset_mem_spread_node() routine is also simple. It uses the value of a + per-task rotor cpuset_mem_spread_rotor to select the next node in the current + tasks mems_allowed to prefer for the allocation. + + This policy can provide substantial improvements for jobs that need to place + thread local data on the corresponding node, but that need to access large + file system data sets that need to be spread across the several nodes in the + jobs cpuset in order to fit. Without this patch, especially for jobs that + might have one thread reading in the data set, the memory allocation across + the nodes in the jobs cpuset can become very uneven. + + A couple of Copyright year ranges are updated as well. And a couple of email + addresses that can be found in the MAINTAINERS file are removed. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8a39cc60bfa5a72f32d975729a354daca124f6de +Author: Paul Jackson +Date: Fri Mar 24 03:16:01 2006 -0800 + + [PATCH] cpuset use combined atomic_inc_return calls + + Replace pairs of calls to , with a single call + atomic_inc_return, saving a few bytes of source and kernel text. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7b5b9ef0e17d52c188fe73ea78e884fe67079e6c +Author: Paul Jackson +Date: Fri Mar 24 03:16:00 2006 -0800 + + [PATCH] cpuset cleanup not not operators + + Since the test_bit() bit operator is boolean (return 0 or 1), the double not + "!!" operations needed to convert a scalar (zero or not zero) to a boolean are + not needed. + + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0b1303fcf23678ee1785841fb0c770a35cd0833c +Author: Christoph Lameter +Date: Fri Mar 24 03:15:59 2006 -0800 + + [PATCH] cpusets: only wakeup kswapd for zones in the current cpuset + + If we get under some memory pressure in a cpuset (we only scan zones that + are in the cpuset for memory) then kswapd is woken up for all zones. This + patch only wakes up kswapd in zones that are part of the current cpuset. + + Signed-off-by: Christoph Lameter + Acked-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 95c3832272fc77ea3e31f6382f82ba17be985cc7 +Author: Paul E. McKenney +Date: Fri Mar 24 03:15:58 2006 -0800 + + [PATCH] rcutorture: tag success/failure line with module parameters + + A long-running rcutorture test can overflow dmesg, so that the line + containing the module parameters is lost. Although it is usually possible + to retrieve this information from the log files, it is much better to just + tag it onto the final success/failure line so that it may be easily found. + This patch does just that. + + Signed-off-by: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cdb0452789d365695b5b173542af9c7e3d24f185 +Author: Adrian Bunk +Date: Fri Mar 24 03:15:57 2006 -0800 + + [PATCH] kill include/linux/platform.h, default_idle() cleanup + + include/linux/platform.h contained nothing that was actually used except + the default_idle() prototype, and is therefore removed by this patch. + + This patch does the following with the platform specific default_idle() + functions on different architectures: + - remove the unused function: + - parisc + - sparc64 + - make the needlessly global function static: + - arm + - h8300 + - m68k + - m68knommu + - s390 + - v850 + - x86_64 + - add a prototype in asm/system.h: + - cris + - i386 + - ia64 + + Signed-off-by: Adrian Bunk + Acked-by: Patrick Mochel + Acked-by: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 008accbbae6b2f18c2039d563f28d46ff4388d36 +Author: Alexey Dobriyan +Date: Fri Mar 24 03:15:56 2006 -0800 + + [PATCH] extract-ikconfig: don't use --long-options + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ff45e99dcd31e1810a9892ce28190bff262e4e12 +Author: Alexey Dobriyan +Date: Fri Mar 24 03:15:56 2006 -0800 + + [PATCH] extract-ikconfig: be sure binoffset exists before extracting + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 66f9f59a5bfcb9efc8acad5ff0ece02fdaca6817 +Author: Alexey Dobriyan +Date: Fri Mar 24 03:15:55 2006 -0800 + + [PATCH] extract-ikconfig: use mktemp(1) + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a4a6198b80cf82eb8160603c98da218d1bd5e104 +Author: Jan Beulich +Date: Fri Mar 24 03:15:54 2006 -0800 + + [PATCH] tvec_bases too large for per-cpu data + + With internal Xen-enabled kernels we see the kernel's static per-cpu data + area exceed the limit of 32k on x86-64, and even native x86-64 kernels get + fairly close to that limit. I generally question whether it is reasonable + to have data structures several kb in size allocated as per-cpu data when + the space there is rather limited. + + The biggest arch-independent consumer is tvec_bases (over 4k on 32-bit + archs, over 8k on 64-bit ones), which now gets converted to use dynamically + allocated memory instead. + + Signed-off-by: Jan Beulich + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c98d8cfbc600af88e9e6cffc84dd342280445760 +Author: Adrian Bunk +Date: Fri Mar 24 03:15:53 2006 -0800 + + [PATCH] fs/coda/: proper prototypes + + Introduce a file fs/coda/coda_int.h with proper prototypes for some code. + + Signed-off-by: Adrian Bunk + Acked-by: Jan Harkes + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2c2212901f8b3fc84f36cb98150cfc2f6b4752f8 +Author: Adrian Bunk +Date: Fri Mar 24 03:15:53 2006 -0800 + + [PATCH] fs/ext2/: proper ext2_get_parent() prototype + + Add a proper prototype for ext2_get_parent(). + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 29c6e48601065908e7933c0d8440f383fffe155b +Author: Adrian Bunk +Date: Fri Mar 24 03:15:52 2006 -0800 + + [PATCH] fs/9p/: possible cleanups + + - mux.c: v9fs_poll_mux() was inline but not static resuling in needless + object size bloat + - mux.c: remove all "inline"s: gcc should know best what to inline + - #if 0 the following unused global functions: + - 9p.c: v9fs_v9fs_t_flush() + - conv.c: v9fs_create_tauth() + - mux.c: v9fs_mux_rpcnb() + + Signed-off-by: Adrian Bunk + Cc: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit caa9ee771de3195ae85ac6f8cb550f53e9ecdd82 +Author: Oleg Nesterov +Date: Fri Mar 24 03:15:50 2006 -0800 + + [PATCH] rcu_process_callbacks: don't cli() while testing ->nxtlist + + __rcu_process_callbacks() disables interrupts to protect itself from + call_rcu() which adds new entries to ->nxtlist. + + However we can check "->nxtlist != NULL" with interrupts enabled, we can't + get "false positives" because call_rcu() can only change this condition + from 0 to 1. + + Tested with rcutorture.ko. + + Signed-off-by: Oleg Nesterov + Acked-by: Dipankar Sarma + Cc: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cba9f33d13a8ca3125b2a30abe2425ce562d8a83 +Author: Bart Samwel +Date: Fri Mar 24 03:15:50 2006 -0800 + + [PATCH] Range checking in do_proc_dointvec_(userhz_)jiffies_conv + + When (integer) sysctl values are in either seconds or centiseconds, but + represented internally as jiffies, the allowable value range is decreased. + This patch adds range checks to the conversion routines. + + For values in seconds: maximum LONG_MAX / HZ. + + For values in centiseconds: maximum (LONG_MAX / HZ) * USER_HZ. + + (BTW, does anyone else feel that an interface in seconds should not be + accepting negative values?) + + Signed-off-by: Bart Samwel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ed5b43f15a8e86e3ae939b98bc161ee973ecedf2 +Author: Bart Samwel +Date: Fri Mar 24 03:15:49 2006 -0800 + + [PATCH] Represent laptop_mode as jiffies internally + + Make that the internal value for /proc/sys/vm/laptop_mode is stored as + jiffies instead of seconds. Let the sysctl interface do the conversions, + instead of doing on-the-fly conversions every time the value is used. + + Add a description of the fact that laptop_mode doubles as a flag and a + timeout to the comment above the laptop_mode variable. + + Signed-off-by: Bart Samwel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f6ef943813ac3085ece7252ea101d663581219f6 +Author: Bart Samwel +Date: Fri Mar 24 03:15:48 2006 -0800 + + [PATCH] Represent dirty_*_centisecs as jiffies internally + + Make that the internal values for: + + /proc/sys/vm/dirty_writeback_centisecs + /proc/sys/vm/dirty_expire_centisecs + + are stored as jiffies instead of centiseconds. Let the sysctl interface do + the conversions with full precision using clock_t_to_jiffies, instead of + doing overflow-sensitive on-the-fly conversions every time the values are + used. + + Cons: apparent precision loss if HZ is not a multiple of 100, because of + conversion back and forth. This is a common problem for all sysctl values + that use proc_dointvec_userhz_jiffies. (There is only one other in-tree + use, in net/core/neighbour.c.) + + Signed-off-by: Bart Samwel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 36f574135e36b86bb6ae794bf1d0fce3efa5601f +Author: Andrew Morton +Date: Fri Mar 24 03:15:47 2006 -0800 + + [PATCH] free_uid() locking improvement + + Reduce lock hold times in free_uid(). + + Cc: Ingo Molnar + Cc: "Paul E. McKenney" + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3cf64b933c90ba701cfdc7188431104c646d7c9e +Author: Paul Jackson +Date: Fri Mar 24 03:15:46 2006 -0800 + + [PATCH] bitmap: region restructuring + + Restructure the bitmap_*_region() operations, to avoid code duplication. + + Also reduces binary text size by about 100 bytes (ia64 arch). The original + Bottomley bitmap_*_region patch added about 1000 bytes of compiled kernel text + (ia64). The Mundt multiword extension added another 600 bytes, and this + restructuring patch gets back about 100 bytes. + + But the real motivation was the reduced amount of duplicated code. + + Tested by Paul Mundt using <= BITS_PER_LONG as well as power of + 2 aligned multiword spanning allocations. + + Signed-off-by: Paul Mundt + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 74373c6acc52450ced28780d5fece60f1d7d20aa +Author: Paul Mundt +Date: Fri Mar 24 03:15:45 2006 -0800 + + [PATCH] bitmap: region multiword spanning support + + Add support to the lib/bitmap.c bitmap_*_region() routines + + For bitmap regions larger than one word (nbits > BITS_PER_LONG). This removes + a BUG_ON() in lib bitmap. + + I have an updated store queue API for SH that is currently using this with + relative success, and at first glance, it seems like this could be useful for + x86 (arch/i386/kernel/pci-dma.c) as well. Particularly for anything using + dma_declare_coherent_memory() on large areas and that attempts to allocate + large buffers from that space. + + Paul Jackson also did some cleanup to this patch. + + Signed-off-by: Paul Mundt + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 87e24802586333fa861861f6493c76039872755b +Author: Paul Jackson +Date: Fri Mar 24 03:15:44 2006 -0800 + + [PATCH] bitmap: region cleanup + + Paul Mundt says: + + This patch set implements a number of patches to clean up and restructure the + bitmap region code, in addition to extending the interface to support + multiword spanning allocations. + + The current implementation (before this patch set) is limited by only being + able to allocate pages <= BITS_PER_LONG, as noted by the strategically + positioned BUG_ON() at lib/bitmap.c:752: + + /* We don't do regions of pages > BITS_PER_LONG. The + * algorithm would be a simple look for multiple zeros in the + * array, but there's no driver today that needs this. If you + * trip this BUG(), you get to code it... */ + BUG_ON(pages > BITS_PER_LONG); + + As I seem to have been the first person to trigger this, the result ends up + being the following patch set with the help of Paul Jackson. + + The final patch in the series eliminates quite a bit of code duplication, so + the bitmap code size ends up being smaller than the current implementation as + an added bonus. + + After these are applied, it should already be possible to do multiword + allocations with dma_alloc_coherent() out of ranges established by + dma_declare_coherent_memory() on x86 without having to change any of the code, + and the SH store queue API will follow up on this as the other user that needs + support for this. + + This patch: + + Some code cleanup on the lib/bitmap.c bitmap_*_region() routines: + + * spacing + * variable names + * comments + + Has no change to code function. + + Signed-off-by: Paul Mundt + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f993b3bf80b23d329951fe0fc5ba3647d5d912e9 +Author: Adrian Bunk +Date: Fri Mar 24 03:15:42 2006 -0800 + + [PATCH] remove ISA legacy functions: remove documentation + + This patch removes the documentation of the ISA legacy functions. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 57f3ebccaa560d1eeb40b5c719773bed5cb0df46 +Author: Al Viro +Date: Fri Mar 24 03:15:41 2006 -0800 + + [PATCH] remove ISA legacy functions: remove the helpers + + unused isa_...() helpers removed. + + Adrian Bunk: + The asm-sh part was rediffed due to unrelated changes. + + Signed-off-by: Al Viro + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c44fec118b62baad3fc70e2ef3447729a1d9b194 +Author: Al Viro +Date: Fri Mar 24 03:15:41 2006 -0800 + + [PATCH] remove ISA legacy functions: drivers/net/lance.c + + switch to ioremap() + + Signed-off-by: Al Viro + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b336cea307839f97684d314071ef683821c571ed +Author: Al Viro +Date: Fri Mar 24 03:15:40 2006 -0800 + + [PATCH] remove ISA legacy functions: drivers/net/hp-plus.c + + switch to ioremap() + + Adrian Bunk: + The order of the hunks in the patch was slightly rearranged due to an + unrelated change in the driver. + + Signed-off-by: Al Viro + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 22bc685f4b93f4a0ce28e5829eaf754cb4f7c040 +Author: Al Viro +Date: Fri Mar 24 03:15:38 2006 -0800 + + [PATCH] remove ISA legacy functions: drivers/scsi/in2000.c + + switched to ioremap(), cleaned the probing up a bit. + + Signed-off-by: Al Viro + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c818cb6406815716ab210ae15655ed94a973b15f +Author: Al Viro +Date: Fri Mar 24 03:15:37 2006 -0800 + + [PATCH] remove ISA legacy functions: drivers/scsi/g_NCR5380.c + + switched CONFIG_SCSI_G_NCR5380_MEM code in g_NCR5380 to ioremap(); massaged + g_NCR5380.h accordingly. + + Signed-off-by: Al Viro + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ef5a4c8b04867fa8ed9eaf311c4ed0c57c589b6d +Author: Al Viro +Date: Fri Mar 24 03:15:36 2006 -0800 + + [PATCH] remove ISA legacy functions: drivers/char/toshiba.c + + switch from isa_read...() to ioremap() and read...() + + Signed-off-by: Al Viro + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e8c96f8c29d89af0c13dc2819a9a00575846ca18 +Author: Tobias Klauser +Date: Fri Mar 24 03:15:34 2006 -0800 + + [PATCH] fs: Use ARRAY_SIZE macro + + Use ARRAY_SIZE macro instead of sizeof(x)/sizeof(x[0]) and remove a + duplicate of ARRAY_SIZE. Some trailing whitespaces are also deleted. + + Signed-off-by: Tobias Klauser + Cc: David Howells + Cc: Dave Kleikamp + Acked-by: Trond Myklebust + Cc: Neil Brown + Cc: Chris Mason + Cc: Jeff Mahoney + Cc: Christoph Hellwig + Cc: Nathan Scott + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b5029622ac86bb441dc5e641226fb1152fca02d7 +Author: Bastian Blank +Date: Fri Mar 24 03:15:32 2006 -0800 + + [PATCH] dasd: "cleanup dasd_ioctl" fix + + Cast the argument correctly. + + Cc: Christoph Hellwig + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 88abaab4f9b08381e30e737980a1c49d6b524dfc +Author: Eric Sesterhenn +Date: Fri Mar 24 03:15:31 2006 -0800 + + [PATCH] s390: kzalloc() conversion in drivers/s390 + + Convert all kmalloc + memset sequences in drivers/s390 to kzalloc usage. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fb630517f0d0736ea73af07d6b357be9ad67e6f1 +Author: Eric Sesterhenn +Date: Fri Mar 24 03:15:31 2006 -0800 + + [PATCH] s390: kzalloc() conversion in arch/s390 + + Convert all kmalloc + memset sequences in arch/s390 to kzalloc usage. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 96641ee1e4a5154943774639478eb997f4ffb97e +Author: Eric Rossman +Date: Fri Mar 24 03:15:30 2006 -0800 + + [PATCH] s390: CEX2A crt message length + + Undetected edge case for CRT messages to CEX2A caused length to be too short, + thus truncating the message. The solution was to check a different variable + which actually determines which key type is being used. + + Increment version number in z90main.c to correct level of 1.3.3, fix copyright + year and add comment about bitlength limit of CEX2A. + + Signed-off-by: Eric Rossman + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b6cba4ee31e7376fa363c4b89ca502ac5e17eac1 +Author: Stefan Bader +Date: Fri Mar 24 03:15:29 2006 -0800 + + [PATCH] s390: 3590 tape driver + + Michael Holzheu , + Martin Schwidefsky + + Signed-off-by: Stefan Bader + Signed-off-by: Michael Holzheu + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5f38433885245dce82aa53c20a6b2efbe81ae350 +Author: Michael Holzheu +Date: Fri Mar 24 03:15:28 2006 -0800 + + [PATCH] s390: fix endless retry loop in tape driver + + If a tape device is assigned to another host, the interrupt for the assign + operation comes back with deferred condition code 1. Under some conditions + this can lead to an endless loop of retries. Check if the current request is + still in IO in deferred condition code handling and prevent retries when the + request has already been cancelled. + + Signed-off-by: Michael Holzheu + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4cd190a736a97e302c038bd91357d636369d4c6b +Author: Michael Holzheu +Date: Fri Mar 24 03:15:27 2006 -0800 + + [PATCH] s390: tape operation abortion leads to panic + + When a request is aborted because of a signal, we currently stop the request + via csh, but we do not wait for the interrupt of csh in any case. We free the + request structure and therefore when the interrupt for the csh operation is + presented, the request object is no longer valid and an invalid callback + pointer is used. + + To fix this wait until the interrupt for csh arrives and until + wait_event_interruptible() does not return -ERESTARTSYS. + + Signed-off-by: Michael Holzheu + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 842d3fba94ed94cc5de7b712e0f4218ce6e4fd73 +Author: Stefan Bader +Date: Fri Mar 24 03:15:26 2006 -0800 + + [PATCH] s390: tape retry flooding by deferred CC in interrupt + + If a deferred CC happens there will be lots of messages, because the retry is + done immediatly in the interrupt handler which can be too fast. To avoid this + requeue the request and schedule the queue to be processed. + + Signed-off-by: Stefan Bader + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 20c644680af1ef9a6b36c0873f59498c98b07ab1 +Author: Stefan Weinhuber +Date: Fri Mar 24 03:15:25 2006 -0800 + + [PATCH] s390: dasd extended error reporting + + The DASD extended error reporting is a facility that allows to get detailed + information about certain problems in the DASD I/O. This information can be + used to implement fail-over applications that can recover these problems. + + Signed-off-by: Stefan Weinhuber + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 554a826e0a29f1a88e5a5332f0718c059885ec17 +Author: Horst Hummel +Date: Fri Mar 24 03:15:24 2006 -0800 + + [PATCH] s390: random values in result of BIODASDINFO2 + + Use kzalloc to get a zeroed buffer for the structure returned to user space by + the BIODASDINFO2 ioctl. Not all fields are set up, e.g. the read_devno is + missing. + + Signed-off-by: Horst Hummel + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d0b2eaa374afd10960a507a3f2ce2f24b85826e4 +Author: Peter Oberparleiter +Date: Fri Mar 24 03:15:24 2006 -0800 + + [PATCH] s390: remove experimental flag from dasd diag + + The dasd diag discipline has been tested on 64 bit and is no longer + experimental. + + Signed-off-by: Peter Oberparleiter + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ef1597d527f119f14f093a7a3712221b9cb072c0 +Author: Horst Hummel +Date: Fri Mar 24 03:15:23 2006 -0800 + + [PATCH] s390: Remove old history/whitespave from partition code + + Remove obsolete history and trailing whitespace. + + Signed-off-by: Horst Hummel + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 82814dbafdeef53e13e07134eb3b7be3c975fd21 +Author: Christoph Hellwig +Date: Fri Mar 24 03:15:22 2006 -0800 + + [PATCH] s390: remove dynamic dasd ioctls + + Now that there are no more users of the awkward dynamic ioctl hack we can + remove the code to support it. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8b2eb664ce9dcba8b54ececf5e057470c47e57f7 +Author: Christoph Hellwig +Date: Fri Mar 24 03:15:21 2006 -0800 + + [PATCH] s390: merge cmb into dasdc + + dasd_cmd just implements three ioctls which are wrappers around functionality + in the core kernel or other modules. When merging those into dasd_mod they + just add 22 lines of code which is far less than the amount of code removed in + the last two patches, and which doesn't spill into another 4k pages when build + modular, while removing a 128lines module. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1107ccfbdef280fedc677af3bdbc405611ba554a +Author: Christoph Hellwig +Date: Fri Mar 24 03:15:20 2006 -0800 + + [PATCH] s390: use normal switch statement for ioctls in dasd_ioctlc + + Add an ->ioctl method to the dasd_discipline structure. This allows to apply + the same kind of cleanups the last patch applied to dasd_ioctl.c to + dasd_eckd.c (the only dasd discipline with special ioctls) aswell. + + Again lots of code removed. During auditing the ioctls I found two fishy + return value propagations from copy_{from,to}_user, maintainers please check + those, I've marked them with XXX comments. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 13c6204facb01d425320411c17febff666875518 +Author: Christoph Hellwig +Date: Fri Mar 24 03:15:19 2006 -0800 + + [PATCH] s390: use normal switch statement for ioctls in dasd_ioctlc + + Handle ioctls implemented in dasd_ioctl through the normal switch statement + that most drivers use instead of the awkward dasd_ioctl_no_register routine. + This avoids searching a linear list on every call to dasd_ioctl(), and allows + to give the various ioctl implementation functions sane prototypes, aswell as + moving the check for bdev->bd_disk->private_data from the individual functions + to dasd_ioctl. (I think it can't actually every be NULL, but let's keep that + for later) + + Signed-off-by: Christoph Hellwig + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 61d3ad0edf67e3baa66f124bc9ce964523d41809 +Author: Martin Schwidefsky +Date: Fri Mar 24 03:15:18 2006 -0800 + + [PATCH] s390: connector support + + Include connector config in the s390 arch Kconfig to get support for + connectors. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 699ff13f10b75ea929eea6f6fe47ba9cc8f92ca2 +Author: Michael Ryan +Date: Fri Mar 24 03:15:17 2006 -0800 + + [PATCH] s390: cpu up retries + + Retry starting of new cpu if sigp restart returns condition code 2 (busy). + + Signed-off-by: Michael Ryan + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4896cef8e33e668734234543afb58eb171476ff3 +Author: Martin Schwidefsky +Date: Fri Mar 24 03:15:16 2006 -0800 + + [PATCH] s390: BUG() warnings + + Use __builtin_trap instead of an inline assembly in the BUG() macro. That way + the compiler knows that BUG() won't return. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e8b1c4083a7f0f1e671ea16e23b78d1c8d3e0aa +Author: Martin Schwidefsky +Date: Fri Mar 24 03:15:16 2006 -0800 + + [PATCH] s390: /proc/sys/vm/cmm_* permission bits + + Set permissoin of /proc/sys/vm/cmm_* files to 0644. + + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 596852967ce3208b90132895dd1992a31b058bc8 +Author: Heiko Carstens +Date: Fri Mar 24 03:15:15 2006 -0800 + + [PATCH] s390: early parameter parsing + + Use common code parser for early parameters instead of our own. + + Signed-off-by: Heiko Carstens + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 495a5b45ac33b8fe2c49780fdbcc8014cb6d6ddc +Author: Cornelia Huck +Date: Fri Mar 24 03:15:14 2006 -0800 + + [PATCH] s390: channel path measurements + + Gather extended measurements for channel paths from the channel subsystem and + expose them to userspace via a sysfs attribute. + + Signed-off-by: Cornelia Huck + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dc06010c62da773321258df1d8a1708a3158e29d +Author: Cornelia Huck +Date: Fri Mar 24 03:15:13 2006 -0800 + + [PATCH] s390: cio documentation update + + Update documentation of the common I/O layer: + - Add MSS-specific example. + - Add more information on ccwgroup devices. + - Add channel path type attribute. + - Fix typo. + + Signed-off-by: Cornelia Huck + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3ba1998e90239ed0d7af918998bc866fa77303eb +Author: Cornelia Huck +Date: Fri Mar 24 03:15:12 2006 -0800 + + [PATCH] s390: wrong interrupt delivered for hsch() or csch() + + When cio waits for the interrupt for a basic sense, interrupts for hsch() or + csch() issued in the meantime are wrongly counted as interrupts for the basic + sense and the accumulated irb is passed to the device driver. In + ccw_device_w4sense(), check for clear or halt function in the irb and pass the + irb for the csch() or hsch() to the device driver. + + Signed-off-by: Cornelia Huck + Signed-off-by: Martin Schwidefsky + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3d1712c91df01d2573b934e972e231e8edb102c7 +Author: Akinobu Mita +Date: Fri Mar 24 03:15:11 2006 -0800 + + [PATCH] x86_64: {set,clear,test}_bit() related cleanup and pci_mmcfg_init() fix + + While working on these patch set, I found several possible cleanup on x86-64 + and ia64. + + akpm: I stole this from Andi's queue. + + Not only does it clean up bitops. It also unrelatedly changes the prototype + of pci_mmcfg_init() and removes its arch_initcall(). It seems that the wrong + two patches got joined together, but this is the one which has been tested. + + This patch fixes the current x86_64 build error (the pci_mmcfg_init() + declaration in arch/i386/pci/pci.h disagrees with the definition in + arch/x86_64/pci/mmconfig.c) + + This also means that x86_64's pci_mmcfg_init() gets called in the same (new) + manner as x86's: from arch/i386/pci/init.c:pci_access_init(), rather than via + initcall. + + The bitops cleanups came along for free. + + All this worked OK in -mm testing (since 2.6.16-rc4-mm1) because x86_64 was + tested with both patches applied. + + Signed-off-by: Akinobu Mita + Signed-off-by: Andi Kleen + Cc: Con Kolivas + Cc: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b04c997b1120feefa1e6ee8e2902270bc055cd2 +Author: Theodore Ts'o +Date: Fri Mar 24 03:15:10 2006 -0800 + + [PATCH] vfs: MS_VERBOSE should be MS_SILENT + + The meaning of MS_VERBOSE is backwards; if the bit is set, it really means, + "don't be verbose". This is confusing and counter-intuitive. + + In addition, there is also no way to set the MS_VERBOSE flag in the + mount(8) program in util-linux, but interesting, it does define options + which would do the right thing if MS_SILENT were defined, which + unfortunately we do not: + + #ifdef MS_SILENT + { "quiet", 0, 0, MS_SILENT }, /* be quiet */ + { "loud", 0, 1, MS_SILENT }, /* print out messages. */ + #endif + + So the obvious fix is to deprecate the use of MS_VERBOSE and replace it + with MS_SILENT. + + Signed-off-by: "Theodore Ts'o" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6961ec8267d08e21011457b05d2263ec06bdcfe1 +Author: Arnd Bergmann +Date: Fri Mar 24 03:15:08 2006 -0800 + + [PATCH] add sys_unshare to syscalls.h + + All architecture independent system calls should be declared + in syscalls.h, add the one that is missing. + + Signed-off-by: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a72011567812cbd93788cc5facda160a3cba5905 +Author: Andrew Morton +Date: Fri Mar 24 03:15:07 2006 -0800 + + [PATCH] more-for_each_cpu-conversions fix + + I screwed up this conversion - we should be iterating across online CPUs, not + possible ones. + + Spotted by Joe Perches + + Cc: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2f1f610b62bce36d6d50857859091b8989c70267 +Author: Brian King +Date: Thu Mar 23 17:30:15 2006 -0600 + + [PATCH] libata: Remove dependence on host_set->dev for SAS + + Remove some of the dependence on the host_set struct + in preparation for supporting SAS HBAs. Adds a struct device + pointer to the ata_port struct. + + Signed-off-by: Brian King + Signed-off-by: Jeff Garzik + +commit 2af10a818de1658f818601c7098056d65a772bc5 +Author: Brian King +Date: Thu Mar 23 17:30:08 2006 -0600 + + [PATCH] libata: ata_scsi_ioctl cleanup + + In preparation for SAS, kill some unnecessary code in ata_scsi_ioctl + to find the ATA port and device given the scsi_device. Neither local + is used in the function. + + Signed-off-by: Brian King + Signed-off-by: Jeff Garzik + +commit eb3f0f9c6c3416016565c8b91644d7386889e565 +Author: Brian King +Date: Thu Mar 23 17:30:02 2006 -0600 + + [PATCH] libata: ata_scsi_queuecmd cleanup + + Encapsulate part of ata_scsi_queuecmd so that it can be + reused by future SAS patches. + + Signed-off-by: Brian King + Signed-off-by: Jeff Garzik + +commit 2e9edbf815e42f93dd29a9981f27bd421acc47df +Author: Jeff Garzik +Date: Fri Mar 24 09:56:57 2006 -0500 + + [libata] export ata_dev_pair; trim trailing whitespace + + Mostly, trim trailing whitespace. + + Also: + * export ata_dev_pair + * move ata_dev_classify export closer to ata_dev_pair export + +commit ebdfca6eb1b755d3bfe9a81339ecdafd92038c1a +Author: Alan Cox +Date: Thu Mar 23 15:38:34 2006 +0000 + + [PATCH] libata: add ata_dev_pair helper + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 082776e4be791736c32baf818e50f501a7f83819 +Author: Nigel Cunningham +Date: Thu Mar 23 23:22:16 2006 +1000 + + [PATCH] Make libata not powerdown drivers on PM_EVENT_FREEZE. + + At the moment libata doesn't pass pm_message_t down ata_device_suspend. + This causes drives to be powered down when we just want a freeze, + causing unnecessary wear and tear. This patch gets pm_message_t passed + down so that it can be used to determine whether to power down the + drive. + + Signed-off-by: Nigel Cunningham + + drivers/scsi/libata-core.c | 5 +++-- + drivers/scsi/libata-scsi.c | 4 ++-- + drivers/scsi/scsi_sysfs.c | 2 +- + include/linux/libata.h | 4 ++-- + include/scsi/scsi_host.h | 2 +- + 5 files changed, 9 insertions(+), 8 deletions(-) + Signed-off-by: Jeff Garzik + +commit 83206a2903fd2ddb1761d906b2b3b3de17ef87f1 +Author: Tejun Heo +Date: Fri Mar 24 15:25:31 2006 +0900 + + [PATCH] libata: make ata_set_mode() responsible for failure handling + + Make ata_set_mode() responsible for determining whether to take port + or device offline on failure. ata_dev_set_xfermode() and + ata_dev_set_mode() indicate error to the caller instead of disabling + port directly on failure. Also, for consistency, ata_dev_present() + check is done in ata_set_mode() instead of ata_dev_set_mode(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit fcef978f9d4bd6ec43f89031442ee205987a912a +Author: Tejun Heo +Date: Fri Mar 24 15:25:31 2006 +0900 + + [PATCH] libata: use ata_dev_disable() in ata_bus_probe() + + We may or may not disable a device after ata_dev_configure() fails. + Kill 'not supported, ignoring' message in ata_dev_configure() and use + ata_dev_disable() in ata_bus_probe(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 0b8efb0a16a1915c507db5a9b9fb5ede082a68a2 +Author: Tejun Heo +Date: Fri Mar 24 15:25:31 2006 +0900 + + [PATCH] libata: implement ata_dev_disable() + + This patch implements ata_dev_disable() which prints a warning message + and takes @dev offline. Currently, this is done by explicitly + incrementing dev->class with case-by-case warning messages. Giving + user clear indication when libata gives up will be more important as + libata will be doing more retries. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 1f7dd3e9d62b25c7b79f913f37c2242a61295de4 +Author: Tejun Heo +Date: Fri Mar 24 15:25:30 2006 +0900 + + [PATCH] libata: check if port is disabled after internal command + + libata core is being changed to disallow port/device disable on lower + layers. However, some LLDDs (sata_mv) directly disable port on + command failure. This patch makes ata_exec_internal() check whether a + port got disabled after an internal command. If it is, AC_ERR_SYSTEM + is added to err_mask and the port gets re-enabled. + + As internal command failure results in device disable for drivers + which don't implement newer reset/EH callbacks, this change results in + no behavior change for single device per port controllers. For + slave-possible LLDDs which disable port on command failure, (1) such + drivers don't exist currently, (2) issuing command to the other device + of once-disabled port shouldn't result in catastrophe even if such + driver exists. So, this should be enough as a temporary measure. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 5a529139554f12cb265715117a2153c936286294 +Author: Tejun Heo +Date: Fri Mar 24 14:07:50 2006 +0900 + + [PATCH] libata: make per-dev transfer mode limits per-dev + + Now that each ata_device has xfer masks, per-dev limits can be made + per-dev instead of per-port. Make per-dev limits per-dev. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit acf356b12d13c8b43c486e53e8ee12f1f435ecc8 +Author: Tejun Heo +Date: Fri Mar 24 14:07:50 2006 +0900 + + [PATCH] libata: add per-dev pio/mwdma/udma_mask + + Add per-dev pio/mwdma/udma_mask. All transfer mode limits used to be + applied to ap->*_mask which unnecessarily restricted other devices + sharing the port. This change will also benefit later EH speed down + and hotplug. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit c0489e4efcad44aeb16c55760daf3b487183e9f0 +Author: Tejun Heo +Date: Fri Mar 24 14:07:49 2006 +0900 + + [PATCH] libata: implement ata_unpack_xfermask() + + Implement ata_unpack_xfermask(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit c76b6b41d0ae29e1127d9f81cb687cabda57c14c +Author: Hyok S. Choi +Date: Fri Mar 24 09:53:18 2006 +0000 + + [ARM] nommu: rename compressed/head.S symbols to a new style + + This patch renames symbols to a new style to prepare mpu support + code merging. e.g. __armv4_cache_on --> __armv4_mmu_cache_on + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit a54123e27779049d27d21e6c8adfee73aa2c0734 +Author: Bob Breuer +Date: Thu Mar 23 22:36:19 2006 -0800 + + [SPARC]: Try to start getting SMP back into shape. + + Todo items: + - IRQ_INPROGRESS flag - use sparc64 irq buckets, or generic irq_desc? + - sun4d + - re-indent large chunks of sun4m_smp.c + - some places assume sequential cpu numbering (i.e. 0,1 instead of 0,2) + + Last I checked (with 2.6.14), random programs segfault with dual + HyperSPARC. And with SuperSPARC II's, it seems stable but will + eventually die from a write lock error (wrong lock owner or something). + + I haven't tried the HyperSPARC + highmem combination recently, so that + may still be a problem. + + Signed-off-by: David S. Miller + +commit 0fdf109676d1eda4ff8199a9a3ee3f11c555c1b3 +Author: Ed L. Cashin +Date: Tue Feb 7 11:37:36 2006 -0500 + + [PATCH] aoe [3/3]: update version to 22 + + Increase version number to 22. + + Signed-off-by: "Ed L. Cashin" + +commit 9d41965b783474dba9fcf3eb02e5eb60540e6ff6 +Author: Ed L. Cashin +Date: Tue Feb 7 11:37:24 2006 -0500 + + [PATCH] aoe [2/3]: don't request ATA device ID on ATA error + + On an ATA error response, take the device down instead of + sending another ATA device identify command. + + Signed-off-by: "Ed L. Cashin" + +commit 5dc401ee74c5d6a24867acd8302c55da9ae4f0ce +Author: Ed L. Cashin +Date: Tue Feb 7 11:26:39 2006 -0500 + + [PATCH] aoe [1/3]: support multiple AoE listeners + + Always clone incoming skbs, allowing other AoE listeners + to exist in the kernel. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit 1c6f3fcac03a16c901ee5acd58100bff963add6d +Author: Ed L. Cashin +Date: Wed Jan 25 13:54:44 2006 -0500 + + [PATCH] aoe: do not stop retransmit timer when device goes down + + This patch is a bugfix that follows and depends on the + eight aoe driver patches sent January 19th. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit a712c0efbffb09f7b837577e29d0efb043fea0ea +Author: Ed L. Cashin +Date: Thu Jan 19 13:46:31 2006 -0500 + + [PATCH] aoe [8/8]: update driver version number + + Update aoe driver version number. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit 02edb05e6310d3acbb26ffb038f0eb819274e6d0 +Author: Ed L. Cashin +Date: Thu Jan 19 13:46:29 2006 -0500 + + [PATCH] aoe [7/8]: update driver compatibility string + + The aoe driver is not compatible with 2.6 kernels older + than 2.6.2. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit 5f7702fd737d14de3ed06a94a1655be9d43f7e35 +Author: Ed L. Cashin +Date: Thu Jan 19 13:46:27 2006 -0500 + + [PATCH] aoe [6/8]: update device information on last close + + Instead of making the user wait or do it manually, refresh + device information on its last close by issuing a config + query to the device. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit 2dd5e42269b6f71db8ca519e401ef1e6615b3705 +Author: Ed L. Cashin +Date: Thu Jan 19 13:46:25 2006 -0500 + + [PATCH] aoe [5/8]: allow network interface migration on packet retransmit + + Retransmit to the current network interface for an AoE device. + + Signed-off-by: "Ed L. Cashin" + +commit c42b24cae5c9fe1ae1f9bb9dea020e1a788fab4d +Author: Ed L. Cashin +Date: Thu Jan 19 13:46:22 2006 -0500 + + [PATCH] aoe [4/8]: use less confusing driver name + + Users were confused by the driver being called "aoe-2.6-$version". + This form looks less like a Linux kernel version number. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit eaf0a3cbe5d0713eca3278b3b18f08dba4fb914b +Author: Ed L. Cashin +Date: Thu Jan 19 13:46:20 2006 -0500 + + [PATCH] aoe [3/8]: increase allowed outstanding packets + + Increase the number of AoE packets per device that can be outstanding + at one time, increasing performance. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit 3ae1c24e395b2b65326439622223d88d92bfa03a +Author: Ed L. Cashin +Date: Thu Jan 19 13:46:19 2006 -0500 + + [PATCH] aoe [2/8]: support dynamic resizing of AoE devices + + Allow the driver to recognize AoE devices that have changed size. + Devices not in use are updated automatically, and devices that are in + use are updated at user request. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit 50bba752ca0a740a6ba9eb96d61ef7bbdfe405cf +Author: Ed L. Cashin +Date: Thu Jan 19 12:37:24 2006 -0500 + + [PATCH] aoe [1/8]: zero packet data after skb allocation + + Zero the data in new socket buffers to prevent leaking information. + + Signed-off-by: "Ed L. Cashin" + Signed-off-by: Greg Kroah-Hartman + +commit 674a396c6d2ba0341ebdd7c1c9950f32f018e2dd +Author: Evgeniy Polyakov +Date: Mon Feb 20 11:15:37 2006 +0300 + + [PATCH] w1: use kthread api. + + This patch removes old-style kernel thread initialization + and changes w1 to use kthread api. + It is based on Christoph Hellwig work. + + Signed-off-by: Evgeniy Polyakov + Signed-off-by: Greg Kroah-Hartman + +commit f73b5e7949945486a649e40821cd351e2f60bf02 +Author: Andrew Morton +Date: Sat Jan 14 00:05:59 2006 -0800 + + [PATCH] W1: u64 is not long long + + You don't know what type a u64 is, hence you cannot print it without a cast. + + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit ecd5136c85cb4531a51f65241e7b3cd58420f3ed +Author: Patrick McHardy +Date: Sun Jan 8 00:44:15 2006 +0100 + + [PATCH] W1: Remove incorrect MODULE_ALIAS + + The w1 netlink socket is created by a hardware specific driver calling + w1_add_master_device, so there is no point in including a module alias + for netlink autoloading in the core. + + Signed-off-by: Patrick McHardy + Acked-by: Evgeniy Polyakov + Signed-off-by: Greg Kroah-Hartman + +commit ec068072f0e8499cfe7b71749b4a63c503e7d328 +Author: Adrian Bunk +Date: Fri Jan 6 18:41:01 2006 +0100 + + [PATCH] fix W1_MASTER_DS9490_BRIDGE dependencies + + W1_DS9490 was renamed to W1_MASTER_DS9490, but the entry in the + dependencies of W1_MASTER_DS9490_BRIDGE was forgotten. + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit a9fb1c7b950bed4afe208c9d67e20f086bb6abbb +Author: Adrian Bunk +Date: Tue Dec 13 14:04:33 2005 -0800 + + [PATCH] w1: misc cleanups + + This patch contains the following cleanups: + - make needlessly global code static + - declarations for global code belong into header files + - w1.c: #if 0 the unused struct w1_slave_device + + Signed-off-by: Adrian Bunk + Acked-by: Evgeniy Polyakov + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit baf12ae29ab4cc6381e21b2e1a3af75a6a8f7566 +Author: Evgeniy Polyakov +Date: Tue Dec 6 13:38:28 2005 +0300 + + [PATCH] W1: Add the DS2482 I2C-to-w1 bridge driver. + + Signed-off-by: Ben Gardner + Signed-off-by: Evgeniy Polyakov + Signed-off-by: Greg Kroah-Hartman + +commit bd529cfb40c427d5b5aae0d315afb9f0a1da5e76 +Author: Evgeniy Polyakov +Date: Tue Dec 6 13:38:28 2005 +0300 + + [PATCH] W1: Move w1 bus master code into 'w1/masters' and move w1 slave code into 'w1/slaves' + + Signed-off-by: Ben Gardner + Signed-off-by: Evgeniy Polyakov + Signed-off-by: Greg Kroah-Hartman + +commit ccd6994000fb6d08ee1be8a7fa20c8d602a2267d +Author: Evgeniy Polyakov +Date: Tue Dec 6 13:38:27 2005 +0300 + + [PATCH] W1: Change the type 'unsigned long' member of 'struct w1_bus_master' to 'void *'. + + Signed-off-by: Ben Gardner + Signed-off-by: Evgeniy Polyakov + Signed-off-by: Greg Kroah-Hartman + +commit b2e6e3ba7deb525f180df64f32f3fcb214538bea +Author: MUNEDA Takahiro +Date: Fri Mar 17 09:18:39 2006 +0900 + + [PATCH] acpiphp: fix acpi_path_name + + I encountered the problem that the insmod of the acpiphp + fails because of the mis-freeing of the memory. + + I tested this patch on my tiger4 box. + + Signed-off-by: MUNEDA Takahiro + Signed-off-by: Greg Kroah-Hartman + +commit dc6712d1261ee4585771724320d28580888818eb +Author: Kristen Accardi +Date: Tue Mar 14 16:24:47 2006 -0800 + + [PATCH] ibmphp: remove TRUE and FALSE + + This patch removes the defines TRUE and FALSE and just uses 0 or 1. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit 783c49fc506d9afe4784390b556fa25ede5d6d1f +Author: Kristen Accardi +Date: Fri Mar 3 10:16:05 2006 -0800 + + [PATCH] PCI Hotplug: add common acpi functions to core + + shpchprm_acpi.c and pciehprm_acpi.c are nearly identical. In addition, + there are functions in both these files that are also in acpiphp_glue.c. + This patch will remove duplicate functions from shpchp, pciehp, and + acpiphp and move this functionality to pci_hotplug, as it is not + hardware specific. Get rid of shpchprm* and pciehprm* files since they + are no longer needed. shpchprm_nonacpi.c and pciehprm_nonacpi.c are + identical, as well as shpchprm_legacy.c and can be replaced with a + macro. + + This patch also changes acpiphp to use the common hpp code. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit f5afe8064f3087bead8fea7e32547c2a3ada5fd0 +Author: Eric Sesterhenn +Date: Tue Feb 28 15:34:49 2006 +0100 + + [PATCH] PCI: kzalloc() conversion in drivers/pci + + this patch converts drivers/pci to kzalloc usage. + Compile tested with allyes config. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Greg Kroah-Hartman + +commit 7c8f25da12a3dda46fb730699582895d5fc51287 +Author: Kenji Kaneshige +Date: Mon Feb 27 22:15:49 2006 +0900 + + [PATCH] acpiphp: Scan slots under the nested P2P bridge + + Current ACPIPHP driver scans only slots under the top level PCI-to-PCI + bridge. So hotplug PCI slots under the nested PCI-to-PCI bridge would + not be detected. For example, if the system has the ACPI namespace + like below, hotplug slots woule not be detected. + + Device (PCI0) { /* Root bridge */ + Name (_HID, "PNP0A03") + Device (P2PA) { /* PCI-to-PCI bridge */ + Name (_ADR, ...) + Device (P2PB) { /* PCI-to-PCI bridge */ + Name (_ADR, ...) + Device (S0F0) { /* hotplug slot */ + Name (_ADR, ...) + Name (_SUN, ...) + Method (_EJ0, ...) { ... } + } + ... + Device (S0F7) { /* hotplug slot */ + Name (_ADR, ...) + Name (_SUN, ...) + Method (_EJ0, ...) { ... } + } + Device (S1F0) { /* hotplug slot */ + Name (_ADR, ...) + Name (_SUN, ...) + Method (_EJ0, ...) { ... } + } + ... + } + } + } + + This patch fixes this issue. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 8e77af6a9a9b1eefdb538894b20ed41f65b65ab7 +Author: John Keller +Date: Wed Mar 8 13:21:34 2006 -0600 + + [PATCH] PCI Hotplug: SN: Fix cleanup on hotplug removal of PPB + + When doing a hotplug removal of a PPB, sn_bus_store_sysdata() + needs to be called for the PPB and all of its children. + + Acked-by: Prarit Bhargava + Signed-off-by: John Keller + Signed-off-by: Greg Kroah-Hartman + +commit 0afabe906539b4e8b9e895f19ea31aabdf12f30b +Author: Kenji Kaneshige +Date: Wed Mar 1 14:55:11 2006 +0900 + + [PATCH] shpchp: cleanup bus speed handling + + The code related to handling bus speed in SHPCHP driver is + unnecessarily complex. This patch cleans up and simplify that. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 3c990e9219ea0b0aee588473ce6c8a66cdee3ff5 +Author: Jeff Garzik +Date: Sat Mar 4 21:52:42 2006 -0500 + + [PATCH] PCI: fix pci_request_region[s] arg + + Add missing 'const' to pci_request_region[s] 'res_name' arg, + since we pass it directly to __request_region(), whose 'name' arg + is also const. + + Signed-off-by: Greg Kroah-Hartman + +commit 309e57df7b766172ba137a8cbd909f88dd76e8e9 +Author: Matthew Wilcox +Date: Sun Mar 5 22:33:34 2006 -0700 + + [PATCH] PCI: Provide a boot parameter to disable MSI + + Several drivers are starting to grow options to disable MSI. However, + it's often a host chipset issue, not something which individual drivers + should handle. So we add the pci=nomsi kernel parameter to allow the user + to disable MSI modes for systems we haven't added to the quirk list yet. + + Signed-off-by: Matthew Wilcox + Signed-off-by: Randy Dunlap + Acked-by: Jeff Garzik + Signed-off-by: Greg Kroah-Hartman + +commit 5eeca8e688b6affba4cd85262152fdd1b274ad33 +Author: Adrian Bunk +Date: Sun Mar 5 16:49:48 2006 +0100 + + [PATCH] PCI: the scheduled removal of PCI_LEGACY_PROC + + This patch contains the scheduled removal of PCI_LEGACY_PROC. + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit 1305e9184a3de84f78dca102b293d21007bb6c49 +Author: Adrian Bunk +Date: Sun Feb 26 22:16:51 2006 +0100 + + [PATCH] PCI: cpqphp_ctrl.c: board_replaced(): remove dead code + + The Coverity checker correctly noted, that in function board_replaced in + drivers/pci/hotplug/cpqphp_ctrl.c, the variable src always has the + value 8, and therefore much code after the + + ... + if (rc || src) { + ... + if (rc) + return rc; + else + return 1; + } + ... + + can never be called. + + This patch removes the unreachable code in this function fixing kernel + Bugzilla #6073. + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit 0cccd0c20677e8a9da40018632f1b6c487ba2bd5 +Author: MUNEDA Takahiro +Date: Fri Feb 24 17:46:04 2006 +0900 + + [PATCH] acpiphp: fix bridge handle + + When hotplug slot is under the host bridge, + DEVICE_ACPI_HANDLE(&bus->self->dev) fails since '&bus->self' was not set. + This patch fixes it. + + This patch is based on kristen's latest patches. + I tested this patch on my Tiger4. + + Signed-off-by: MUNEDA Takahiro + Signed-off-by: Greg Kroah-Hartman + +commit e27da3814170385a4d2797397d706e554635812d +Author: MUNEDA Takahiro +Date: Thu Feb 23 17:56:08 2006 -0800 + + [PATCH] acpiphp - slot management fix - V4 + + o This patch removes IDs (for slots management). + o This patch removes the slot register/unregister processes + from the init/exit phases. Instead, adds these processes + in the bridge add/cleanup phases. + o Currently, this change doesn't have any meanings. But + these changes are needed to support p2p bridge(with + hotplug slot) + + Signed-off-by: MUNEDA Takahiro + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit 63e5f248c4b748690b5180aa1b4b10eac51bb0e1 +Author: Kristen Accardi +Date: Thu Feb 23 17:56:06 2006 -0800 + + [PATCH] acpi: remove dock event handling from ibm_acpi + + Remove dock station support from ibm_acpi by default. This support has + been put into acpiphp instead. Allow ibm_acpi to continue to provide + docking station support via config option for laptops/docking stations + that are not supported by acpiphp. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit 20416ea54087c25502d6fb973b8e119973e16341 +Author: Kristen Accardi +Date: Thu Feb 23 17:56:03 2006 -0800 + + [PATCH] acpiphp: add dock event handling + + These patches add generic dock event handling to acpiphp. If there are + pci devices that need to be inserted/removed after the dock event, the + event notification will be handed down to the normal pci hotplug event + handler in acpiphp so that new bridges/devices can be enumerated. + + Because some dock stations do not have pci bridges or pci devices that + need to be inserted after a dock, acpiphp will remain loaded to handle + dock events even if no hotpluggable pci slots are discovered. + + You probably need to have the pci=assign-busses kernel parameter enabled + to use these patches, and you may not allow ibm_acpi to handle docking + notifications and use this patch. + + This patch incorporates feedback provided by many. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit ceaba663055e38226a070a9668eac5881d65a2cc +Author: Kristen Accardi +Date: Thu Feb 23 17:56:01 2006 -0800 + + [PATCH] acpi: export acpi_bus_trim + + Export the acpi_bus_trim function so that the pci hotplug driver can + use it. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit 15a1ae74879925d0d3f71ebc3f56d0a2c5db393a +Author: Kristen Accardi +Date: Thu Feb 23 17:55:58 2006 -0800 + + [PATCH] acpiphp: add new bus to acpi + + If we add a new bridge with subordinate busses, we should call make sure + that acpi is notified so that the PRT (if present) can be read and drivers + who have registered on this bus will be notified when it is started. + Also make sure to use the max reserved bus number for the starting the bus + scan. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit b89b7ea05a8f71426bd36ed12e6cd73179d0f720 +Author: Alan Stern +Date: Thu Feb 23 17:12:51 2006 -0500 + + [PATCH] PCI: Move pci_dev_put outside a spinlock + + This patch (as659) fixes a might_sleep problem in the PCI core, by moving + a call to pci_dev_put() outside the scope of a spinlock. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 8c4b2cf9af9b4ecc29d4f0ec4ecc8e94dc4432d7 +Author: Bernhard Kaindl +Date: Sat Feb 18 01:36:55 2006 -0800 + + [PATCH] PCI: PCI/Cardbus cards hidden, needs pci=assign-busses to fix + + "In some cases, especially on modern laptops with a lot of PCI and cardbus + bridges, we're unable to assign correct secondary/subordinate bus numbers + to all cardbus bridges due to BIOS limitations unless we are using + "pci=assign-busses" boot option." -- Ivan Kokshaysky (from a patch comment) + + Without it, Cardbus cards inserted are never seen by PCI because the parent + PCI-PCI Bridge of the Cardbus bridge will not pass and translate Type 1 PCI + configuration cycles correctly and the system will fail to find and + initialise the PCI devices in the system. + + Reference: PCI-PCI Bridges: PCI Configuration Cycles and PCI Bus Numbering: + http://www.science.unitn.it/~fiorella/guidelinux/tlk/node72.html + + The reason for this is that: + ``All PCI busses located behind a PCI-PCI bridge must reside between the + secondary bus number and the subordinate bus number (inclusive).'' + + "pci=assign-busses" makes pcibios_assign_all_busses return 1 and this + turns on PCI renumbering during PCI probing. + + Alan suggested to use DMI automatically set assign-busses on problem systems. + + The only question for me was where to put it. I put it directly before + scanning PCI bus into pcibios_scan_root() because it's called from legacy, + acpi and numa and so it can be one place for all systems and configurations + which may need it. + + AMD64 Laptops are also affected and fixed by assign-busses, and the code is + also incuded from arch/x86_64/pci/ that place will also work for x86_64 + kernels, I only ifdef'-ed the x86-only Laptop in this example. + + Affected and known or assumed to be fixed with it are (found by googling): + + * ASUS Z71V and L3s + * Samsung X20 + * Compaq R3140us and all Compaq R3000 series laptops with TI1620 Controller, + also Compaq R4000 series (from a kernel.org bugreport) + * HP zv5000z (AMD64 3700+, known that fixup_parent_subordinate_busnr fixes it) + * HP zv5200z + * IBM ThinkPad 240 + * An IBM ThinkPad (1.8 GHz Pentium M) debugged by Pavel Machek + gives the correspondig message which detects the possible problem. + * MSI S260 / Medion SIM 2100 MD 95600 + + The patch also expands the "try pci=assign-busses" warning so testers will + help us to update the DMI table. + + Cc: Ivan Kokshaysky + Cc: Alan Cox + Cc: Dominik Brodowski + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit a0454b40ee8fac03194bb71f01730266506e75e1 +Author: Grant Grundler +Date: Thu Feb 16 23:58:29 2006 -0800 + + [PATCH] PCI: fix problems with MSI-X on ia64 + + Use "unsigned long" when dealing with PCI resources. + The BAR Indicator Register (BIR) can be a 64-bit value + or the resource could be a 64-bit host physical address. + + Enables ib_mthca and cciss drivers to use MSI-X on ia64 HW. + Problem showed up now because of new system firmware on one platform. + Symptom will either be memory corruption or MCA. + + Second part of this patch deals with "useless" code. + We walk through the steps to find the phys_addr and then + don't use the result. I suspect the intent was to zero + out the respective MSI-X entry but I'm not sure at the moment. + Delete the code inside the #if 0/#endif if it's really + not needed. + + Signed-off-by: Grant Grundler + Signed-off-by: Greg Kroah-Hartman + +commit b408cbc704352eccee301e1103b23203ba1c3a0e +Author: Linus Torvalds +Date: Wed Feb 22 15:50:30 2006 -0800 + + [PATCH] PCI: resource address mismatch + + On Tue, 21 Feb 2006, Ivan Kokshaysky wrote: + > There are two bogus entries in the BIOS memory map table which are + > conflicting with a prefetchable memory range of the AGP bridge: + > + > BIOS-e820: 00000000fec00000 - 00000000fec01000 (reserved) + > BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) + > + > 0000:00:02.0 PCI bridge: Silicon Integrated Systems [SiS] Virtual PCI-to-PCI bridge (AGP) (prog-if 00 [Normal decode]) + > Flags: bus master, fast devsel, latency 0 + > Bus: primary=00, secondary=01, subordinate=01, sec-latency=0 + > I/O behind bridge: 0000c000-0000cfff + > Memory behind bridge: e7e00000-e7efffff + > Prefetchable memory behind bridge: fec00000-ffcfffff + > ^^^^^^^^^^^^^^^^^ + + Yes. However, it's pretty clear that the e820 entries are there for a + reason. Probably they are a hack by the BIOS maintainers to keep Windows + from stomping/moving that region, exactly because they want to keep the + bridge where it is (or, it's actually for the BIOS itself - the BIOS + tables are a horrid mess, and BIOS engineers are pretty hacky people: + they'll add random entries to make their own broken algorithms do the + "right thing"). + + > Starting from 2.6.13, kernel tries to resolve that sort of conflicts, + > so that prefetch window of the bridge and the framebuffer memory behind + > it get moved to 0x10000000. + + I think we could (and probably should) solve this another way: consider + the ACPI "reserved regions" from the e820 map exactly the same way that we + do other ACPI hints - they should restrict _new_ allocations, but not + impact stuff we figure out on our own. + + Basically, right now we assign _unassigned_ resources at "fs_initcall" + time. If we were to add in the e820 "reserved region" stuff before that + (but after we've done PCI discovery), we'd probably do the right thing. + + Right now we do the e820 reserved regions very early indeed: we call + "register_memory()" from setup_arch(). We could move at least part of it + (the part that registers the resources) down a bit. + + Here's a test-patch. I'm not saying we should absolutely do this, but it + might be interesting to try... + + Cc: "Antonino A. Daplas" + Cc: Ivan Kokshaysky + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 75cde0e25787c1af341a128b350c36df24e5397d +Author: Shaohua Li +Date: Wed Feb 8 17:11:40 2006 +0800 + + [PATCH] PCI: remove msi save/restore code in specific driver + + Remove pcie port driver's msi save/restore code. + + Signed-off-by: Shaohua Li + Signed-off-by: Greg Kroah-Hartman + +commit 6e325a62a0a228cd0222783802b53cce04551776 +Author: Michael S. Tsirkin +Date: Tue Feb 14 18:52:22 2006 +0200 + + [PATCH] PCI: make MSI quirk inheritable from the pci bus + + It turns out AMD 8131 quirk only affects MSI for devices behind the 8131 bridge. + Handle this by adding a flags field in pci_bus, inherited from parent to child. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Greg Kroah-Hartman + +commit e5548e960f38557825e50806b52cb24c9e730aa2 +Author: Bauke Jan Douma +Date: Tue Feb 28 21:44:36 2006 +0100 + + [PATCH] PCI: quirk for asus a8v and a8v delux motherboards + + On ASUS A8V and A8V Deluxe boards, the onboard AC97 audio controller + and MC97 modem controller are deactivated when a second PCI soundcard + is present. This patch enables them. + + Signed-off-by: Bauke Jan Douma + Signed-off-by: Greg Kroah-Hartman + +commit 3c0a654e390d00fef9d8faed758f5e1e8078adb5 +Author: tomek@koprowski.org +Date: Sun Feb 19 18:03:24 2006 +0100 + + [PATCH] PCI: SMBus unhide on HP Compaq nx6110 + + I attach a trivial patch for 2.6.15.4 that unhides SMBus controller + on an HP Compaq nx6110 notebook. + + Signed-off-by: Tomasz Koprowski + Signed-off-by: Greg Kroah-Hartman + +commit 50defa1ccaffc197a133d92acb48d696d5ea3539 +Author: Brian Gerst +Date: Sun Feb 19 16:05:52 2006 -0500 + + [PATCH] PCI: Add pci_device_shutdown to pci_bus_type + + The extra compatability code is not necessary. Any code still using + the old shutdown method will trigger the warning in driver_register() + instead. + + Signed-off-by: Brian Gerst + Signed-off-by: Greg Kroah-Hartman + +commit e6b82b13c4066ca091a4919620d6403c8a269bc3 +Author: Kenji Kaneshige +Date: Tue Feb 21 15:45:50 2006 -0800 + + [PATCH] shpchp: adapt to pci driver model + + This patch adapts SHPCHP driver to the PCI device driver model. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit a246fa4e9f0f1b5096a1cad0659d22fb10fb3732 +Author: Kenji Kaneshige +Date: Tue Feb 21 15:45:48 2006 -0800 + + [PATCH] shpchp: Fix slot state handling + + Current SHPCHP driver doesn't care about the confliction between + hotplug operation via sysfs and hotplug operation via attention + button. So if those ware conflicted, slot could be an unexpected + state. + + This patch changes SHPCHP driver to handle slot state properly. With + this patch, slot events are handled according to the current slot + state as shown at the Table below. + + Table. Slot States and Event Handling + ========================================================================= + Slot State Event and Action + ========================================================================= + STATIC - Go to POWERON state if user initiates + (Slot enabled, insertion request via sysfs + Slot disabled) - Go to POWEROFF state if user initiates removal + request via sysfs + - Go to BLINKINGON state if user presses + attention button when the slot is disabled + - Go to BLINKINGOFF state if user presses + attention button when the slot is enabled + +commit f7391f5325ea744f0632f7ef39a90085162743ac +Author: Kenji Kaneshige +Date: Tue Feb 21 15:45:45 2006 -0800 + + [PATCH] shpchp: event handling rework + + The event handler of SHPCHP driver is unnecessarily very complex. In + addition, current event handler can only a fixed number of events at + the same time, and some of events would be lost if several number of + events happened at the same time. + + This patch simplify the event handler by using 'work queue', and it + also fix the above-mentioned issue. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit 68c0b671491088d79611fa965bbf94b3bc0024a4 +Author: Kenji Kaneshige +Date: Tue Feb 21 15:45:42 2006 -0800 + + [PATCH] shpchp: Remove unused wait_for_ctrl_irq + + The wait_for_ctrl_irq() function in SHPCHP driver is no longer needed. + This patch removes that. This patch has no functional change. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit 09e1218eccf58f6174fa68360a7c8dcfe457fe9b +Author: Kenji Kaneshige +Date: Tue Feb 21 15:45:38 2006 -0800 + + [PATCH] shpchp: Remove unused pci_bus member from controller structure + + This patch removes unused 'pci_bus' member from controller structure. + This patch have no functional change. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit bbe8f9a3e76c551973ee739de10b26581d78b45f +Author: Ralf Baechle +Date: Tue Feb 14 16:23:57 2006 +0000 + + [PATCH] PCI: Avoid leaving MASTER_ABORT disabled permanently when returning from pci_scan_bridge. + + > On Mon, Feb 13, 2006 at 05:13:21PM -0800, David S. Miller wrote: + > > + > > In drivers/pci/probe.c:pci_scan_bridge(), if this is not the first + > > pass (pass != 0) we don't restore the PCI_BRIDGE_CONTROL_REGISTER and + > > thus leave PCI_BRIDGE_CTL_MASTER_ABORT off: + > > + > > int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass) + > > { + > > ... + > > /* Disable MasterAbortMode during probing to avoid reporting + > > of bus errors (in some architectures) */ + > > pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &bctl); + > > pci_write_config_word(dev, PCI_BRIDGE_CONTROL, + > > bctl & ~PCI_BRIDGE_CTL_MASTER_ABORT); + > > ... + > > if ((buses & 0xffff00) && !pcibios_assign_all_busses() && !is_cardbus) { + > > unsigned int cmax, busnr; + > > /* + > > * Bus already configured by firmware, process it in the first + > > * pass and just note the configuration. + > > */ + > > if (pass) + > > return max; + > > ... + > > } + > > + > > pci_write_config_word(dev, PCI_BRIDGE_CONTROL, bctl); + > > ... + > > + > > This doesn't seem intentional. + + Agreed, looks like an accident. The patch [1] originally came from Kip + Walker (Broadcom back then) between 2.6.0-test3 and 2.6.0-test4. As I + recall it was supposed to fix an issue with with PCI aborts being + signalled by the PCI bridge of the Broadcom BCM1250 family of SOCs when + probing behind pci_scan_bridge. It is undeseriable to disable + PCI_BRIDGE_CTL_MASTER_ABORT in pci_{read,write)_config_* and the + behaviour wasn't considered a bug in need of a workaround, so this was + put in probe.c. + + I don't have an affected system at hand, so can't really test but I + propose something like the below patch. + + [1] http://www.linux-mips.org/git?p=linux.git;a=commit;h=599457e0cb702a31a3247ea6a5d9c6c99c4cf195 + + [PCI] Avoid leaving MASTER_ABORT disabled permanently when returning from pci_scan_bridge. + + Signed-off-by: Ralf Baechle + Signed-off-by: Greg Kroah-Hartman + +commit 92c05fc1a32e5ccef5e0e8201f32dcdab041524c +Author: Andi Kleen +Date: Thu Mar 23 14:35:12 2006 -0800 + + [PATCH] PCI: Give PCI config access initialization a defined ordering + + I moved it to a separate function which is safer. + + This avoids problems with the linker reordering them and the + less useful PCI config space access methods taking priority + over the better ones. + + Fixes some problems with broken MMCONFIG + + Cc: Dave Hansen + Signed-off-by: Andi Kleen + Signed-off-by: Greg Kroah-Hartman + +commit e4e73041ecc4a3559c42ed9489f58531c2a8646b +Author: Kenji Kaneshige +Date: Thu Jan 26 10:05:57 2006 +0900 + + [PATCH] shpchp - Fix incorrect return value of interrupt handler + + Current SHPCHP driver has a bug in its interrupt handler which cause + "IRQ #: nobody cared" oops. This problem can be reproduced easily by + the following operation. + + # cd /sys/bus/pci/slots/ + # while true; do echo 1 > attention ; done & + + The reason is that when command complete interrupt is raised, current + SHPCHP driver's interrupt handler returns IRQ_NONE regardless of if + the interrupt is handled or not. + + This patch fixes this issue. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit bbe779db9f97e1c99b3c7ce1ebb26bbaecbdb2a9 +Author: Kenji Kaneshige +Date: Thu Jan 26 10:04:56 2006 +0900 + + [PATCH] shpchp - move slot name into struct slot + + This patch moves slot name area into struct slot. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 8abebe13f9df5b93be521eeefbf349236ddcd4eb +Author: Kenji Kaneshige +Date: Thu Jan 26 10:03:40 2006 +0900 + + [PATCH] shpchp - removed unncessary 'magic' member from slot + + This patch removes unnecessary 'magic' member from struct slot of + SHPCHP driver. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 57c95c0d1c9ec83877dfea2f62bebf31059bc93c +Author: Kenji Kaneshige +Date: Thu Jan 26 10:02:41 2006 +0900 + + [PATCH] shpchp - replace kmalloc() with kzalloc() and cleanup arg of sizeof() + + This patch replaces kmalloc() and memset() pair with kzalloc() and + cleans up the arg of sizeof() in SHPCHP driver. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 287588b3537d0ce56a83f54d0e6ffcd60e54b569 +Author: Kenji Kaneshige +Date: Thu Jan 26 10:01:35 2006 +0900 + + [PATCH] pcihp_skeleton.c cleanup + + This patch cleans up pcihp_skelton.c as follows. + + o Move slot name area into struct slot. + o Replace kmalloc with kzalloc and clean up the arg of sizeof() + o Fix the wrong use of get_*_status() functions. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit ef3be54777901e570185089f21fbe4498453f67e +Author: Kenji Kaneshige +Date: Thu Jan 26 10:00:33 2006 +0900 + + [PATCH] shpchp - bugfix: add missing serialization + + Current shpchp driver might cause system panic because of lack of + serialization. It can be reproduced very easily by the following + operation. + + # cd /sys/bus/pci/slots/ + # while true; do echo 0 > power ; echo 1 > power ; done & + # while true; do echo 0 > power ; echo 1 > power ; done & + + This patch fixes this issue by changing shpchp to get appropreate + semaphore for hot-plug operation. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit d29aaddab3ef3bdaecf3c9c6d9423f0bf0452ccf +Author: Kenji Kaneshige +Date: Thu Jan 26 09:59:24 2006 +0900 + + [PATCH] shpchp - cleanup check command status + + This patch cleanups codes that check the command status. For this, it + introduces a new semaphore "cmd_sem" for each controller. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit a4534560815ffc525bfbe465a290ce048aab4c01 +Author: Kenji Kaneshige +Date: Thu Jan 26 09:58:30 2006 +0900 + + [PATCH] shpchp - cleanup controller list + + This patch changes SHPCHP driver to use list_head structure for + managing controller list. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 5b1a960d180e9660a87b0c661a754efabc1b1d3a +Author: Kenji Kaneshige +Date: Thu Jan 26 09:57:40 2006 +0900 + + [PATCH] shpchp - cleanup slot list + + This patch changes SHPCHP driver to use list_head structure for + managing slot list. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit dfcd5f68ec916414532e88583d1557b6ac0197f5 +Author: Kenji Kaneshige +Date: Thu Jan 26 09:56:53 2006 +0900 + + [PATCH] shpchp - cleanup shpchp_core.c + + This patch cleanups some codes in shpchp_core.c. This patch has no + functional changes. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 926030f6af856d5681af7940239da2b0269cd755 +Author: Kenji Kaneshige +Date: Thu Jan 26 09:55:35 2006 +0900 + + [PATCH] shpchp - cleanup init_slots() + + This patch cleanups init_slots() function of SHPCHP driver based on + pcihp_skelton.c. This patch has no functional change. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Greg Kroah-Hartman + +commit 6aa4cdd07139ba4d5b89139b0070d795cc4dea88 +Author: Ingo Molnar +Date: Fri Jan 13 16:02:15 2006 +0100 + + [PATCH] PCI hotplug: convert semaphores to mutex + + semaphore to mutex conversion. + + the conversion was generated via scripts, and the result was validated + automatically via a script as well. + + build tested with allyesconfig. + + Signed-off-by: Ingo Molnar + Signed-off-by: Greg Kroah-Hartman + +commit c408a3794d6222ab43ab26648385f850a82f0803 +Author: Kristen Accardi +Date: Tue Jan 17 16:57:04 2006 -0800 + + [PATCH] PCI: quirk for IBM Dock II cardbus controllers + + The IBM Dock II cardbus bridges require some extra configuration + before Yenta is loaded in order to setup the Interrupts to be + routed properly. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit e3ac86d8b3f5cee1afaa3e9e6984d0321149b948 +Author: Kristen Accardi +Date: Tue Jan 17 16:57:01 2006 -0800 + + [PATCH] PCI: really fix parent's subordinate busnr + + After you find the maximum value of the subordinate buses below the child + bus, you must fix the parent's subordinate bus number again, otherwise + it may be too small. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit b82db5cedf78bfeb4a1c8a28ae284dc671d26eb3 +Author: Kristen Accardi +Date: Tue Jan 17 16:56:56 2006 -0800 + + [PATCH] PCI: return max reserved busnr + + Change the semantics of this call to return the max reserved + bus number instead of just the max assigned bus number. + + Signed-off-by: Kristen Carlson Accardi + Signed-off-by: Greg Kroah-Hartman + +commit b64c05e7de6071694dd6840eac9724a006ee19f8 +Author: Grant Grundler +Date: Sat Jan 14 00:34:53 2006 -0700 + + [PATCH] PCI: clean up msi.c a bit + + Clean up: move assignments outside of if() statements. + AFAICT, no functional change. Easier to read/understand. + + Depends on "[PATCH 1/3] msi vector targeting abstractions" + by Mark Maule . + I expect one hunk to fail if applied against 2.6.15. + + This is essentially Joe Perches' patch. + I've cleaned up the one instance added by Mark's patch. + + Signed-off-by: Grant Grundler + Signed-off-by: Greg Kroah-Hartman + +commit a5b00bb4fe60796c791238cf5653b82110031c93 +Author: Horms +Date: Thu Mar 23 14:27:12 2006 -0800 + + IA64: Use early_parm to handle mvec_name and nomca + + I'm not sure of the worthiness of this idea, so please consider it an RFC. + Its key merits are: + + * Reuse existing infrastructure + * Greatly tightens up the parsing of nomca + * Greatly simplifies the parsing of machvec + + Addition cleanup (moving setup_mvec() to machvec.c) by Ken Chen. + + Signed-Off-By: Horms + Signed-Off-By: Tony Luck + +commit ded2b66615613093eeb83b81499bc270de8fc499 +Author: Mark M. Hoffman +Date: Sun Mar 5 23:13:47 2006 +0100 + + [PATCH] hwmon: add required idr locking + + Add required locking around idr_ routines, retry the idr_pre_get/idr_get_new + pair properly, and sprinkle in some likely/unlikely for good measure. + + (Lack of idr locking didn't hurt when all callers were I2C clients, as the + i2c-core serialized for us anyway. Now that we have non I2C hwmon drivers, + this is truly necessary.) + + Signed-off-by: Mark M. Hoffman + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit f6c27fc17c5e575c5471fb344bdbd5f5f6072136 +Author: Darren Jenkins +Date: Mon Feb 27 23:14:58 2006 +0100 + + [PATCH] I2C: hwmon: Rename register parameters + + "register" is a reserved keyword so using it as a parameter name + can confuse some compilers, most notably ICC. + + The patch below just renames all occurences to reg which fits the actual + function declarations. + + Signed-off-by: Darren Jenkins + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 279a022d4a12598b58aee47a73faf2d8cc72c91f +Author: Jean Delvare +Date: Mon Feb 27 23:13:53 2006 +0100 + + [PATCH] I2C: Drop unneeded i2c-dev.h includes + + Several media/video and sound drivers include i2c-dev.h while they + don't need it at all. Clean it up. + + This header file is really only needed by i2c-dev.c and + compat_ioctl.c, other drivers should never need it. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 7cd30b26eb779b787e00e05f3e9797a97de33968 +Author: Alessandro Zummo +Date: Mon Feb 27 23:12:58 2006 +0100 + + [PATCH] I2C: i2c-ixp4xx: Add hwmon class + + This patch adds I2C_CLASS_HWMON to the ixp4xx bus driver. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 5f7ea3c58c9aa571617a9d77dd2fbd4bd81cc50a +Author: Martin Devera +Date: Mon Feb 27 23:11:45 2006 +0100 + + [PATCH] I2C: i2c-piix4: Add Broadcom HT-1000 support + + Add Broadcom HT-1000 south bridge's PCI ID to i2c-piix driver. Note + that at least on Supermicro H8SSL it uses non-standard SMBHSTCFG = 3 + and standard values like 0 or 9 causes hangup. + + Signed-off-by: Martin Devera + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit d7d2fe384703f3f57dac94e8e6303a9f0d9a6239 +Author: Jean Delvare +Date: Mon Feb 27 23:09:22 2006 +0100 + + [PATCH] I2C: i2c-amd756-s4882: Improve static mutex initialization + + Static mutexes can be initialized at declaration time. + + Signed-off-by: Jean Delvare + +commit 0cbcb4d39a83d4df7e45c13b5ebd9fe73e025237 +Author: Jean Delvare +Date: Mon Feb 27 23:08:18 2006 +0100 + + [PATCH] I2C: i2c-ali1535: Drop redundant mutex + + Drop a redundant mutex in driver i2c-ali1535. The struct i2c_adapter + includes a mutex for the same purpose, operated by i2c-core. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit c006705e0f6a195d122be8d5344a4257c269f559 +Author: Jean Delvare +Date: Sun Feb 5 23:31:25 2006 +0100 + + [PATCH] i2c: Cleanup isp1301_omap + + Drop unused rogue i2c driver ID and nonsensical i2c class. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit f8d6d9f52b4977f5427e2cb782521611a823c108 +Author: Jean Delvare +Date: Sun Feb 5 23:30:26 2006 +0100 + + [PATCH] i2c: Fix i2c-ite name initialization + + Properly set the name member of the i2c_adapter structure of the ite + i2c adapter driver. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 2f27f46c49c096d86e7e63acd43cad3bc42f2383 +Author: Jean Delvare +Date: Sun Feb 5 23:29:18 2006 +0100 + + [PATCH] i2c: Drop the i2c-frodo bus driver + + Drop the i2c-frodo bus driver. It isn't referenced by the build + system, and depends on code which was never included in 2.6 kernels. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 7eebcb7c0f4d45168265bdca79cc3e609d68d436 +Author: Jean Delvare +Date: Sun Feb 5 23:28:21 2006 +0100 + + [PATCH] i2c: Optimize core_lists mutex usage + + Stop holding the core_lists mutex when we don't actually need it. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit fabddcd49d8b4fca40ce346f701853888d98b5d2 +Author: Jean Delvare +Date: Sun Feb 5 23:26:51 2006 +0100 + + [PATCH] w83781d: Don't reset the chip by default + + Stop resetting the chip on load by default, so as to preserve the BIOS + initializations. Same was done in the w83627hf driver some times ago + for the same reasons. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 41fc49337d7779eefb6b5e85a8a3cd9e11e9de08 +Author: Jean Delvare +Date: Sun Feb 5 23:25:25 2006 +0100 + + [PATCH] w83781d: Document the alarm and beep bits + + Document the individual alarm and beep bits of the w83781d driver. + Ideally we would offer a chip-independant interface for them, but + until it's done, it's only fair that we document the current + interface. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 412fec8216bb71ecbe255af702b0daf7ad55a7c4 +Author: Yuan Mu +Date: Sun Feb 5 23:24:16 2006 +0100 + + [PATCH] w83627ehf: Refactor the sysfs interface + + Use dynamic sysfs callbacks and array of attributes to reduce the + w83627ehf driver size. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 4c537fb287e68b84df685f4730348e83a163367b +Author: Jean Delvare +Date: Sun Feb 5 23:21:05 2006 +0100 + + [PATCH] hwmon: Support the Pentium M VID code + + Add support for the Intel Pentium M series to the hwmon-vid driver. + + Signed-off-by: Jean Delvare + Cc: Rudolf Marek + Signed-off-by: Greg Kroah-Hartman + +commit c2db6ce14a743ac5f8973124272cf425c4f86b90 +Author: Jean Delvare +Date: Wed Jan 18 23:22:12 2006 +0100 + + [PATCH] hwmon: Add support for the Winbond W83687THF + + Add support for the Winbond W83687THF chip to the w83627hf hardware + monitoring driver. This new chip is almost similar to the already + supported W83627THF chip, except for VID and a few other minor + changes. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit f08191849e42e67ab6ad556d9c2e8cbed1ddf303 +Author: Jean Delvare +Date: Wed Jan 18 23:20:53 2006 +0100 + + [PATCH] hwmon: f71805f semaphore to mutex conversions + + Convert the new f71805f hardware monitoring driver to use mutexes + instead of semaphores. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 9a61bf6300533d3b64d7ff29adfec00e596de67d +Author: Ingo Molnar +Date: Wed Jan 18 23:19:26 2006 +0100 + + [PATCH] hwmon: Semaphore to mutex conversions + + convert drivers/hwmon/*.c semaphore use to mutexes. + + the conversion was generated via scripts, and the result was validated + automatically via a script as well. + + all affected hwmon drivers were build-tested. + + Signed-off-by: Ingo Molnar + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 3fb9a65529615944138d527b70174840c95c637a +Author: Jean Delvare +Date: Wed Jan 18 23:17:01 2006 +0100 + + [PATCH] i2c: Semaphore to mutex conversions, part 3 + + Cleanup after the semaphores to mutexes conversions in the i2c + subsystem. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 5c085d369c2c4f18942ec8951466e186366d5c78 +Author: Ingo Molnar +Date: Wed Jan 18 23:16:04 2006 +0100 + + [PATCH] i2c: Semaphore to mutex conversions, part 2 + + semaphore to mutex conversion. + + the conversion was generated via scripts, and the result was validated + automatically via a script as well. + + build tested. + + Signed-off-by: Ingo Molnar + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 7656032b904b936eca65a41afa1f2b3603195657 +Author: Jean Delvare +Date: Wed Jan 18 23:14:55 2006 +0100 + + [PATCH] i2c: Speed up block transfers + + Speed up i2c_smbus_write_block_data and i2c_smbus_read_i2c_block_data + a bit by using memcpy instead of an explicit loop. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 93766d2de6a3f7eead3fda57fd4638b90d6691fa +Author: Jean Delvare +Date: Wed Jan 18 23:13:09 2006 +0100 + + [PATCH] hwmon: w83792d drop useless macros + + Drop 3 useless macros in the w83792d hardware monitoring driver. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 1f8dae31fe8d7b1dbeaa2110e063d876be91ed60 +Author: Yuan Mu +Date: Wed Jan 18 23:11:55 2006 +0100 + + [PATCH] hwmon: w83792d use arrays of attributes + + Use arrays of attributes in the w83792d driver. + + Signed-off-by: Jim Cromie + Signed-off-by: Yuan Mu + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 70adca5a9f506942ec88fb2d9d6e71ef271888b7 +Author: Jim Cromie +Date: Wed Jan 18 23:10:49 2006 +0100 + + [PATCH] hwmon: Refactor SENSOR_DEVICE_ATTR_2 + + This patch refactors SENSOR_DEVICE_ATTR_2 macro, following pattern set by + SENSOR_ATTR. First it creates a new macro SENSOR_ATTR_2() which expands + to an initialization expression, then it uses that in SENSOR_DEVICE_ATTR_2, + which declares and initializes a struct sensor_device_attribute_2. + + Signed-off-by: Jim Cromie + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit cdf263f1c59cad9b1567e759890b9be044972856 +Author: Jean Delvare +Date: Sun Jan 22 12:28:57 2006 +0100 + + [PATCH] I2C: fix sx200_acb build on other arches + + scx200_acb is only useful on a few Geode-based systems, and won't + compile on non-x86 systems due to the lack of asm/msr.h, as reported + by Andrew Morton. Thus, we should make that driver depend on X86. + + Signed-off-by: Jean Delvare + +commit a417bbd33b2ed7a3b2bc78cbadb820079d453328 +Author: Ben Gardner +Date: Wed Jan 18 22:53:09 2006 +0100 + + [PATCH] i2c: scx200_acb minimal documentation update + + scx200_acb: Minimal documentation update + + Signed-off-by: Ben Gardner + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit f933ff504f5b3f0f94b98d69d48fc8d3c1e92267 +Author: Ben Gardner +Date: Wed Jan 18 22:52:06 2006 +0100 + + [PATCH] i2c: scx200_acb fix and speed up the poll loop + + scx200_acb: Fix and speed up the poll loop + + Signed-off-by: Ben Gardner + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 16ffc5c99554bc1630bc3939e0950a75b2b1c811 +Author: Ben Gardner +Date: Wed Jan 18 22:48:26 2006 +0100 + + [PATCH] i2c: scx200_acb add support for the CS5535/CS5536 + + scx200_acb: Add support for the CS5535/CS5536 + + Signed-off-by: Ben Gardner + Signed-off-by: Jean Delvare + +commit 8a05940d742174a87427a3fe746712d49d4b8c4b +Author: Ben Gardner +Date: Wed Jan 18 22:46:26 2006 +0100 + + [PATCH] i2c: scx200_acb remove use of lock_kernel + + scx200_acb: remove use of lock_kernel() + + Signed-off-by: Ben Gardner + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 9b7b6d3b2b46c5c336a441ed12b504ee192e63b3 +Author: Ben Gardner +Date: Wed Jan 18 22:44:04 2006 +0100 + + [PATCH] i2c: scx200_acb refactor/simplify code + + scx200_acb: refactor/simplify code (no functional changes) + + Signed-off-by: Ben Gardner + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit ef4d9275e2949976cb43c8bd0c11cb77b9b017e9 +Author: Ben Gardner +Date: Wed Jan 18 22:43:10 2006 +0100 + + [PATCH] i2c: scx200_acb debug log cleanup + + scx200_acb: debug log cleanup + + Signed-off-by: Ben Gardner + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 99c3adb4d5a2d0727d656f32d5de885581d3feec +Author: Ben Gardner +Date: Wed Jan 18 22:41:50 2006 +0100 + + [PATCH] i2c: scx200_acb whitespace and comment cleanup + + scx200_acb: Whitespace and comment cleanup + + Signed-off-by: Ben Gardner + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit b3585e4f5b3e4ddb4d82ae50d0b844f619c6d821 +Author: Arjan van de Ven +Date: Wed Jan 11 10:50:26 2006 +0100 + + [PATCH] I2C: Convert i2c to mutexes + + The patch below converts a few i2c semaphores to mutexes + + Signed-off-by: Arjan van de Ven + Signed-off-by: Greg Kroah-Hartman + +commit 2488a39d233a758d41ab7de70a220bc956f3c96c +Author: Jean Delvare +Date: Mon Jan 9 23:29:11 2006 +0100 + + [PATCH] hwmon: Use attribute arrays in f71805f + + Convert the f71805f driver to use arrays of attributes. This shrinks the + compiled module from 12.0 kB to 9.6 kB. We certainly should do the same + for as many hardware monitoring drivers as possible. + + This, together with a nice chip design by Fintek, makes this driver + very small, both in terms of number of lines of code and memory + consumption. + + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit dedc6a7803d9c9795b504ffd8530a4ba7b3fd9ed +Author: Jim Cromie +Date: Mon Jan 9 23:24:41 2006 +0100 + + [PATCH] hwmon: Use attribute arrays in pc87360 + + Convert individual sensors to sensor-attr arrays by each sensor type, + and initialize them in loops instead of long blocks of individual calls. + + Signed-off-by: Jim Cromie + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit 42d3b83fecb7b576d477244347982baa02fa4f44 +Author: Jim Cromie +Date: Mon Jan 9 23:22:24 2006 +0100 + + [PATCH] hwmon: Allow sensor attributes arrays + + This patch refactors SENSOR_DEVICE_ATTR macro. First it creates a new + macro SENSOR_ATTR() which expands to an initialization expression, then + it uses that in SENSOR_DEVICE_ATTR, which declares and initializes a + struct sensor_device_attribute. + + IOW, SENSOR_ATTR() imitates __ATTR() in include/linux/device.h. + + Signed-off-by: Jim Cromie + Signed-off-by: Jean Delvare + Signed-off-by: Greg Kroah-Hartman + +commit eff4b1fe0aa8002cbf414576e8cc102967bd9d5d +Author: Stephen Hemminger +Date: Thu Mar 23 11:07:29 2006 -0800 + + [PATCH] skge: version 1.5 + + Update version to allow tracking of complaints. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 29b4e886cbba5e0b0e4379fea7fc313e7808b5c2 +Author: Stephen Hemminger +Date: Thu Mar 23 11:07:28 2006 -0800 + + [PATCH] skge: compute available ring buffers + + Don't need to keep track of available buffers, it is simpler + to just compute the value (ala e1000). Don't need tes on link up + because should always have available buffers then. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 866b4f3e94a7568a1cb0018c061e19e120de6922 +Author: Stephen Hemminger +Date: Thu Mar 23 11:07:27 2006 -0800 + + [PATCH] skge: dont free skb until multi-part transmit complete + + Don't free transmit buffers until the whole set of transmit descriptors + has been marked as done. Otherwise, we risk freeing a skb before the + whole transmit is done. + + This changes the transmit completion handling from incremental to a + two pass algorithm. First pass scans and records the start of the last + done descriptor, second cleans up until that point. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 4c180fc424550217344db6fe8960732dbd7feb0c +Author: Stephen Hemminger +Date: Thu Mar 23 11:07:26 2006 -0800 + + [PATCH] skge: multicast statistics fix + + Fix count of multicast packets. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 5a01144717ee9dacd45e1b0861a2c593796bcead +Author: Stephen Hemminger +Date: Thu Mar 23 11:07:25 2006 -0800 + + [PATCH] skge: rx_reuse called twice + + In the error case we call skge_rx_reuse twice. This is harmless + but unnecessary. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit b5d56ddc3f839e94e97a3eb8afb4d0d64a9f2ef8 +Author: Stephen Hemminger +Date: Thu Mar 23 11:07:24 2006 -0800 + + [PATCH] skge: dont use dev_alloc_skb for rx buffs + + The skge driver was using dev_alloc_skb which reserves space for the + Ethernet header. This unnecessary and it should just use alloc_skb, + also by using GFP_KERNEL during startup it won't run into problems when + a user asks for a huge ring size or mtu and potentially drains the + reserved atomic pool. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 901ccefb2dd7fe6a9e750a68f990f2a7d76b78d2 +Author: Stephen Hemminger +Date: Thu Mar 23 11:07:23 2006 -0800 + + [PATCH] skge: align receive buffers + + The skge driver aligns the header on the initial receive buffers, but + but doesn't on followon receive buffer allocations. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 15240072ac3ffb67050acd0b71b477c3bb977670 +Author: Stephen Hemminger +Date: Thu Mar 23 08:51:38 2006 -0800 + + [PATCH] sky2: dont need to use dev_kfree_skb_any + + Transmit buffers are always freed with interrupts enabled (softirq), + so we can just call dev_kfree_skb. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 050ff18016979b98e3cadb930d6e29bfd5530469 +Author: Stephen Hemminger +Date: Thu Mar 23 08:51:37 2006 -0800 + + [PATCH] sky2: Fix RX stats + + Unicast packets are shown as multicast, real multicast packets are missing. + + Signed-off-by: Patrick McHardy + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit d26045404c8925eadf252aeb6b5b8055fc01e9de +Author: Stephen Hemminger +Date: Thu Mar 23 08:51:36 2006 -0800 + + [PATCH] sky2: typo in last stats patch + + Typo in last stats patch. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 4edac92fcf5956b0ef52fb281207863902e430bc +Author: David Woodhouse +Date: Thu Mar 23 14:03:00 2006 +0000 + + [PATCH] Restore channel setting after scan. + + After a scan, we weren't switching back to the original channel if we + were associated with an AP. So NetworkManager's periodic scans would + disrupt connectivity until the ESSID was manually set again. Fix that. + + Signed-off-by: David Woodhouse + Signed-off-by: John W. Linville + +commit 9320199957cebc39ccef372fa1fccf5ba3d3fd7d +Author: Jouni Malinen +Date: Sun Mar 19 19:21:49 2006 -0800 + + [PATCH] hostap: Fix memory leak on PCI probe error path + + The Coverity checker (CID: 659, 660) spotted this resource leak on + PCI probe error path. Free private data structure if pci_enable_device() + fails. + + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 4f7ecdf0b1b8125fe190247beb0df652829e13cb +Author: Jouni Malinen +Date: Sun Mar 19 19:21:48 2006 -0800 + + [PATCH] hostap: Remove dead code (duplicated idx != 0) + + The Coverity checker (CID: 58) spotted this duplicated idx != 0 + validation for unicast keys in prism2_ioctl_siwencodeext(). + + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 3a1c42ad98fddab63e62b400ae98e6f609485efc +Author: Jouni Malinen +Date: Sun Mar 19 19:21:47 2006 -0800 + + [PATCH] hostap: Fix unlikely read overrun in CIS parsing + + The Coverity checker (CID: 452, 453, 454, 455, 456) spotted this + unlikely read overrun of CIS buffer. Abort if CISTPL_CONFIG or + CISTPL_MANFID would not fit in buffer. + + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 8abceaf1cf44b9d95bcc366fa277b33e292141c4 +Author: Eugene Teo +Date: Sun Mar 19 19:21:46 2006 -0800 + + [PATCH] hostap: Fix double free in prism2_config() error path + + The Coverity checker (CID: 930) spotted this double free on error path + (allocation failure). Do not free these here since generic error path + will take care of this. + + Signed-off-by: Eugene Teo + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 54b85f489bdfafc9306dfcc21e0d2687c34c3b34 +Author: Adrian Bunk +Date: Sun Mar 19 19:21:45 2006 -0800 + + [PATCH] hostap: Fix ap_add_sta() return value verification + + The Coverity checker (CID: 273) spotted this inconsequent NULL checking + (unconditionally dereferencing directly after checking for NULL + isn't a good idea). Return immediately to avoid this. + + Signed-off-by: Adrian Bunk + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 971d1e69229f3dfc6dd233b8f4b82df2c35eedd8 +Author: Adrian Bunk +Date: Sun Mar 19 19:21:44 2006 -0800 + + [PATCH] hostap: Fix hw reset after CMDCODE_ACCESS_WRITE timeout + + The Coverity checker (CID: 59) noted that the call to prism2_hw_reset() + was dead code. Move prism2_hw_reset() call to a place where it is + actually executed. + + Signed-off-by: Adrian Bunk + Signed-off-by: Jouni Malinen + Signed-off-by: John W. Linville + +commit 9e75af30d529d54fc650586776c100d0665c0c93 +Author: Dan Williams +Date: Thu Mar 16 13:46:29 2006 -0500 + + [PATCH] wireless/airo: cache wireless scans + + Observed problems when multiple processes request scans and subsequently + scan results. This causes a scan result request to hit card registers + before the scan is complete, returning an incomplete scan list and + possibly making the card very angry. Instead, cache the results of a + wireless scan and serve result requests from the cache, rather than + hitting the hardware for them. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 15db2763202b9479f3d30ea61a283be4fc48559d +Author: Dan Williams +Date: Thu Mar 16 13:46:27 2006 -0500 + + [PATCH] wireless/airo: define default MTU + + The number 2312 was used all over the place to refer to the card's + default MTU. Make it a #define and use that everywhere rather than the + number. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 934d8bf142541ea013bc4002e200fa0e6815bf38 +Author: Dan Williams +Date: Thu Mar 16 13:46:23 2006 -0500 + + [PATCH] wireless/airo: clean up printk usage to print device name + + Show the specific device that driver messages are about. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4 +Author: Jens Axboe +Date: Thu Mar 23 20:00:26 2006 +0100 + + [PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23 + + Signed-off-by: Jens Axboe + +commit 6dac40a7ce2483a47b54af07afebeb84131c7228 +Author: Tom Zanussi +Date: Thu Mar 23 19:58:45 2006 +0100 + + [PATCH] relay: consolidate sendfile() and read() code + + Signed-off-by: Jens Axboe + +commit 221415d76231d9012871e6e6abcbad906c46626a +Author: Jens Axboe +Date: Thu Mar 23 19:57:55 2006 +0100 + + [PATCH] relay: add sendfile() support + + Signed-off-by: Jens Axboe + +commit b86ff981a8252d83d6a7719ae09f3a05307e3592 +Author: Jens Axboe +Date: Thu Mar 23 19:56:55 2006 +0100 + + [PATCH] relay: migrate from relayfs to a generic relay API + + Original patch from Paul Mundt, sysfs parts removed by me since they + were broken. + + Signed-off-by: Jens Axboe + +commit e750d1c7cc314b9ba1934b0b474b7d39f906f865 +Author: Anton Altaparmakov +Date: Thu Mar 23 17:04:12 2006 +0000 + + NTFS: 2.1.27 - Various bug fixes and cleanups. + + Signed-off-by: Anton Altaparmakov + +commit 9c42954dfd50d02963cd453fb84bfef3967af2f0 +Author: Russell King +Date: Thu Mar 23 16:59:37 2006 +0000 + + [ARM] Move enable_irq and disable_irq to assembler.h + + 5d25ac038a317d454a4321cba955f756400835a5 broke VFP builds due to + enable_irq not being defined as an assembly macro. Move it to + assembler.h so everyone can use it. + + Signed-off-by: Russell King + +commit 4e5e529ad684f1b3fba957f5dd4eb7c2b534ee92 +Author: Ingo Molnar +Date: Thu Mar 23 16:57:48 2006 +0000 + + NTFS: Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Anton Altaparmakov + +commit 834ba600cefe6847acaebe5e8e984476dfeebf55 +Author: Anton Altaparmakov +Date: Thu Mar 23 16:25:23 2006 +0000 + + NTFS: Handle the recently introduced -ENAMETOOLONG return value from + fs/ntfs/unistr.c::ntfs_nlstoucs() in fs/ntfs/namei.c::ntfs_lookup(). + + Signed-off-by: Anton Altaparmakov + +commit 20fdcf1d543b1285ef8b1c1993a9221f2eda52dc +Author: Anton Altaparmakov +Date: Thu Mar 23 16:21:02 2006 +0000 + + NTFS: Add a missing call to flush_dcache_mft_record_page() in + fs/ntfs/inode.c::ntfs_write_inode(). + + Signed-off-by: Anton Altaparmakov + +commit a778f217328a7391e0919b6463ec7f143851d12d +Author: Anton Altaparmakov +Date: Thu Mar 23 16:18:23 2006 +0000 + + NTFS: Fix a bug in fs/ntfs/inode.c::ntfs_read_locked_index_inode() where we + forgot to update a temporary variable so loading index inodes which + have an index allocation attribute failed. + + Signed-off-by: Anton Altaparmakov + +commit 2c2c8c1c211c75d0cc9d7642a569ceac1aecd96d +Author: Anton Altaparmakov +Date: Thu Mar 23 16:09:40 2006 +0000 + + NTFS: Improve comments on file attribute flags in fs/ntfs/layout.h. + + Signed-off-by: Anton Altaparmakov + +commit d4faf636d6f8d8940174e38317161eb08a7a57ec +Author: Anton Altaparmakov +Date: Thu Mar 23 16:05:11 2006 +0000 + + NTFS: Limit name length in fs/ntfs/unistr.c::ntfs_nlstoucs() to maximum + allowed by NTFS, i.e. 255 Unicode characters, not including the + terminating NULL (which is not stored on disk). + + Signed-off-by: Anton Altaparmakov + +commit f95c4018fd4b0bdef9b1bcb4eac7056e2a07282a +Author: Anton Altaparmakov +Date: Thu Mar 23 15:59:32 2006 +0000 + + NTFS: Remove all the make_bad_inode() calls. This should only be called + from read inode and new inode code paths. + + Signed-off-by: Anton Altaparmakov + +commit a0646a1f04f1ec4c7514e5b00496b54e054a2c99 +Author: Anton Altaparmakov +Date: Thu Mar 23 15:53:03 2006 +0000 + + NTFS: Add support for sparse files which have a compression unit of 0. + + Signed-off-by: Anton Altaparmakov + +commit b0e6e962992b76580f4900b166a337bad7c1e81b +Author: Benjamin LaHaise +Date: Thu Mar 23 03:01:08 2006 -0800 + + [PATCH] reduce size of bio mempools + + The biovec default mempool limit of 256 entries results in over 3MB of RAM + being permanently pinned, even on systems with only 128MB of RAM. Since + mempool tries to allocate from the system pool first, it makes sense to + reduce the size of the mempool fallbacks to a more reasonable limit of 1-5 + entries -- enough for the system to be able to make progress even under + load. + + Signed-off-by: Benjamin LaHaise + Acked-by: Jens Axboe + Cc: Matt Mackall + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b73b459f72f746a031d1ef4cc7659b20a1f1acb9 +Author: Eric Dumazet +Date: Thu Mar 23 03:01:07 2006 -0800 + + [PATCH] __GENERIC_PER_CPU changes + + Now CONFIG_DEBUG_INITDATA is in, initial percpu data + [__per_cpu_start,__per_cpu_end] can be declared as a redzone, and invalid + accesses after boot can be detected, at least for i386. + + We can let non possible cpus percpu data point to this 'redzone' instead of + NULL . + + NULL was not a good choice because part of [0..32768] memory may be + readable and invalid accesses may happen unnoticed. + + If CONFIG_DEBUG_INITDATA is not defined, each non possible cpu points to + the initial percpu data (__per_cpu_offset[cpu] == 0), thus invalid accesses + wont be detected/crash. + + This patch also moves __per_cpu_offset[] to read_mostly area to avoid false + sharing. + + Signed-off-by: Eric Dumazet + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 394e3902c55e667945f6f1c2bdbc59842cce70f7 +Author: Andrew Morton +Date: Thu Mar 23 03:01:05 2006 -0800 + + [PATCH] more for_each_cpu() conversions + + When we stop allocating percpu memory for not-possible CPUs we must not touch + the percpu data for not-possible CPUs at all. The correct way of doing this + is to test cpu_possible() or to use for_each_cpu(). + + This patch is a kernel-wide sweep of all instances of NR_CPUS. I found very + few instances of this bug, if any. But the patch converts lots of open-coded + test to use the preferred helper macros. + + Cc: Mikael Starvik + Cc: David Howells + Acked-by: Kyle McMartin + Cc: Anton Blanchard + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Cc: Paul Mundt + Cc: "David S. Miller" + Cc: William Lee Irwin III + Cc: Andi Kleen + Cc: Christian Zankel + Cc: Philippe Elie + Cc: Nathan Scott + Cc: Jens Axboe + Cc: Eric Dumazet + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 63872f87a151413100678f110d1556026002809e +Author: Eric Dumazet +Date: Thu Mar 23 03:01:04 2006 -0800 + + [PATCH] Only allocate percpu data for possible CPUs + + percpu_data blindly allocates bootmem memory to store NR_CPUS instances of + cpudata, instead of allocating memory only for possible cpus. + + This patch saves ram, allocating num_possible_cpus() (instead of NR_CPUS) + instances. + + Signed-off-by: Eric Dumazet + Acked-by: "David S. Miller" + Cc: James Bottomley + Cc: Jens Axboe + Acked-by: Ingo Molnar + Cc: Jens Axboe + Cc: Anton Blanchard + Acked-by: William Irwin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5a6b7951bfcca7f45f44269ea87417c74558daf8 +Author: Benjamin LaHaise +Date: Thu Mar 23 03:01:03 2006 -0800 + + [PATCH] get_empty_filp tweaks, inline epoll_init_file() + + Eliminate a handful of cache references by keeping current in a register + instead of reloading (helps x86) and avoiding the overhead of a function + call. Inlining eventpoll_init_file() saves 24 bytes. Also reorder file + initialization to make writes occur more sequentially. + + Signed-off-by: Benjamin LaHaise + Cc: Davide Libenzi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0b2fcfdb8b4e7e379192f24ea2203163ddf5df1d +Author: Nick Piggin +Date: Thu Mar 23 03:01:02 2006 -0800 + + [PATCH] atomic: add_unless cmpxchg optimise + + Without branch hints, the very unlikely chance of the loop repeating due to + cmpxchg failure is unrolled with gcc-4 that I have tested. + + Improve this for architectures with a native cas/cmpxchg. llsc archs + should try to implement this natively. + + Signed-off-by: Nick Piggin + Cc: Andi Kleen + Cc: Martin Schwidefsky + Cc: Heiko Carstens + Cc: "David S. Miller" + Cc: Roman Zippel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 713729e8b993cb880225e2ced50a3f5ac05c2b3f +Author: Alexey Dobriyan +Date: Thu Mar 23 03:01:01 2006 -0800 + + [PATCH] fs/*/file.c: drop insane header dependencies + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2178426d26661ed6e18a8d6ea0bc05c98d73600d +Author: Adrian Bunk +Date: Thu Mar 23 03:01:00 2006 -0800 + + [PATCH] kernel/rcupdate.c: make two structs static + + This patch makes two needlessly global structs static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7a673c6b8fff4b2888ef1d47462e4be79936ac5a +Author: Domen Puncer +Date: Thu Mar 23 03:00:59 2006 -0800 + + [PATCH] devpts: use lib/parser.c for parsing mount options + + Item from "2.6 should fix" list. + + Signed-off-by: Domen Puncer + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ee25e96fcd78837c9f192aa655ce12a88bfd63d4 +Author: Oleg Nesterov +Date: Thu Mar 23 03:00:58 2006 -0800 + + [PATCH] BUILD_LOCK_OPS: cleanup preempt_disable() usage + + This patch changes the code from: + + preempt_disable(); + for (;;) { + ... + preempt_disable(); + } + to: + for (;;) { + preempt_disable(); + ... + } + + which seems more clean to me and saves a couple of bytes for + each function. + + Signed-off-by: Oleg Nesterov + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eb8782ef72758b8700963ef8b949f5c812e6d630 +Author: Rene Herman +Date: Thu Mar 23 03:00:57 2006 -0800 + + [PATCH] PnPBIOS: Missing SMALL_TAG_ENDDEP tag + + Without the attached, the kernel complains about my BIOS' PNP tables. It + was ACKed before, but never merged: + + http://marc.theaimsgroup.com/?l=linux-kernel&m=110237794007900&w=2 + + Cc: Adam Belay + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit dd287796d608fcdc3fe5e8fdb5bf762a8f1bc32a +Author: Andrew Morton +Date: Thu Mar 23 03:00:57 2006 -0800 + + [PATCH] pause_on_oops command line option + + Attempt to fix the problem wherein people's oops reports scroll off the screen + due to repeated oopsing or to oopses on other CPUs. + + If this happens the user can reboot with the `pause_on_oops=' option. + It will allow the first oopsing CPU to print an oops record just a single + time. Second oopsing attempts, or oopses on other CPUs will cause those CPUs + to enter a tight loop until the specified number of seconds have elapsed. + + The patch implements the infrastructure generically in the expectation that + architectures other than x86 will find it useful. + + Cc: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 41c28ff1635e71af072c4711ff5fadd5855d48e7 +Author: Adrian Bunk +Date: Thu Mar 23 03:00:56 2006 -0800 + + [PATCH] kill _INLINE_ + + This patch removes all occurances of _INLINE_ in the kernel. + + With the exception of tty_flip.h, I've simply removed the inline's since + gcc should know best which functions to be inlined. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 772a0dc5d2103baff2f15c2668930bcd37add777 +Author: Andrew Morton +Date: Thu Mar 23 03:00:55 2006 -0800 + + [PATCH] notifier: profile.h forward decl fix + + Declarations use struct notifier_block on both legs of the ifdef, so move the + notifier_block forward declaration outside the ifdef. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 91368d73e4b60d577ad171e5bd315b564265fcdb +Author: Ingo Molnar +Date: Thu Mar 23 03:00:54 2006 -0800 + + [PATCH] make bug messages more consistent + + Consolidate all kernel bug printouts to begin with the "BUG: " string. + Makes it easier to find them in large bootup logs. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3257545e40a769cbef98cf13eabe50f00712991e +Author: Alexey Dobriyan +Date: Thu Mar 23 03:00:53 2006 -0800 + + [PATCH] ufs: switch to inode_inc_count, inode_dec_count + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a513b035eadf80bb9ce0be4c5dd9f242cfb9eecc +Author: Alexey Dobriyan +Date: Thu Mar 23 03:00:53 2006 -0800 + + [PATCH] ext2: switch to inode_inc_count, inode_dec_count + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4e907c3d45d10dc5162d283d109be425c23aeb69 +Author: Alexey Dobriyan +Date: Thu Mar 23 03:00:52 2006 -0800 + + [PATCH] sysv: switch to inode_inc_count, inode_dec_count + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 78ec7b6917a938910d5ed6049c0e4ee6e6852e4e +Author: Alexey Dobriyan +Date: Thu Mar 23 03:00:51 2006 -0800 + + [PATCH] minix: switch to inode_inc_link_count, inode_dec_link_count + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 66d2173053f64121f8dc69a1cf85972e37e1ee75 +Author: Alexey Dobriyan +Date: Thu Mar 23 03:00:51 2006 -0800 + + [PATCH] Extract inode_inc_link_count(), inode_dec_link_count() + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a7ccf007189aa4401695e3105b00d9429f836b46 +Author: Alexey Dobriyan +Date: Thu Mar 23 03:00:50 2006 -0800 + + [PATCH] fs/ufs/file.c: drop insane header dependencies + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a26fd335b481e0bd14f4e7d1f5e7bb1138b1731f +Author: Oleg Nesterov +Date: Thu Mar 23 03:00:49 2006 -0800 + + [PATCH] sigprocmask: kill unneeded temp var + + Cleanup, remove unneeded double copying of current->blocked. + + Signed-off-by: Oleg Nesterov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 40953ed87dd68742de0dd1bdecdcdfebfe1d69ae +Author: Jes Sorensen +Date: Thu Mar 23 03:00:49 2006 -0800 + + [PATCH] snsc kmalloc2kzalloc + + Change driver to use kzalloc rather than kmalloc+memset + + Signed-off-by: Jes Sorensen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6b9438e1323a2be10dcc039f6321e7ca18b9459e +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:48 2006 -0800 + + [PATCH] fat_lock is used as a mutex, convert it to using the new mutex primitive + + The fat code uses the fat_lock always in a mutex way (taking and releasing + the lock in the same function), the patch below converts it into the new + mutex primitive. Please consider this patch for the code. + + Signed-off-by: Arjan van de Ven + Acked-by: OGAWA Hirofumi + Cc: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f82945dff51ff7b33f69cb45a8342b936e966f7f +Author: Ingo Molnar +Date: Thu Mar 23 03:00:47 2006 -0800 + + [PATCH] oss: semaphore to mutex conversion + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Extracted for OSS/Free changes from Ingo's original patches. + + Signed-off-by: Ingo Molnar + Signed-off-by: Takashi Iwai + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6389a385114ae358693f213266de6468ea116c77 +Author: Ashutosh Naik +Date: Thu Mar 23 03:00:46 2006 -0800 + + [PATCH] kernel/module.c Semaphore to Mutex Conversion for module_mutex + + This patch converts the module_mutex semaphore to a mutex. + + Signed-off-by: Ashutosh Naik + Cc: Arjan van de Ven + Cc: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cf8b8975c3c35d1269bf6f1c6f2ae4efb6909607 +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:45 2006 -0800 + + [PATCH] sem2mutex: drivers/ide + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Acked-by: Bartlomiej Zolnierkiewicz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 81861d78c9edf9a9b03a9ba1f5b242d658f16832 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:44 2006 -0800 + + [PATCH] sem2mutex: serial ->port_write_mutex + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1e7933defd0fce79b2d8ecdbc7ca37fed0c188ed +Author: Ingo Molnar +Date: Thu Mar 23 03:00:44 2006 -0800 + + [PATCH] sem2mutex: UDF + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8e3f90459b7052c31a9669417b837fb14aa6d313 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:43 2006 -0800 + + [PATCH] sem2mutex: NCPFS + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 97461518610fb1679f67333bb699bb81136e49fe +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:42 2006 -0800 + + [PATCH] convert ext3's truncate_sem to a mutex + + ext3's truncate_sem is always released in the same function it's taken + and it otherwise is a mutex as well.. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7bf6d78dd93ccc52cd2cac5066c4b84834e4f1f2 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:42 2006 -0800 + + [PATCH] sem2mutex: HPFS + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1d5599e397dcc7c2300d200e66dad326d7dbac38 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:41 2006 -0800 + + [PATCH] sem2mutex: autofs4 wq_sem + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Acked-by: Ian Kent + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1eb0d67007e75697a7b87e6b611be935a991395c +Author: Ingo Molnar +Date: Thu Mar 23 03:00:40 2006 -0800 + + [PATCH] sem2mutex: JFFS + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 910f5d202ce39cc78de1bbb679285a3167de9fb2 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:39 2006 -0800 + + [PATCH] sem2mutex: sound/oss/ + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 82d4dc5adb0055393248ad4ab8de392fac708a12 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:38 2006 -0800 + + [PATCH] sem2mutex: drivers/block/nbd.c + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Paul Clements + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f85221dd74f2708b78a2aa54de59944e44206d0e +Author: Ingo Molnar +Date: Thu Mar 23 03:00:38 2006 -0800 + + [PATCH] sem2mutex: drivers/block/loop.c + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0ac1759abc69fb62438c30a7e422f628a1120d67 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:37 2006 -0800 + + [PATCH] sem2mutex: fs/seq_file.c + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7cf34c761db8827818a27e23c50756f8b821a9b0 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:36 2006 -0800 + + [PATCH] sem2mutex: fs/libfs.c + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7a7d1cf95408863a657035701606b13644c9f55e +Author: Ingo Molnar +Date: Thu Mar 23 03:00:35 2006 -0800 + + [PATCH] sem2mutex: kprobes + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Acked-by: Anil S Keshavamurthy + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2c68ee754c40099c59828e59618a54726f76126a +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:35 2006 -0800 + + [PATCH] sem2mutex: jbd, j_checkpoint_mutex + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f24075bd0c1cd1cc2cf86d394f960aa0401de573 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:34 2006 -0800 + + [PATCH] sem2mutex: iprune + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a11f3a0574a5734db3e5de38922430d005d35118 +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:33 2006 -0800 + + [PATCH] sem2mutex: vfs_rename_mutex + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Cc: Al Viro + Cc: Christoph Hellwig + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 144efe3e3e5ad57af549bf800fa4560d7c74e9fe +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:32 2006 -0800 + + [PATCH] sem2mutex: eventpoll + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Cc: Davide Libenzi + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 70522e121a521aa09bd0f4e62e1aa68708b798e1 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:31 2006 -0800 + + [PATCH] sem2mutex: tty + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Alan Cox + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d4f9af9dac4ecb75818f909168f87b441cc95653 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:30 2006 -0800 + + [PATCH] sem2mutex: inotify + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: John McCutchan + Signed-off-by: Andrew Morton + Acked-by: Robert Love + Signed-off-by: Linus Torvalds + +commit d3be915fc5e7d19a2283ad9b0fe0782a74675d0a +Author: Ingo Molnar +Date: Thu Mar 23 03:00:29 2006 -0800 + + [PATCH] sem2mutex: quota + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Jan Kara + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c039e3134ae62863bbc8e8429b29e3c43cf21b2a +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:28 2006 -0800 + + [PATCH] sem2mutex: blockdev #2 + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Acked-by: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6f87f0deebaff2716a3ce9232f948d702690562a +Author: Ingo Molnar +Date: Thu Mar 23 03:00:27 2006 -0800 + + [PATCH] sem2mutex: drivers/char/ + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Russell King + Cc: Wim Van Sebroeck + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b1c82b5c55851bf309f4019994610789f7042757 +Author: Jes Sorensen +Date: Thu Mar 23 03:00:26 2006 -0800 + + [PATCH] sem2mutex: drivers/block/floppy.c + + Convert from semaphore to mutex. + Untested as I have no access to a floppy drive at the moment. + + Signed-off-by: Jes Sorensen + Signed-off-by: Ingo Molnar + Cc: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1657f824e880a9bd239a3436b820d1a2986f763d +Author: Jes Sorensen +Date: Thu Mar 23 03:00:25 2006 -0800 + + [PATCH] sem2mutex: drivers/block/pktcdvd.c + + Convert to use mutex from a semaphore + + Signed-off-by: Jes Sorensen + Signed-off-by: Ingo Molnar + Cc: Peter Osterlund + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 97d1f15b7ef52c1e9c28dc48b454024bb53a5fd2 +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:24 2006 -0800 + + [PATCH] sem2mutex: kernel/ + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e723ccd805857a46d3b63fbd20edea8579c6c541 +Author: Jes Sorensen +Date: Thu Mar 23 03:00:22 2006 -0800 + + [PATCH] sem2mutex: drivers/scsi/ide-scsi.c + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Jens Axboe + Cc: Bartlomiej Zolnierkiewicz + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8ed965d612d9e9bc08805c75123f063cf6966311 +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:21 2006 -0800 + + [PATCH] sem2mutex: drivers: raw, connector, dcdbas, ppp_generic + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Cc: Stephen Rothwell + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9cdf18279d1f4a2d075ebe924d74e6e4547f6e1b +Author: Arjan van de Ven +Date: Thu Mar 23 03:00:21 2006 -0800 + + [PATCH] sem2mutex: kcapi.c + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Cc: Karsten Keil + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4f7a07b88726781e37c4c5f63db3a6ee3f8500d3 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:19 2006 -0800 + + [PATCH] convert fs/9p/ to mutexes, fix locking bugs + + Convert fs/9p/mux.c from semaphore to mutex. + + NOTE: fixed locking bugs in the process - the code was using semaphores + the other way around. + + Signed-off-by: Ingo Molnar + Cc: Eric Van Hensbergen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9331b3157c835353dd28efcd80d23563ad226aee +Author: Ingo Molnar +Date: Thu Mar 23 03:00:19 2006 -0800 + + [PATCH] convert kernel/rcupdate.c:rcu_barrier_sema to mutex + + Convert kernel/rcupdate's rcu_barrier_sema to mutex. + + Signed-off-by: Ingo Molnar + Acked-by: "Paul E. McKenney" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3d3f26a7baaa921a0e790b4c72d20f0de91a5d65 +Author: Ingo Molnar +Date: Thu Mar 23 03:00:18 2006 -0800 + + [PATCH] kernel/cpuset.c, mutex conversion + + convert cpuset.c's callback_sem and manage_sem to mutexes. + Build and boot tested by Ingo. + Build, boot, unit and stress tested by pj. + + Signed-off-by: Ingo Molnar + Signed-off-by: Paul Jackson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6362e4d4eda61efb04ac1cdae32e48ac6d90b701 +Author: Jan Kara +Date: Thu Mar 23 03:00:17 2006 -0800 + + [PATCH] Fix oops in invalidate_dquots() + + When quota is being turned off we assumed that all the references to dquots + were already dropped. That need not be true as inodes being deleted are + not on superblock's inodes list and hence we need not reach it when + removing quota references from inodes. So invalidate_dquots() has to wait + for all the users of dquots (as quota is already marked as turned off, no + new references can be acquired and so this is bound to happen rather + early). When we do this, we can also remove the iprune_sem locking as it + was protecting us against exactly the same problem when freeing inodes + icache memory. + + Signed-off-by: Jan Kara + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 804f1594cc3deb161e531a43d90c501f0db2635a +Author: Kyle McMartin +Date: Thu Mar 23 03:00:16 2006 -0800 + + [PATCH] Move read_mostly definition to asm/cache.h + + Seems like needless clutter having a bunch of #if defined(CONFIG_$ARCH) in + include/linux/cache.h. Move the per architecture section definition to + asm/cache.h, and keep the if-not-defined dummy case in linux/cache.h to + catch architectures which don't implement the section. + + Verified that symbols still go in .data.read_mostly on parisc, + and the compile doesn't break. + + Signed-off-by: Kyle McMartin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6a2900b67652421b51fe25e4b86ecfec742b1f30 +Author: Christoph Hellwig +Date: Thu Mar 23 03:00:15 2006 -0800 + + [PATCH] kill cdrom ->dev_ioctl method + + Since early 2.4.x all cdrom drivers implement the block_device methods + themselves, so they can handle additional ioctls directly instead of going + through the cdrom layer. + + Signed-off-by: Christoph Hellwig + Acked-by: Jens Axboe + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d2c5d4fc07a41a6048b01d3b2930aeff1235fda5 +Author: Christoph Hellwig +Date: Thu Mar 23 03:00:14 2006 -0800 + + [PATCH] cleanup cdrom_ioctl + + Add a small helper for each ioctl to cut down cdrom_ioctl to a readable + size. + + Signed-off-by: Christoph Hellwig + Cc: Acked-by: Jens Axboe + Signed-off-by: Benoit Boissinot + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2dd0ebcd2ab7b18a50c0810ddb45a84316e4ee2e +Author: Ravikiran G Thirumalai +Date: Thu Mar 23 03:00:13 2006 -0800 + + [PATCH] Avoid taking global tasklist_lock for single threadedprocess at getrusage() + + Avoid taking the global tasklist_lock when possible, if a process is single + threaded during getrusage(). Any avoidance of tasklist_lock is good for + NUMA boxes (and possibly for large SMPs). Thanks to Oleg Nesterov for + review and suggestions. + + Signed-off-by: Nippun Goel + Signed-off-by: Ravikiran Thirumalai + Signed-off-by: Shai Fultheim + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0c9e63fd38a2fb2181668a0cdd622a3c23cfd567 +Author: Eric Dumazet +Date: Thu Mar 23 03:00:12 2006 -0800 + + [PATCH] Shrinks sizeof(files_struct) and better layout + + 1) Reduce the size of (struct fdtable) to exactly 64 bytes on 32bits + platforms, lowering kmalloc() allocated space by 50%. + + 2) Reduce the size of (files_struct), using a special 32 bits (or + 64bits) embedded_fd_set, instead of a 1024 bits fd_set for the + close_on_exec_init and open_fds_init fields. This save some ram (248 + bytes per task) as most tasks dont open more than 32 files. D-Cache + footprint for such tasks is also reduced to the minimum. + + 3) Reduce size of allocated fdset. Currently two full pages are + allocated, that is 32768 bits on x86 for example, and way too much. The + minimum is now L1_CACHE_BYTES. + + UP and SMP should benefit from this patch, because most tasks will touch + only one cache line when open()/close() stdin/stdout/stderr (0/1/2), + (next_fd, close_on_exec_init, open_fds_init, fd_array[0 .. 2] being in the + same cache line) + + Signed-off-by: Eric Dumazet + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d8733c2956968a01394a4d2a9e97a8b431a78776 +Author: Andrew Morton +Date: Thu Mar 23 03:00:11 2006 -0800 + + [PATCH] ext3_readdir: use generic readahead + + Linus points out that ext3_readdir's readahead only cuts in when + ext3_readdir() is operating at the very start of the directory. So for large + directories we end up performing no readahead at all and we suck. + + So take it all out and use the core VM's page_cache_readahead(). This means + that ext3 directory reads will use all of readahead's dynamic sizing goop. + + Note that we're using the directory's filp->f_ra to hold the readahead state, + but readahead is actually being performed against the underlying blockdev's + address_space. Fortunately the readahead code is all set up to handle this. + + Tested with printk. It works. I was struggling to find a real workload which + actually cared. + + (The patch also exports page_cache_readahead() to GPL modules) + + Cc: "Stephen C. Tweedie" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b8e31edc10d160a8bf2159541d9d12f2079a0887 +Author: Jean Delvare +Date: Thu Mar 23 03:00:09 2006 -0800 + + [PATCH] m68k: rtc driver cleanup + + Use the standard BCD macros instead of redefining them. + + Signed-off-by: Jean Delvare + Cc: Geert Uytterhoeven + Cc: Roman Zippel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b238205ba5d79a8a242d7a5ddb82b89e4dc4e48 +Author: Luca Tettamanti +Date: Thu Mar 23 03:00:09 2006 -0800 + + [PATCH] swsusp: add s2ram ioctl to userland interface + + Add the SNAPSHOT_S2RAM ioctl to the snapshot device. + + This ioctl allows a userland application to make the system (previously frozen + with the SNAPSHOT_FREE ioctl) enter the S3 state without freezing processes + and disabling nonboot CPUs for the second time. + + This will allow us to implement the suspend-to-disk-and-RAM (STDR) + functionality in the userland suspend tools. + + Signed-off-by: Luca Tettamanti + Signed-off-by: Rafael J. Wysocki + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 94c188d32996beac00426740974310e32f162c14 +Author: Rafael J. Wysocki +Date: Thu Mar 23 03:00:08 2006 -0800 + + [PATCH] swsusp: let userland tools switch console on suspend + + Remove the console-switching code from the suspend part of the swsusp userland + interface and let the userland tools switch the console. + + Signed-off-by: Rafael J. Wysocki + Acked-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ff4da2e262d2509fe1bacff70dd00934be569c66 +Author: Rafael J. Wysocki +Date: Thu Mar 23 03:00:07 2006 -0800 + + [PATCH] swsusp: add check for suspension of X-controlled devices + + It is unsafe to suspend devices if the hardware is controlled by X. Add an + extra check to prevent this from happening. + + Signed-off-by: Rafael J. Wysocki + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e4e4d665560c75afb6060cb43bb6738777648ca1 +Author: Shaohua Li +Date: Thu Mar 23 03:00:06 2006 -0800 + + [PATCH] swsusp: drain high mem pages + + Highmem could be in pcp list as well. + + Signed-off-by: Shaohua Li + Acked-by: Pavel Machek + Cc: "Rafael J. Wysocki" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fc558a7496bfab3d29a68953b07a95883fdcfbb1 +Author: Rafael J. Wysocki +Date: Thu Mar 23 03:00:05 2006 -0800 + + [PATCH] swsusp: finally solve mysqld problem + + This patch from Pavel moves userland freeze signals handling into more logical + place. It now hits even with mysqld running. + + Signed-off-by: Rafael J. Wysocki + Signed-off-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ce6ed29f3136bc4b3644ecf4091d6390d444f628 +Author: Pavel Machek +Date: Thu Mar 23 03:00:05 2006 -0800 + + [PATCH] suspend: make progress printing prettier + + Combination of printk/pr_debug led to <7> in the middle of the line, and we + printed way too many dots. + + Signed-off-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 02aaeb9b952f30b1ad6284d5d45be02030f679db +Author: Rafael J. Wysocki +Date: Thu Mar 23 03:00:04 2006 -0800 + + [PATCH] swsusp: freeze user space processes first + + Allow swsusp to freeze processes successfully under heavy load by freezing + userspace processes before kernel threads. + + [Thanks to Nigel Cunningham for suggesting the + way to go.] + + Signed-off-by: Rafael J. Wysocki + Acked-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6e1819d615f24ce0726a7d0bd3dd0152d7b21654 +Author: Rafael J. Wysocki +Date: Thu Mar 23 03:00:03 2006 -0800 + + [PATCH] swsusp: userland interface + + This patch introduces a user space interface for swsusp. + + The interface is based on a special character device, called the snapshot + device, that allows user space processes to perform suspend and resume-related + operations with the help of some ioctls and the read()/write() functions. +  Additionally it allows these processes to allocate free swap pages from a + selected swap partition, called the resume partition, so that they know which + sectors of the resume partition are available to them. + + The interface uses the same low-level system memory snapshot-handling + functions that are used by the built-it swap-writing/reading code of swsusp. + + The interface documentation is included in the patch. + + The patch assumes that the major and minor numbers of the snapshot device will + be 10 (ie. misc device) and 231, the registration of which has already been + requested. + + Signed-off-by: Rafael J. Wysocki + Acked-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 543cc27d09643640cbc34189c03a40beb8227aef +Author: Pavel Machek +Date: Thu Mar 23 03:00:02 2006 -0800 + + [PATCH] swsusp: documentation updates + + Update suspend-to-RAM documentation with new machines, and makes message + when processes can't be stopped little clearer. (In one case, waiting + longer actually did help). + + From: "Rafael J. Wysocki" + + Warn in the documentation that data may be lost if there are some + filesystems mounted from USB devices before suspend. + + [Thanks to Alan Stern for providing the answer to the question in the + Q:-A: part.] + + Signed-off-by: Pavel Machek + Signed-off-by: Rafael J. Wysocki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 74c7e2efbe37378026f00ad9e7253796d7b2fc99 +Author: Randy Dunlap +Date: Thu Mar 23 03:00:01 2006 -0800 + + [PATCH] kernel/power: move externs to header files + + Move externs from C source files to header files. + + Signed-off-by: Randy Dunlap + Cc: "Rafael J. Wysocki" + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 61159a314bca6408320c3173c1282c64f5cdaa76 +Author: Rafael J. Wysocki +Date: Thu Mar 23 03:00:00 2006 -0800 + + [PATCH] swsusp: separate swap-writing/reading code + + Move the swap-writing/reading code of swsusp to a separate file. + + Signed-off-by: Rafael J. Wysocki + Acked-by: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f577eb30afdc68233f25d4d82b04102129262365 +Author: Rafael J. Wysocki +Date: Thu Mar 23 02:59:59 2006 -0800 + + [PATCH] swsusp: low level interface + + Introduce the low level interface that can be used for handling the + snapshot of the system memory by the in-kernel swap-writing/reading code of + swsusp and the userland interface code (to be introduced shortly). + + Also change the way in which swsusp records the allocated swap pages and, + consequently, simplifies the in-kernel swap-writing/reading code (this is + necessary for the userland interface too). To this end, it introduces two + helper functions in mm/swapfile.c, so that the swsusp code does not refer + directly to the swap internals. + + Signed-off-by: Rafael J. Wysocki + Acked-by: Pavel Machek + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2b322ce210aec74ae0d02938d3a01e29fe079469 +Author: Andrew Morton +Date: Thu Mar 23 02:59:58 2006 -0800 + + [PATCH] revert "swsusp: fix breakage with swap on lvm" + + This was a temporary thing for 2.6.16. + + Cc: "Rafael J. Wysocki" + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bdaff4a331db46f3bd953f413316c4603c4004b4 +Author: Ashok Raj +Date: Thu Mar 23 02:59:57 2006 -0800 + + [PATCH] x86 topology: don;t create a control file for BSP that cannot be removed + + Don't create "online" control file for BSP (i386/x86_64) since its + not removable. + + We originally added this to support ppc64 if the kernel has support but + BIOS indicated no offline support, we just didnt create online files for + them. + + We used the same method in ia64 as well, if we have a cpu taking platform + interrupts but cannot be removed if those interrupts cannot be re-targeted + to another cpu. + + Signed-off-by: Ashok Raj + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aeefc956d5d8f8402216a5447bd72ade9eb37eff +Author: Markus Gutschke +Date: Thu Mar 23 02:59:56 2006 -0800 + + [PATCH] x86: Make _syscallX() macros compile in PIC mode + + Gcc reserves %ebx when compiling position-independent-code on i386. This + means, the _syscallX() macros in include/asm-i386/unistd.h will not + compile. This patch is changes the existing macros to take special care to + preserve %ebx. + + The bug can be tracked at http://bugzilla.kernel.org/show_bug.cgi?id=6204 + + Signed-off-by: Markus Gutschke + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 905c399594f85322a4e513a4b0365b70d6de9fd0 +Author: Adrian Bunk +Date: Thu Mar 23 02:59:55 2006 -0800 + + [PATCH] x86: some fixups for the X86_NUMAQ dependencies + + You must always ensure to fulfill the dependencies of what you are + select'ing. + + Signed-off-by: Adrian Bunk + Cc: Martin Bligh + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 42c059e04d507802006911e316d86aa8ef75eb73 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:55 2006 -0800 + + [PATCH] i386 spinlocks: disable interrupts only if we enabled them + + _raw_spin_lock_flags() is entered with interrupts disabled. If it cannot + obtain a spinlock, it checks the flags that were passed and re-enables + interrupts before spinning if that's how the flags are set. When the + spinlock might be available, it disables interrupts (even if they are + already disabled) before trying to get the lock. Change that so interrupts + are only disabled if they have been enabled. This costs nine bytes of + duplicated spinloop code. + + Fastpath before patch: + jle not-taken conditional jump + cli disable interrupts + jmp unconditional jump + + Fastpath after patch, if interrupts were not enabled: + jg taken conditional branch + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c5c1e427b5e83807fd05419d1cf6991b9d87247 +Author: Shaohua Li +Date: Thu Mar 23 02:59:53 2006 -0800 + + [PATCH] x86: deterine xapic using apic version + + Checking APIC version instead of CPU family to determine XAPIC. Family 6 + CPU could have xapic as well. + + Signed-off-by: Shaohua Li + Cc: Dave Jones + Cc: "Seth, Rohit" + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f2d0d263b51d13efe55f0aae9254b69ba2855f1c +Author: Shaohua Li +Date: Thu Mar 23 02:59:52 2006 -0800 + + [PATCH] x86: cpuid.4 doesn't need cpu level 5 + + Detecting cache line using cpuid.4, cpuid level 4 is enough. + + Signed-off-by: Shaohua Li + Cc: Dave Jones + Cc: "Seth, Rohit" + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 75874d5cc8efef22457072e14103dc55f164e64e +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:52 2006 -0800 + + [PATCH] i386: fix dump_stack() + + i386 has a small bug in the stack dump code where it prints an extra log + level code. Remove that and fix the alignment of normal stack dump + printout. Also remove some unnecessary printk() calls. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4ef0652a74d9c460299b00566d033bd45d60da98 +Author: Jan Beulich +Date: Thu Mar 23 02:59:51 2006 -0800 + + [PATCH] i386: cleanup after cpu_gdt_descr conversion to per-cpu data + + With cpu_gdt_descr having been converted to per-CPU data, the old object + (in head.S) no longer needs to reserve space for each CPU's instance. With + cpu_gdt_table not being used for CPU 0 anymore, it doesn't seem to need + page alignment (or if in fact there is a need for it to retain that + alignment, the whole object should go into .data.page_align). + + Signed-off-by: Jan Beulich + Acked-by: Zachary Amsden + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 52f4a91afd9316fb4f0f3a77c5ff56b9c98632ea +Author: Jesper Juhl +Date: Thu Mar 23 02:59:50 2006 -0800 + + [PATCH] Fix the imlicit declaration of mtrr_centaur_report_mcr in arch/i386/kernel/cpu/centaur.c + + arch/i386/kernel/cpu/centaur.c: In function `centaur_mcr_insert': + arch/i386/kernel/cpu/centaur.c:33: warning: implicit declaration of function `mtrr_centaur_report_mcr' + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 382dbd07c9cb4f255c28f680996ad819a8ce9bfe +Author: Jesper Juhl +Date: Thu Mar 23 02:59:49 2006 -0800 + + [PATCH] fix implicit declaration of GET_APIC_ID in arch/i386/kernel/apic.c + + arch/i386/kernel/apic.c:840: warning: implicit declaration of function `GET_APIC_ID' + + Signed-off-by: Jesper Juhl + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit be0a39120cb6b88bd085a3a280f5c769a3ed85ad +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:48 2006 -0800 + + [PATCH] i386: more vsyscall documentation + + Document a limitation of vsyscall-sysenter, since patches to fix it have + been rejected. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 635cf99a80f4ebee59d70eb64bb85ce829e4591f +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:48 2006 -0800 + + [PATCH] i386: fix singlestep through an int80 syscall + + Using PTRACE_SINGLESTEP on a child that does an int80 syscall misses the + SIGTRAP that should be delivered upon syscall exit. Fix that by setting + TIF_SINGLESTEP when entering the kernel via int80 with TF set. + + /* Test whether singlestep through an int80 syscall works. + */ + #define _GNU_SOURCE + #include + #include + #include + #include + #include + #include + #include + + static int child, status; + static struct user_regs_struct regs; + + static void do_child() + { + ptrace(PTRACE_TRACEME, 0, 0, 0); + kill(getpid(), SIGUSR1); + asm ("int $0x80" : : "a" (20)); /* getpid */ + } + + static void do_parent() + { + unsigned long eip, expected = 0; + again: + waitpid(child, &status, 0); + if (WIFEXITED(status) || WIFSIGNALED(status)) + return; + + if (WIFSTOPPED(status)) { + ptrace(PTRACE_GETREGS, child, 0, ®s); + eip = regs.eip; + if (expected) + fprintf(stderr, "child stop @ %08x, expected %08x %s\n", + eip, expected, + eip == expected ? "" : " <== ERROR"); + + if (*(unsigned short *)eip == 0x80cd) { + fprintf(stderr, "int 0x80 at %08x\n", (unsigned int)eip); + expected = eip + 2; + } else + expected = 0; + + ptrace(PTRACE_SINGLESTEP, child, NULL, NULL); + } + goto again; + } + + int main(int argc, char * const argv[]) + { + child = fork(); + if (child) + do_parent(); + else + do_child(); + return 0; + } + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit db753bdfc24c31228996799d508ce3bf7cbe3b99 +Author: Jan Beulich +Date: Thu Mar 23 02:59:46 2006 -0800 + + [PATCH] i386: fix uses of user_mode() vs. user_mode_vm() + + >commit 76381fee7e8feb4c22be636aa5d4765dbe4fbf9e + >Author: Vincent Hanquez + >Date: Thu Jun 23 00:08:46 2005 -0700 + > + > [PATCH] xen: x86_64: use more usermode macro + > + > Make use of the user_mode macro where it's possible. This is useful for Xen + > because it will need only to redefine only the macro to a hypervisor call. + + I am of the opinion that the above changeset is incomplete, i.e. it missed + converting some previous uses of user_mode to user_mode_vm. While most of + them could be considered just cosmetical, at least the one in die_nmi + doesn't appear to be. + + Signed-off-by: Jan Beulich + Cc: Vincent Hanquez + Cc: Zachary Amsden + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 101f12af16fb12f8da8100899a13ee1b1b576a0a +Author: Jan Beulich +Date: Thu Mar 23 02:59:45 2006 -0800 + + [PATCH] i386: actively synchronize vmalloc area when registering certain callbacks + + Registering a callback handler through register_die_notifier() is obviously + primarily intended for use by modules. However, the way these currently + get called it is basically impossible for them to actually be used by + modules, as there is, on non-PAE configurationes, a good chance (the larger + the module, the better) for the system to crash as a result. + + This is because the callback gets invoked + + (a) in the page fault path before the top level page table propagation + gets carried out (hence a fault to propagate the top level page table + entry/entries mapping to module's code/data would nest infinitly) and + + (b) in the NMI path, where nested faults must absolutely not happen, + since otherwise the IRET from the nested fault re-enables NMIs, + potentially resulting in nested NMI occurences. + + Besides the modular aspect, similar problems would even arise for in- + kernel consumers of the API if they touched ioremap()ed or vmalloc()ed + memory inside their handlers. + + Signed-off-by: Jan Beulich + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 44fd22992cb76dc51c52cf4b8aff1bc7899bb23c +Author: Stas Sergeev +Date: Thu Mar 23 02:59:44 2006 -0800 + + [PATCH] Register the boot-cpu in the cpu maps earlier + + Register the boot-cpu in the cpu maps earlier to allow the early printk to + work, and to fix an obscure deadlock at boot. + + Signed-off-by: Stas Sergeev + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ffa930ef55ae82c09e30b2a0c4ce5d7fdea041e2 +Author: Andrew Morton +Date: Thu Mar 23 02:59:43 2006 -0800 + + [PATCH] x86: early_printk(): remove MAX_YPOS and MAX_XPOS macros + + Expand out these fairly pointless macros. + + Cc: Chuck Ebbert <76306.1226@compuserve.com> + Cc: Stas Sergeev + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 98e7d9b0529b6a348f2978a926806930a9902067 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:42 2006 -0800 + + [PATCH] x86: start early_printk at sensible screen row + + Use boot info to start early_printk() at the current row on VGA console, as + left by the boot loader. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Cc: Stas Sergeev + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 99b7de33477882b86d54ce8ecbf90147f9d106d7 +Author: Stas Sergeev +Date: Thu Mar 23 02:59:41 2006 -0800 + + [PATCH] x86: early printk handling fixes + + The history is that -mm kernels do not work for me for a few months + already. The things started from crashing somewhere after starting init, + and for the last month - no boot at all, just "Uncompressing... OK, + booting kernel", and silence. Early console didn't work too. With the + latest releases this degraded into an infinite stream of the "Unknown + interrupt or fault" messages. So today my patience ran out and I started + to think how can I collect at least some info for the bug-report. Attached + is the patch that allows to gather some valueable debug info on the problem + by making an early console more useable. I can't properly test the patch, + as the kernel still doesn't boot, so I'll explain it in details in a hope + someone else can justify the intrusive changes. + + arch_hooks.h: added prototypes for setup_early_printk() and early_printk(). + + setup.c: killed wrong setup_early_printk() prototype. Moved + setup_early_printk() a bit earlier, as it was not "early enough" to cover + the bug I was fighting with. + + early_printk.c: made it to start printing from the bottom of the screen, + otherwise the messages interfere with the ones of the boot-loader, so you + can't read them. + + Signed-off-by: Stas Sergeev + Cc: Andi Kleen + Cc: Zwane Mwaikambo + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8bed51cd17464433a0c77afc8a5150e51d3da37d +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:40 2006 -0800 + + [PATCH] i386: let signal handlers set the resume flag + + Allow signal handlers to set the RF bit in EFLAGS. This lets a simple + debugger using SIGTRAP skip one instruction after returning from a signal. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3c36c6aa4aa1b3483c6a0370028608367426f58e +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:39 2006 -0800 + + [PATCH] i386: Don't let ptrace set the nested task bit + + There's no good reason for allowing ptrace to set the NT bit in EFLAGS, so + mask it off. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cc04ee9cc527e314e6906849ee931c33764f861e +Author: Jean Delvare +Date: Thu Mar 23 02:59:38 2006 -0800 + + [PATCH] i386 traps: merge printk calls + + Merge a few printk calls in i386 traps. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c63ee5cf7d210b51c2a8243e29988edec2646ed +Author: Chris Wright +Date: Thu Mar 23 02:59:37 2006 -0800 + + [PATCH] i386: remove duplicate declaration of mp_bus_id_to_pci_bus + + mp_bus_id_to_pci_bus is declared identically twice. + + Signed-off-by: Chris Wright + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e5428ede94179ddccaa56308e0f194fa299edbb4 +Author: Natalie.Protasevich@unisys.com +Date: Thu Mar 23 02:59:36 2006 -0800 + + [PATCH] Compilation fix for ES7000 when no ACPI is specified in config (i386) + + ES7000 platform code clean up for compilation errors and a warning. + Ifdef'd the ACPI related parts in the ES7000 platform code. They were + causing compile errors in certain configuration (without ACPI defined). I + think this approach would be best (as opposed to Kconfig changes) since it + only touches the subarch... + + Signed-off-by: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 54a20f8c5d778ed3603130de4b92f64405228611 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:36 2006 -0800 + + [PATCH] i386: fall back to sensible CPU model name + + When vendor-specific i386 initialization code is unavailable the kernel + falls back to a default CPU model name. Make that model name reflect the + CPU family instead of an internal vendor index. + + Tested on Pentium II (family 6 model 5). + + /proc/cpuinfo before: + model name : ff/05 + + after: + model name : 06/05 + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Acked-by: "Seth, Rohit" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 30e931d4092713cecd6b8c2fd70f268efaa6e428 +Author: Eric W. Biederman +Date: Thu Mar 23 02:59:35 2006 -0800 + + [PATCH] i386: Add a temporary to make put_user more type safe + + In some code I am developing I had occasion to change the type of a + variable. This made the value put_user was putting to user space wrong. + But the code continued to build cleanly without errors. + + Introducing a temporary fixes this problem and at least with gcc-3.3.5 does + not cause gcc any problems with optimizing out the temporary. gcc-4.x + using SSA internally ought to be even better at optimizing out temporaries, + so I don't expect a temporary to become a problem. Especially because in + all correct cases the types on both sides of the assignment to the + temporary are the same. + + Signed-off-by: Eric W. Biederman + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4f88651125e2ca8b106b6f65b65ea45776517bf3 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:34 2006 -0800 + + [PATCH] i386: allow disabling X86_FEATURE_SEP at boot + + Allow the x86 "sep" feature to be disabled at bootup. This forces use of the + int80 vsyscall. Mainly for testing or benchmarking the int80 vsyscall code. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3bc9b76bede9b3c72088258c7e72eb823f3351d4 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:33 2006 -0800 + + [PATCH] i386: __devinit should be __cpuinit + + Several places in arch/i386/kernel/cpu and kernel/cpu were using __devinit + when they should have been __cpuinit. Fixing that saves ~4K when + CONFIG_HOTPLUG && !CONFIG_HOTPLUG_CPU. + + Noticed by Andrew Morton. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9a0b5817ad97bb718ab85322759d19a238712b47 +Author: Gerd Hoffmann +Date: Thu Mar 23 02:59:32 2006 -0800 + + [PATCH] x86: SMP alternatives + + Implement SMP alternatives, i.e. switching at runtime between different + code versions for UP and SMP. The code can patch both SMP->UP and UP->SMP. + The UP->SMP case is useful for CPU hotplug. + + With CONFIG_CPU_HOTPLUG enabled the code switches to UP at boot time and + when the number of CPUs goes down to 1, and switches to SMP when the number + of CPUs goes up to 2. + + Without CONFIG_CPU_HOTPLUG or on non-SMP-capable systems the code is + patched once at boot time (if needed) and the tables are released + afterwards. + + The changes in detail: + + * The current alternatives bits are moved to a separate file, + the SMP alternatives code is added there. + + * The patch adds some new elf sections to the kernel: + .smp_altinstructions + like .altinstructions, also contains a list + of alt_instr structs. + .smp_altinstr_replacement + like .altinstr_replacement, but also has some space to + save original instruction before replaving it. + .smp_locks + list of pointers to lock prefixes which can be nop'ed + out on UP. + The first two are used to replace more complex instruction + sequences such as spinlocks and semaphores. It would be possible + to deal with the lock prefixes with that as well, but by handling + them as special case the table sizes become much smaller. + + * The sections are page-aligned and padded up to page size, so they + can be free if they are not needed. + + * Splitted the code to release init pages to a separate function and + use it to release the elf sections if they are unused. + + Signed-off-by: Gerd Hoffmann + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4d7d8c82c181711d28c8336108330a9121f5ef07 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Thu Mar 23 02:59:30 2006 -0800 + + [PATCH] i386: multi-column stack backtraces + + Print stack backtraces in multiple columns, saving screen space. Number of + columns is configurable and defaults to one so behavior is + backwards-compatible. + + Also removes the brackets around addresses when printing more + that one entry per line so they print as: +
+ instead of: + [
] + This helps multiple entries fit better on one line. + + Original idea by Dave Jones, taken from x86_64. + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b824eb605ccba995fd32c6590aed365f93d48002 +Author: Ingo Molnar +Date: Thu Mar 23 02:59:29 2006 -0800 + + [PATCH] Make CONFIG_REGPARM enabled by default + + Make CONFIG_REGPARM enabled by default. It's a noticable win both for size + and for performance, and gcc[34] handles it correctly. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 69ef4141e03fab1c6956d3c760584c72b548a26f +Author: Adrian Bunk +Date: Thu Mar 23 02:59:28 2006 -0800 + + [PATCH] i386: let REGPARM no longer depend on EXPERIMENTAL + + REGPARM has already gotten much testing, what about removing the + dependency on EXPERIMENTAL? + + Additionally, this patch does: + - remove the useless "default n" + - remove note regarding binary only modules (nowadays, there are even + some binary only modules compiled with REGPARM=y available) + + Signed-off-by: Adrian Bunk + Cc: Sam Ravnborg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6bb08da4773f584a7b4a838b6b770d7d18033af7 +Author: Davi Arnaut +Date: Thu Mar 23 02:59:25 2006 -0800 + + [PATCH] Bug fixes and cleanup for the BSD Secure Levels LSM + + This patch address several issues in the current BSD Secure Levels code: + + o plaintext_to_sha1: Missing check for a NULL return from __get_free_page + + o passwd_write_file: A page is leaked if the password is wrong. + + o fix securityfs registration order + + o seclvl_init is a mess and can't properly tolerate failures, failure + path is upside down (deldif and delf should be switched) + + Cleanups: + + o plaintext_to_sha1: Use buffers passed in + o passwd_write_file: Use kmalloc() instead of get_zeroed_page() + o passwd_write_file: hashedPassword comparison is just memcmp + o s/ENOSYS/EINVAL/ + o misc + + (akpm: after some discussion it appears that the BSD secure levels feature + should be scheduled for removal. But for now, let's fix these problems up). + + Signed-off-by: Davi Arnaut + Cc: Michael Halcrow + Cc: Chris Wright + Cc: Stephen Smalley + Cc: James Morris + Cc: Serge Hallyn + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 61808c2bbba127ecd9786401c55ea4c394aa0240 +Author: Patrick McHardy +Date: Thu Mar 23 02:59:24 2006 -0800 + + [PATCH] cciss: fix use-after-free in cciss_init_one + + free_hba() sets hba[i] to NULL, the dereference afterwards results in this + crash. Setting busy_initializing to 0 actually looks unnecessary, but I'm + not entirely sure, which is why I left it in. + + cciss: controller appears to be disabled + Unable to handle kernel NULL pointer dereference at virtual address 00000370 + printing eip: + c1114d53 + *pde = 00000000 + Oops: 0002 [#1] + Modules linked in: + CPU: 0 + EIP: 0060:[] Not tainted VLI + EFLAGS: 00010286 (2.6.16 #1) + EIP is at cciss_init_one+0x4e9/0x4fe + eax: 00000000 ebx: c132cd60 ecx: c13154e4 edx: c27d3c00 + esi: 00000000 edi: c2748800 ebp: c2536ee4 esp: c2536eb8 + ds: 007b es: 007b ss: 0068 + Process swapper (pid: 1, threadinfo=c2536000 task=c2535a30) + Stack: <0>00000000 00000000 00000000 c13fdba0 c2536ee8 c13159c0 c2536f38 + f7c74740 + c132cd60 c132cd60 ffffffed c2536ef0 c10c1d51 c2748800 c2536f04 + c10c1d85 + c132cd60 c2748800 c132cd8c c2536f14 c10c1db8 c2748848 00000000 + c2536f28 + Call Trace: + [] show_stack_log_lvl+0xa8/0xb0 + [] show_registers+0x102/0x16a + [] die+0xc1/0x13c + [] do_page_fault+0x38a/0x525 + [] error_code+0x4f/0x54 + [] pci_call_probe+0xd/0x10 + [] __pci_device_probe+0x31/0x43 + [] pci_device_probe+0x21/0x34 + [] driver_probe_device+0x44/0x99 + [] __driver_attach+0x39/0x5d + [] bus_for_each_dev+0x35/0x5a + [] driver_attach+0x14/0x16 + [] bus_add_driver+0x5c/0x8f + [] driver_register+0x73/0x78 + [] __pci_register_driver+0x5f/0x71 + [] cciss_init+0x1a/0x1c + [] do_initcalls+0x4c/0x96 + [] do_basic_setup+0x1c/0x1e + [] init+0x35/0x118 + [] kernel_thread_helper+0x5/0xb + Code: 04 b5 e0 de 40 c1 8d 50 04 8b 40 34 e8 3f b7 f9 ff 8b 04 b5 e0 de + 40 c1 e8 aa f3 ff ff 89 f0 e8 e8 fa ff ff 8b 04 b5 e0 de 40 c1 80 + 70 03 00 00 00 00 00 00 83 c8 ff 8d 65 f4 5b 5e 5f 5d c3 + <0>Kernel panic - not syncing: Attempted to kill init! + + Signed-off-by: Patrick McHardy + Cc: + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9e71f9c848e669f003b1319da52f03cb8e7d7403 +Author: NeilBrown +Date: Thu Mar 23 02:59:22 2006 -0800 + + [PATCH] DM: Fix bug: BIO_RW_BARRIER requests to md/raid1 hang. + + Both R1BIO_Barrier and R1BIO_Returned are 4 !!!! + + This means that barrier requests don't get returned (i.e. b_endio called) + because it looks like they already have been. + + Signed-off-by: Neil Brown + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit e9028b0ff2bad1954568604dc17725692c8524d6 +Author: Anton Blanchard +Date: Thu Mar 23 02:59:20 2006 -0800 + + [PATCH] fix scheduler deadlock + + We have noticed lockups during boot when stress testing kexec on ppc64. + Two cpus would deadlock in scheduler code trying to grab already taken + spinlocks. + + The double_rq_lock code uses the address of the runqueue to order the + taking of multiple locks. This address is a per cpu variable: + + if (rq1 < rq2) { + spin_lock(&rq1->lock); + spin_lock(&rq2->lock); + } else { + spin_lock(&rq2->lock); + spin_lock(&rq1->lock); + } + + On the other hand, the code in wake_sleeping_dependent uses the cpu id + order to grab locks: + + for_each_cpu_mask(i, sibling_map) + spin_lock(&cpu_rq(i)->lock); + + This means we rely on the address of per cpu data increasing as cpu ids + increase. While this will be true for the generic percpu implementation it + may not be true for arch specific implementations. + + One way to solve this is to always take runqueues in cpu id order. To do + this we add a cpu variable to the runqueue and check it in the + double runqueue locking functions. + + Signed-off-by: Anton Blanchard + Acked-by: Ingo Molnar + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5be0e9511990dc307670dc66a42073db96b20f26 +Author: Neil Horman +Date: Thu Mar 23 02:59:19 2006 -0800 + + [PATCH] proc: fix duplicate line in /proc/devices + + Fix a duplicate block device line printed after the "Block device" header + in /proc/devices. + + Signed-off-by: Neil Horman + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 949763b2b8822c6dc6da0d0e1d4af092152546c2 +Author: Anton Altaparmakov +Date: Thu Mar 23 15:34:13 2006 +0000 + + NTFS: Fix comparison of $MFT and $MFTMirr to not bail out when there are + unused, invalid mft records which are the same in both $MFT and + $MFTMirr. + + Signed-off-by: Anton Altaparmakov + +commit fcab1e51796d8bcd1a7969ff52bd904d38748e00 +Author: Nick Piggin +Date: Thu Mar 23 07:48:16 2006 +0100 + + [PATCH] sparc64: fix set_page_count merge clash + + Merge clash will have broken sparc64. Synch up its online_page + implementation with powerpc, which was identical until the + set_page_count removal. + + Signed-off-by: Nick Piggin + Signed-off-by: Linus Torvalds + +commit 78264bd9c239237fe356c32d08abf8e52a2d8737 +Author: Anton Altaparmakov +Date: Thu Mar 23 15:06:18 2006 +0000 + + NTFS: Use buffer_migrate_page() for the ->migratepage function of all ntfs + address space operations. + + Signed-off-by: Anton Altaparmakov + +commit 3ccc7384db3d762e834dfdae13c1d6434b2fdeab +Author: Anton Altaparmakov +Date: Thu Mar 23 15:03:11 2006 +0000 + + NTFS: Fix a buggette in an "should be impossible" case handling where we + continued the attribute lookup loop instead of aborting it. + + Signed-off-by: Anton Altaparmakov + +commit 67b1dfe77a2eb2a88b37cd77b8979cbdb7695bd6 +Author: Anton Altaparmakov +Date: Thu Mar 23 14:57:43 2006 +0000 + + NTFS: Fix an (innocent) off-by-one error in the runlist code. + + Signed-off-by: Anton Altaparmakov + +commit 9aa45e34d2948f360f8c0e63d10f49015ca51edd +Author: Jean Delvare +Date: Wed Mar 22 03:48:35 2006 -0300 + + V4L/DVB (3568k): zoran: Use i2c_master_send when possible + + Change all the Zoran (ZR36050/ZR36060) drivers to use i2c_master_send instead + of i2c_transfer when possible. This simplifies the code by a few lines in + each driver. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 5a313c59bcc5062fc56088d5ff9289828c4b6626 +Author: Jean Delvare +Date: Wed Mar 22 03:48:34 2006 -0300 + + V4L/DVB (3568j): adv7175: Drop unused encoder dump command + + Drop support for the ENCODER_DUMP command in the adv7175 driver. ENCODER_DUMP + was never actually defined as far as I can see, so the code was ifdef'd out, + and I suspect it was never used, not even once, as it includes an obvious + array overrun. + + The register values of this specific chip can be dumped in a generic way using + the i2c-dev driver and the "i2cdump" user-space tool if it is ever really + needed. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 2467a670ee24631b05e91971286730e71f6a6af0 +Author: Jean Delvare +Date: Wed Mar 22 03:48:34 2006 -0300 + + V4L/DVB (3568i): adv7175: Drop unused register cache + + Drop the adv7175 register cache, as it is only written to and never read back + from. This saves 128 bytes of memory and slightly speeds up the register + writes. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 2f8de1a10697efe7bee08e51b587208706b44e97 +Author: Randy Dunlap +Date: Tue Mar 21 14:53:22 2006 -0300 + + V4L/DVB (3568h): cpia: correct email address + + Correct email address typo (erdfeld -> erdfelt). + + Signed-off-by: Randy Dunlap + Signed-off-by: Mauro Carvalho Chehab + +commit 384c36893f94e0e2145832cf2f20684ae372aee5 +Author: Ingo Molnar +Date: Wed Mar 22 03:54:16 2006 -0300 + + V4L/DVB (3568g): sem2mutex: zoran + + Semaphore to mutexes conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 6201573cc9bfe1e0bdec229bed8e95b0dc88a587 +Author: Jean Delvare +Date: Wed Mar 22 03:48:30 2006 -0300 + + V4L/DVB (3568f): saa7110: Fix array overrun + + Fix a (probably harmless) array overrun in the DECODER_DUMP command of the + saa7110 driver. No big deal as this command is not used anywhere anyway. + Also reformat the dump so that it displays nicely. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit f49a5eaea6d7b3ed3d01ca9388eac9e7e5bf6025 +Author: Jean Delvare +Date: Wed Mar 22 03:48:36 2006 -0300 + + V4L/DVB (3568e): bt856: Spare memory + + The bt856 driver has a register cache much larger than needed. We really only + write to 3 registers, so a 32-byte cache is a bit too much. We can be just as + efficient with a 6-byte cache. We could even do with a 3-byte cache, but at + the cost of additional arithmetics arguably not worth the spared 3 bytes. + + Also, 4 of the 6 other members of the bt856 data structure were not used + anywhere, so we can as well drop them for an additional 16 bytes of memory + spared. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 58a0b84c92e62c2cc42036259a4b51e0bcaf8fa5 +Author: Martin Samuelsson +Date: Wed Mar 22 03:48:38 2006 -0300 + + V4L/DVB (3568d): saa7111.c fix + + When grabbing composite video with Iomega Buz, the stock driver will + prevent grabbing from the same input twice in a row, forcing the user to + switch inputs before anything useful can be grabbed again. It is caused by + some optimization code in the input selection parts, and triggered by the + saa7111_command() executing cmd 0. The attached patch will remedy this by + disabling cmd 0 altogether; a fix that has no found negative effects on the + rest of the code. In fact, saa7110.c does the exact same thing. + + Acked-by: Ronald S. Bultje + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit daf72f408c66aee4ac939f614293a78841aa7717 +Author: Jean Delvare +Date: Wed Mar 22 03:48:37 2006 -0300 + + V4L/DVB (3568c): zoran: Init cleanups + + Cleanups to the zr36057 initialization: + * Drop intermediate local variables. + * Single error path. + Also drop a needless cast on kfree. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 6eb5d9ca9f1496108cb86f2d9bfc2db5d9c796fe +Author: Jean Delvare +Date: Wed Mar 22 03:48:32 2006 -0300 + + V4L/DVB (3568b): saa7111: Prevent array overrun + + Explicitely state the number of registers the SAA7111 has, and use that + defined value where relevant. This should prevent any future array overrun + like the one I just fixed in the saa7110 driver. + + This patch also saves 8 bytes of memory as a side effect, as the register + cache was larger than needed. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 6254312352dfd1c996245cb3bc74be901dc165cc +Author: Jean Delvare +Date: Wed Mar 22 03:48:33 2006 -0300 + + V4L/DVB (3568a): saa7114: Fix i2c block write + + Fix the i2c block write mode of the saa7114 driver. A previous code change + accidentally commented out a local variable increment, which should have been + kept, causing the register writes over the I2C bus to never be batched, + replacing any attempted block write by slower, individual write transactions. + + Also drop the commented out code, as it only adds to confusion. + + Signed-off-by: Jean Delvare + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 7d420896256a4bffe44202f282fbdd4c74d779a8 +Author: Lennert Buytenhek +Date: Thu Mar 23 12:59:08 2006 +0000 + + [ARM] 3391/1: use PLAT8250_DEV_PLATFORM{,1} for platform device id instead of 0/1 + + Patch from Lennert Buytenhek + + This patch changes iop3xx and omap2 and to use PLAT8250_DEV_PLATFORM{,1} + as platform device id instead of just hardcoding 0/1 directly. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 711e2c33ac9221a419a9e28d05dd78a6a9c5fd4d +Author: Jean Tourrilhes +Date: Wed Feb 22 15:10:56 2006 -0800 + + [PATCH] WE-20 for kernel 2.6.16 + + This is version 20 of the Wireless Extensions. This is the + completion of the RtNetlink work I started early 2004, it enables the + full Wireless Extension API over RtNetlink. + + Few comments on the patch : + o totally driver transparent, no change in drivers needed. + o iwevent were already RtNetlink based since they were created + (around 2.5.7). This adds all the regular SET and GET requests over + RtNetlink, using the exact same mechanism and data format as iwevents. + o This is a Kconfig option, as currently most people have no + need for it. Surprisingly, patch is actually small and well + encapsulated. + o Tested on SMP, attention as been paid to make it 64 bits clean. + o Code do probably too many checks and could be further + optimised, but better safe than sorry. + o RtNetlink based version of the Wireless Tools available on + my web page for people inclined to try out this stuff. + + I would also like to thank Alexey Kuznetsov for his helpful + suggestions to make this patch better. + + Signed-off-by: Jean Tourrilhes + Signed-off-by: John W. Linville + +commit 9a107aa24a1dbc05d58a4fdd2c4d2861f8bd5ae6 +Author: John W. Linville +Date: Wed Mar 22 17:29:32 2006 -0500 + + [PATCH] softmac: remove function_enter() + + Remove the function_enter() debugging macros. + + Signed-off-by: John W. Linville + +commit 95381c893dd71a534ab56f09b12a4e2118aa0f32 +Author: David S. Miller +Date: Thu Mar 23 01:29:06 2006 -0800 + + [TG3]: Update driver version and reldate. + + Signed-off-by: David S. Miller + +commit d3c7b886978bef42f5ea487dec376c482d3cd7e3 +Author: Michael Chan +Date: Thu Mar 23 01:28:25 2006 -0800 + + [TG3]: Add 5755 nvram support + + Add 5755 nvram support. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit af36e6b6d7f4ad7a5ccfd14dfa71ec941255f93d +Author: Michael Chan +Date: Thu Mar 23 01:28:06 2006 -0800 + + [TG3]: Add 5755 support + + Add support for new chip 5755 which is very similar to 5787. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit b30bd282cbf5c46247a279a2e8d2aae027d9f1bf +Author: Patrick McHardy +Date: Thu Mar 23 01:17:25 2006 -0800 + + [IPV6]: ip6_xmit: remove unnecessary NULL ptr check + + The sk argument to ip6_xmit is never NULL nowadays since the skb->priority + assigment expects a valid socket. + + Coverity #354 + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 1ae39a430b692552e5aceb63fa35ce95fcbadc6a +Author: Patrick McHardy +Date: Thu Mar 23 01:16:48 2006 -0800 + + [NET_SCHED]: cls_u32: remove unnecessary NULL-ptr check + + In both cases n can't be NULL without crashing anyway. + + Coverity #78 + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a5cdc030030ef5a16e48aebeb65067bdc3120899 +Author: Patrick McHardy +Date: Thu Mar 23 01:16:06 2006 -0800 + + [IPV4]: Add fib rule netlink notifications + + To really make sense of route notifications in the presence of + multiple tables, userspace also needs to be notified about routing + rule updates. Notifications are sent to the so far unused + RTNLGRP_NOP1 (now RTNLGRP_RULE) group. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 5e2e71141ca93a3e2543966ced6a6077d4fb8fd8 +Author: Michael Chan +Date: Thu Mar 23 01:14:09 2006 -0800 + + [BNX2]: Update version and reldate + + Update version to 1.4.39. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 29b12174ac14f110225d6d9ebb66c30df5023baf +Author: Michael Chan +Date: Thu Mar 23 01:13:43 2006 -0800 + + [BNX2]: Separate tx producer and consumer fields + + Put the tx producer and consumer fields in separate cache lines in + the device structure, similar to the VJ net channel queue structure. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit f2a4f05216e95f3b8c06b858abc0fe9a77500816 +Author: Michael Chan +Date: Thu Mar 23 01:13:12 2006 -0800 + + [BNX2]: Move .h files to bnx2.c + + Move all #include <> from bnx2.h to bnx2.c. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 0f31f99446270e66c6f18c7d87aadd7db1dad214 +Author: Michael Chan +Date: Thu Mar 23 01:12:38 2006 -0800 + + [BNX2]: Combine small mem allocations + + Combine two small (56 byte and 320 byte) pci consistent memory + allocations into one allocation. Jeff Garzik suggested to store + the combined size in the bp structure for later use when freeing + the memory. + + Use kzalloc() instead of kmalloc() + memset(). + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit bf5295bba804a6aead9bc1c0d5970173a9d4e08e +Author: Michael Chan +Date: Thu Mar 23 01:11:56 2006 -0800 + + [BNX2]: Fix link change handling + + Fix some link-related problems by doing a coalesce_now after link + change interrupt to flush out the transient link status. + + To facilitate this, the host coalesce cmd register value is cached in + the device structure. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit ca6549af77f0f28ac5d23b662fb8f72713eb16d3 +Author: Steven Whitehouse +Date: Thu Mar 23 01:10:26 2006 -0800 + + [PKTGEN]: Add MPLS extension. + + Signed-off-by: Steven Whitehouse + Signed-off-by: Robert Olsson + Signed-off-by: David S. Miller + +commit 2cc432eed0491df66e14b578139bba2c75fb3f9a +Author: Jeff Garzik +Date: Thu Mar 23 00:32:03 2006 -0500 + + [libata] Move some bmdma-specific code to libata-bmdma.c + + No code changes, just moving code between files. + +commit 50106c5a0366c9e02bf872e85c672732aa517fb4 +Author: Jeff Garzik +Date: Thu Mar 23 00:14:36 2006 -0500 + + [libata sata_uli] kill scr_addr abuse + + sata_uli was storing PCI config addresses in a variable intended for + port addresses, a variable soon to become void __iomem *. + + Update the driver to store the SCR address, found in PCI config space, + in the driver-private data area. + +commit 02cbd926e9acdc03574d26803050cd2664f59ada +Author: Jeff Garzik +Date: Wed Mar 22 23:59:46 2006 -0500 + + [libata sata_nv] eliminate duplicate codepaths with iomap + + eliminate a bunch of + if (mmio) + writel() + else + outl() + + code with the pci_iomap() and io{read,write}{8,16,32}() interface. + +commit 10ad05df14fb5b6ac1fcdaa312a9c13e77627a97 +Author: Jeff Garzik +Date: Wed Mar 22 23:50:50 2006 -0500 + + [libata sata_nv] cleanups: convert #defines to enums; remove in-file history + +commit 142877b07fe1ef1816513b20f65a51c6ffcadb8b +Author: Jeff Garzik +Date: Wed Mar 22 23:30:34 2006 -0500 + + [libata sata_sil24] cleanups: use pci_iomap(), kzalloc() + + * libata will soon move to iomap, so we should use + pci_iomap() and pci_iounmap(). + * Use kzalloc() where appropriate. + +commit b88a0b1d5560cf1959c1565617e460a45c688a08 +Author: Kim Phillips +Date: Wed Mar 22 14:39:03 2006 -0600 + + [PATCH] powerpc: Add FSL SEC node to documentation + + Documentation: Added FSL SOC SEC node definition + + Updated the documentation to include the definition of the SEC device + node format for Freescale SOC devices. + + Signed-off-by: Kim Phillips + Signed-off-by: Paul Mackerras + +commit d56a3e380085bf45cc2adba80c4e6490ba644231 +Author: Bjorn Helgaas +Date: Tue Mar 21 23:20:28 2006 -0800 + + [PATCH] macintosh: tidy-up driver_register() return values + + Remove the assumption that driver_register() returns the number of devices + bound to the driver. In fact, it returns zero for success or a negative + error value. + + All callers of macio_register_driver() either ignore the return value or + return it as the return value of a module_init() function. + + Signed-off-by: Bjorn Helgaas + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 6ea671a12f66b9d4d0f35fce957a71a6849295f2 +Author: Bjorn Helgaas +Date: Tue Mar 21 23:20:27 2006 -0800 + + [PATCH] powerpc: tidy-up of_register_driver()/driver_register() return values + + Remove the assumption that driver_register() returns the number of devices + bound to the driver. In fact, it returns zero for success or a negative + error value. + + Nobody uses the return value of of_register_driver() anyway. + + Signed-off-by: Bjorn Helgaas + Acked-by: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 57ae595f6bf8bde42de199ff9fe68b873080fde2 +Author: Andrew Morton +Date: Tue Mar 21 23:20:27 2006 -0800 + + [PATCH] powerpc: via-pmu warning fix + + drivers/macintosh/via-pmu.c:164: warning: `sleep_in_progress' defined but not used + + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 3e52174ec8fd9d8671b69b8e7decb465aaf519c0 +Author: Jean Delvare +Date: Tue Mar 21 23:20:26 2006 -0800 + + [PATCH] macintosh: cleanup the use of i2c headers + + Cleanup the use of i2c headers in macintosh drivers. + + Signed-off-by: Jean Delvare + Signed-off-by: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 8ac4fc53fef6b4ff942a66be1b503b24d32bcf83 +Author: Anton Blanchard +Date: Tue Mar 21 23:00:06 2006 -0800 + + [PATCH] powerpc: dont allow old RTC to be selected + + Now powerpc uses the generic RTC stuff we should not enable the old RTC. + Doing so will result in hangs at boot. + + Signed-off-by: Anton Blanchard + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 3bea63136fd9b1398de77f76b7b9e3b28249ecca +Author: Olaf Hering +Date: Tue Mar 21 23:00:05 2006 -0800 + + [PATCH] powerpc: make powerbook_sleep_grackle static + + powerbook_sleep_grackle is only called inside via-pmu, from pmu_ioctl() + + Signed-off-by: Olaf Hering + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit 2d0eee14b23f20c501a6c2536edf68f93c56edcd +Author: Andrew Morton +Date: Tue Mar 21 23:00:05 2006 -0800 + + [PATCH] powerpc: Fix warning in add_memory + + arch/powerpc/mm/mem.c: In function `add_memory': + arch/powerpc/mm/mem.c:128: warning: assignment makes integer from pointer without a cast + + Cc: Benjamin Herrenschmidt + Signed-off-by: Andrew Morton + Signed-off-by: Paul Mackerras + +commit fe0b06b123762ab620b5bee3dab1576ddddd0a7f +Author: Larry Finger +Date: Tue Feb 7 15:20:52 2006 -0600 + + [PATCH] Fix softmac scan + + Softmac scanning fails because the stop flag is not cleared before + scanning is started. The attached one-line patch fixes this. + + Signed-Off-By: Larry Finger + Signed-off-by: John W. Linville + +commit 1196862b7926d5312c7f8e8eaecba658b6553ba0 +Author: Johannes Berg +Date: Tue Jan 31 20:28:58 2006 +0100 + + [PATCH] softmac: remove dead code + + This patch removes ieee80211softmac_reassoc which is neither implemented + nor used nor necessary. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit b6c7658ef8888e82608265d8098d09807997f771 +Author: Johannes Berg +Date: Tue Jan 31 19:49:42 2006 +0100 + + [PATCH] softmac: add reassociation code + + This patch adds handling of reassociation to softmac when the AP + requests it. Patch from Larry Finger. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit b10c991fa4cf0f1353228e04671aa793b4b3cf1d +Author: Johannes Berg +Date: Tue Jan 31 19:48:06 2006 +0100 + + [PATCH] softmac: update deauth handler to quiet warning + + Recently the deauth packet handler was updated to use a deauth packet + struct (identical to the auth packet struct) and this now gives a + warning. This patch updates the code to properly use a deauth struct and + deauth variable. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit f484d582d3e66ad78dcce2465c9ec479bacc1075 +Author: Johannes Berg +Date: Tue Jan 31 19:35:14 2006 +0100 + + [PATCH] trivial fixes to softmac + + This patch removes a blank line that shouldn't be there and fixes a + spelling error in softmac. + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit 7985905106a64d6ca32bd87fd6b52c588f03f5c6 +Author: Johannes Berg +Date: Tue Jan 31 19:31:41 2006 +0100 + + [PATCH] update copyright in softmac + + This patch updates the copyright statements in softmac that I + erroneously added for 2005 only (when we already had 2006). + + Signed-off-by: Johannes Berg + Signed-off-by: John W. Linville + +commit 1a995b45a52871af42aa1111da4c74c4b85e09c5 +Author: Denis Vlasenko +Date: Tue Jan 24 16:57:11 2006 +0200 + + [PATCH] ieee80211_rx_any: filter out packets, call ieee80211_rx or ieee80211_rx_mgt + + Version 2 of the patch. Added checks for version 0 + and proper from/to DS bits. Even in promisc + mode we won't receive packets from another BSSes. + + bcm43xx_rx() contains code to filter out packets from + foreign BSSes and decide whether to call ieee80211_rx + or ieee80211_rx_mgt. This is not bcm specific. + + Patch adapts that code and adds it to 80211 + as ieee80211_rx_any() function. + + Signed-off-by: Denis Vlasenko + Signed-off-by: John W. Linville + +commit 4c718cfd7df4ac34ca8a4add555c374de61c42e8 +Author: Johannes Berg +Date: Thu Jan 12 21:19:48 2006 +0100 + + [PATCH] softmac: move EXPORT_SYMBOL_GPL right after functions + + Signed-off-by: John W. Linville + +commit 9ebdd466813c2dde19417a00e22bd46546e27165 +Author: Johannes Berg +Date: Thu Jan 12 21:18:25 2006 +0100 + + [PATCH] softmac: add MODULE_DESCRIPTION and MODULE_AUTHORs + + Signed-off-by: John W. Linville + +commit 4855d25b1ef9d74aeb29c2e46f0d6a289922eab6 +Author: Johannes Berg +Date: Thu Jan 12 21:12:59 2006 +0100 + + [PATCH] softmac: add copyright and license headers + + add copyright and license headers to all softmac files + + Signed-off-by: John W. Linville + +commit b2b9b6518eac7b4e9abf649ef4273c02f1a5276b +Author: Johannes Berg +Date: Wed Jan 11 19:32:02 2006 +0100 + + [PATCH] softmac: some comment stuff + + Signed-off-by: John W. Linville + +commit bba52d5e9ecd0a1705fbac93b6d50ef6ec475315 +Author: Johannes Berg +Date: Wed Jan 11 11:01:22 2006 +0100 + + [PATCH] softmac: properly check return value of ieee80211softmac_alloc_mgt + + Properly check return value of ieee80211softmac_alloc_mgt + in ieee80211softmac_disassoc_deauth (patch by Denis Vlasenko) + + Signed-off-by: John W. Linville + +commit 1dc09776d79e0162553f6434c0b1ccb0cceea0b3 +Author: Johannes Berg +Date: Wed Jan 11 10:46:16 2006 +0100 + + [PATCH] softmac: scan at least once before selecting a network by essid + + Signed-off-by: John W. Linville + +commit 48b2e4ce690dfbf4097e89e6ce0861ab85fd89c9 +Author: Johannes Berg +Date: Tue Jan 10 19:12:19 2006 +0100 + + [PATCH] softmac: check if disassociation is for us before processing it + + Signed-off-by: John W. Linville + +commit 78e4f36e053b4d2c4623fdc1f6ac63f33d5b7c81 +Author: Johannes Berg +Date: Tue Jan 10 18:56:32 2006 +0100 + + [PATCH] softmac: select "best" network based on rssi + + Signed-off-by: John W. Linville + +commit 51da28a847027fdf80e55a2a0d7bd0f7a8617d3d +Author: Johannes Berg +Date: Tue Jan 10 16:50:22 2006 +0100 + + [PATCH] softmac: add fixme for disassoc + + Signed-off-by: John W. Linville + +commit d1469cf2c79f1682364d5c37d752cd3a3018cbaa +Author: Johannes Berg +Date: Tue Jan 10 15:47:06 2006 +0100 + + [PATCH] softmac: try to reassociate when being disassociated from the AP + + Signed-off-by: John W. Linville + +commit 2dd50801b3ac95988bd5789e4ec576f3480ecc59 +Author: Johannes Berg +Date: Fri Jan 6 18:11:23 2006 +0100 + + [PATCH] softmac: correctly use netif_carrier_{on,off} + + TODO: add callbacks for ifup/ifdown (see mailing list) + + Signed-off-by: John W. Linville + +commit 5c4df6da580b9317dc0856e235232b95cbc8251c +Author: Johannes Berg +Date: Fri Jan 6 01:43:45 2006 +0100 + + [PATCH] softmac: convert to use global workqueue + + Convert softmac to use global workqueue instead of private one... + + Signed-off-by: John W. Linville + +commit 45867e6a55aee984d69ce8f93a87e26d32d470dc +Author: Johannes Berg +Date: Thu Jan 5 18:45:00 2006 +0100 + + [PATCH] softmac: fix Makefiles + + Signed-off-by: John W. Linville + +commit 714e1a511627b7d95ff1666c66272613a96d2873 +Author: Johannes Berg +Date: Wed Jan 4 21:06:28 2006 +0100 + + [PATCH] softmac: fix some sparse warnings + + Signed-off-by: John W. Linville + +commit 32821837fa0b3a37b1f3e020769eb2a186cfff6e +Author: Johannes Berg +Date: Wed Jan 4 16:51:31 2006 +0100 + + [PATCH] make softmac depend on IEEE80211 and EXPERIMENTAL + + Signed-off-by: John W. Linville + +commit 370121e5190a86a2d8a717ecd6f33028c7dc6fd4 +Author: Johannes Berg +Date: Wed Jan 4 16:32:16 2006 +0100 + + [PATCH] wireless: Add softmac layer to the kernel + + Signed-off-by: John W. Linville + +commit 0caab23e11c015559af81a4c0f4759ca05a5446a +Author: Linus Torvalds +Date: Wed Mar 22 17:39:38 2006 -0800 + + scsi: link in the debug driver last + + If the debug driver is built-in, link it in last, so that any real + drivers will probe first, rather than having the debug driver pick the + first scsi slots.. + + Signed-off-by: Douglas Gilbert + Signed-off-by: Randy Dunlap + Acked-by: James Bottomley + Signed-off-by: Linus Torvalds + +commit 6a6bbd29a0284c1b9d33c324ba85f3ebb5509589 +Author: Eric Sesterhenn +Date: Wed Mar 22 22:49:48 2006 +0100 + + [PATCH] Use of uninitialized variable in drivers/net/depca.c + + hi, + + this fixes coverity bug #888, where the variable + dev is used uninitialized. I assume the programmer + meant to use mdev, which is initialized. + Compile tested only. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Jeff Garzik + +commit 5185c7c20a4b88892f868ad8d92d1b640b1edba9 +Author: Eric Sesterhenn +Date: Wed Mar 22 22:30:34 2006 +0100 + + [PATCH] Use after free in net/tulip/de2104x.c + + hi, + + this fixes coverity bug #912, where skb is freed first, + and dereferenced a few lines later with skb->len. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Jeff Garzik + +commit 494aced2cda34c186083f7d53c419426eea3d584 +Author: Artur Skawina +Date: Tue Mar 21 22:04:36 2006 +0100 + + [PATCH] sis900 adm7001 PHY support + + this patch is required to get a SIS964 based motherboard ethernet working (FSC D1875) + (picking the #1 transceiver, instead of the last one, in case no known ones were found + might be a better default, and would have worked in this case too) + + Signed-off-by: Artur Skawina + Signed-off-by: Jeff Garzik + +commit eadfa7ddca98b0430b8b666e0344ab1d559389c8 +Author: Stephen Hemminger +Date: Wed Mar 22 10:38:45 2006 -0800 + + [PATCH] sky2: more ethtool stats + + Expose all the available hardware statistics via ethtool. + And cleanup some of the statistics definitions. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit def720e6166f49027c45286088d1e22743666ca3 +Author: Frank Pavlic +Date: Wed Mar 22 16:03:44 2006 +0100 + + [PATCH] s390: qeth :allow setting of attribute "route6" to "no_router". + + [patch 4/6] s390: qeth :allow setting of attribute "route6" to "no_router". + + From: Ursula Braun + when setting route6 attribute back to no_router qeth does not + issue an IP ASSIST command to reset router value to no_router. + Once primary_router is set device stays in this mode. + Issue an IP ASSIST command when no_router is set in route6. + Device will be reset and thus will not longer run as a primary + router. + + Signed-off-by: Frank Pavlic + + diffstat: + qeth_main.c | 5 ----- + 1 files changed, 5 deletions(-) + Signed-off-by: Jeff Garzik + +commit 1380fee2b553fbde1a094476685f43ec5625aec2 +Author: Frank Pavlic +Date: Wed Mar 22 16:03:41 2006 +0100 + + [PATCH] s390: qeth driver cleanups + + [patch 3/6] s390: qeth driver cleanups + + From: Ursula Braun + - code analyzing tool BEAM has found some unreachable + and unnecessary statements and also conditions + which are always true. + - removed some useless MII code since OSA card will never + allow to set such values. + + Signed-off-by: Frank Pavlic + + diffstat: + qeth_main.c | 49 ++++--------------------------------------------- + qeth_proc.c | 18 +++++++++--------- + qeth_sys.c | 2 +- + 3 files changed, 14 insertions(+), 55 deletions(-) + Signed-off-by: Jeff Garzik + +commit 95f6b5a1e38e26dc313e283e1e6058d3ffff517d +Author: Frank Pavlic +Date: Wed Mar 22 16:03:39 2006 +0100 + + [PATCH] s390: qeth driver statistics fixes + + [patch 2/6] s390: qeth driver statistics fixes + + From: Ursula Braun + - display "unsigned int" values in /proc/qeth_perf with %u instead of %i + - omit qdio header length when increasing card->stats.tx_bytes + + Signed-off-by: Frank Pavlic + + diffstat: + qeth_main.c | 3 ++- + qeth_proc.c | 38 +++++++++++++++++++------------------- + 2 files changed, 21 insertions(+), 20 deletions(-) + Signed-off-by: Jeff Garzik + +commit c2d3d4b938d1a8df4fd4db73427009dfb9e8b225 +Author: Sergei Shtylylov +Date: Tue Mar 21 22:53:52 2006 -0800 + + [PATCH] AMD Au1xx0: fix Ethernet TX stats + + With Au1xx0 Ethernet driver, TX bytes/packets always remain zero. The + problem seems to be that when packet has been transmitted, the length word + in DMA buffer is zero. + + The patch updates the TX stats when a buffer is fed to DMA. The initial + 2.4 patch was posted to linux-mips@linux-mips.org by Thomas Lange 21 Jan + 2005. + + Signed-off-by: Thomas Lange + Signed-off-by: Sergei Shtylyov + Cc: Jordan Crouse + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit d97381702d3a2f917cfe935fbca1e850a37b984b +Author: Jens Osterkamp +Date: Tue Mar 21 22:53:47 2006 -0800 + + [PATCH] fix spidernet build issue + + + + Signed-off-by: Jens Osterkamp + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 4658f79bec0b51222e769e328c2923f39f3bda77 +Author: Tejun Heo +Date: Wed Mar 22 21:07:03 2006 +0900 + + [PATCH] ahci: add softreset + + Now that libata is smart enought to handle both soft and hard resets, + add softreset method. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit f0c8bbfa154f4481623a4478b0ae94a6ceeaa026 +Author: Tejun Heo +Date: Wed Mar 22 20:48:18 2006 +0900 + + [PATCH] libata: do not ignore PIO-only devices + + As libata now can do PIO, don't ignore PIO-only devices. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 67951aded31a1a736c1f0f6e8317677ea6c21ee1 +Author: Alan Cox +Date: Wed Mar 22 15:55:54 2006 +0000 + + [PATCH] libata: Symbol exports + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit f4b15fefb38fb4942d85247854660bc8e02641a7 +Author: Alan Cox +Date: Wed Mar 22 15:54:04 2006 +0000 + + [PATCH] Update libata DMA blacklist to cover versions, and resync with IDE layer + + Not much to say here except that some drives have fixed and bad firmware + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 09c7ad79dc62c499bb03d1ee92f838db2fc776c5 +Author: Alan Cox +Date: Wed Mar 22 15:52:40 2006 +0000 + + [PATCH] libata: Fix a drive detection problem + + The current code follows the spec but uses an overlong delay. This would + be great if the hardware did. Several vendors however forget the D7 + pulldown. Fortunately 0xFF isnt a sane reset state so we can use it to + skip detection as is done in drivers/ide. (ie this is a tested solution + over a long time) + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 7c74ffd072fbe44b6039223982f2dc76840ac4f5 +Author: Alan Cox +Date: Wed Mar 22 15:47:34 2006 +0000 + + [PATCH] libata: note missing posting in mmio cmd write + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 39e18de810049e836390830174a248ad241b156a +Author: Chen, Kenneth W +Date: Sun Mar 12 09:20:27 2006 -0800 + + [IA64] move patchlist and machvec into init section + + ia64_mv is initialized based on platform detected or specified. + However, there is one instantiation of each platform type. We + don't expect to switch platform vector during run time. Move + those platform specific type into init section since a copy is + made into global ia64_mv at initialization. + + Also move instruction patch list into init section as well. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 03906ea0345d3ae6e906495f86846afa4b8b69b6 +Author: Chen, Kenneth W +Date: Sun Mar 12 09:10:59 2006 -0800 + + [IA64] add init declaration - nolwsys + + Add __initdata to nolwsys. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 914a4ea44169c8420d2767862755f34f76772819 +Author: Chen, Kenneth W +Date: Sun Mar 12 09:08:26 2006 -0800 + + [IA64] add init declaration - gate page functions + + Add init declaration to bunch of patch functions and gate + page setup function. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit dae2806615c91cd7afa7c4dee65518435e45854a +Author: Chen, Kenneth W +Date: Wed Mar 22 16:54:15 2006 -0800 + + [IA64] add init declaration to memory initialization functions + + Add init declaration to variables/functions used for memory + initialization. I don't think they would clash with memory + hotplug. If they do, please yell. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 244fd54540806a5e3391d117794105a35815cbb2 +Author: Chen, Kenneth W +Date: Sun Mar 12 09:00:13 2006 -0800 + + [IA64] add init declaration to cpu initialization functions + + Add init declaration to cpu initialization functions. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 0881fc8df2e2bf1a7900a0ab3860109beb46fbab +Author: Chen, Kenneth W +Date: Sun Mar 12 08:52:20 2006 -0800 + + [IA64] add __init declaration to mca functions + + Mark init related variable and functions with appropriate + __init* declaration to mca functions. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit d903cea3811994d4c4122a0e3ca6d3a197e812e2 +Author: Kenji Kaneshige +Date: Wed Mar 15 14:45:11 2006 +0900 + + [IA64] Ignore disabled Local SAPIC Affinity Structure in SRAT + + According to the ACPI spec, the OSPM must ignore the contents of the + Processor Local APIC/SAPIC Affinity Structure in System Resource + Affinity Table (SRAT), if its enable flag is cleared. However, ia64 + linux refers all of the Processor Local APIC/SAPIC Affinity Structures + in SRAT regardless of the enable flag. This is obviously against the + ACPI spec. This patch fixes this bug. + + Signed-off-by: Kenji Kaneshige + Signed-off-by: Tony Luck + +commit 9a4e5549b7cb5d0ef187184641d8defe8be875f5 +Author: Bjorn Helgaas +Date: Tue Mar 21 10:44:07 2006 -0700 + + [IA64] sn_check_intr: use ia64_get_irr() + + Use the recently-added ia64_get_irr() rather than duplicating the code. + + Signed-off-by: Bjorn Helgaas + Acked-by: Jes Sorensen + Signed-off-by: Tony Luck + +commit 2332c9ae7911618575241e0c843cd686968db8e3 +Author: Chen, Kenneth W +Date: Wed Mar 22 10:49:00 2006 -0800 + + [IA64] fix ia64 is_hugepage_only_range + + fix is_hugepage_only_range() definition to be "overlaps" + instead of "within architectural restricted hugetlb address + range". Simplify the ia64 specific code that used to use + is_hugepage_only_range() to just check which region the + address is in. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 1a55d57b107c3e06935763905dc0fb235214569d +Author: Alexey Kuznetsov +Date: Wed Mar 22 14:27:59 2006 -0800 + + [TCP]: Do not use inet->id of global tcp_socket when sending RST. + + The problem is in ip_push_pending_frames(), which uses: + + if (!df) { + __ip_select_ident(iph, &rt->u.dst, 0); + } else { + iph->id = htons(inet->id++); + } + + instead of ip_select_ident(). + + Right now I think the code is a nonsense. Most likely, I copied it from + old ip_build_xmit(), where it was really special, we had to decide + whether to generate unique ID when generating the first (well, the last) + fragment. + + In ip_push_pending_frames() it does not make sense, it should use plain + ip_select_ident() instead. + + Signed-off-by: Alexey Kuznetsov + Signed-off-by: David S. Miller + +commit 6a534ee35cfd02f60e99d301b9ac446ea11a9cfd +Author: Patrick McHardy +Date: Wed Mar 22 13:57:25 2006 -0800 + + [NETFILTER]: Fix undefined references to get_h225_addr + + get_h225_addr is exported, but declared static, which fails when + linking statically. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 1e30a014e311e627b91489ff5ec1b54496d308af +Author: Dmitry Mishin +Date: Wed Mar 22 13:56:56 2006 -0800 + + [NETFILTER]: futher {ip,ip6,arp}_tables unification + + This patch moves {ip,ip6,arp}t_entry_{match,target} definitions to + x_tables.h. This move simplifies code and future compatibility fixes. + + Signed-off-by: Dmitry Mishin + Acked-off-by: Kirill Korotaev + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 81fbfd6925c064b764cb0536aed9232c7b48f6df +Author: Patrick McHardy +Date: Wed Mar 22 13:56:33 2006 -0800 + + [NETFILTER]: Fix xt_policy address matching + + Fix missing inversion in address matching, it was broken during the + conversion to x_tables. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit b9f78f9fca626875af8adc0f7366a38b8e625a0e +Author: Pablo Neira Ayuso +Date: Wed Mar 22 13:56:08 2006 -0800 + + [NETFILTER]: nf_conntrack: support for layer 3 protocol load on demand + + x_tables matches and targets that require nf_conntrack_ipv[4|6] to work + don't have enough information to load on demand these modules. This + patch introduces the following changes to solve this issue: + + o nf_ct_l3proto_try_module_get: try to load the layer 3 connection + tracker module and increases the refcount. + o nf_ct_l3proto_module put: drop the refcount of the module. + + Signed-off-by: Pablo Neira Ayuso + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a45049c51ce6a3fecf2a909b591b28164c927112 +Author: Pablo Neira Ayuso +Date: Wed Mar 22 13:55:40 2006 -0800 + + [NETFILTER]: x_tables: set the protocol family in x_tables targets/matches + + Set the family field in xt_[matches|targets] registered. + + Signed-off-by: Pablo Neira Ayuso + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 4e3882f77376e036a52b022909d7e910714bd27b +Author: Pablo Neira Ayuso +Date: Wed Mar 22 13:55:11 2006 -0800 + + [NETFILTER]: conntrack: cleanup the conntrack ID initialization + + Currently the first conntrack ID assigned is 2, use 1 instead. + + Signed-off-by: Pablo Neira Ayuso + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit f0d835835ba30686dc085e98c8eeac0b9c26e3b2 +Author: Pablo Neira Ayuso +Date: Wed Mar 22 13:54:40 2006 -0800 + + [NETFILTER]: nfnetlink_queue: fix nfnetlink message size + + Fix oversized message, use NLMSG_SPACE just one since it reserves space + for the netlink header and NFA_SPACE for every attribute. + + Thanks to Harald Welte for the feedback + + Signed-off-by: Pablo Neira Ayuso + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 1cde64365b0c4f576f8f45b834e6a6de081b5914 +Author: Pablo Neira Ayuso +Date: Wed Mar 22 13:54:15 2006 -0800 + + [NETFILTER]: ctnetlink: Fix expectaction mask dumping + + The expectation mask has some particularities that requires a different + handling. The protocol number fields can be set to non-valid protocols, + ie. l3num is set to 0xFFFF. Since that protocol does not exist, the mask + tuple will not be dumped. Moreover, this results in a kernel panic when + nf_conntrack accesses the array of protocol handlers, that is PF_MAX (0x1F) + long. + + This patch introduces the function ctnetlink_exp_dump_mask, that correctly + dumps the expectation mask. Such function uses the l3num value from the + expectation tuple that is a valid layer 3 protocol number. The value of the + l3num mask isn't dumped since it is meaningless from the userspace side. + + Thanks to Yasuyuki Kozakai and Patrick McHardy for the feedback. + + Signed-off-by: Pablo Neira Ayuso + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 50b521aa54f415a626bfd63d1a9b72120e9fbe88 +Author: Thomas Vögtle +Date: Wed Mar 22 13:53:48 2006 -0800 + + [NETFILTER]: Fix Kconfig typos + + Signed-off-by: Thomas Vögtle + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 443da0d52766ef8ed50b59673ac7ea6aa6e9218c +Author: Patrick McHardy +Date: Wed Mar 22 13:53:20 2006 -0800 + + [NETFILTER]: Fix ip6tables breakage from {get,set}sockopt compat layer + + do_ipv6_getsockopt returns -EINVAL for unknown options, not + -ENOPROTOOPT as do_ipv6_setsockopt. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 3a2916aa289504d694072a98876d23ca31d6401e +Author: Erik Hovland +Date: Wed Mar 22 21:02:11 2006 +0000 + + [ARM] 3389/1: typo and grammar fix + + Patch from Erik Hovland + + I found a typo and what seems to be a run-on sentence in + arch/arm/common/dmabounce.c + + This patch corrects both. + + Signed-off-by: Erik Hovland + Signed-off-by: Russell King + +commit 69b648a200b27a7c8ea92993bf5b4d40e83b5403 +Author: Andrew Victor +Date: Wed Mar 22 20:14:14 2006 +0000 + + [ARM] 3386/1: AT91RM9200 Clock update + + Patch from Andrew Victor + + This patch includes a few changes to the clock support on the + AT91RM9200. + + 1. Added definitions for Ethernet, MMC, TWI, USARTs, and SPI peripheral + clocks. + + 2. Replaced some hard-coded hex values with the text definitions in + at91rm9200_sys.h. + + 3. If the USB96M bit is set for PLLB, then the rate of PLLB is not + affected but only the USB Host/Device clocks which are derived from it. + Issue reported by Sergei Sharonov. + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit 39806805de0314d5847bfd6d046ad7d4407ccd46 +Author: Andrew Victor +Date: Wed Mar 22 20:14:13 2006 +0000 + + [ARM] 3384/1: AT91RM9200: Timer + + Patch from Andrew Victor + + If the timer interrupt is ever significantly delayed (or after the + system was suspended), the system could spin incrementing the time for + too long. + The fix is to replace the "do {} while" with a "while {}". + + Orignal patch by Savin Zlobec and Peter Menzebach. + + Signed-off-by: Andrew Victor + Signed-off-by: Russell King + +commit 112d02e8d556ea0512afcfc3b0110c87ec9eb5f9 +Author: Lennert Buytenhek +Date: Wed Mar 22 20:14:12 2006 +0000 + + [ARM] 3382/1: ixp2000: unify defconfigs + + Patch from Lennert Buytenhek + + Unify the five existing ixp2000 defconfigs into one defconfig. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit a04f2d9d3a08002a7712f18fcec43e2c4151d953 +Author: Lennert Buytenhek +Date: Wed Mar 22 20:14:11 2006 +0000 + + [ARM] 3381/1: ixp2000: fix slowport write timing control register fields + + Patch from Lennert Buytenhek + + The original version of the chip docs had the PW and SU fields in + the slowport write timing control register accidentally reversed. + This is mentioned in the errata (documentation change #4) and fixed + in newer docs. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 709eb502ebcfcca8a3a36bab3bca3bd78caa53b1 +Author: Lennert Buytenhek +Date: Wed Mar 22 20:14:11 2006 +0000 + + [ARM] 3380/1: ixp2000: simplify ixdp2x00_master_npu() check + + Patch from Lennert Buytenhek + + On the IXDP2x00s, the NPU that is PCI master is always the egress + (i.e. 'master') NPU. At least on the IXDP2800, both NPUs have flash, + so the ixp2000_has_flash() check in ixdp2x00_master_npu() is useless. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit e99053e07514e514611167ad648c65c87982c4d9 +Author: Lennert Buytenhek +Date: Wed Mar 22 20:14:09 2006 +0000 + + [ARM] 3379/1: ixp2000: use generic 8250 debug macros + + Patch from Lennert Buytenhek + + The xscale UART in the ixp2000 is basically just an 8250 UART (with + some extra bits and pieces), so we can use the generic 8250 debug + macros on the ixp2000. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit bd115ea007e671e96b8b53c2e0e885103d39fd40 +Author: Lennert Buytenhek +Date: Wed Mar 22 20:14:09 2006 +0000 + + [ARM] 3378/1: ixp2000: fix gpio interrupt handling + + Patch from Lennert Buytenhek + + ixp2000 used to initially mark GPIO interrupts as invalid, and not + mark them valid until set_irq_type() was called, but this doesn't + work if you want to use request_irq() with the SA_TRIGGER_* flags. + + So, just mark the GPIO interrupts valid from the beginning. We + configure GPIOs as inputs when set_irq_type() is called anyway, so + this shouldn't be a problem. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 7cae7e26f245151b9ccad868bf2edf8c8048d307 +Author: James Morris +Date: Wed Mar 22 00:09:22 2006 -0800 + + [PATCH] SELinux: add slab cache for inode security struct + + Add a slab cache for the SELinux inode security struct, one of which is + allocated for every inode instantiated by the system. + + The memory savings are considerable. + + On 64-bit, instead of the size-128 cache, we have a slab object of 96 + bytes, saving 32 bytes per object. After booting, I see about 4000 of + these and then about 17,000 after a kernel compile. With this patch, we + save around 530KB of kernel memory in the latter case. On 32-bit, the + savings are about half of this. + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cf01efd098597f7ee88a61e645afacba987c4531 +Author: James Morris +Date: Wed Mar 22 00:09:21 2006 -0800 + + [PATCH] SELinux: cleanup stray variable in selinux_inode_init_security() + + Remove an unneded pointer variable in selinux_inode_init_security(). + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit edb20fb5be2ff6943920aca4ccab0f4fdacddb9c +Author: James Morris +Date: Wed Mar 22 00:09:20 2006 -0800 + + [PATCH] SELinux: fix hard link count for selinuxfs root directory + + A further fix is needed for selinuxfs link count management, to ensure that + the count is correct for the parent directory when a subdirectory is + created. This is only required for the root directory currently, but the + code has been updated for the general case. + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d6aafa65354cd2dbb089ab9e7dc618f22230fe32 +Author: James Morris +Date: Wed Mar 22 00:09:19 2006 -0800 + + [PATCH] selinuxfs cleanups: sel_make_avc_files + + Fix copy & paste error in sel_make_avc_files(), removing a supurious call to + d_genocide() in the error path. All of this will be cleaned up by + kill_litter_super(). + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 253a8b1db1af146d3a7eef0f3626781df12c7141 +Author: James Morris +Date: Wed Mar 22 00:09:18 2006 -0800 + + [PATCH] selinuxfs cleanups: sel_make_bools + + Remove the call to sel_make_bools() from sel_fill_super(), as policy needs to + be loaded before the boolean files can be created. Policy will never be + loaded during sel_fill_super() as selinuxfs is kernel mounted during init and + the only means to load policy is via selinuxfs. + + Also, the call to d_genocide() on the error path of sel_make_bools() is + incorrect and replaced with sel_remove_bools(). + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 161ce45a8a34ba81673f60c603e6fc6d37d99c8f +Author: James Morris +Date: Wed Mar 22 00:09:17 2006 -0800 + + [PATCH] selinuxfs cleanups: sel_fill_super exit path + + Unify the error path of sel_fill_super() so that all errors pass through the + same point and generate an error message. Also, removes a spurious dput() in + the error path which breaks the refcounting for the filesystem + (litter_kill_super() will correctly clean things up itself on error). + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit cde174a885821b5eee7e00c8a9a426c9c8186a29 +Author: James Morris +Date: Wed Mar 22 00:09:17 2006 -0800 + + [PATCH] selinuxfs cleanups: use sel_make_dir() + + Use existing sel_make_dir() helper to create booleans directory rather than + duplicating the logic. + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 40e906f8224966ef65756cc75f9999ea2de0523d +Author: James Morris +Date: Wed Mar 22 00:09:16 2006 -0800 + + [PATCH] selinuxfs cleanups: fix hard link count + + Fix the hard link count for selinuxfs directories, which are currently one + short. + + Signed-off-by: James Morris + Acked-by: Stephen Smalley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 68bdcf28a8d245208a02dc9caa60fe13cc1b0ea8 +Author: Stephen Smalley +Date: Wed Mar 22 00:09:15 2006 -0800 + + [PATCH] selinux: simplify sel_read_bool + + Simplify sel_read_bool to use the simple_read_from_buffer helper, like the + other selinuxfs functions. + + Signed-off-by: Stephen Smalley + Acked-by: James Morris + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bb0030797f55c9996ea1cebd16b65750ceb7e4fd +Author: Ingo Molnar +Date: Wed Mar 22 00:09:14 2006 -0800 + + [PATCH] sem2mutex: security/ + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Stephen Smalley + Cc: James Morris + Cc: David Howells + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8aad38752e81d1d4de67e3d8e2524618ce7c9276 +Author: Stephen Smalley +Date: Wed Mar 22 00:09:13 2006 -0800 + + [PATCH] selinux: Disable automatic labeling of new inodes when no policy is loaded + + This patch disables the automatic labeling of new inodes on disk + when no policy is loaded. + + Discussion is here: + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=180296 + + In short, we're changing the behavior so that when no policy is loaded, + SELinux does not label files at all. Currently it does add an 'unlabeled' + label in this case, which we've found causes problems later. + + SELinux always maintains a safe internal label if there is none, so with this + patch, we just stick with that and wait until a policy is loaded before adding + a persistent label on disk. + + The effect is simply that if you boot with SELinux enabled but no policy + loaded and create a file in that state, SELinux won't try to set a security + extended attribute on the new inode on the disk. This is the only sane + behavior for SELinux in that state, as it cannot determine the right label to + assign in the absence of a policy. That state usually doesn't occur, but the + rawhide installer seemed to be misbehaving temporarily so it happened to show + up on a test install. + + Signed-off-by: Stephen Smalley + Acked-by: James Morris + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b20a35035f983f4ac7e29c4a68f30e43510007e0 +Author: Christoph Lameter +Date: Wed Mar 22 00:09:12 2006 -0800 + + [PATCH] page migration reorg + + Centralize the page migration functions in anticipation of additional + tinkering. Creates a new file mm/migrate.c + + 1. Extract buffer_migrate_page() from fs/buffer.c + + 2. Extract central migration code from vmscan.c + + 3. Extract some components from mempolicy.c + + 4. Export pageout() and remove_from_swap() from vmscan.c + + 5. Make it possible to configure NUMA systems without page migration + and non-NUMA systems with page migration. + + I had to so some #ifdeffing in mempolicy.c that may need a cleanup. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 442295c94bf650221af3ef20fc68fa3e93876818 +Author: Paul Jackson +Date: Wed Mar 22 00:09:11 2006 -0800 + + [PATCH] mm: slab cache interleave rotor fix + + The alien cache rotor in mm/slab.c assumes that the first online node is + node 0. Eventually for some archs, especially with hotplug, this will no + longer be true. + + Fix the interleave rotor to handle the general case of node numbering. + + Signed-off-by: Paul Jackson + Acked-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fdb7cc59084ba7eef935e4e40aaaf538ee34c625 +Author: Paul Jackson +Date: Wed Mar 22 00:09:10 2006 -0800 + + [PATCH] mm: hugetlb alloc_fresh_huge_page bogus node loop fix + + Fix bogus node loop in hugetlb.c alloc_fresh_huge_page(), which was + assuming that nodes are numbered contiguously from 0 to num_online_nodes(). + Once the hotplug folks get this far, that will be false. + + Signed-off-by: Paul Jackson + Acked-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9b65ef59d42a56fa1358958ede77aaa5bac385a8 +Author: Akinobu Mita +Date: Wed Mar 22 00:09:09 2006 -0800 + + [PATCH] fix swap cluster offset + + When we've allocated SWAPFILE_CLUSTER pages, ->cluster_next should be the + first index of swap cluster. But current code probably sets it wrong offset. + + Signed-off-by: Akinobu Mita + Acked-by: Hugh Dickins + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 879336c3930ae9273ea1c45214cb8adae0ce494a +Author: Christoph Lameter +Date: Wed Mar 22 00:09:08 2006 -0800 + + [PATCH] drain_node_pages: interrupt latency reduction / optimization + + 1. Only disable interrupts if there is actually something to free + + 2. Only dirty the pcp cacheline if we actually freed something. + + 3. Disable interrupts for each single pcp and not for cleaning + all the pcps in all zones of a node. + + drain_node_pages is called every 2 seconds from cache_reap. This + fix should avoid most disabling of interrupts. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b18e7e654d7af741d2bf34a90dc34128d0217fea +Author: Christoph Lameter +Date: Wed Mar 22 00:09:07 2006 -0800 + + [PATCH] slab: fix drain_array() so that it works correctly with the shared_array + + The list_lock also protects the shared array and we call drain_array() with + the shared array. Therefore we cannot go as far as I wanted to but have to + take the lock in a way so that it also protects the array_cache in + drain_pages. + + (Note: maybe we should make the array_cache locking more consistent? I.e. + always take the array cache lock for shared arrays and disable interrupts + for the per cpu arrays?) + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1b55253a7f95adc82eb20937b57b3e3e32ba65df +Author: Christoph Lameter +Date: Wed Mar 22 00:09:07 2006 -0800 + + [PATCH] slab: remove drain_array_locked + + Remove drain_array_locked and use that opportunity to limit the time the l3 + lock is taken further. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aab2207cf8d9c343b6b5f0e4d27e1732f8618d14 +Author: Christoph Lameter +Date: Wed Mar 22 00:09:06 2006 -0800 + + [PATCH] slab: make drain_array more universal by adding more parameters + + And a parameter to drain_array to control the freeing of all objects and + then use drain_array() to replace instances of drain_array_locked with + drain_array. Doing so will avoid taking locks in those locations if the + arrays are empty. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 35386e3b0f876bf194982f48f027af0c216499ce +Author: Christoph Lameter +Date: Wed Mar 22 00:09:05 2006 -0800 + + [PATCH] slab: cache_reap(): further reduction in interrupt holdoff + + cache_reap takes the l3->list_lock (disabling interrupts) unconditionally + and then does a few checks and maybe does some cleanup. This patch makes + cache_reap() only take the lock if there is work to do and then the lock is + taken and released for each cleaning action. + + The checking of when to do the next reaping is done without any locking and + becomes racy. Should not matter since reaping can also be skipped if the + slab mutex cannot be acquired. + + The same is true for the touched processing. If we get this wrong once in + awhile then we will mistakenly clean or not clean the shared cache. This + will impact performance slightly. + + Note that the additional drain_array() function introduced here will fall + out in a subsequent patch since array cleaning will now be very similar + from all callers. + + Signed-off-by: Christoph Lameter + Cc: Pekka Enberg + Cc: Manfred Spraul + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 248a0301e703cbf781aa02a91bcfc6da75870dd7 +Author: Rafael J. Wysocki +Date: Wed Mar 22 00:09:04 2006 -0800 + + [PATCH] mm: make shrink_all_memory try harder + + Make shrink_all_memory() repeat the attempts to free more memory if there + seems to be no pages to free. + + Signed-off-by: Rafael J. Wysocki + Cc: Pavel Machek + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d5d4b0aa4e1430d73050babba999365593bdb9d2 +Author: Chen, Kenneth W +Date: Wed Mar 22 00:09:03 2006 -0800 + + [PATCH] optimize follow_hugetlb_page + + follow_hugetlb_page() walks a range of user virtual address and then fills + in list of struct page * into an array that is passed from the argument + list. It also gets a reference count via get_page(). For compound page, + get_page() actually traverse back to head page via page_private() macro and + then adds a reference count to the head page. Since we are doing a virt to + pte look up, kernel already has a struct page pointer into the head page. + So instead of traverse into the small unit page struct and then follow a + link back to the head page, optimize that with incrementing the reference + count directly on the head page. + + The benefit is that we don't take a cache miss on accessing page struct for + the corresponding user address and more importantly, not to pollute the + cache with a "not very useful" round trip of pointer chasing. This adds a + moderate performance gain on an I/O intensive database transaction + workload. + + Signed-off-by: Ken Chen + Cc: David Gibson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit bba1e9b2111b14625f670bd07e57fd7ed57ce804 +Author: Chen, Kenneth W +Date: Wed Mar 22 00:09:02 2006 -0800 + + [PATCH] convert hugetlbfs_counter to atomic + + Implementation of hugetlbfs_counter() is functionally equivalent to + atomic_inc_return(). Use the simpler atomic form. + + Signed-off-by: Ken Chen + Cc: David Gibson + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 42b88befd6e0dae1a5fe04c03925037fa890e1f3 +Author: David Gibson +Date: Wed Mar 22 00:09:01 2006 -0800 + + [PATCH] hugepage: is_aligned_hugepage_range() cleanup + + Quite a long time back, prepare_hugepage_range() replaced + is_aligned_hugepage_range() as the callback from mm/mmap.c to arch code to + verify if an address range is suitable for a hugepage mapping. + is_aligned_hugepage_range() stuck around, but only to implement + prepare_hugepage_range() on archs which didn't implement their own. + + Most archs (everything except ia64 and powerpc) used the same + implementation of is_aligned_hugepage_range(). On powerpc, which + implements its own prepare_hugepage_range(), the custom version was never + used. + + In addition, "is_aligned_hugepage_range()" was a bad name, because it + suggests it returns true iff the given range is a good hugepage range, + whereas in fact it returns 0-or-error (so the sense is reversed). + + This patch cleans up by abolishing is_aligned_hugepage_range(). Instead + prepare_hugepage_range() is defined directly. Most archs use the default + version, which simply checks the given region is aligned to the size of a + hugepage. ia64 and powerpc define custom versions. The ia64 one simply + checks that the range is in the correct address space region in addition to + being suitably aligned. The powerpc version (just as previously) checks + for suitable addresses, and if necessary performs low-level MMU frobbing to + set up new areas for use by hugepages. + + No libhugetlbfs testsuite regressions on ppc64 (POWER5 LPAR). + + Signed-off-by: David Gibson + Signed-off-by: Zhang Yanmin + Cc: "David S. Miller" + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3915bcf38fe0b6d130b4bbde97804f29a0becf32 +Author: David Gibson +Date: Wed Mar 22 00:08:59 2006 -0800 + + [PATCH] hugepage: Move hugetlb_free_pgd_range() prototype to hugetlb.h + + The optional hugepage callback, hugetlb_free_pgd_range() is presently + implemented non-trivially only on ia64 (but I plan to add one for powerpc + shortly). It has its own prototype for the function in asm-ia64/pgtable.h. + However, since the function is called from generic code, it make sense for + its prototype to be in the generic hugetlb.h header file, as the protypes + other arch callbacks already are (prepare_hugepage_range(), + set_huge_pte_at(), etc.). This patch makes it so. + + Signed-off-by: David Gibson + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4866920b93fd7d5b520278c3c76e6f4d5a352d81 +Author: David Gibson +Date: Wed Mar 22 00:08:58 2006 -0800 + + [PATCH] hugepage: Fix hugepage logic in free_pgtables() harder + + Turns out the hugepage logic in free_pgtables() was doubly broken. The + loop coalescing multiple normal page VMAs into one call to free_pgd_range() + had an off by one error, which could mean it would coalesce one hugepage + VMA into the same bundle (checking 'vma' not 'next' in the loop). I + transferred this bug into the new is_vm_hugetlb_page() based version. + Here's the fix. + + This one didn't bite on powerpc previously for the same reason the + is_hugepage_only_range() problem didn't: powerpc's hugetlb_free_pgd_range() + is identical to free_pgd_range(). It didn't bite on ia64 because the + hugepage region is distant enough from any other region that the separated + PMD_SIZE distance test would always prevent coalescing the two together. + + No libhugetlbfs testsuite regressions (ppc64, POWER5). + + Signed-off-by: David Gibson + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9da61aef0fd5b17dd4bf4baf33db12c470def774 +Author: David Gibson +Date: Wed Mar 22 00:08:57 2006 -0800 + + [PATCH] hugepage: Fix hugepage logic in free_pgtables() + + free_pgtables() has special logic to call hugetlb_free_pgd_range() instead + of the normal free_pgd_range() on hugepage VMAs. However, the test it uses + to do so is incorrect: it calls is_hugepage_only_range on a hugepage sized + range at the start of the vma. is_hugepage_only_range() will return true + if the given range has any intersection with a hugepage address region, and + in this case the given region need not be hugepage aligned. So, for + example, this test can return true if called on, say, a 4k VMA immediately + preceding a (nicely aligned) hugepage VMA. + + At present we get away with this because the powerpc version of + hugetlb_free_pgd_range() is just a call to free_pgd_range(). On ia64 (the + only other arch with a non-trivial is_hugepage_only_range()) we get away + with it for a different reason; the hugepage area is not contiguous with + the rest of the user address space, and VMAs are not permitted in between, + so the test can't return a false positive there. + + Nonetheless this should be fixed. We do that in the patch below by + replacing the is_hugepage_only_range() test with an explicit test of the + VMA using is_vm_hugetlb_page(). + + This in turn changes behaviour for platforms where is_hugepage_only_range() + returns false always (everything except powerpc and ia64). We address this + by ensuring that hugetlb_free_pgd_range() is defined to be identical to + free_pgd_range() (instead of a no-op) on everything except ia64. Even so, + it will prevent some otherwise possible coalescing of calls down to + free_pgd_range(). Since this only happens for hugepage VMAs, removing this + small optimization seems unlikely to cause any trouble. + + This patch causes no regressions on the libhugetlbfs testsuite - ppc64 + POWER5 (8-way), ppc64 G5 (2-way) and i386 Pentium M (UP). + + Signed-off-by: David Gibson + Cc: William Lee Irwin III + Acked-by: Hugh Dickins + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 27a85ef1b81300cfff06b4c8037e9914dfb09acc +Author: David Gibson +Date: Wed Mar 22 00:08:56 2006 -0800 + + [PATCH] hugepage: Make {alloc,free}_huge_page() local + + Originally, mm/hugetlb.c just handled the hugepage physical allocation path + and its {alloc,free}_huge_page() functions were used from the arch specific + hugepage code. These days those functions are only used with mm/hugetlb.c + itself. Therefore, this patch makes them static and removes their + prototypes from hugetlb.h. This requires a small rearrangement of code in + mm/hugetlb.c to avoid a forward declaration. + + This patch causes no regressions on the libhugetlbfs testsuite (ppc64, + POWER5). + + Signed-off-by: David Gibson + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b45b5bd65f668a665db40d093e4e1fe563533608 +Author: David Gibson +Date: Wed Mar 22 00:08:55 2006 -0800 + + [PATCH] hugepage: Strict page reservation for hugepage inodes + + These days, hugepages are demand-allocated at first fault time. There's a + somewhat dubious (and racy) heuristic when making a new mmap() to check if + there are enough available hugepages to fully satisfy that mapping. + + A particularly obvious case where the heuristic breaks down is where a + process maps its hugepages not as a single chunk, but as a bunch of + individually mmap()ed (or shmat()ed) blocks without touching and + instantiating the pages in between allocations. In this case the size of + each block is compared against the total number of available hugepages. + It's thus easy for the process to become overcommitted, because each block + mapping will succeed, although the total number of hugepages required by + all blocks exceeds the number available. In particular, this defeats such + a program which will detect a mapping failure and adjust its hugepage usage + downward accordingly. + + The patch below addresses this problem, by strictly reserving a number of + physical hugepages for hugepage inodes which have been mapped, but not + instatiated. MAP_SHARED mappings are thus "safe" - they will fail on + mmap(), not later with an OOM SIGKILL. MAP_PRIVATE mappings can still + trigger an OOM. (Actually SHARED mappings can technically still OOM, but + only if the sysadmin explicitly reduces the hugepage pool between mapping + and instantiation) + + This patch appears to address the problem at hand - it allows DB2 to start + correctly, for instance, which previously suffered the failure described + above. + + This patch causes no regressions on the libhugetblfs testsuite, and makes a + test (designed to catch this problem) pass which previously failed (ppc64, + POWER5). + + Signed-off-by: David Gibson + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 3935baa9bcda3ccaee4f7849f5157d316e34412e +Author: David Gibson +Date: Wed Mar 22 00:08:53 2006 -0800 + + [PATCH] hugepage: serialize hugepage allocation and instantiation + + Currently, no lock or mutex is held between allocating a hugepage and + inserting it into the pagetables / page cache. When we do go to insert the + page into pagetables or page cache, we recheck and may free the newly + allocated hugepage. However, since the number of hugepages in the system + is strictly limited, and it's usualy to want to use all of them, this can + still lead to spurious allocation failures. + + For example, suppose two processes are both mapping (MAP_SHARED) the same + hugepage file, large enough to consume the entire available hugepage pool. + If they race instantiating the last page in the mapping, they will both + attempt to allocate the last available hugepage. One will fail, of course, + returning OOM from the fault and thus causing the process to be killed, + despite the fact that the entire mapping can, in fact, be instantiated. + + The patch fixes this race by the simple method of adding a (sleeping) mutex + to serialize the hugepage fault path between allocation and insertion into + pagetables and/or page cache. It would be possible to avoid the + serialization by catching the allocation failures, waiting on some + condition, then rechecking to see if someone else has instantiated the page + for us. Given the likely frequency of hugepage instantiations, it seems + very doubtful it's worth the extra complexity. + + This patch causes no regression on the libhugetlbfs testsuite, and one + test, which can trigger this race now passes where it previously failed. + + Actually, the test still sometimes fails, though less often and only as a + shmat() failure, rather processes getting OOM killed by the VM. The dodgy + heuristic tests in fs/hugetlbfs/inode.c for whether there's enough hugepage + space aren't protected by the new mutex, and would be ugly to do so, so + there's still a race there. Another patch to replace those tests with + something saner for this reason as well as others coming... + + Signed-off-by: David Gibson + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 79ac6ba40eb8d70f0d204e98ae9b63280ad1018c +Author: David Gibson +Date: Wed Mar 22 00:08:51 2006 -0800 + + [PATCH] hugepage: Small fixes to hugepage clear/copy path + + Move the loops used in mm/hugetlb.c to clear and copy hugepages to their + own functions for clarity. As we do so, we add some checks of need_resched + - we are, after all copying megabytes of memory here. We also add + might_sleep() accordingly. We generally dropped locks around the clear and + copy, already but not everyone has PREEMPT enabled, so we should still be + checking explicitly. + + For this to work, we need to remove the clear_huge_page() from + alloc_huge_page(), which is called with the page_table_lock held in the COW + path. We move the clear_huge_page() to just after the alloc_huge_page() in + the hugepage no-page path. In the COW path, the new page is about to be + copied over, so clearing it was just a waste of time anyway. So as a side + effect we also fix the fact that we held the page_table_lock for far too + long in this path by calling alloc_huge_page() under it. + + It causes no regressions on the libhugetlbfs testsuite (ppc64, POWER5). + + Signed-off-by: David Gibson + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8f860591ffb29738cf5539b6fbf27f50dcdeb380 +Author: Zhang, Yanmin +Date: Wed Mar 22 00:08:50 2006 -0800 + + [PATCH] Enable mprotect on huge pages + + 2.6.16-rc3 uses hugetlb on-demand paging, but it doesn_t support hugetlb + mprotect. + + From: David Gibson + + Remove a test from the mprotect() path which checks that the mprotect()ed + range on a hugepage VMA is hugepage aligned (yes, really, the sense of + is_aligned_hugepage_range() is the opposite of what you'd guess :-/). + + In fact, we don't need this test. If the given addresses match the + beginning/end of a hugepage VMA they must already be suitably aligned. If + they don't, then mprotect_fixup() will attempt to split the VMA. The very + first test in split_vma() will check for a badly aligned address on a + hugepage VMA and return -EINVAL if necessary. + + From: "Chen, Kenneth W" + + On i386 and x86-64, pte flag _PAGE_PSE collides with _PAGE_PROTNONE. The + identify of hugetlb pte is lost when changing page protection via mprotect. + A page fault occurs later will trigger a bug check in huge_pte_alloc(). + + The fix is to always make new pte a hugetlb pte and also to clean up + legacy code where _PAGE_PRESENT is forced on in the pre-faulting day. + + Signed-off-by: Zhang Yanmin + Cc: David Gibson + Cc: "David S. Miller" + Cc: Benjamin Herrenschmidt + Cc: Paul Mackerras + Cc: William Lee Irwin III + Signed-off-by: Ken Chen + Signed-off-by: Nishanth Aravamudan + Cc: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit aed75ff3caafce404d9be7f0c088716375be5279 +Author: Steven Pratt +Date: Wed Mar 22 00:08:48 2006 -0800 + + [PATCH] readahead: fix initial window size calculation + + The current current get_init_ra_size is not optimal across different IO + sizes and max_readahead values. Here is a quick summary of sizes computed + under current design and under the attached patch. All of these assume 1st + IO at offset 0, or 1st detected sequential IO. + + 32k max, 4k request + + old new + ----------------- + 8k 8k + 16k 16k + 32k 32k + + 128k max, 4k request + old new + ----------------- + 32k 16k + 64k 32k + 128k 64k + 128k 128k + + 128k max, 32k request + old new + ----------------- + 32k 64k <----- + 64k 128k + 128k 128k + + 512k max, 4k request + old new + ----------------- + 4k 32k <---- + 16k 64k + 64k 128k + 128k 256k + 512k 512k + + Cc: Oleg Nesterov + Cc: Steven Pratt + Cc: Ram Pai + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a564da3964db3256069190c2ae95069143ac37fb +Author: Oleg Nesterov +Date: Wed Mar 22 00:08:47 2006 -0800 + + [PATCH] readahead: ->prev_page can overrun the ahead window + + If get_next_ra_size() does not grow fast enough, ->prev_page can overrun + the ahead window. This means the caller will read the pages from + ->ahead_start + ->ahead_size to ->prev_page synchronously. + + Signed-off-by: Oleg Nesterov + Cc: Steven Pratt + Cc: Ram Pai + Cc: Trond Myklebust + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d15c023b44e5d323f1f4130b85d29f08e43433b1 +Author: Hugh Dickins +Date: Wed Mar 22 00:08:46 2006 -0800 + + [PATCH] shmem: inline to avoid warning + + shmem.c was named and shamed in Jesper's "Building 100 kernels" warnings: + shmem_parse_mpol is only used when CONFIG_TMPFS parses mount options; and + only called from that one site, so mark it inline like its non-NUMA stub. + + Signed-off-by: Hugh Dickins + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6e5ef1a96e6e3b123da56292bc35017c8c401491 +Author: Christoph Lameter +Date: Wed Mar 22 00:08:45 2006 -0800 + + [PATCH] vmscan: emove obsolete checks from shrink_list() and fix unlikely in refill_inactive_zone() + + As suggested by Marcelo: + + 1. The optimization introduced recently for not calling + page_referenced() during zone reclaim makes two additional checks in + shrink_list unnecessary. + + 2. The if (unlikely(sc->may_swap)) in refill_inactive_zone is optimized + for the zone_reclaim case. However, most peoples system only does swap. + Undo that. + + Signed-off-by: Christoph Lameter + Cc: Marcelo Tosatti + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a7290ee08e434399660ace34427c17696e47c562 +Author: Michael Buesch +Date: Wed Mar 22 00:08:44 2006 -0800 + + [PATCH] Uninline sys_mmap common code (reduce binary size) + + Remove the inlining of the new vs old mmap system call common code. This + reduces the size of the resulting vmlinux for defconfig as follows: + + mb@pc1:~/develop/git/linux-2.6$ size vmlinux.mmap* + text data bss dec hex filename + 3303749 521524 186564 4011837 3d373d vmlinux.mmapinline + 3303557 521524 186564 4011645 3d367d vmlinux.mmapnoinline + + The new sys_mmap2() has also one function call overhead removed, now. + (probably it was already optimized to a jmp before, but anyway...) + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 617d2214ee06c209e5c375c280d50abace8058e1 +Author: Nick Piggin +Date: Wed Mar 22 00:08:43 2006 -0800 + + [PATCH] mm: optimise page_count + + Optimise page_count compound page test and make it consistent with similar + functions. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b7ab795b7bec9997d4fde39f249d52823d36d98d +Author: Nick Piggin +Date: Wed Mar 22 00:08:42 2006 -0800 + + [PATCH] mm: more CONFIG_DEBUG_VM + + Put a few more checks under CONFIG_DEBUG_VM + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 6626c5d53bc45c59798628677ba5606f02e371f3 +Author: Andrew Morton +Date: Wed Mar 22 00:08:42 2006 -0800 + + [PATCH] mm: prep_zero_page() in irq is a bug + + prep_zero_page() uses KM_USER0 and hence may not be used from IRQ context, at + least for highmem pages. + + Cc: Nick Piggin + Cc: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 17cf44064ae744f081309108fa67f0e942b10167 +Author: Nick Piggin +Date: Wed Mar 22 00:08:41 2006 -0800 + + [PATCH] mm: cleanup prep_ stuff + + Move the prep_ stuff into prep_new_page. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7835e98b2e3c66dba79cb0ff8ebb90a2fe030c29 +Author: Nick Piggin +Date: Wed Mar 22 00:08:40 2006 -0800 + + [PATCH] remove set_page_count() outside mm/ + + set_page_count usage outside mm/ is limited to setting the refcount to 1. + Remove set_page_count from outside mm/, and replace those users with + init_page_count() and set_page_refcounted(). + + This allows more debug checking, and tighter control on how code is allowed + to play around with page->_count. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 70dc991d66cac40fdb07346dba2b5d862d732c34 +Author: Nick Piggin +Date: Wed Mar 22 00:08:35 2006 -0800 + + [PATCH] remove set_page_count(page, 0) users (outside mm) + + A couple of places set_page_count(page, 1) that don't need to. + + Signed-off-by: Nick Piggin + Cc: Paul Mackerras + Cc: Jeff Dike + Cc: Paolo 'Blaisorblade' Giarrusso + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 84097518d1ecd2330f9488e4c2d09953a3340e74 +Author: Nick Piggin +Date: Wed Mar 22 00:08:34 2006 -0800 + + [PATCH] mm: nommu use compound pages + + Now that compound page handling is properly fixed in the VM, move nommu + over to using compound pages rather than rolling their own refcounting. + + nommu vm page refcounting is broken anyway, but there is no need to have + divergent code in the core VM now, nor when it gets fixed. + + Signed-off-by: Nick Piggin + Cc: David Howells + + (Needs testing, please). + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 0f8053a509ceba4a077a50ea7b77039b5559b428 +Author: Nick Piggin +Date: Wed Mar 22 00:08:33 2006 -0800 + + [PATCH] mm: make __put_page internal + + Remove __put_page from outside the core mm/. It is dangerous because it does + not handle compound pages nicely, and misses 1->0 transitions. If a user + later appears that really needs the extra speed we can reevaluate. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4fa4f53bf92139595cae6f1a3d972fc0a3451d29 +Author: Nick Piggin +Date: Wed Mar 22 00:08:33 2006 -0800 + + [PATCH] x86_64: pageattr remove __put_page + + Remove page_count and __put_page from x86-64 pageattr + + Signed-off-by: Nick Piggin + Acked-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 20aaffd6a6492a5f7975dd7be967cdf0e4d978c4 +Author: Nick Piggin +Date: Wed Mar 22 00:08:32 2006 -0800 + + [PATCH] x86_64: pageattr use single list + + Use page->lru.next to implement the singly linked list of pages rather than + the struct deferred_page which needs to be allocated and freed for each + page. + + Signed-off-by: Nick Piggin + Acked-by: Andi Kleen + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 84d1c054b1c408c6c92676069fa678d55d5f0033 +Author: Nick Piggin +Date: Wed Mar 22 00:08:31 2006 -0800 + + [PATCH] i386: pageattr remove __put_page + + Stop using __put_page and page_count in i386 pageattr.c + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f9aed0e2537174b95908f48b6052ae37196c9390 +Author: Nick Piggin +Date: Wed Mar 22 00:08:30 2006 -0800 + + [PATCH] sg: use compound pages + + sg increments the refcount of constituent pages in its higher order memory + allocations when they are about to be mapped by userspace. This is done so + the subsequent get_page/put_page when doing the mapping and unmapping does not + free the page. + + Move over to the preferred way, that is, using compound pages instead. This + fixes a whole class of possible obscure bugs where a get_user_pages on a + constituent page may outlast the user mappings or even the driver. + + Signed-off-by: Nick Piggin + Cc: Hugh Dickins + Cc: Douglas Gilbert + Cc: James Bottomley + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a6f563db09c54c80d80e9013182dc512a5e53d0f +Author: Hugh Dickins +Date: Wed Mar 22 00:08:29 2006 -0800 + + [PATCH] remove VM_DONTCOPY bogosities + + Now that it's madvisable, remove two pieces of VM_DONTCOPY bogosity: + + 1. There was and is no logical reason why VM_DONTCOPY should be in the + list of flags which forbid vma merging (and those drivers which set + it are also setting VM_IO, which itself forbids the merge). + + 2. It's hard to understand the purpose of the VM_HUGETLB, VM_DONTCOPY + block in vm_stat_account: but never mind, it's under CONFIG_HUGETLB, + which (unlike CONFIG_HUGETLB_PAGE or CONFIG_HUGETLBFS) has never been + defined. + + Signed-off-by: Hugh Dickins + Cc: William Lee Irwin III + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fb8d14e172a29ba5ac69a73b61196be86fdfc3e1 +Author: Wu Fengguang +Date: Wed Mar 22 00:08:28 2006 -0800 + + [PATCH] mm: shrink_inactive_lis() nr_scan accounting fix + + In shrink_inactive_list(), nr_scan is not accounted when nr_taken is 0. + But 0 pages taken does not mean 0 pages scanned. + + Move the goto statement below the accounting code to fix it. + + Signed-off-by: Wu Fengguang + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit c9b02d970c385a253edb36c87643b0df706b50b4 +Author: Wu Fengguang +Date: Wed Mar 22 00:08:23 2006 -0800 + + [PATCH] mm: isolate_lru_pages() scan count fix + + In isolate_lru_pages(), *scanned reports one more scan because the scan + counter is increased one more time on exit of the while-loop. + + Change the while-loop to for-loop to fix it. + + Signed-off-by: Nick Piggin + Signed-off-by: Wu Fengguang + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7fb2d46d396b2491818f8e43b01049b3234e6c07 +Author: Christoph Lameter +Date: Wed Mar 22 00:08:22 2006 -0800 + + [PATCH] zone_reclaim: additional comments and cleanup + + Add some comments to explain how zone reclaim works. And it fixes the + following issues: + + - PF_SWAPWRITE needs to be set for RECLAIM_SWAP to be able to write + out pages to swap. Currently RECLAIM_SWAP may not do that. + + - remove setting nr_reclaimed pages after slab reclaim since the slab shrinking + code does not use that and the nr_reclaimed pages is just right for the + intended follow up action. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 1742f19fa920cdd6905f0db5898524dde22ab2a4 +Author: Andrew Morton +Date: Wed Mar 22 00:08:21 2006 -0800 + + [PATCH] vmscan: rename functions + + We have: + + try_to_free_pages + ->shrink_caches(struct zone **zones, ..) + ->shrink_zone(struct zone *, ...) + ->shrink_cache(struct zone *, ...) + ->shrink_list(struct list_head *, ...) + ->refill_inactive_list((struct zone *, ...) + + which is fairly irrational. + + Rename things so that we have + + try_to_free_pages + ->shrink_zones(struct zone **zones, ..) + ->shrink_zone(struct zone *, ...) + ->shrink_inactive_list(struct zone *, ...) + ->shrink_page_list(struct list_head *, ...) + ->shrink_active_list(struct zone *, ...) + + Cc: Nick Piggin + Cc: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 05ff51376f01fd8837946a4f8144a84f6cc71c19 +Author: Andrew Morton +Date: Wed Mar 22 00:08:20 2006 -0800 + + [PATCH] vmscan return nr_reclaimed + + Change all the vmscan functions to retunr the number-of-reclaimed pages and + remove scan_conrtol.nr_reclaimed. + + Saves ten-odd bytes of text and makes things clearer and more consistent. + + The patch also changes the behaviour of zone_reclaim() when it falls back to slab shrinking. Christoph says + + "Setting this to one means that we will rescan and shrink the slab for + each allocation if we are out of zone memory and RECLAIM_SLAB is set. Plus + if we do an order 0 allocation we do not go off node as intended. + + "We better set this to zero. This means the allocation will go offnode + despite us having potentially freed lots of memory on the zone. Future + allocations can then again be done from this zone." + + Cc: Nick Piggin + Cc: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 69e05944af39fc6c97b09380c8721e38433bd828 +Author: Andrew Morton +Date: Wed Mar 22 00:08:19 2006 -0800 + + [PATCH] vmscan: use unsigned longs + + Turn basically everything in vmscan.c into `unsigned long'. This is to avoid + the possibility that some piece of code in there might decide to operate upon + more than 4G (or even 2G) of pages in one hit. + + This might be silly, but we'll need it one day. + + Cc: Christoph Lameter + Cc: Nick Piggin + Signed-off-by: Rafael J. Wysocki + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 179e96395b1f01e95ebe1ff5ef306b810dbbd147 +Author: Andrew Morton +Date: Wed Mar 22 00:08:18 2006 -0800 + + [PATCH] vmscan: scan_control cleanup + + Initialise as much of scan_control as possible at the declaration site. This + tidies things up a bit and assures us that all unmentioned fields are zeroed + out. + + Signed-off-by: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8695949a1d7c99e039595db00af8e0fe4722307d +Author: Christoph Lameter +Date: Wed Mar 22 00:08:18 2006 -0800 + + [PATCH] Thin out scan_control: remove nr_to_scan and priority + + Make nr_to_scan and priority a parameter instead of putting it into scan + control. This allows various small optimizations and IMHO makes the code + easier to read. + + Signed-off-by: Christoph Lameter + Cc: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a07fa3944bf924881450884224cbb2f1269cb9fa +Author: Andrew Morton +Date: Wed Mar 22 00:08:17 2006 -0800 + + [PATCH] slab: use on_each_cpu() + + Slab duplicates on_each_cpu(). + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 78eef01b0fae087c5fadbd85dd4fe2918c3a015f +Author: Andrew Morton +Date: Wed Mar 22 00:08:16 2006 -0800 + + [PATCH] on_each_cpu(): disable local interrupts + + When on_each_cpu() runs the callback on other CPUs, it runs with local + interrupts disabled. So we should run the function with local interrupts + disabled on this CPU, too. + + And do the same for UP, so the callback is run in the same environment on both + UP and SMP. (strictly it should do preempt_disable() too, but I think + local_irq_disable is sufficiently equivalent). + + Also uninlines on_each_cpu(). softirq.c was the most appropriate file I could + find, but it doesn't seem to justify creating a new file. + + Oh, and fix up that comment over (under?) x86's smp_call_function(). It + drives me nuts. + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit ac2b898ca6fb06196a26869c23b66afe7944e52e +Author: Christoph Lameter +Date: Wed Mar 22 00:08:15 2006 -0800 + + [PATCH] slab: Remove SLAB_NO_REAP option + + SLAB_NO_REAP is documented as an option that will cause this slab not to be + reaped under memory pressure. However, that is not what happens. The only + thing that SLAB_NO_REAP controls at the moment is the reclaim of the unused + slab elements that were allocated in batch in cache_reap(). Cache_reap() + is run every few seconds independently of memory pressure. + + Could we remove the whole thing? Its only used by three slabs anyways and + I cannot find a reason for having this option. + + There is an additional problem with SLAB_NO_REAP. If set then the recovery + of objects from alien caches is switched off. Objects not freed on the + same node where they were initially allocated will only be reused if a + certain amount of objects accumulates from one alien node (not very likely) + or if the cache is explicitly shrunk. (Strangely __cache_shrink does not + check for SLAB_NO_REAP) + + Getting rid of SLAB_NO_REAP fixes the problems with alien cache freeing. + + Signed-off-by: Christoph Lameter + Cc: Pekka Enberg + Cc: Manfred Spraul + Cc: Mark Fasheh + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 911851e6ee6ac4e26f07be342a89632f78494fef +Author: Randy Dunlap +Date: Wed Mar 22 00:08:14 2006 -0800 + + [PATCH] slab: fix kernel-doc warnings + + Fix kernel-doc warnings in mm/slab.c. + + Signed-off-by: Randy Dunlap + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit fcc234f888ba2365c44ba0507eb8a18eebf1f594 +Author: Pekka Enberg +Date: Wed Mar 22 00:08:13 2006 -0800 + + [PATCH] mm: kill kmem_cache_t usage + + We have struct kmem_cache now so use it instead of the old typedef. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b5d8ca7c50826c0b456b4a646875dc573adfde2b +Author: Ravikiran G Thirumalai +Date: Wed Mar 22 00:08:12 2006 -0800 + + [PATCH] slab: remove cachep->spinlock + + Remove cachep->spinlock. Locking has moved to the kmem_list3 and most of + the structures protected earlier by cachep->spinlock is now protected by + the l3->list_lock. slab cache tunables like batchcount are accessed always + with the cache_chain_mutex held. + + Patch tested on SMP and NUMA kernels with dbench processes running, + constant onlining/offlining, and constant cache tuning, all at the same + time. + + Signed-off-by: Ravikiran Thirumalai + Cc: Christoph Lameter + Cc: Pekka Enberg + Cc: Manfred Spraul + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a737b3e2fcf96f576fa3e2e382236d9ee94f383f +Author: Andrew Morton +Date: Wed Mar 22 00:08:11 2006 -0800 + + [PATCH] slab cleanup + + slab.c has become a bit revolting again. Try to repair it. + + - Coding style fixes + + - Don't do assignments-in-if-statements. + + - Don't typecast assignments to/from void* + + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f30cf7d13eee420f5249b4d7709b46570098ab92 +Author: Pekka Enberg +Date: Wed Mar 22 00:08:11 2006 -0800 + + [PATCH] slab: extract setup_cpu_cache + + Extract setup_cpu_cache() function from kmem_cache_create() to make the + latter a little less complex. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8fea4e96a8f29ccc34c244f54574680ce9b43631 +Author: Pekka Enberg +Date: Wed Mar 22 00:08:10 2006 -0800 + + [PATCH] slab: object to index mapping cleanup + + Clean up the object to index mapping that has been spread around mm/slab.c. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b50ec7d8070ae7a39fe78e65a8812bbc3ca2f7ac +Author: Adrian Bunk +Date: Wed Mar 22 00:08:09 2006 -0800 + + [PATCH] kcalloc(): INT_MAX -> ULONG_MAX + + Since size_t has the same size as a long on all architectures, it's enough + for overflow checks to check against ULONG_MAX. + + This change could allow a compiler better optimization (especially in the + n=1 case). + + The practical effect seems to be positive, but quite small: + + text data bss dec hex filename + 21762380 5859870 1848928 29471178 1c1b1ca vmlinux-old + 21762211 5859870 1848928 29471009 1c1b121 vmlinux-patched + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a482289d46587ffcda4c85aab109fb74910d7a48 +Author: Nick Piggin +Date: Wed Mar 22 00:08:08 2006 -0800 + + [PATCH] hugepage allocator cleanup + + Insert "fresh" huge pages into the hugepage allocator by the same means as + they are freed back into it. This reduces code size and allows + enqueue_huge_page to be inlined into the hugepage free fastpath. + + Eliminate occurances of hugepages on the free list with non-zero refcount. + This can allow stricter refcount checks in future. Also required for + lockless pagecache. + + Signed-off-by: Nick Piggin + + "This patch also eliminates a leak "cleaned up" by re-clobbering the + refcount on every allocation from the hugepage freelists. With respect to + the lockless pagecache, the crucial aspect is to eliminate unconditional + set_page_count() to 0 on pages with potentially nonzero refcounts, though + closer inspection suggests the assignments removed are entirely spurious." + + Acked-by: William Irwin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 545b1ea9bfa5a8ca9af33d63144bd4f2faaea8dd +Author: Nick Piggin +Date: Wed Mar 22 00:08:07 2006 -0800 + + [PATCH] mm: cleanup bootmem + + The bootmem code added to page_alloc.c duplicated some page freeing code + that it really doesn't need to because it is not so performance critical. + + While we're here, make prefetching work properly by actually prefetching + the page we're about to use before prefetching ahead to the next one (ie. + get the most important transaction started first). Also prefetch just a + single page ahead rather than leaving a gap of 16. + + Jack Steiner reported no problems with SGI's ia64 simulator. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9d41415221214ca4820b9464dfa548e2f20e7dd5 +Author: Nick Piggin +Date: Wed Mar 22 00:08:06 2006 -0800 + + [PATCH] mm: page_state comment more + + Clarify that preemption needs to be guarded against with the + __xxx_page_state functions. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8dfcc9ba27e2ed257e5de9539f7f03e57c2c0e33 +Author: Nick Piggin +Date: Wed Mar 22 00:08:05 2006 -0800 + + [PATCH] mm: split highorder pages + + Have an explicit mm call to split higher order pages into individual pages. + Should help to avoid bugs and be more explicit about the code's intention. + + Signed-off-by: Nick Piggin + Cc: Russell King + Cc: David Howells + Cc: Ralf Baechle + Cc: Benjamin Herrenschmidt + Cc: Paul Mundt + Cc: "David S. Miller" + Cc: Chris Zankel + Signed-off-by: Yoichi Yuasa + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8e7a9aae91101916b86de07fafe3272ea8dc1f10 +Author: Nick Piggin +Date: Wed Mar 22 00:08:04 2006 -0800 + + [PATCH] xtensa: pgtable fixes + + - Don't return uninitialised stack values in case of allocation failure + + - Don't bother clearing PageCompound because __GFP_COMP wasn't specified + Increment over the pte page rather than one pte entry in + pte_alloc_one_kernel + + - Actually increment the page pointer in pte_alloc_one + + - Compile fixes, typos. + + Signed-off-by: Nick Piggin + Acked-by: Chris Zankel + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8dc04efbfb3c08a08fb7a3b97348d5d561b26ae2 +Author: Nick Piggin +Date: Wed Mar 22 00:08:03 2006 -0800 + + [PATCH] mm: de-skew page refcounting + + atomic_add_unless (atomic_inc_not_zero) no longer requires an offset refcount + to function correctly. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 7c8ee9a86340db686cd4314e9944dc9b6111bda9 +Author: Nick Piggin +Date: Wed Mar 22 00:08:03 2006 -0800 + + [PATCH] mm: simplify vmscan vs release refcounting + + The VM has an interesting race where a page refcount can drop to zero, but it + is still on the LRU lists for a short time. This was solved by testing a 0->1 + refcount transition when picking up pages from the LRU, and dropping the + refcount in that case. + + Instead, use atomic_add_unless to ensure we never pick up a 0 refcount page + from the LRU, thus a 0 refcount page will never have its refcount elevated + until it is allocated again. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f205b2fe62d321403525065a4cb31b6bff1bbe53 +Author: Nick Piggin +Date: Wed Mar 22 00:08:02 2006 -0800 + + [PATCH] mm: slab less atomics + + Atomic operation removal from slab + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e9dace8d386def04219134d7160e8a778824764 +Author: Nick Piggin +Date: Wed Mar 22 00:08:01 2006 -0800 + + [PATCH] mm: page_alloc less atomics + + More atomic operation removal from page allocator + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 674539115cc88473f623581e1d53c0e2ecef2179 +Author: Nick Piggin +Date: Wed Mar 22 00:08:00 2006 -0800 + + [PATCH] mm: less atomic ops + + In the page release paths, we can be sure that nobody will mess with our + page->flags because the refcount has dropped to 0. So no need for atomic + operations here. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4c84cacfa424264f7ad5287298d3ea4a3e935278 +Author: Nick Piggin +Date: Wed Mar 22 00:08:00 2006 -0800 + + [PATCH] mm: PageActive no testset + + PG_active is protected by zone->lru_lock, it does not need TestSet/TestClear + operations. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8d438f96d2b8eade6cbcd8adfc22dae6f5cbd6c0 +Author: Nick Piggin +Date: Wed Mar 22 00:07:59 2006 -0800 + + [PATCH] mm: PageLRU no testset + + PG_lru is protected by zone->lru_lock. It does not need TestSet/TestClear + operations. + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 46453a6e194a8c55fe6cf3dc8e1c4f24e2abc013 +Author: Nick Piggin +Date: Wed Mar 22 00:07:58 2006 -0800 + + [PATCH] mm: never ClearPageLRU released pages + + If vmscan finds a zero refcount page on the lru list, never ClearPageLRU + it. This means the release code need not hold ->lru_lock to stabilise + PageLRU, so that lock may be skipped entirely when releasing !PageLRU pages + (because we know PageLRU won't have been temporarily cleared by vmscan, + which was previously guaranteed by holding the lock to synchronise against + vmscan). + + Signed-off-by: Nick Piggin + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 2492ecc1a16b8ccf679d2999dca4f1b48aef07ee +Author: Christoph Hellwig +Date: Wed Mar 22 00:07:57 2006 -0800 + + [PATCH] mm: remove set_pgdir leftovers + + set_pgdir isn't needed anymore for a very long time. Remove the leftover + implementation on sh64 and the stub on s390. + + Signed-off-by: Christoph Hellwig + Cc: Heiko Carstens + Cc: Martin Schwidefsky + Cc: Paul Mundt + Cc: Richard Curnow + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a7f3ea728b36aff520dff1611b3ce10cff46d8fe +Author: Dmitry Torokhov +Date: Wed Mar 22 00:07:56 2006 -0800 + + [PATCH] dcdbas: convert to the new platform device interface + + Do not use platform_device_register_simple() as it is going away, define + dcdbas_driver and implement ->probe() and ->remove() functions so manual + binding and unbinding will work with this driver. + + Also switch to using attribute_group when creating sysfs attributes and + make sure to check and handle errors; explicitely remove attributes when + detaching driver. + + Signed-off-by: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d0497614e0bd54f113041966532035edba463f8e +Author: Dmitry Torokhov +Date: Wed Mar 22 00:07:55 2006 -0800 + + [PATCH] tb0219: convert to the new platform device interface + + Do not use platform_device_register_simple() as it is going away. + + Signed-off-by: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit eee8ab75c609fa0c452246f69237ff577b931243 +Author: Dmitry Torokhov +Date: Wed Mar 22 00:07:54 2006 -0800 + + [PATCH] mv64x600_wdt: convert to the new platform device interface + + mv64x600_wdt: convert to the new platform device interface Do not use + platform_device_register_simple() as it is going away. + + Signed-off-by: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d39b6cfe664079ca79ae1cfebac4725a877fd61d +Author: Dmitry Torokhov +Date: Wed Mar 22 00:07:53 2006 -0800 + + [PATCH] vr41xx: convert to the new platform device interface + + The patch does the following for v441xx seris drivers: + + - stop using platform_device_register_simple() as it is going away + - mark ->probe() and ->remove() methods as __devinit and __devexit + respectively + - initialize "owner" field in driver structure so there is a link + from /sys/modules to the driver + - mark *_init() and *_exit() functions as __init and __exit + + Signed-off-by: Dmitry Torokhov + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit f4a641d66c6e135dcfc861521e8008faed2411e1 +Author: Andrew Morton +Date: Wed Mar 22 00:07:46 2006 -0800 + + [PATCH] multiple exports of strpbrk + + Sam's tree includes a new check, which found that we're exporting strpbrk() + multiple times. + + It seems that the convention is that this is exported from the arch files, so + reove the lib/string.c export. + + Cc: Sam Ravnborg + Cc: Yoshinori Sato + Cc: David Howells + Cc: Greg Ungerer + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 83485f826bea154a0ab41e9b8689105531dd7cb2 +Author: Atsushi Nemoto +Date: Wed Mar 22 00:07:45 2006 -0800 + + [PATCH] serial: serial_txx9 driver update + + Update the serial_txx9 driver. + + * More strict check in verify_port. Cleanup. + * Do not insert a char caused previous overrun. + * Fix some spin_locks. + * Do not call uart_add_one_port for absent ports. + + Also, this patch removes a BROKEN tag from Kconfig. This driver has been + marked as BROKEN by removal of uart_register_port, but it has been solved + already on Sep 2005. + + Signed-off-by: Atsushi Nemoto + Cc: Russell King + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4024ce5e0f396447cc1e07fd65c2a1d056b066bb +Author: Joe Korty +Date: Wed Mar 22 00:07:43 2006 -0800 + + [PATCH] rtc.h broke strace(1) builds + + Git patch 52dfa9a64cfb3dd01fa1ee1150d589481e54e28e + + [PATCH] move rtc_interrupt() prototype to rtc.h + + broke strace(1) builds. The below moves the kernel-only additions lower, + under the already provided #ifdef __KERNEL__ statement. + + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit d2044a94e80b61f68ee7456f82d9b443e9ff6ac7 +Author: Alasdair G Kergon +Date: Wed Mar 22 00:07:42 2006 -0800 + + [PATCH] dm: bio split bvec fix + + The code that handles bios that span table target boundaries by breaking + them up into smaller bios will not split an individual struct bio_vec into + more than two pieces. Sometimes more than that are required. + + This patch adds a loop to break the second piece up into as many pieces as + are necessary. + + Cc: "Abhishek Gupta" + Cc: Dan Smith + Signed-off-by: Alasdair G Kergon + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 06f9d4f94a075285d25253edbf57f2cda07d4ff3 +Author: Eric W. Biederman +Date: Wed Mar 22 00:07:40 2006 -0800 + + [PATCH] unshare: Error if passed unsupported flags + + A bare bones trivial patch to ensure we always get -EINVAL on the + unsupported cases for sys_unshare. If this goes in before 2.6.16 it allows + us to forward compatible with future applications using sys_unshare. + + Signed-off-by: Eric W. Biederman + Cc: JANAK DESAI + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit b40607fc02f8248828d52d88f91b7d68df1933b0 +Author: Andrew Morton +Date: Wed Mar 22 00:07:39 2006 -0800 + + [PATCH] __get_page_state() cpumask cleanup and fix + + __get_page_state() has an open-coded for_each_cpu_mask() loop in it. + + Tidy that up, then notice that the code was buggy: + + while (cpu < NR_CPUS) { + unsigned long *in, *out, off; + + if (!cpu_isset(cpu, *cpumask)) + continue; + + an obvious infinite loop. I guess we just never call it with a holey cpu + mask. + + Even after my cpumask size-reduction work, this patch increases code size :( + + Cc: Paul Jackson + Cc: Christoph Lameter + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 68ed0040a8c9d06b73cda322a1f740749bd6e41a +Author: Ravikiran G Thirumalai +Date: Wed Mar 22 00:07:38 2006 -0800 + + [PATCH] x86: mark cyc2ns_scale readmostly + + This variable is rarely written to. Mark the variable accordingly. + + Signed-off-by: Ravikiran Thirumalai + Signed-off-by: Shai Fultheim + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 5e7a99ac452d7a4ce43b8bacb3495475e1f9fd71 +Author: Latchesar Ionkov +Date: Wed Mar 22 00:07:37 2006 -0800 + + [PATCH] v9fs: assign dentry ops to negative dentries + + If a file is not found in v9fs_vfs_lookup, the function creates negative + dentry, but doesn't assign any dentry ops. This leaves the negative entry + in the cache (there is no d_delete to mark it for removal). If the file is + created outside of the mounted v9fs filesystem, the file shows up in the + directory with weird permissions. + + This patch assigns the default v9fs dentry ops to the negative dentry. + + Signed-off-by: Latchesar Ionkov + Signed-off-by: Eric Van Hensbergen + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 8a2cda007068e838ac6494cde74c37534f04f8dc +Author: Antonino A. Daplas +Date: Wed Mar 22 00:07:36 2006 -0800 + + [PATCH] i810fb_cursor(): use GFP_ATOMIC + + The console cursor can be called in atomic context. Change memory + allocation to use the GFP_ATOMIC flag in i810fb_cursor(). + + Signed-off-by: Antonino Daplas + Cc: + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 4078006568c142a909e7889cbdc28804cec25461 +Author: Andrew Morton +Date: Wed Mar 22 00:07:35 2006 -0800 + + [PATCH] efi_call_phys_epilog() warning fix + + arch/i386/kernel/efi.c: In function `efi_call_phys_epilog': arch/i386/kernel/efi.c:118: warning: assignment makes integer from pointer without a cast + + Cc: Matt Domsch + Cc: "Tolentino, Matthew E" + Cc: Zachary Amsden + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 152475cb0a65ed73301cfbd7d7afab65536643f7 +Author: Herbert Poetzl +Date: Wed Mar 22 00:07:34 2006 -0800 + + [PATCH] don't call check_acpi_pci() on x86 with ACPI disabled + + check_acpi_pci() is called from arch/i386/kernel/setup.c even if + CONFIG_ACPI is not defined, but the code in include/asm/acpi.h doesn't + provide it in this case. + + Signed-off-by: Herbert Pötzl + Cc: "Brown, Len" + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit 9430d58e34ec3861e1ca72f8e49105b227aad327 +Author: Mike Galbraith +Date: Wed Mar 22 00:07:33 2006 -0800 + + [PATCH] sched: remove sleep_avg multiplier + + Remove the sleep_avg multiplier. This multiplier was necessary back when + we had 10 seconds of dynamic range in sleep_avg, but now that we only have + one second, it causes that one second to be compressed down to 100ms in + some cases. This is particularly noticeable when compiling a kernel in a + slow NFS mount, and I believe it to be a very likely candidate for other + recently reported network related interactivity problems. + + In testing, I can detect no negative impact of this removal. + + Signed-off-by: Mike Galbraith + Acked-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Linus Torvalds + +commit a3c44854a59f7e983c867060aa906bbf5befb1ef +Author: Jaroslav Kysela +Date: Wed Mar 22 14:37:15 2006 +0100 + + [ALSA] version 1.0.11rc4 + +commit bec1b8193651ea4394cc4d6e18152cb83e735f93 +Author: Russell King +Date: Wed Mar 22 10:22:58 2006 +0000 + + [ARM] Quieten spurious IRQ detection + + Only issue a "nobody cared" warning after 99900 spurious interrupts. + This avoids the occasional spurious interrupt causing warnings, as + per x86. + + Signed-off-by: Russell King + +commit 9d2f928ddf64ca0361562e30faf584cd33055c60 +Author: Tobias Klauser +Date: Wed Mar 22 10:53:19 2006 +0100 + + [PATCH] Intruduce DMA_28BIT_MASK + + This patch introduces the DMA_28BIT_MASK constant in dma-mapping.h + ALSA drivers using this mask are changed to use the new constant. + + Signed-off-by: Tobias Klauser + Acked-by: Takashi Iwai + Acked-by: Jaroslav Kysela + +commit 84f3430c7255668a0298d166605d27e3c96b5de4 +Author: Takashi Iwai +Date: Tue Mar 21 19:12:53 2006 +0100 + + [ALSA] hda-codec - Add support for ASUS P4GPL-X + + Modules: HDA Codec driver + + Added the support ASUS P4GPL-X with ALC880 codec. + + Signed-off-by: Takashi Iwai + +commit b2c2844c5a486020e5d564870d114a7f4cd5ea4f +Author: Takashi Iwai +Date: Tue Mar 21 19:11:50 2006 +0100 + + [ALSA] hda-codec - Add support for HP nx9420 laptop + + Modules: HDA Codec driver + + Added the support for HP nx9420 (AngelFire) laptop with AD1981HD codec. + + Signed-off-by: Takashi Iwai + +commit c6077b3000184c7f69c4798b9025e5fbd69c8c62 +Author: Takashi Iwai +Date: Tue Mar 21 16:07:13 2006 +0100 + + [ALSA] Fix memory leaks in error path of control.c + + Modules: Control Midlevel + + Fix memory leaks in error path of control.c (only with CONFIG_SND_DEBUG=y). + + Signed-off-by: Takashi Iwai + +commit c5c079e31cba3e6f93ef098911e216b79d0a84e8 +Author: Sergei Shtylyov +Date: Tue Mar 21 12:01:17 2006 +0100 + + [ALSA] AMD Au1x00: AC'97 controller is memory mapped + + Modules: MIPS AU1x00 driver + + AMD Au1x00 ALSA driver erroneously calls request_region() for AC'97 + controller registers -- the controller is actually memory mapped at + addresses 0x10000000 thru 0x100FFFFF. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Takashi Iwai + +commit bb160b850d7e285f8b15906d9c0d1916acfdb953 +Author: Sergei Shtylyov +Date: Tue Mar 21 11:58:48 2006 +0100 + + [ALSA] AMD Au1x00: fix DMA init/cleanup + + Modules: MIPS AU1x00 driver + + AMD Au1x00 ALSA driver causes kernel oops in au1000_init() by trying + to set DMA channel to -1 in yet unallocated audio streams. Here's the + patch that staightens up DMA init/cleanup code. + + Signed-off-by: Sergei Shtylyov + Signed-off-by: Takashi Iwai + +commit 97ec558a88fb03fa23aee0832a88964e76e4a4db +Author: Takashi Iwai +Date: Tue Mar 21 11:29:07 2006 +0100 + + [ALSA] hda-codec - Fix generic auto-configurator + + Modules: HDA generic driver + + Fixed the generic auto-configurator to check speaker pins in + addition. + + Signed-off-by: Takashi Iwai + +commit 82bc955f6379135e6ce35ff90c7ac411fd412c4c +Author: Takashi Iwai +Date: Tue Mar 21 11:24:42 2006 +0100 + + [ALSA] hda-codec - Fix BIOS auto-configuration + + Modules: HDA Codec driver,HDA generic driver + + - Fix autoconfig speaker/hp detection + Now it allows multiple speaker pins (e.g. Dell laptops have such config) + + - Use speaker or hp pins if no line-outs are available + This fixes the silence output on recent Dell laptops with STAC9200 + (ALSA bug#1843) + + - Fix analog/realtek/sigmatel autoconfig parser + + Signed-off-by: Takashi Iwai + +commit 19739fef0203d2f3eecc9c4b1ef25b57d85f2b30 +Author: Thibault LE MEUR +Date: Tue Mar 21 11:06:40 2006 +0100 + + [ALSA] Fixes typos in Audiophile-USB.txt + + Modules: Documentation + + Fixes typos in Audiophile-USB.txt. + + Signed-off-by: Thibault LE MEUR + Signed-off-by: Takashi Iwai + +commit 01a00e5e421b3c40240781d67bb9fd5fd9b1f0f1 +Author: Alan Horstmann +Date: Tue Mar 21 09:57:36 2006 +0100 + + [ALSA] ice1712 - typo fixes for dxr_enable module option + + Modules: ICE1712 driver + + Signed-off-by: Jaroslav Kysela + +commit d8327c784b51b57dac2c26cfad87dce0d68dfd98 +Author: Sergei Shtylylov +Date: Mon Mar 20 18:38:21 2006 +0100 + + [ALSA] AMD Au1x00: make driver build after cleanup + + Modules: MIPS AU1x00 driver + + AMD Au1x00 ALSA driver doesn't build after the recent code cleanup: + + sound/mips/au1x00.c: In function 'au1000_setup_dma_link': + sound/mips/au1x00.c:173: error: 'pointer' undeclared (first use in this function) + sound/mips/au1x00.c:173: error: (Each undeclared identifier is reported only once + sound/mips/au1x00.c:173: error: for each function it appears in.) + sound/mips/au1x00.c: In function 'snd_au1000_hw_params': + sound/mips/au1x00.c:339: warning: implicit declaration of function 'snd_mask_min' + + Signed-off-by: Takashi Iwai + +commit 6682025e1220a1ab0b6b855b7805928c3163e043 +Author: Takashi Iwai +Date: Mon Mar 20 18:31:57 2006 +0100 + + [ALSA] ice1712 - Fix wrong value types for enum items + + Modules: ICE1712 driver + + Fix the access to wrong type values for enum items in aureon.c + (ALSA bug#1527). + + Signed-off-by: Takashi Iwai + +commit 878b4789196e3cd470f843854b6b09d963214659 +Author: Jesper Juhl +Date: Mon Mar 20 11:27:13 2006 +0100 + + [ALSA] fix resource leak in usbmixer + + Modules: USB generic driver + + We may leak 'namelist' in sound/usb/usbmixer.c::parse_audio_selector_unit() + + Signed-off-by: Jesper Juhl + Signed-off-by: Takashi Iwai + +commit d61975fc6b40dadd2cd61fc9535499c7d7b806de +Author: Eugene Teo +Date: Fri Mar 17 16:32:52 2006 +0100 + + [ALSA] Fix gus_pcm dereference before NULL + + Modules: GUS Library + + The NULL check of substream is simply superfluous. It is + guaranteed to receive non-NULL substream. Thanks Takashi. + + Coverity bug #861 + + Signed-off-by: Eugene Teo + Signed-off-by: Takashi Iwai + +commit e64d2e36236175a56fd1d8b2acd784e21bdc7de6 +Author: Eugene Teo +Date: Fri Mar 17 16:32:17 2006 +0100 + + [ALSA] Fix seq_clientmgr dereferences before NULL check + + Modules: ALSA sequencer + + cptr->pool must be non-NULL there, so just the if (cptr->pool) is + superfluous. Thanks Takashi. + + Signed-off-by: Eugene Teo + Signed-off-by: Takashi Iwai + +commit 825aa97241b46d2819c1db984c86a1a9df41b8e1 +Author: Takashi Iwai +Date: Fri Mar 17 10:50:49 2006 +0100 + + [ALSA] hda-codec - Fix for Samsung R65 and ASUS A6J + + Modules: Documentation,HDA Codec driver + + Added a new model 'laptop-eapd' to AD1986A codec for Samsung R65 and + ASUS A6J laptops. + + Signed-off-by: Takashi Iwai + +commit db064e503419c32df463326a3891a973bb30582e +Author: Takashi Iwai +Date: Thu Mar 16 16:04:58 2006 +0100 + + [ALSA] hda-codec - Add support for VAIO FE550G and SZ110 + + Modules: Documentation,HDA Codec driver + + Add support for VAIO FE550G and SZ110 laptops with Sigmatel codec (7661). + The new model 'vaio' is added. + + Signed-off-by: Takashi Iwai + +commit c7a93b852bf9ffcf466b304fa3cfac8823f9b932 +Author: Clemens Ladisch +Date: Thu Mar 16 08:25:56 2006 +0100 + + [ALSA] usb-audio: add Maya44 mixer control names + + Modules: USB generic driver + + Add mixer control names for the AudioTrak Maya44 USB. + + Signed-off-by: Clemens Ladisch + +commit 9808dc962f6780ce7eac47c82400fede7f4a08b3 +Author: Clemens Ladisch +Date: Thu Mar 16 08:15:25 2006 +0100 + + [ALSA] usb-audio: add Casio PL-40R support + + Modules: USB generic driver + + Add a quirk entry for the Casio PL-40R. + + Signed-off-by: Clemens Ladisch + +commit a12606cff106335650f0e9382e87b0fb08733eff +Author: Takashi Iwai +Date: Wed Mar 15 18:24:43 2006 +0100 + + [ALSA] hda-codec - Add model entry for FIC P4M-915GD1 + + Modules: HDA Codec driver + + Add model entry for FIC P4M-915GD1 with ALC880 codec. + + Signed-off-by: Takashi Iwai + +commit 0a589d80191471754e6f6cab3015a879bca2f7d2 +Author: Takashi Iwai +Date: Wed Mar 15 14:08:20 2006 +0100 + + [ALSA] ac97 - Clean up obsolete workarounds + + Modules: AC97 Codec + + Clean up obsolete workarounds provided only for nm256. + + Signed-off-by: Takashi Iwai + +commit a23446c085faed6c1c90fba5cdd21d6990871750 +Author: Florian Schlichting +Date: Wed Mar 15 14:05:19 2006 +0100 + + [ALSA] Fix NM256 hard lock up + + Modules: NM256 driver + + Treat the nm256 mixer as a write-only device so as to avoid hangs on + initialisation. + + Signed-off-by: Florian Schlichting + Signed-off-by: Takashi Iwai + +commit 7c5706bb33687ce82f30d9ac06dd1bdf71b2262e +Author: Takashi Iwai +Date: Wed Mar 15 13:52:54 2006 +0100 + + [ALSA] ac97 - Allow drivers to set static volume resolution table + + Modules: AC97 Codec + + Add the pointer to a static volume resolution table to ac97 template, + so that the drivers can define the volume resolution, too. + + Signed-off-by: Takashi Iwai + +commit 4ccb4a4387b3ed8c5a03862ef1e6f7be484ade25 +Author: Clemens Ladisch +Date: Wed Mar 15 12:24:19 2006 +0100 + + [ALSA] usb-audio: add MDP-5/EZ-J24 support + + Modules: USB generic driver + + Add support for the Yamaha MDP-5 and EZ-J24. + + Signed-off-by: Clemens Ladisch + +commit e311334ee6bdd173d53be52f4fdffa5f39652e26 +Author: Thibault LE MEUR +Date: Tue Mar 14 11:44:53 2006 +0100 + + [ALSA] Fixes audiophile usb analog capture with the new device_setup parameter + + Modules: Documentation,USB generic driver + + The patch adds the 'device_setup' module parameter and a specific + quirk to correctly initialize the audiophile usb device: this fixes + the distorted sound bug on the Analog capture port. Backward + compatibility is achieved by simply omitting the new parameter. + + Signed-off-by: Thibault LE MEUR + Signed-off-by: Takashi Iwai + +commit ecefb192525c369dde67bf0addd4f96692a801c3 +Author: Adrian Bunk +Date: Tue Mar 14 11:16:26 2006 +0100 + + [ALSA] sound/pci/ice1712/delta.c: make 2 functions static + + Modules: ICE1712 driver + + This patch makes two needlessly global functions static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Takashi Iwai + +commit 202728d783a0fc180e7141d18186eeae167218a1 +Author: Adrian Bunk +Date: Tue Mar 14 09:44:19 2006 +0100 + + [ALSA] fix some memory leaks + + Modules: Generic drivers,ES18xx driver,CS46xx driver + + This patch fixes two memory leaks spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: Takashi Iwai + +commit 3e964432f56f05a8ef639902796e476456b230ad +Author: Clemens Ladisch +Date: Tue Mar 14 08:06:12 2006 +0100 + + [ALSA] usb-audio: add error message about missing split iso support + + Modules: USB generic driver + + Add an error message for -ENOSYS for situations when split iso support + is needed but not enabled. + + Signed-off-by: Clemens Ladisch + +commit ede3531e8ce2deb81e477e18d72ef10efeb20ebe +Author: Takashi Iwai +Date: Mon Mar 13 14:21:16 2006 +0100 + + [ALSA] hda-codec - Fix Aopen i915GMm-HFS mobo + + Modules: HDA Codec driver + + Add a model entry for Aopen i915GMm-HFS mobo with ALC880 codec. + + Signed-off-by: Takashi Iwai + +commit 5bab2482083077d1e14644db2546c54534156849 +Author: Adrian Bunk +Date: Mon Mar 13 14:15:04 2006 +0100 + + [ALSA] sound/pci/rme9652/hdspm.c: fix off-by-one errors + + Modules: RME9652 driver + + This patch fixes off-by-one errors found by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: Takashi Iwai + +commit 3a63e44420932852efd6a7d6d46cdad4d427f880 +Author: Adrian Bunk +Date: Mon Mar 13 14:14:10 2006 +0100 + + [ALSA] sound/core/: fix 3 off-by-one errors + + Modules: ALSA Core + + This patch fixes three off-by-one errors found by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: Takashi Iwai + +commit 646494007b48e8897888cd407c2b7d1d69cb2e58 +Author: Giuliano Pochini +Date: Mon Mar 13 14:11:11 2006 +0100 + + [ALSA] make control.c suspend aware + + Modules: Control Midlevel + + This patch prevents user-space apps from accessing the hardware via + control interface while the soundcard is suspended. + + Signed-off-by: Giuliano Pochini + Signed-off-by: Takashi Iwai + +commit 9230d2148a0c53188c216b446cf17ea213ebca8a +Author: Takashi Iwai +Date: Mon Mar 13 13:49:49 2006 +0100 + + [ALSA] hda-codec - Fix support of laptops with AD1986A codec + + Modules: Documentation,HDA Codec driver + + Fix the support of laptops with AD1986A HD-audio codec. + Added new models '3stack' and 'laptop'. Currently, fixed for FSC V2060 + and Samsung M50. + + Also fixed the description of missing models in ALSA-Configuration.txt. + + Signed-off-by: Takashi Iwai + +commit 0110f50b6eb7a833f0e1e4e9a58d04a03d58939c +Author: Clemens Ladisch +Date: Mon Mar 13 10:36:44 2006 +0100 + + [ALSA] bt87x: add more DVB card IDs + + Modules: BT87x driver + + Add more PCI subsystem IDs of DVB cards to the blacklist of cards the + driver is to ignore. + + Signed-off-by: Clemens Ladisch + +commit 318d27f8b424ec9e025aafe4bffa00aab5993f2f +Author: Clemens Ladisch +Date: Thu Mar 9 08:17:08 2006 +0100 + + [ALSA] usb-audio: change Casio quirk product name + + Modules: USB generic driver + + Use a generic name for USB device 0x07cf:0x6802 because this ID is used + by several devices without a product ID. + + Signed-off-by: Clemens Ladisch + +commit 32e19e882c722b41f37e90956bf12eacdaba6f2b +Author: Clemens Ladisch +Date: Thu Mar 9 07:58:39 2006 +0100 + + [ALSA] usb-audio: show USB error descriptions + + Modules: USB generic driver + + When usb_submit_urb() fails, show an error description instead of just + the error code. + + Signed-off-by: Clemens Ladisch + +commit 0243ef71acc0b5bd734b511ae6d9b4b481c1dc5e +Author: Clemens Ladisch +Date: Thu Mar 9 07:55:55 2006 +0100 + + [ALSA] usb-audio: add Casio AP-80R support + + Modules: USB generic driver + + Add a quirk for the Casio AP-80R. + + Signed-off-by: Clemens Ladisch + +commit c1fc8047310c9d3147f9521af651a5823a72d218 +Author: Takashi Iwai +Date: Mon Mar 6 14:17:31 2006 +0100 + + [ALSA] Add default entry for CTL Travel Master U553W + + Modules: HDA Codec driver + + Added the default entry of ALC880 configuration table for + CTL Travel Master U553W. + + Signed-off-by: Takashi Iwai + +commit 5e315e9248329c53a8932b71532c28240125e3c4 +Author: Dave Jones +Date: Mon Mar 6 14:03:37 2006 +0100 + + [ALSA] Fix use after free in opl3_seq and opl3_oss + + Modules: OPL3 + + Don't read from free'd memory. Also make use of the return + value, and don't register the device if something went wrong + creating the port. + + Coverity #954, #955 + + Signed-off-by: Dave Jones + Signed-off-by: Takashi Iwai + +commit 3de4414e798795ef5d719622dbf12bbe27a9e72e +Author: Dave Jones +Date: Mon Mar 6 13:31:18 2006 +0100 + + [ALSA] ad1848 double free + + Modules: AD1848 driver + + Same again, snd_ctl_add() already kfree's on error. + + Coverity #956 + + Signed-off-by: Dave Jones + Signed-off-by: Takashi Iwai + +commit bcc54f9a563f146e723ead16c76f842bcaeb694e +Author: Dave Jones +Date: Mon Mar 6 13:28:34 2006 +0100 + + [ALSA] sound/isa/sb/sb_mixer.c double kfree + + Modules: SB drivers + + snd_ctl_add() already does the free on error. + + Coverity bug #957 + + Signed-off-by: Dave Jones + Signed-off-by: Takashi Iwai + +commit c27e8c591854ef349fdf5bec777355dae04bb48f +Author: Dave Jones +Date: Mon Mar 6 13:27:39 2006 +0100 + + [ALSA] emu10k1_synth use after free + + Modules: EMU10K1/EMU10K2 driver + + Thou shalt not dereference freed memory. + + Coverity bug #958 + + Signed-off-by: Dave Jones + Signed-off-by: Takashi Iwai + +commit a2df813beab42740fa8043b3fdc9e1d15784b9ec +Author: Dave Jones +Date: Mon Mar 6 13:26:10 2006 +0100 + + [ALSA] fix usbmixer double kfree + + Modules: USB generic driver + + snd_ctl_add() kfree's the kcontrol already if we fail there, + so this driver is currently doing a double kfree. + + Coverity bug #959 + + Signed-off-by: Dave Jones + Signed-off-by: Takashi Iwai + +commit 4fcf0117d599965a5916985c9923776628e16779 +Author: Takashi Iwai +Date: Mon Mar 6 13:25:14 2006 +0100 + + [ALSA] emu10k1 - Add the entry for Audigy4 SB0400 + + Modules: EMU10K1/EMU10K2 driver + + Added the missing card entry for Audigy4 SB0400 model. + + Signed-off-by: Takashi Iwai + +commit ac57b84984859f3e1d567c031556d3de872c1a91 +Author: Alexey Dobriyan +Date: Mon Mar 6 13:21:30 2006 +0100 + + [ALSA] vx - Fix memory leak on error path + + Modules: Digigram VX core + + Noticed by Eric Sesterhenn on kernel-janitors@ + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: Takashi Iwai + +commit 1037593c8be9551d5a7835703bcaf6073ffb7ec2 +Author: David Vrabel +Date: Fri Mar 3 18:01:57 2006 +0100 + + [ALSA] CS5535: shorter delays when accessing AC'97 codec registers + + Modules: CS5535 driver + + The 10 ms sleeps while waiting for AC'97 codec register reads/writes to + complete are excessive given the maxmium time is one AC'97 frame (~21 us). + + With AC'97 codecs with integrated touchscreens (like the UCB1400) this + improves the interactive performance of the touchscreen. + + Signed-off-by: David Vrabel + Signed-off-by: Takashi Iwai + +commit ae6b813a4dbba2713df497c032798b845289653f +Author: Takashi Iwai +Date: Fri Mar 3 16:47:17 2006 +0100 + + [ALSA] hda-codec - Add lg model for LG laptop + + Modules: Documentation,HDA Codec driver + + Added a new model 'lg' for LG laptop (m1 express dual) with ALC880 codec. + Also clean up the initialization/unsol_event hooks in patch_realtek.c. + + Signed-off-by: Takashi Iwai + +commit b3b0abe11d606fa2344793edd3d69b98b430b0d4 +Author: Clemens Ladisch +Date: Fri Mar 3 14:08:43 2006 +0100 + + [ALSA] return ENODEV for disconnected devices + + Modules: ALSA Core + + Add dummy functions that return -ENODEV for the struct file_operations + of a disconnected device. Without such functions, userspace would get + ENOTTY. + + Signed-off-by: Clemens Ladisch + +commit 0b7bed4ec2a16434336e018505b66bd51bb35560 +Author: Takashi Iwai +Date: Thu Mar 2 15:35:55 2006 +0100 + + [ALSA] Fix typos in document + + Modules: Documentation + + Fixed typos in document. + + Signed-off-by: Takashi Iwai + +commit a7ee8201a507fe1f89f0e5fc32516daed6621ffd +Author: Takashi Iwai +Date: Wed Mar 1 20:05:39 2006 +0100 + + [ALSA] Fix missing AD1986a capsrc + + Modules: HDA Codec driver + + Fix missing AD1986a capsrc setting in the last patch. + + Signed-off-by: Takashi Iwai + +commit 18a815d7426986890b88078ea63b77732baca0b5 +Author: Takashi Iwai +Date: Wed Mar 1 19:54:39 2006 +0100 + + [ALSA] hda-codec - Fix AD198x recording and add HP model + + Modules: HDA Codec driver + + - Fixed recording of AD1981HD/AD1983/AD1986A + - Added model 'hp' to AD1981HD for HP nx6320 + + Signed-off-by: Takashi Iwai + +commit 42611c02ac31e44abd53893209460ce60205cb8e +Author: Takashi Iwai +Date: Wed Mar 1 19:52:23 2006 +0100 + + [ALSA] via82xx - Add dxs entry for ASRock mobo + + Modules: VIA82xx driver + + Add dxs_support entry for ASRock mobo. + + Signed-off-by: Takashi Iwai + +commit ed345f8f8630d6a3f52d899e181968e2bf8e4be8 +Author: Takashi Iwai +Date: Wed Mar 1 14:16:53 2006 +0100 + + [ALSA] Update description of hda-intel models + + Modules: Documentation + + Updated the description of hda-intel models for realtek codecs. + + Signed-off-by: Takashi Iwai + +commit 834be88d136ee82828e3ce1b34fa7a1dcf947b81 +Author: Takashi Iwai +Date: Wed Mar 1 14:16:17 2006 +0100 + + [ALSA] hda-codec - Fix ALC262 for Fujitsu laptop + + Modules: HDA Codec driver,HDA generic driver + + Add 'fujitsu' model for ALC262 patch to support a FSC laptop. + The internal speaker is turned on/off with jack sensing. + + Also fixed alc262 'basic' model. + + Signed-off-by: Takashi Iwai + +commit 381e3cda682abcef2acd7828e9639f4ceb95880f +Author: Doug McLain +Date: Tue Feb 28 11:53:06 2006 +0100 + + [ALSA] ice1712 - Fix wordclock status on Delta1010LT + + Modules: ICE1712 driver + + I posted this patch to bug 1806 a while back, and have been awaiting a + reply or commit. It currently reports the Locked/No Signal text + backwards in envy24control, since i was using an older version of + envy24control when I wrote the original code. The Locked/No Signal test + was recently reversed in envy24control cvs, so the test in my code needs + to be reversed as well. Here is the patch, once again. + + Signed-off-by: Takashi Iwai + +commit 92621f130e60da865de2f5aa6d3dec2ee844b803 +Author: Jonathan Woithe +Date: Tue Feb 28 11:47:47 2006 +0100 + + [ALSA] HDA/ALC260: 7/7 - add SPDIF enable to test model + + Modules: HDA Codec driver + + This patch adds mixer controls to the 'test' ALC260 model which allow the + user to selectively enable or disable the SPDIF output pins. This should + assist people identify digital outputs on machines which bring them to the + outside world. + + Note that while the patch *should* work, I cannot personally verify it since + my laptop doesn't bring the SPDIF lines out. + + As for the GPIO switches added in patch 4, these controls are currently + only compiled in if debug mode is selected. + + Signed-off-by: Takashi Iwai + +commit f7ace40d14c46dca9a12ab753677adc17b1b906c +Author: Jonathan Woithe +Date: Tue Feb 28 11:46:14 2006 +0100 + + [ALSA] HDA/ALC260: 6/7 - Fujitsu/test model tweaks + + Modules: HDA Codec driver + + This patch is janitorial - it cleans up a number of cosmetic issues with + the 'fujitsu' and 'test' models. Issues addressed: + + * spaces instead of tabs used for some indents, + + * clarified/corrected selected comments. + + Unlike a patch from earlier this week, this keeps both ADCs connected to + the mic1 pin widget by default. I believe this is the better default, since + some laptops don't bring the line1 widget to the outside world. Most (if + not all) do bring mic1 out though, so it seems to me that this default + should remain in place. + + Signed-off-by: Takashi Iwai + +commit 0bfc90e95946ac420e2de049707232ce18ddeba9 +Author: Jonathan Woithe +Date: Tue Feb 28 11:45:11 2006 +0100 + + [ALSA] HDA/ALC260: 5/7 - add 'acer' model + + Modules: HDA Codec driver + + This patch adds a new 'acer' model. It is based on work by Rimas and many + other dedicated Acer owners over the past few weeks (see bug number + 1618) - kudos to them. This adds support for a variety of Acer laptops, + although we are still in the process of collecting pci/subsystem IDs to add. + There are still some potentially outstanding issues: there are reports that + the CD control might not yet be functional for example. However, the time + is probably right to get a 'first cut' into the kernel which can be refined + as more test reports come in. + + From the reports by various Acer owners, this code allows them to record + from internal mics and external jacks. Playback also seems to work to all + external jacks and the internal speaker. The 'beep' control doesn't appear + functional at the moment. + + This patch depends on the changes made in patch 3/7. + + Signed-off-by: Takashi Iwai + +commit 5c8f858d71054960f08c46703a3f0fb36a752079 +Author: Jonathan Woithe +Date: Tue Feb 28 11:43:27 2006 +0100 + + [ALSA] HDA/ALC260: 4/7 - add GPIO switches to test model + + Modules: HDA Codec driver + + This patch adds 'test' model mixer switches for the GPIO controls found on + the ALC260. It has been found that some laptops (eg: Acer) can use these to + enable particular controls, so it would be useful to have access to these + via the 'test' model. It will make testing new models easy, especially if + certain outputs cannot be made to work any other way. + + This patch *should* work, but because the GPIO pins don't do anything in + my laptop I cannot personally verify that all this works as expected. + + Signed-off-by: Takashi Iwai + +commit d57fdac0691d500d5c697e452f769335b22a75e3 +Author: Jonathan Woithe +Date: Tue Feb 28 11:38:35 2006 +0100 + + [ALSA] HDA/ALC260: 3/7 - generalise some structures + + Modules: HDA Codec driver + + This patch generalises a structure added for the 'fujitsu' model but which + is potentially useful for other models as well. It turns the + 'alc260_fujitsu_adc_nids' array into 'alc260_dual_adc_nids'; for other + models which decide to utilise the dual ADC functionality there's really + no reason why they need to define their own list of ADC nids. + + The 'fujitsu' model preset is adjusted accordingly. + + Signed-off-by: Takashi Iwai + +commit cdcd9268a1b03c6695ea07983ce029b2b4a099d8 +Author: Jonathan Woithe +Date: Tue Feb 28 11:36:42 2006 +0100 + + [ALSA] HDA/ALC260: 2/7 - switch pin buffer enables + + Modules: HDA Codec driver + + This patch adds functionality which switches the input/output buffer enables + of retasking pins when the user changes their mode with the mode control. + This probably reduces noise *slightly* for recording compared to the case + where both input and output buffers were enabled simultaneously. + + Signed-off-by: Takashi Iwai + +commit 17e7aec680a252ec0cea6d886d3983319af43ac4 +Author: Jonathan Woithe +Date: Tue Feb 28 11:35:18 2006 +0100 + + [ALSA] HDA/ALC260: 1/7 - Fix test model input mux label + + Modules: HDA Codec driver + + This patch fixes input mux labels used for the ALC260 'test' model. This is + needed to avoid confusion which comes about because the two ADCs in the + ALC260 have slightly different mappings for their input selectors. Since + this is just the test model it's sufficient to simply report both options + where they exist. If a model comes along for which this becomes an issue, + the ALC260 input mux code will have to be extended to allow different mux + layouts for different ADCs. + + Signed-off-by: Takashi Iwai + +commit 2a578f3b4c5dbac4828de52e72bb79f3e9f4d1a2 +Author: Jesper Juhl +Date: Mon Feb 27 18:35:46 2006 +0100 + + [ALSA] Don't NULL check vfree argument in pdaudiocf_pcm.c + + Modules: PDAudioCF driver + + Don't check pointers passed to vfree for null in pdaudiocf_pcm.c + + Signed-off-by: Jesper Juhl + Signed-off-by: Takashi Iwai + +commit 0bbbc4ca7e2459f2750bd4bd8dda2ccbf7a71f02 +Author: Takashi Iwai +Date: Mon Feb 27 17:23:46 2006 +0100 + + [ALSA] opti9x - Fix compile without CONFIG_PNP + + Modules: Opti9xx drivers + + Fix compile errors without CONFIG_PNP. + + Signed-off-by: Takashi Iwai + +commit a5a6bbd9b2481dd556236ea866424590f5f987a4 +Author: Takashi Iwai +Date: Mon Feb 27 17:20:41 2006 +0100 + + [ALSA] cs4236 - Fix a typo + + Modules: CS4236+ driver + + Fixed a typo in snd_cs4236_put_master_digital(), resulting in silence + right channel. + + Signed-off-by: Takashi Iwai + +commit 62f09c3d321c82981ae3f2dd7e32bc4c73379a7e +Author: Clemens Ladisch +Date: Mon Feb 27 09:53:03 2006 +0100 + + [ALSA] usb-audio: optimize snd_usbmidi_count_bits() + + Modules: USB generic driver + + Reduce the code size of the snd_usbmidi_count_bits() function by using + simpler operations. + + Signed-off-by: Clemens Ladisch + +commit 62c5549ee246fa30606f918f97c6b3cde2831292 +Author: Takashi Iwai +Date: Wed Feb 22 17:14:34 2006 +0100 + + [ALSA] Fix sleep in atomic in virmidi driver + + Modules: ALSA sequencer + + Debug: sleeping function called from invalid context at /usr/src/linux/include/linux/rwsem.h:43 + in_atomic():1, irqs_disabled():0 + [] snd_seq_deliver_event+0xb4/0x1a8 [snd_seq] + [] snd_seq_kernel_client_dispatch+0x6c/0x7c [snd_seq] + [] snd_virmidi_output_trigger+0xca/0xe5 [snd_seq_virmidi] + + Signed-off-by: Takashi Iwai + +commit e661d0ddc58740eca41313fbb01f1612ff9c7878 +Author: Takashi Iwai +Date: Tue Feb 21 14:14:50 2006 +0100 + + [ALSA] pcm - Move PAUSE ioctl to common ioctl handler + + Modules: PCM Midlevel + + Moved PAUSE ioctl to the common ioctl handler. + A capture stream may issue PAUSE, too. + + Signed-off-by: Takashi Iwai + +commit 8278ca8feb2748cf02d756ac6c5b9ab2e047c84a +Author: Takashi Iwai +Date: Mon Feb 20 11:57:34 2006 +0100 + + [ALSA] Fix check of enable module option + + Fix the check of enable module option in probe of platform_device drivers. + It shouldn't break the loop but just ignore if enable[i] is false. + + Signed-off-by: Takashi Iwai + +commit 1a56f8d662ec7fc86f2c408d289fa07cdb781746 +Author: Takashi Iwai +Date: Thu Feb 16 19:51:10 2006 +0100 + + [ALSA] hda-intel - Auto-correction of the DMA position mode + + Modules: HDA Intel driver + + Switch the method to measure the current DMA position automatically + from position-buffer mode to LPIB-read mode with a sanity check. + Some hardwares seems to have problem with the position buffer. + + Signed-off-by: Takashi Iwai + +commit 111d3af5f5fbf0e28570f1c01e83444d73c68a25 +Author: Takashi Iwai +Date: Thu Feb 16 18:17:58 2006 +0100 + + [ALSA] hda-intel - Automatic correction to single_cmd mode + + Modules: HDA Codec driver,HDA Intel driver + + Switch to single_cmd mode automatically as a fallback when CORB/RIRB + communication doesn't work well. It may make the driver working on + some devices with broken BIOS/ACPI support. + + Signed-off-by: Takashi Iwai + +commit 353b9e667042d6faa15a41df022bf38c949a7b2f +Author: Takashi Iwai +Date: Thu Feb 16 18:16:17 2006 +0100 + + [ALSA] hda-codec - Add missing model entries for Intel 945 boards + + Modules: HDA Codec driver + + Added the missing entries for Intel 945 boards. + + Signed-off-by: Takashi Iwai + +commit 253b999f5a620be81db4cfa31f76873b639ec9a2 +Author: Jaroslav Kysela +Date: Wed Feb 15 13:31:23 2006 +0100 + + [ALSA] intel8x0 - wait for ICH_RESETREGS + + Modules: Intel8x0 driver + + It seems that hardware requires some time to reset bus master registers. + We need to wait until ICH_RESETREGS bit is not released. + + The suggestion and symptom was described by Mike Gorchak . + + Signed-off-by: Jaroslav Kysela + +commit f7004f3975591f3d4cdf457f879e9ede57394500 +Author: Jaroslav Kysela +Date: Fri Feb 10 08:42:17 2006 +0100 + + [ALSA] ice1712 - Delta 1010LT S/PDIF fixes + + Modules: ICE1712 driver + + See ALSA bug#1806 for details. + + Signed-off-by: Jaroslav Kysela + +commit 9c4be3d334808d1dedea7db0ae84759bfac8e18e +Author: Jesper Juhl +Date: Thu Feb 9 20:04:16 2006 +0100 + + [ALSA] no need to check pointers passed to vfree() for NULL + + Modules: Digigram VX core,USB generic driver + + There's no need to check pointers passed to vfree() for NULL. + + Signed-off-by: Jesper Juhl + Signed-off-by: Takashi Iwai + +commit dbc967760b075aef3b181deda6639d73bbd0ad07 +Author: Takashi Iwai +Date: Thu Feb 9 16:29:44 2006 +0100 + + [ALSA] ac97 - Remove duplicated entry in lm4550_restbl + + Modules: AC97 Codec + + Removed the duplicated entry in lm4550_restbl. + + Signed-off-by: Takashi Iwai + +commit d08a23e2509e8e80637b4dfa5607ea00b9151b0a +Author: Ken Arromdee +Date: Thu Feb 9 13:50:26 2006 +0100 + + [ALSA] ad1816a - Fix PCM trigger direction + + Modules: AD1816A driver + + Fixed the bug of capture with Shark Predator ISA resulting in: + arecord: pcm_read:1196: read error: Input/output error + + Signed-off-by: Takashi Iwai + +commit bd84b0cc99d267d6512f01a55af7dbb673f784af +Author: Takashi Iwai +Date: Thu Feb 9 12:04:36 2006 +0100 + + [ALSA] via82xx - Add dxs entry for FSC Amilo L7300 + + Modules: VIA82xx driver + + Added dxs_support entry for FSC Amilo L7300. + + Signed-off-by: Takashi Iwai + +commit 7cf51e48315d87b4c1cf600d611894f45f661142 +Author: Jonathan Woithe +Date: Thu Feb 9 12:01:26 2006 +0100 + + [ALSA] hda: ALC260 test model implementation + + Modules: HDA Codec driver + + The following patch adds a 'test' ALC260 model specification to the + patch_realtek.c driver if CONFIG_SND_DEBUG is set. This is similar to the + 'test' ALC880 model in that it sets up mixer controls for almost everything + to make it easier for people to test their laptop/soundcard when working out + what pin widgets are connected to which real-world devices. + + This patch assumes my previous patch (adding the second PCM to the ALC260) + has previously been applied since it uses infrastructure added by that + patch. + + In developing this patch it was found that not all retasking pins accept all + the modes - in particular, some ignore the VREFxx variants. The pin mode + control has therefore been tweaked to prevent this becoming a problem in + mixer applications. + + Signed-off-by: Takashi Iwai + +commit 8b33a5aa08c4e462360d812386dcecc0467efd7b +Author: Takashi Iwai +Date: Thu Feb 9 11:57:01 2006 +0100 + + [ALSA] hda: minor correction to fujitsu ALC260 initverbs + + Modules: HDA Codec driver + + Jonathan Woithe + + The following patch changes the initverbs associated with the output sum + widgets 0x08, 0x09 and 0x0a used with the fujitsu model in patch_realtek.c. + It is against alsa 1.0.11rc3. + + Currently these widgets have their output muted, but a close reading of the + datasheet suggests that they don't actually have an output mute. They have + an *input* mute for each of their two inputs and a single output gain. This + patch therefore activates the input mutes and zeros the output gain. It has + not yet been tested but the above interpretation of the ALC260 datasheet + seems correct. + + Signed-off-by: Takashi Iwai + +commit 4c5186ed6b25278df595edf2d355ee87b00c4426 +Author: Jonathan Woithe +Date: Thu Feb 9 11:53:48 2006 +0100 + + [ALSA] hda: add PCM for 2nd ADC on ALC260 + + Modules: HDA Codec driver + + The following patch against alsa 1.0.11rc3 creates a PCM device (pcm1c) for + the second ADC present on the ALC260 codec used by the hda driver. It also + defines a new mixer control allowing the mode of retasking pins to be set; + this means a user can (for example) designate the headphone jack to be a + second input. With this patch in place it is possible to do 4 channel + recording on laptops equipped with an ALC260 codec assuming both a stereo + line-in jack is provided in addition to a headphone jack. + + Mixer controls are provided to allow the headphone jack to be switched as + an input. In addition, an (input only) mode control is configured for + the line-in jack to allow a bias voltage to be requested (VREF80 or VREF50) + so headsets based on condensor microphones have a chance of working. + + This patch has been tested on a Fujitsu S7020 laptop and as such these + features are currently only configured for the 'fujitsu' model. + + Signed-off-by: Takashi Iwai + +commit ba22429d3ea3b9945735b88d4dde74711171ffab +Author: Charl Coetzee +Date: Thu Feb 9 11:48:21 2006 +0100 + + [ALSA] ac97 - Added a codec patch for LM4550 + + Modules: AC97 Codec + + Added a codec patch for LM4550. It sets up a static volume resolution + table. + + Signed-off-by: Takashi Iwai + +commit 50dabc2d1139ba01362418874152aeeb591a4544 +Author: Takashi Iwai +Date: Thu Feb 9 11:45:20 2006 +0100 + + [ALSA] ac97 - Add support of static resolution tables + + Modules: AC97 Codec + + Added the support of static resolution table support for codecs + that the driver cannot probe the volume resolution properly. + + The table pointer should be set in each codec patch. + + Signed-off-by: Takashi Iwai + +commit b2b8229dde970b95e407d90a140e8a8753e1f0f6 +Author: Clemens Ladisch +Date: Wed Feb 8 12:38:23 2006 +0100 + + [ALSA] usb-audio: add Miditech Play'n Roll support + + Modules: USB generic driver + + Add a quirk entry for the Miditech Play'n Roll. + + Signed-off-by: Clemens Ladisch + +commit abf58f095525c0e46b4ee64a4f9c2084b4c08f4c +Author: Jaroslav Kysela +Date: Wed Feb 8 09:10:36 2006 +0100 + + [ALSA] bt848 - added Leadtek Winfast tv 2000xp delux to whitelist + + Modules: BT87x driver + + - added 0x107d:0x6606 to whitelist + - print also the pci device ID for developers when model is not known + + Signed-off-by: Jaroslav Kysela + +commit 531af46279fe113f9e41bd5167c8868c936813b5 +Author: Alan Horstmann +Date: Wed Feb 8 07:40:33 2006 +0100 + + [ALSA] ice1712 - disable unused ADCs & DACs on DMX6fire + + Modules: ICE1712 driver + + Change the value written to hardware configuration register of envy24 chip + in the case of Terratec DMX6fire to restrict the active ADCs & DACs to 6. + + Also add the dxr_enable module option to eventually leave the old behaviour + when user requests. + + Signed-off-by: Alan Horstmann + Signed-off-by: Jaroslav Kysela + +commit cc7a59bd8dcee9b01e0c9ab21380071f0ae6ef0d +Author: Clemens Ladisch +Date: Tue Feb 7 17:11:06 2006 +0100 + + [ALSA] usb-audio: rename QUIRK_MIDI_MIDITECH to QUIRK_MIDI_CME + + Modules: USB generic driver + + Rename QUIRK_MIDI_MIDITECH to QUIRK_MIDI_CME because Miditech keyboards + are built by CME and use the same protocol, and don't force a Miditech + product name for the USB ID used by both Miditech and CME UF-x + keyboards. + + Signed-off-by: Clemens Ladisch + +commit e957ebf164e880ddb0c057418195db47d013c4ac +Author: Jaroslav Kysela +Date: Thu Feb 2 07:56:54 2006 +0100 + + [ALSA] ice1712 & cs8427 - fix problem for S/PDIF input setup + + Modules: I2C cs8427,ICE1712 driver + + See ALSA bug#1785 for more details. + + Signed-off-by: Jaroslav Kysela + +commit 2ba8c15c738b64b4d3acaace1e19750362ff2b69 +Author: Takashi Iwai +Date: Tue Jan 31 14:44:28 2006 +0100 + + [ALSA] Removed unneeded page-reserve + + Modules: Memalloc module + + Removed unneeded page-reservation. + + Signed-off-by: Takashi Iwai + +commit ea50888d83cfb797ff7efadedc033b33bc2064bc +Author: Takashi Iwai +Date: Mon Jan 23 15:49:18 2006 +0100 + + [ALSA] Use dma_alloc_coherent() hack on i386 only + + Modules: Memalloc module + + Use dma_alloc_coherent() hack on i386 only (as a valid arch). + + Signed-off-by: Takashi Iwai + +commit c82590d2b2877ec846c5313ea897420209b91ea7 +Author: Takashi Iwai +Date: Fri Jan 20 17:13:45 2006 +0100 + + [ALSA] Fix mulaw -> linear conversion in OSS PCM emulation + + Modules: ALSA<-OSS emulation + + Fixed the missing mulaw -> linear conversion in OSS PCM emulation code. + + Signed-off-by: Takashi Iwai + +commit d6ec894b6d6bf12885a34a4667bccb7f67e2916c +Author: Takashi Iwai +Date: Fri Jan 20 14:05:06 2006 +0100 + + [ALSA] Add the notes on PM to ens1370/ens1371 sections + + Modules: Documentation + + Add the notes on PM to ens1370/ens1371 sections. + + Signed-off-by: Takashi Iwai + +commit 119c4ff52e5250a476054e6faca9a85422a0402b +Author: Clemens Ladisch +Date: Thu Jan 19 08:25:19 2006 +0100 + + [ALSA] usb-audio: add UM-1EX/UM-2EX information + + Modules: USB generic driver + + Add comments with information about UM-1EX/UM-2EX devices. + + Signed-off-by: Clemens Ladisch + +commit 05422575d4bc5d1a6aff22dfa9a0b5bc701ccf6f +Author: Clemens Ladisch +Date: Wed Jan 18 15:44:53 2006 +0100 + + [ALSA] usb-audio: fix number of G-70 ports + + Modules: USB generic driver + + The G-70 has one MIDI port in each direction, no two. + + Signed-off-by: Clemens Ladisch + +commit 3f72a30ccfd5054c01fc3bb0d37241df5380a54c +Author: Jaroslav Kysela +Date: Wed Jan 18 11:50:40 2006 +0100 + + [ALSA] snd_pcm_format_name() is no longer exported + + Modules: PCM Midlevel,USB generic driver + + Because snd_pcm_format_name() function is used only for informational + purposes, it is no longer exported from the PCM midlevel to reduce + space and dependency. usbaudio module shows only numeric value for format. + + Signed-off-by: Jaroslav Kysela + +commit cdca881d79dc4133b35db5c855b688ee9cba12a9 +Author: Clemens Ladisch +Date: Wed Jan 18 08:53:32 2006 +0100 + + [ALSA] usb-audio: add Roland G-70 support + + Modules: USB generic driver + + Add a quirk entry for the Roland G-70. + + Signed-off-by: Clemens Ladisch + +commit 5a25c5cfd4f61f514decca3c4106210fb168ce19 +Author: Jaroslav Kysela +Date: Wed Jan 18 08:02:24 2006 +0100 + + [ALSA] ymfpci - make rear channel swap optional + + Modules: YMFPCI driver + + Added rear_swap module option / kernel parameter to configure the rear + channel swapping. Default value is enable to make the AC3 passthrough + working, but analog only users might revert the previous behaviour. + + Signed-off-by: Jaroslav Kysela + +commit 12aa757905d09b1dc2c1c3d0de3fa8f4c9726f2b +Author: Ingo Molnar +Date: Mon Jan 16 16:36:05 2006 +0100 + + [ALSA] semaphore -> mutex (Archs, misc buses) + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Takashi Iwai + +commit 62932df8fb20ba2fb53a95fa52445eba22e821fe +Author: Ingo Molnar +Date: Mon Jan 16 16:34:20 2006 +0100 + + [ALSA] semaphore -> mutex (PCI part) + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Takashi Iwai + +commit 8b7547f95cbe8a5940df62ed730646fdfcba5fda +Author: Ingo Molnar +Date: Mon Jan 16 16:33:08 2006 +0100 + + [ALSA] semaphore -> mutex (ISA part) + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Takashi Iwai + +commit ef9f0a42db987e7e2df72289fb4522d24027786b +Author: Ingo Molnar +Date: Mon Jan 16 16:31:42 2006 +0100 + + [ALSA] semaphore -> mutex (driver part) + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Takashi Iwai + +commit 1a60d4c5a0c4028559585a74e48593b16e1ca9b2 +Author: Ingo Molnar +Date: Mon Jan 16 16:29:08 2006 +0100 + + [ALSA] semaphore -> mutex (core part) + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Takashi Iwai + +commit f0283f45a04d5cf31512e5e390a38504d97e7a97 +Author: Takashi Iwai +Date: Mon Jan 16 12:59:01 2006 +0100 + + [ALSA] au88x0 - Fix structs for equalizer + + Modules: au88x0 driver + + Fixed the structures for equalizer. + + Signed-off-by: Takashi Iwai + +commit 95b712965f0a50365cc0128dacc27acf562f2ff1 +Author: Mark Salazar +Date: Mon Jan 16 11:35:40 2006 +0100 + + [ALSA] #4/4 for Zoom Video - add Zoom Video support + + Modules: ES18xx driver + + Forth of 4 es18xx.c patches culminating in Zoom Video support. + + This patch adds Zoom Video support for those chipsets that support it. + + Testing: + This work was initially done on the source from the Debian Sarge ALSA + package, then tested + on an ES1879. I could not test the Zoom Video function for an ES1878 or + ES1869. + Patches were created against the Sarge code and then edited to apply + correctly to the + ALSA cvs code. Lastly the patched ALSA cvs code was test for successful + compilation. + No additional testing was done on the ALSA cvs version. + + One quirk (noted in my comments below) is that apparently the datasheet + is wrong + for one of the ES1879 Zoom Video 'enable' bits, because + 1) if you set this bit it messes up PCM playback (speaker_test play a + lower frequency) + 2) even if you don't set this bit Zoom Video still works. + I added a control to toggle the bit on just in case there might be a + version of the + ES1879 that requires it, but I expect noone will need it. + + Signed-off-by: Mark Salazar + Signed-off-by: Takashi Iwai + +commit 14086771c04acecc81e3985ca3118b330324194d +Author: Mark Salazar +Date: Mon Jan 16 11:33:52 2006 +0100 + + [ALSA] #3/4 for Zoom Video - change Hardware Volume interrupt handling + + Modules: ES18xx driver + + Third of 4 es18xx.c patches culminating in Zoom Video support. + + This patch changes the Hardware Volume support to reflect the fact that + not all of the + supported chipsets have seperate registers dedicated to the Hardware + Volume inputs. Although + all the chipsets can generate an HWV interrupt whenever a Hardware + Volume input is received + only those with seperate HWV registers can split the HWV registers from + the Master volume + registers. + + Testing: + This work was initially done on the source from the Debian Sarge ALSA + package, then tested + on an ES1879 and an ES1878 machine. Patches were created against the + Sarge code and then edited + to apply correctly to the ALSA cvs code. Lastly the patched ALSA cvs + code was test for + successful compilation. No additional testing was done on the ALSA cvs + version. + + Signed-off-by: Mark Salazar + Signed-off-by: Takashi Iwai + +commit f4df221f8fe129ac2fa2a2a4306b7355cf7d05d6 +Author: Mark Salazar +Date: Mon Jan 16 11:31:14 2006 +0100 + + [ALSA] #2/4 for Zoom Video - resolve number of record sources + + Modules: ES18xx driver + + Second of 4 es18xx.c patches culminating in Zoom Video support. + + This patch changes the 'record source' mux routines to reflect the fact + that not all of the + supported chipsets have 8 possible inputs. Some have 4 and some have 5. + + Testing: + This work was initially done on the source from the Debian Sarge ALSA + package, then tested + on an ES1879 and an ES1878 machine. Patches were created against the + Sarge code and then edited + to apply correctly to the ALSA cvs code. Lastly the patched ALSA cvs + code was test for + successful compilation. No additional testing was done on the ALSA cvs + version. + + Signed-off-by: Mark Salazar + Signed-off-by: Takashi Iwai + +commit c1f6d41593d3ef1f778fd6892cc4b916050c7cb9 +Author: Mark Salazar +Date: Mon Jan 16 11:29:09 2006 +0100 + + [ALSA] #1/4 for Zoom Video - resolve common vs chipset specific mixer controls + + Modules: ES18xx driver + + First of 4 es18xx.c patches culminating in Zoom Video support. + While adding support for Zoom Video to the es18xx driver I found some of + the mixer controls + were wrong. Since you guys went to the trouble of supplying the + datasheets for the supported + chipsets I did a review of all of them and tried to get es18xx.c to + accurately reflect the + proper mixer controls for each chipset. If the datasheets are wrong then + so are my patches. + + This first patch moves some controls from the common-to-all-chipsets array + 'snd_es18xx_base_controls' to a chipset-specific array and adds code to + manage that new array. + Also while testing on my ES1878 test machine I discovered it needed a + couple of udelays in + the identify function so those are in this patch as well. + + Testing: + This work was initially done on the source from the Debian Sarge ALSA + package, then tested + on an ES1879 and an ES1878 machine. Patches were created against the + Sarge code and then edited + to apply correctly to the ALSA cvs code. Lastly the patched ALSA cvs + code was test for + successful compilation. No additional testing was done on the ALSA cvs + version. + + Signed-off-by: Mark Salazar + Signed-off-by: Takashi Iwai + +commit 415b09e4559b0c95666af3cebe918386212aef98 +Author: Clemens Ladisch +Date: Mon Jan 16 08:03:52 2006 +0100 + + [ALSA] usb-audio: add Edirol PC-50 support + + Modules: USB generic driver + + Add a quirk entry for the Edirol PC-50. + + Signed-off-by: Clemens Ladisch + +commit f7cbb7fcd3bae5264a079e06411b35366da9bd4d +Author: Takashi Iwai +Date: Fri Jan 13 18:48:06 2006 +0100 + + [ALSA] Fix snd_xxx_t typedefs + + Modules: PXA Mainstone driver,CX88 driver,SAA7134 driver + + Replace snd_xxx_t typedefs with explicit structs. + + Signed-off-by: Takashi Iwai + +commit 97c67b65cbdfd19887450ae1b80ddbb54de9559d +Author: Takashi Iwai +Date: Fri Jan 13 17:16:29 2006 +0100 + + [ALSA] au88x0 - 64bit arch fixes + + Modules: au88x0 driver + + Fix the driver codes to run on 64bit architectures. + The patch taken from ALSA BTS bug#1047. + + Signed-off-by: Takashi Iwai + +commit 7a6c8ff1ef83df4ce44b586999e54966d8e5bda8 +Author: Takashi Iwai +Date: Fri Jan 13 13:56:33 2006 +0100 + + [ALSA] Update description of ice1724 driver + + Modules: Documentation + + Updated the description of ice1724 driver. + + Signed-off-by: Takashi Iwai + +commit 45fe722ba814dc50410729a473022c550dd96910 +Author: Takashi Iwai +Date: Fri Jan 13 13:50:16 2006 +0100 + + [ALSA] ice1724 - Add support of Prodigy-7.1LT + + Modules: ICE1712 driver + + Added the support of Prodigy-7.1LT board. + The patch taken from ALSA BTS bug#1090. + + Signed-off-by: Takashi Iwai + +commit 0534ab4279bd25e2d0a888af07466446dac05d74 +Author: Takashi Iwai +Date: Fri Jan 13 12:09:12 2006 +0100 + + [ALSA] Clean up pcm-oss plugins + + Modules: ALSA<-OSS emulation + + Clean up pcm-oss plugin codes. + Removed dead codes, and simplified route/rate plugins. + + Signed-off-by: Takashi Iwai + +commit 9d83911ac082c6d63c1c08f235349113d8c1d0a3 +Author: Takashi Iwai +Date: Fri Jan 13 11:32:52 2006 +0100 + + [ALSA] Fix a typo + + Modules: ALSA<-OSS emulation + + Fixed a typo. + + Signed-off-by: Takashi Iwai + +commit 21a3479a0b606d36fe24093f70a1c27328cec286 +Author: Jaroslav Kysela +Date: Fri Jan 13 09:12:11 2006 +0100 + + [ALSA] PCM midlevel & PCM OSS - make procfs & OSS plugin code optional + + Modules: ALSA Core,PCM Midlevel,ALSA<-OSS emulation,USB generic driver + + 1) The verbose procfs code for the PCM midlevel and usb audio + can be removed now (more patches will follow). + CONFIG_SND_VERBOSE_PROCFS + 2) The PCM OSS plugin system can be also compiled optionaly. + CONFIG_SND_PCM_OSS_PLUGINS + + Signed-off-by: Jaroslav Kysela + +commit 153abaa4ff0500070a282dd0868367d69388d527 +Author: Clemens Ladisch +Date: Fri Jan 13 07:48:59 2006 +0100 + + [ALSA] ymfpci: fix swapped channels in SPDIF output + + Modules: YMFPCI driver + + The routing of the effect 2/3 channels to the digital output is the + opposite of the rear analog output (left/right swapped). + + We make the order correct for the digital output (which will make the + analog rear have the channels swapped) to make AC3 output work. + + Signed-off-by: Clemens Ladisch + +commit 27346166a9b3b9eee586bce212502cddf9685a07 +Author: Takashi Iwai +Date: Thu Jan 12 18:28:44 2006 +0100 + + [ALSA] hda-intel - Add single_cmd option for debugging + + Modules: Documentation,HDA Intel driver + + Added single_cmd module option for debugging in the case CORB/RIRB + doesn't work well (e.g. due to wrong irq routings). + + Signed-off-by: Takashi Iwai + +commit 84a43bd523a63f1b53fd734c3798d71b7b53f123 +Author: Takashi Iwai +Date: Thu Jan 12 11:47:32 2006 +0100 + + [ALSA] intel8x0 - Fix/cleanup detection of codecs on SIS7012 + + Modules: Intel8x0 driver + + Fix the detection of tertriary codec on SIS7012, including clean-ups + of relevant codes. + + Signed-off-by: Takashi Iwai + +commit 15f500a6994e552b7772d8b8459ee3114c47897d +Author: Takashi Iwai +Date: Thu Jan 12 11:43:49 2006 +0100 + + [ALSA] ens1370 - Fix resume + + Modules: ENS1370/1+ driver + + Fix resume of ens1370 driver. + + Signed-off-by: Takashi Iwai + +commit 9568f461e50c023e45ec702027bb1a5f60e443dc +Author: Clemens Ladisch +Date: Thu Jan 12 08:19:21 2006 +0100 + + [ALSA] usb-audio: factor out packet size calculation code + + Modules: USB generic driver + + Move the common packet size calculation code from + prepare_startup_playback_urb() and prepare_playback_urb() to a new + function. + + Signed-off-by: Clemens Ladisch + +commit 7c79b7682ee6318a8e47173b158846ed0edd8f1a +Author: Clemens Ladisch +Date: Tue Jan 10 18:56:23 2006 +0100 + + [ALSA] usb-audio: cosmetic changes + + Modules: USB generic driver + + Move some entries around to keep them sorted by ID. + + Signed-off-by: Clemens Ladisch + +commit e03173fce2f2c233b755f2d668d6d4247a717453 +Author: Brent Cook +Date: Tue Jan 10 14:27:20 2006 +0100 + + [ALSA] Add support for EDIROL UM-3ex + + Modules: USB generic driver + + This is my naive attempt at adding ALSA device support. The attached + patch provides support for the EDIROL UM-3ex. This is a 3-port USB midi + interface with a built-in USB hub and the ability to chain 2 other + UM-3x's in a master-slave configuration. I only have one, so I do not + know how this works in practice. + + Though this is a 3-port device, I had to throw in that 4th 'Control' interface + to the definition in order to make the 3rd port work. If I set in/out_cables + to 0x000b, a 3rd interface appears on the driver, but it does nothing. + Changing it to 0x000f allows the 3rd interface to work, but of course + interface 4 does not work because it does not exist. + + Signed-off-by: Takashi Iwai + +commit 34226c4239861654c69888e6e98973b2cc908c0b +Author: Takashi Iwai +Date: Wed Jan 4 12:14:23 2006 +0100 + + [ALSA] pcxhr - Suppress debug messages + + Modules: Digigram PCXHR driver + + Suppress debug messages. + + Signed-off-by: Takashi Iwai + +commit dcc1e8dd88d4bc55e32a26dad7633d20ffe606d2 +Author: David S. Miller +Date: Wed Mar 22 00:49:59 2006 -0800 + + [SPARC64]: Add a secondary TSB for hugepage mappings. + + Signed-off-by: David S. Miller + +commit 14778d9072e53d2171f66ffd9657daff41acfaed +Author: David S. Miller +Date: Tue Mar 21 02:29:39 2006 -0800 + + [SPARC]: Respect vm_page_prot in io_remap_page_range(). + + Make sure the callers do a pgprot_noncached() on + vma->vm_page_prot. + + Pointed out by Hugh Dickens. + + Signed-off-by: David S. Miller + +commit 056755f4d73d49b4adcbb8ecdaf75138cf166bd3 +Author: David S. Miller +Date: Wed Mar 22 01:07:53 2006 -0800 + + [TG3]: Bump driver version and reldate. + + Signed-off-by: David S. Miller + +commit 15c3b696101992c4d69962325f0e91647164427f +Author: Michael Chan +Date: Wed Mar 22 01:06:52 2006 -0800 + + [TG3]: Skip phy power down on some devices + + Some PHYs should not be powered down in tg3_set_power_state() because + of bugs or other hardware limitations. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit caf636c760b33c72ebf018ff03c1b0d79ea6656a +Author: Michael Chan +Date: Wed Mar 22 01:05:31 2006 -0800 + + [TG3]: Fix SRAM access during tg3_init_one() + + 5700 and 5701 will not return correct SRAM data when the chip is in + D3hot power state. tg3_get_eeprom_hw_cfg() must first put the device + in D0 before reading SRAM. + + Thanks to Thomas Chenault at Dell for noticing this problem. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 9a6b9f2e763a1d1492e164f13c13b995a9b98d78 +Author: Shaun Pereira +Date: Wed Mar 22 00:02:00 2006 -0800 + + [X25]: dte facilities 32 64 ioctl conversion + + Allows dte facility patch to use 32 64 bit ioctl conversion mechanism + + Signed-off-by: Shaun Pereira + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit a64b7b936dcd926ace745c07c14f45ecfaddb034 +Author: Shaun Pereira +Date: Wed Mar 22 00:01:31 2006 -0800 + + [X25]: allow ITU-T DTE facilities for x25 + + Allows use of the optional user facility to insert ITU-T + (http://www.itu.int/ITU-T/) specified DTE facilities in call set-up x25 + packets. This feature is optional; no facilities will be added if the ioctl + is not used, and call setup packet remains the same as before. + + If the ioctls provided by the patch are used, then a facility marker will be + added to the x25 packet header so that the called dte address extension + facility can be differentiated from other types of facilities (as described in + the ITU-T X.25 recommendation) that are also allowed in the x25 packet header. + + Facility markers are made up of two octets, and may be present in the x25 + packet headers of call-request, incoming call, call accepted, clear request, + and clear indication packets. The first of the two octets represents the + facility code field and is set to zero by this patch. The second octet of the + marker represents the facility parameter field and is set to 0x0F because the + marker will be inserted before ITU-T type DTE facilities. + + Since according to ITU-T X.25 Recommendation X.25(10/96)- 7.1 "All networks + will support the facility markers with a facility parameter field set to all + ones or to 00001111", therefore this patch should work with all x.25 networks. + + While there are many ITU-T DTE facilities, this patch implements only the + called and calling address extension, with placeholders in the + x25_dte_facilities structure for the rest of the facilities. + + Testing: + + This patch was tested using a cisco xot router connected on its serial ports + to an X.25 network, and on its lan ports to a host running an xotd daemon. + + It is also possible to test this patch using an xotd daemon and an x25tap + patch, where the xotd daemons work back-to-back without actually using an x.25 + network. See www.fyonne.net for details on how to do this. + + Signed-off-by: Shaun Pereira + Acked-by: Andrew Hendry + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit bac37ec8300389d355d41a828b47577c1ec2e4f4 +Author: Shaun Pereira +Date: Wed Mar 22 00:00:40 2006 -0800 + + [X25]: fix kernel error message 64 bit kernel + + Fixes the following error from kernel + T2 kernel: schedule_timeout: + wrong timeout value ffffffffffffffff from ffffffff88164796 + + Signed-off-by: Shaun Pereira + Acked-by: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 1b06e6ba25a37fe1c289049d0e0300d71ae39eff +Author: Shaun Pereira +Date: Wed Mar 22 00:00:12 2006 -0800 + + [X25]: ioctl conversion 32 bit user to 64 bit kernel + + To allow 32 bit x25 module structures to be passed to a 64 bit kernel via + ioctl using the new compat_sock_ioctl registration mechanism instead of the + obsolete 'register_ioctl32_conversion into hash table' mechanism + + Signed-off-by: Shaun Pereira + Acked-by: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit f0ac2614412e2b597e2d5bfbd3960b4f73718b41 +Author: Shaun Pereira +Date: Tue Mar 21 23:59:39 2006 -0800 + + [NET]: socket timestamp 32 bit handler for 64 bit kernel + + Get socket timestamp handler function that does not use the + ioctl32_hash_table. + + Signed-off-by: Shaun Pereira + Acked-by: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 89bbfc95d65839d6ae23ddab8a3cc5af4ae88383 +Author: Shaun Pereira +Date: Tue Mar 21 23:58:08 2006 -0800 + + [NET]: allow 32 bit socket ioctl in 64 bit kernel + + Since the register_ioctl32_conversion() patch in the kernel is now obsolete, + provide another method to allow 32 bit user space ioctls to reach the kernel. + + Signed-off-by: Shaun Pereira + Acked-by: Arnd Bergmann + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 67b52e554ba973947704fcb4fc284d7bab9ab931 +Author: Tobias Klauser +Date: Tue Mar 21 23:53:16 2006 -0800 + + [BLUETOOTH]: Return negative error constant + + Return negative error constant. + + Signed-off-by: Tobias Klauser + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 1d04981669df1f0586d4578ec4061c5585ec721b +Author: Stephen Rothwell +Date: Wed Mar 22 11:26:58 2006 +1100 + + [PATCH] powerpc: update mailing list addresses + + Signed-off-by: Stephen Rothwell + Signed-off-by: Paul Mackerras + +commit f8642ebee8e46d054d83828a4048fba4ebcd8f68 +Author: Michael Ellerman +Date: Tue Mar 21 20:46:11 2006 +1100 + + [PATCH] powerpc: Remove calculation of io hole + + In mm_init_ppc64() we calculate the location of the "IO hole", but then + no one ever looks at the value. So don't bother. + + That's actually all mm_init_ppc64() does, so get rid of it too. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 6c600ad8da189aebe65b765fd0349ef6c9dd8c1f +Author: Michael Ellerman +Date: Tue Mar 21 20:46:10 2006 +1100 + + [PATCH] powerpc: iseries: Add bootargs to /chosen + + Add the command line args to the device tree as /chosen/bootargs. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 289f1c74a9b527a816f63092e79a5412cc0352a2 +Author: Michael Ellerman +Date: Tue Mar 21 20:46:09 2006 +1100 + + [PATCH] powerpc: iseries: Add /system-id, /model and /compatible + + Add /system-id, /model and /compatible to the iSeries device tree. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 584fc6d111c34a9a2512f6c7652dff29232bf70d +Author: Michael Ellerman +Date: Tue Mar 21 20:46:08 2006 +1100 + + [PATCH] powerpc: Add strne2a() to convert a string from EBCDIC to ASCII + + Add strne2a() which converts a string from EBCDIC to ASCII. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 00611c5cfc8dea0914c65134f62948a484780a30 +Author: Michael Ellerman +Date: Tue Mar 21 20:46:05 2006 +1100 + + [PATCH] powerpc: iseries: Make more stuff static in platforms/iseries/mf.c + + Make mf_get_rtc(), mf_get_boot_rtc() and mf_set_rtc() static, cause they can + be. We need to move mf_set_rtc() to avoid a forward declaration. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit a9ea2101aaa7fe73cb352cea4145853efdabaa0d +Author: Michael Ellerman +Date: Tue Mar 21 20:46:04 2006 +1100 + + [PATCH] powerpc: iseries: Remove pointless iSeries_(restart|power_off|halt) + + These routines just call through to the mf routines, so point ppc_md straight + at the mf routines. We need to pass the cmd through to mf_reboot to make it + work, but that seems reasonable. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 260de22faac4d336ca122ebd0f1e59279d0b1dfd +Author: Michael Ellerman +Date: Tue Mar 21 20:46:02 2006 +1100 + + [PATCH] powerpc: iseries: mf related cleanups + + Some cleanups in the iSeries code. + - Make mf_display_progress() check mf_initialized rather than the caller. + - Set mf_initialized in mf_init() rather than in setup.c + - Then move mf_initialized into mf.c, the only place it's used. + - Move the mf related logic from iSeries_progress() to mf_display_progress() + - Use a #define to size the pending_event_prealloc array + - Use that define in the initialsation loop rather than sizeof jiggery pokery + - Remove stupid comment(s) + - Mark stuff static and/or __init + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 57cfb814f698d30894bc28e22125550193ebe549 +Author: Michael Ellerman +Date: Tue Mar 21 20:45:59 2006 +1100 + + [PATCH] powerpc: Replace platform_is_lpar() with a firmware feature + + It has been decreed that platform numbers are evil, so as a step in that + direction, replace platform_is_lpar() with a FW_FEATURE_LPAR bit. + + Currently FW_FEATURE_LPAR really means i/pSeries LPAR, in the future we might + have to clean that up if we need to be more specific about what LPAR actually + means. But that's another patch ... + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 3d15910bfbeb02286ce4b5009c53754e88066ccb +Author: Michael Ellerman +Date: Tue Mar 21 20:45:58 2006 +1100 + + [PATCH] powerpc: trivial: Cleanup whitespace in cputable.h + + Remove redundant whitespace in include/asm-powerpc/cputable.h + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 415202447d31d0f458cca256ad7e0ed777d993d9 +Author: Michael Ellerman +Date: Tue Mar 21 20:45:58 2006 +1100 + + [PATCH] powerpc: Remove unused iommu_off logic from pSeries_init_early() + + When iommu_init_early_pSeries() was added, ages ago, we forgot to remove + the code that checks /chosen/linux,iommu-off in pSeries_init_early(). We + do it now in iommu_init_early_pSeries(). + + Signed-off-by: Michael Ellerman + Acked-by: Olof Johansson + Signed-off-by: Paul Mackerras + +commit caf80e579b5fc0048681a47c5a55487116e56a88 +Author: Michael Ellerman +Date: Tue Mar 21 20:45:51 2006 +1100 + + [PATCH] powerpc: Unconfuse htab_bolt_mapping() callers + + htab_bolt_mapping() takes a vstart and pstart parameter, but all but one of + its callers actually pass it vstart and vstart. Luckily before it passes + paddr (calculated from paddr) to the hpte_insert routines it calls + virt_to_abs() (aka. __pa()) on the address, so there isn't actually a bug. + + map_io_page() however does pass pstart properly, so currently it's broken + AFAICT because we're calling __pa(paddr) which will get us something very + large. Presumably no one's calling map_io_page() in the right context. + + Anyway, change htab_bolt_mapping() callers to properly pass pstart, and then + use it properly in htab_bolt_mapping(), ie. don't call __pa() on it again. + + Booted on p5 LPAR, iSeries and Power3. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 2b2612272c77288b2bd53d5831df737cd669cd93 +Author: Nathan Lynch +Date: Mon Mar 20 18:37:15 2006 -0600 + + [PATCH] powerpc numa: Consolidate assignment of cpus to nodes + + We can plug the boot cpu into its node independently of whether numa + topology is detected. And numa_setup_cpu does the right thing for all + cases now, so remove special-casing for non-numa from the cpu hotplug + callback. + + Signed-off-by: Nathan Lynch + Signed-off-by: Paul Mackerras + +commit 482ec7c403d239bb4f1732faf9a14988094ce08b +Author: Nathan Lynch +Date: Mon Mar 20 18:36:45 2006 -0600 + + [PATCH] powerpc numa: Support sparse online node map + + The powerpc numa code unconditionally onlines all nodes from 0 to the + highest node id found, regardless of whether cpus or memory are + present in the nodes. This wastes 8K per node and complicates some + cpu and memory hotplug situations, such as adding a resource that + doesn't map to one of the nodes discovered at boot. + + Set nodes online as resources are scanned. Fall back to node 0 only + when we're sure this isn't a NUMA machine. + + Instead of defaulting to node 0 for cases of hot-adding a resource + which doesn't belong to any initialized node, assign it to the first + online node. + + Signed-off-by: Nathan Lynch + Signed-off-by: Paul Mackerras + +commit bc16a75926941094db6b42d76014abb5e8d3a910 +Author: Nathan Lynch +Date: Mon Mar 20 18:36:15 2006 -0600 + + [PATCH] powerpc numa: Consolidate handling of Power4 special case + + Code to handle Power4's invalid node id (0xffff) is duplicated for cpu + and memory. Better to handle this case in one place -- + of_node_to_nid. Overall behavior should be unchanged. + + Signed-off-by: Nathan Lynch + Signed-off-by: Paul Mackerras + +commit cf950b7af0e51935e559c54262214423e2b6c88a +Author: Nathan Lynch +Date: Mon Mar 20 18:35:45 2006 -0600 + + [PATCH] powerpc numa: Get rid of "numa domain" terminology + + Since we effectively treat the domain ids given to us by firmare as + logical node ids, make this explicit (basically s/numa_domain/nid/). + + No functional changes, only variable and function names are modified. + + Signed-off-by: Nathan Lynch + Signed-off-by: Paul Mackerras + +commit 2e5ce39d6703836b583c43131c365201a76285a5 +Author: Nathan Lynch +Date: Mon Mar 20 18:35:15 2006 -0600 + + [PATCH] powerpc numa: Minor cpu hotplug-related cleanups + + map_cpu_to_node does not need to be inline, it is never called in a + hot path. + + map_cpu_to_node, numa_setup_cpu, and find_cpu_node can be marked + __cpuinit, as they are never used after boot if CONFIG_HOTPLUG_CPU=n. + + Signed-off-by: Nathan Lynch + Signed-off-by: Paul Mackerras + +commit bf4b85b0e4bab42b3e8d8b0acc6851bb85e2050b +Author: Nathan Lynch +Date: Mon Mar 20 18:34:45 2006 -0600 + + [PATCH] powerpc numa: Minor debugging code changes + + Add debug statement for map_cpu_to_node; it's useful for cpu hotplug. + + Clarify debug statement about not finding the numa reference points + property. + + Don't print a meaningless associativity depth (-1) on non-numa systems. + + Signed-off-by: Nathan Lynch + Signed-off-by: Paul Mackerras + +commit c08888cf3c80fe07bfd176113c390ca31d3ba5c2 +Author: Nathan Lynch +Date: Mon Mar 20 18:34:15 2006 -0600 + + [PATCH] powerpc numa: fix boot_cpuid always assigned to node 0 + + At boot, the numa code is assigning boot_cpuid to node 0 + unconditionally. Basically, numa_setup_cpu is being stupid about it, + but this is the minimal fix -- just call numa_setup_cpu(boot_cpuid) + later, after all nodes have been set online. + + Signed-off-by: Nathan Lynch + Signed-off-by: Paul Mackerras + +commit 55cca65e1995ad604ee87e22c76c17d5cbceb9d0 +Author: Jeff Garzik +Date: Tue Mar 21 22:14:17 2006 -0500 + + [libata sata_vsc, sata_svw] Convert #define'd constants to enums + + Also, bump sata_vsc version. + +commit bb19fba1937cb6ab2bb98ac893365f6ebf88ef1b +Author: Nathan Scott +Date: Wed Mar 22 14:12:12 2006 +1100 + + [XFS] Sync up one/two other minor changes missed in previous merges. + + Signed-off-by: Nathan Scott + +commit c962990a38167aacac91738501815deffa3afbd6 +Author: Dan Williams +Date: Tue Mar 21 22:07:13 2006 -0500 + + [libata] sata_vsc: fix inconsistent NULL checking + + Also, cleanup interrupt mask content and note in Kconfig that this + driver supports the Intel 31244. + + Signed-off-by: Jeff Garzik + +commit 4d4681f6b994baf93dff0e4f59ab4fe38b49ef13 +Author: Jeff Garzik +Date: Tue Mar 21 21:31:22 2006 -0500 + + [libata] fix oops on non-DMA bmdma hardware + + Alan noted: "bmdma may be zero but the bmdma_irq_clear function gets + called even in this case during pure PIO operation. Check we have a + bmdma before we use it." + + I fixed this by adding a check for zero. While was I there, I fixed the + non-standard indentation of the small function's code. + + Signed-off-by: Jeff Garzik + +commit 17bb34a3c548c4fd2a7c859123a631f97c2af09f +Author: Jeff Garzik +Date: Tue Mar 21 21:29:21 2006 -0500 + + [libata] add prototypes for helpers + + Add prototypes for stuff recently added by Alan. + +commit 23cfce8924f1e7ff1d14b8f1afd7550182026d16 +Author: Alan Cox +Date: Tue Mar 21 16:06:53 2006 +0000 + + [PATCH] libata: make irqtrap mode compile + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit 88f93a31dcd950fa6b27a5721428de7e01369c06 +Author: Alan Cox +Date: Tue Mar 21 16:04:12 2006 +0000 + + [PATCH] libata: report which drive is causing mode problems + + Signed-off-by: Alan Cox + Signed-off-by: Jeff Garzik + +commit d33d44facc8673388979297c9836b4bf590f7388 +Author: Alan Cox +Date: Tue Mar 21 15:59:57 2006 +0000 + + [PATCH] libata: two new PCI helpers + + The first performs the simplex clearing relevant to some chipsets that + report simplex by default but can in fact do more if poked. The second + is used to strip DMA modes from a PCI control with no BAR4 allocation. + + Signed-off-by: Jeff Garzik + +commit 41bbc8bf1ab0e3e7cda1a0334176a9aa3986cd30 +Author: Alan Cox +Date: Tue Mar 21 15:57:00 2006 +0000 + + [PATCH] libata: Note weakness in our PCI handling that one day wants fixing + + + Signed-off-by: Jeff Garzik + +commit db7f44d96e0b605906abc38aaf34841a93885884 +Author: Alan Cox +Date: Tue Mar 21 15:54:24 2006 +0000 + + [PATCH] libata: make code actually compile with debugging on + + + Signed-off-by: Jeff Garzik + +commit 2d2020242d14dc8caf83d7682d91368cff64290c +Author: Alan Cox +Date: Tue Mar 21 15:53:46 2006 +0000 + + [PATCH] libata: pick a less confusion "um dunno" error + + + Signed-off-by: Jeff Garzik + +commit b6782728d703fa3f0e5478a8b89e49ea10b1fdd0 +Author: Alan Cox +Date: Tue Mar 21 15:52:49 2006 +0000 + + [PATCH] libata: Add the useful macros/constants needed for merging PATA stuff + + HPA presence/enabled + HPA commands + + Also add ata_id_is_cfa() as that is needed to detect and handle CF cards + which currently we reject. + + Signed-off-by: Jeff Garzik + +commit 806a6e7a9904d4a1dfd3fd79d373bf31d71d34cb +Author: Mark Lord +Date: Tue Mar 21 21:11:53 2006 -0500 + + [libata] sata_mv: off-by-1 fix + + This patch addresses a number of weird behaviours observed + for the sata_mv driver, by fixing an "off by one" bug in processing + of the EDMA response queue. + + Basically, sata_mv was looking in the wrong place for + command results, and this produced a lot of unpredictable behaviour. + + Signed-off-by: Mark Lord + Signed-off-by: Jeff Garzik + +commit a6cce2a79deefb33354561a064f0609a3b342829 +Author: Brian King +Date: Fri Mar 17 17:04:15 2006 -0600 + + [PATCH] libata: ata_scsi_slave_config cleanup + + Encapsulate some of ata_scsi_slave_config so that parts + can be reused in future SAS patches. + + Signed-off-by: Brian King + Signed-off-by: Jeff Garzik + +commit e46834cd2ddb1e2941806cb8fec60fb6bdd2ec29 +Author: Brian King +Date: Fri Mar 17 17:04:03 2006 -0600 + + [PATCH] libata: Add some dummy noop functions + + Add some dummy noop functions for use by libata clients + that do not need to do anything. Future SAS patches will + utilize these functions. + + Signed-off-by: Brian King + Signed-off-by: Jeff Garzik + +commit e15f195cfb2fb1f2af0fdfc21277643deb26c0df +Author: Nathan Scott +Date: Wed Mar 22 12:47:52 2006 +1100 + + [XFS] Reenable the noikeep (delete inode cluster space) option by default. + + SGI-PV: 951200 + SGI-Modid: xfs-linux-melb:xfs-kern:25535a + + Signed-off-by: Nathan Scott + +commit 2ddee844eef48bf9240ebdfd6c5ffc4333c7d639 +Author: David Chinner +Date: Wed Mar 22 12:47:40 2006 +1100 + + [XFS] Check that a page has dirty buffers before finding it acceptable for + rewrite clustering. This prevents writing excessive amounts of clean data + when doing random rewrites of a cached file. + + SGI-PV: 951193 + SGI-Modid: xfs-linux-melb:xfs-kern:25531a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit 3758dee9f64fa9692063e7167128f9cec3f5fd33 +Author: Nathan Scott +Date: Wed Mar 22 12:47:28 2006 +1100 + + [XFS] Fixup naming inconsistencies found by Pekka Enberg and one from Jan + Engelhardt. + + SGI-PV: 947038 + SGI-Modid: xfs-linux-melb:xfs-kern:25529a + + Signed-off-by: Nathan Scott + +commit 38e2299a641d93d029eb559e096648ab75a22be2 +Author: David Chinner +Date: Wed Mar 22 12:47:15 2006 +1100 + + [XFS] Explain the race closed by the addition of vn_iowait() to the start + of xfs_itruncate_start(). + + SGI-PV: 947420 + SGI-Modid: xfs-linux-melb:xfs-kern:25527a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit 9fa8046f50bcb88ab9183ee1f22de5adc42bf92a +Author: Yingping Lu +Date: Wed Mar 22 12:44:35 2006 +1100 + + [XFS] Fixing the error caused by the conflict between DIO Write's + conversion and concurrent truncate operations. Use vn_iowait to wait for + the completion of any pending DIOs. Since the truncate requires exclusive + IOLOCK, so this blocks any further DIO operations since DIO write also + needs exclusive IOBLOCK. This serves as a barrier and prevent any + potential starvation. + + SGI-PV: 947420 + SGI-Modid: xfs-linux-melb:xfs-kern:208088a + + Signed-off-by: Yingping Lu + Signed-off-by: Nathan Scott + +commit f1fdc848aab7fb95b32e058b7f06cc07912b3734 +Author: Yingping Lu +Date: Wed Mar 22 12:44:15 2006 +1100 + + [XFS] Fixing KDB's xrwtrc command, also added the current process id into + the trace. + + SGI-PV: 948300 + SGI-Modid: xfs-linux-melb:xfs-kern:208069a + + Signed-off-by: Yingping Lu + Signed-off-by: Nathan Scott + +commit f59b0cf8a3a39b75e580066c6a9aeabd97ec2743 +Author: Albert Lee +Date: Thu Mar 16 17:59:22 2006 +0800 + + [PATCH] libata-dev: Remove ATA_PROT_PIO_MULT + + Remove the ATA_PROT_PIO_MULT protocol. + + Signed-off-by: Albert Lee + Signed-off-by: Jeff Garzik + +commit 41ade50c4eff9477e6aef6b15e84673c6758ec0d +Author: Albert Lee +Date: Tue Mar 14 11:19:04 2006 +0800 + + [PATCH] libata-dev: add flush task to ata_exec_internal() + + Add ata_port_flush_task() to ata_exec_internal(). + + Signed-off-by: Albert Lee + Signed-off-by: Jeff Garzik + +commit b142eb6594003d3f82fd552a9b2ad73d774465d2 +Author: Jeff Garzik +Date: Tue Mar 21 20:37:47 2006 -0500 + + [libata] SCSI VPD page 0x83 fixes + + Original patch (and description) by Douglas Gilbert, with minor fixes + and API updates from me. + + Changelog: + - make existing libata VPD device identification page (0x83) + supply the ATA serial number in the libata "vendor + specific" designator (from Chris Paulson-Ellis) + - add a "t10 vendor id based" designator as defined in + SAT rev 08 (section 10.3.4.2.3) that supplies ATA + model and serial numbers + - make the libata VPD page 0x83 more extensible (for + adding more designators in the future). + - rename EVPD to VPD in various places. Enable Vital + Product Data (EVPD) is a bit in the INQUIRY cdb. + + Signed-off-by: Jeff Garzik + +commit 116f232b3794a8b6ebde21aef5004b18cc1cfa86 +Author: Rytchkov Alexey +Date: Wed Mar 22 00:58:53 2006 +0100 + + fixed path to moved file in include/linux/device.h + + Signed-off-by: Adrian Bunk + +commit 9e6b48732d53bd986178bca3bce18d2329e4b0ca +Author: James Ring +Date: Wed Mar 22 00:51:11 2006 +0100 + + Fix spelling in E1000_DISABLE_PACKET_SPLIT Kconfig description + + Signed-off-by: Adrian Bunk + +commit d7f2baaadc0e2da3b4dff76494f9cf46d48ad301 +Author: Adrian Bunk +Date: Wed Mar 22 00:43:59 2006 +0100 + + Documentation/dvb/get_dvb_firmware: fix firmware URL + + This patch fixes a wrong URL in Documentation/dvb/get_dvb_firmware. + + This patch fixes kernel Bugzilla #4301. + + Signed-off-by: Adrian Bunk + +commit 43019a56aa99dbf67f32fb7bd04851b1ba63fa58 +Author: Ian McDonald +Date: Wed Mar 22 00:37:42 2006 +0100 + + Documentation: Update to BUG-HUNTING + + Signed-off-by: Ian McDonald + Signed-off-by: Adrian Bunk + +commit a609164f7c4eb82b97444871cb47f2f261696dd9 +Author: Michal Wronski +Date: Wed Mar 22 00:34:37 2006 +0100 + + Remove superfluous NOTIFY_COOKIE_LEN define + + NOTIFY_COOKIE_LEN is defined in mqueue.h as well as mqueue.c + This patch removes redundant definition from mqueue.c + + Signed-off-by: Michal Wronski + Signed-Off-By: Manfred Spraul + Signed-off-by: Adrian Bunk + +commit 58e9ff56382bdce340d50b6ff22c422dc617106c +Author: Russell King +Date: Mon Mar 20 16:52:32 2006 +0000 + + [ARM] Use kcalloc to allocate counter_config array rather than kmalloc + + We need this to be zero initialised. Since this is an array, use kcalloc + rather than kzalloc or kmalloc. + + Signed-off-by: Russell King + +commit ae92dc9f7bc9018f1d043f102747a1f1e4dd96fb +Author: Russell King +Date: Thu Mar 16 11:32:51 2006 +0000 + + [ARM] Oprofile: dynamically allocate counter_config + + Signed-off-by: Russell King + +commit 93ad79496c8831552d5f8ca7c182f149cc3cf19a +Author: Russell King +Date: Thu Mar 16 11:38:16 2006 +0000 + + [ARM] Oprofile: Convert semaphore to mutex + + op_arm_sem is being used as a mutex, so convert it to use + real mutexes. + + Signed-off-by: Russell King + +commit d92bf25fb088b1f12ad7fb3f9a4f9a3e1bf28959 +Author: Uwe Zeisberger +Date: Wed Mar 22 00:25:52 2006 +0100 + + add "tags" to .gitignore + + Signed-off-by: Uwe Zeisberger + Signed-off-by: Adrian Bunk + +commit 80682fa9f70932950c913fd10411c004c4c2e8b0 +Author: Uwe Zeisberger +Date: Wed Mar 22 00:21:33 2006 +0100 + + Fix "frist", "fisrt", typos + + Signed-off-by: Uwe Zeisberger + Signed-off-by: Adrian Bunk + +commit 7ad4a5d56874b37ad24d89aae2f8d192ba7b1521 +Author: Lucas Correia Villa Real +Date: Wed Mar 22 00:19:39 2006 +0100 + + fix rwlock usage example + + This is a trivial patch which fixes a typo on rwlock usage under + Documentation/spinlocks.txt. + + Signed-Off-By: Lucas Correia Villa Real + Signed-off-by: Adrian Bunk + +commit 4de151d8cd2553e7e89044ab5d72fcad4eb04afb +Author: Alexey Dobriyan +Date: Wed Mar 22 00:13:35 2006 +0100 + + It's UTF-8 + + Fix some comments to "UTF-8". + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Adrian Bunk + +commit e0f4ab8a1741193891f096aa63df9ac8672af54c +Author: Linus Torvalds +Date: Tue Mar 21 14:51:37 2006 -0800 + + Revert "V4L/DVB (3543): Fix Makefile to adapt to bt8xx/ conversion" + + This reverts commit 08f1d0b99f4e2203935d86640a7fec5c233b777c + + The "bt8xx/ conversion" for drivers/video/ hasn't actually percolated + all the way to this tree, so the Makefile change escaped too soon. + + Build breakage noticed by Jeff Garzik + + Signed-off-by: Linus Torvalds + +commit c3d5395fd7ac5b338c701deaaddec090d3c25af9 +Author: Ben Dooks +Date: Mon Mar 20 21:28:04 2006 +0000 + + [ARM] 3376/2: S3C2410 - update defconfig + + Patch from Ben Dooks + + Add Simtec Osiris to the default build, and enable the + USB-OHCI section by default. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit da956fd6b84f61bc98a18a63cdbd8190ec7b8cd0 +Author: Ben Dooks +Date: Mon Mar 20 21:02:39 2006 +0000 + + [ARM] 3375/1: S3C2440 - fix osiris machine build + + Patch from Ben Dooks + + Fix the build of arch/arm/mach-s3c2410/mach-osiris.c + and fix the warnings from sparse. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit bd20ff5793b4ece4fa3e9e0fcf8e6bbd93526215 +Author: Lennert Buytenhek +Date: Mon Mar 20 21:02:37 2006 +0000 + + [ARM] 3374/1: ep93xx: gpio interrupt support + + Patch from Lennert Buytenhek + + Add GPIO interrupt support for the first 16 GPIO lines (port A + and B.) + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 36c64af4e013ddf44c44298f50ff138ef1e2e7b7 +Author: Ben Dooks +Date: Mon Mar 20 21:00:48 2006 +0000 + + [ARM] 3361/1: S3C24XX - add USB bus clock source + + Patch from Ben Dooks + + Add USB bus clock definition for 48MHz fed to OHCI and gadget cores + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit e44c03960f232e0f9bd2f6bcffccf83770757a8e +Author: Ben Dooks +Date: Mon Mar 20 21:00:12 2006 +0000 + + [ARM] 3360/1: S3C2440 - add set rate methods and camera clock + + Patch from Ben Dooks + + Add set_rate methods for the extra clocks on the S3C2440 + and add the camera UPLL clock source + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 6e8908edd5a140f4f0cc4338fa0420b0bb0f8efa +Author: Ben Dooks +Date: Mon Mar 20 21:00:08 2006 +0000 + + [ARM] 3359/1: S3C24XX - add support for clk_set_rate + + Patch from Ben Dooks + + Add support for clk_set_rate and clk_round_rate to the + s3c2410 clock implementation + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit d2a02b93cf78205dd23226efb66481569900976e +Author: Russell King +Date: Mon Mar 20 19:46:41 2006 +0000 + + [ARM] Convert kmalloc+memset to kzalloc + + Convert all uses of kmalloc followed by memset to use kzalloc instead. + + Signed-off-by: Russell King + +commit 18ec5c731271939acb414614e964c15c8ef52156 +Author: Lennert Buytenhek +Date: Mon Mar 20 17:10:17 2006 +0000 + + [ARM] 3373/1: move uengine loader to arch/arm/common + + Patch from Lennert Buytenhek + + Move the uengine loader from arch/arm/mach-ixp2000 to arch/arm/common + so that ixp23xx can use it too. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit dd18c34eac6686d04aed9e51e7b98842c0cef3d5 +Author: Lennert Buytenhek +Date: Mon Mar 20 17:10:15 2006 +0000 + + [ARM] 3372/1: ep93xx: add defconfig + + Patch from Lennert Buytenhek + + Add ep93xx defconfig. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit a8e19667a42d752f3eca6eaa17aa5d6f93066dfe +Author: Lennert Buytenhek +Date: Mon Mar 20 17:10:14 2006 +0000 + + [ARM] 3371/1: ep93xx: gpio support + + Patch from Lennert Buytenhek + + Add support for setting the direction of and getting/setting the + value of the 64 GPIO lines. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit e7736d47a11a771ba87314be563b2cb6b8d11d14 +Author: Lennert Buytenhek +Date: Mon Mar 20 17:10:13 2006 +0000 + + [ARM] 3369/1: ep93xx: add core cirrus ep93xx support + + Patch from Lennert Buytenhek + + This patch adds support for the Cirrus ep93xx series of CPUs. The + ep93xx is an ARM920T based CPU with two VICs, PL010 based UARTs, + IrDA, MaverickCrunch floating point coprocessor, between 24 and 64 + GPIOs, ethernet, OHCI USB and, depending on the model, pcmcia, raster + engine, graphics accelerator, IDE controller and a bunch of other + stuff. + + This patch adds the core ep93xx support code, and support for the + Glomation GESBC-9312-sx and the Technologic Systems TS-72xx SBCs. + + Signed-off-by: Lennert Buytenhek + Signed-off-by: Russell King + +commit 73deb7dc05b4cf968e506e7b18345bc65bcbc0f3 +Author: Alessandro Zummo +Date: Mon Mar 20 17:10:12 2006 +0000 + + [ARM] 3368/1: ixp4xx: set gpio direction in ixp4xx_config_irq + + Patch from Alessandro Zummo + + ixp4xx_config_irq did not configure the gpio line + as an input. + + As an added bonus, the irq2gpio array has been converted + from int to char. + + Signed-off-by: Alessandro Zummo + Signed-off-by: Russell King + +commit 03bd14c4b7fa535c78f17751172dbe8937729f05 +Author: Alessandro Zummo +Date: Mon Mar 20 17:10:10 2006 +0000 + + [ARM] 3349/1: ixp4xx exp bus defines + + Patch from Alessandro Zummo + + This patch adds a few defines that are useful + to configure the CS regions on ixp4xx. + + Signed-off-by: Alessandro Zummo + Signed-off-by: OEyvind Repvik + Signed-off-by: Deepak Saxena + Signed-off-by: Russell King + +commit 6d4518d76f9612d580f9423cc0c3364a06b69588 +Author: Peter Teichmann +Date: Mon Mar 20 17:10:09 2006 +0000 + + [ARM] 3346/1: Fix udelay() for HZ values different from 100 + + Patch from Peter Teichmann + + Currently, if the kernels HZ value is greater than 100, delays with the udelay function are too short. This can cause trouble for instance with the zd1201 usb wlan driver. + + This patch suggests a solution that keeps the overhead small and maintains (hopefully) sufficient resolution. + + Signed-off-by: Peter Teichmann + Signed-off-by: Russell King + +commit 0328ad23cfd8a0501f44a1b83e49d5b0e47e2b3c +Author: Deepak Saxena +Date: Mon Mar 20 17:10:08 2006 +0000 + + [ARM] 3334/1: Add support for IXDP28x5 platforms + + Patch from Deepak Saxena + + This patch adds support for Intel's IXDP28x5 platform. This + is just and IXDP2801 with a new CPU rev but the bootloader + has been updated to reflect a new machine ID so we just build + support for it by default when we build IXDP2801. + + Signed-off-by: Deepak Saxena + Signed-off-by: Russell King + +commit 3fc3e1c0640887f883c28330e9d35145d23b2696 +Author: Ben Dooks +Date: Mon Mar 20 17:10:07 2006 +0000 + + [ARM] 3333/1: S3C2XX - add dclk and clkout clock support + + Patch from Ben Dooks + + Add enable and set_parent calls for the dclk + and clkout clocks. + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit a08ceff2a98e09cb14afefdd9276714b85c945f7 +Author: Ben Dooks +Date: Mon Mar 20 17:10:07 2006 +0000 + + [ARM] 3332/1: S3C24XX - documentation update + + Patch from Ben Dooks + + Add devices that we have drivers for, and + update list of machines that are supported + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit d3468daab82d5195fe85322235896797d5581720 +Author: Ben Dooks +Date: Mon Mar 20 17:10:04 2006 +0000 + + [ARM] 3331/1: S3C24XX - add clk_set_parent() to clock code + + Patch from Ben Dooks + + Add clk_set_parent() call to clock code + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 8e40a2f91c6e73726a75381e4438478eb5964cb7 +Author: Ben Dooks +Date: Mon Mar 20 17:10:04 2006 +0000 + + [ARM] 3330/1: S3C24XX - move UPLL to main clock + + Patch from Ben Dooks + + Move the UPLL clock registration to the central + clock file, and add an enable method + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 766636cc3630ae3b9827e7b4b1f566572963f1ef +Author: Ben Dooks +Date: Mon Mar 20 17:10:03 2006 +0000 + + [ARM] 3329/1: S3C24XX - fix time for osiris machine + + Patch from Ben Dooks + + Add selection for timer code for the Simtec Osiris + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit 110d322b29c08d8cf1dba599fd45ad2b9752a4bb +Author: Ben Dooks +Date: Mon Mar 20 17:10:02 2006 +0000 + + [ARM] 3327/1: S3C2410 - add osiris machine support + + Patch from Ben Dooks + + Support for Simtec IM2440D20 CPU modules (Osiris) + + Signed-off-by: Ben Dooks + Signed-off-by: Russell King + +commit a61ea9326d9ba94bcdc21f36bb74aa203657c58f +Author: Nicolas Pitre +Date: Mon Mar 20 17:10:01 2006 +0000 + + [ARM] 3261/2: remove phys_ram from struct machine_desc (part 3) + + Patch from Nicolas Pitre + + This field is redundent since it must be equal to PHYS_OFFSET anyway. + + There is no reference to it anymore so remove it at last. + + Signed-off-by: Nicolas Pitre + Signed-off-by: Russell King + +commit 71dccd0f158a8077c92d51f213b55991b7a0e47e +Author: Russell King +Date: Thu Mar 16 20:50:34 2006 +0000 + + [ARM] Collect Primecell PL01x-based debug implementations together + + Several ARM machine implementations used a PL01x primecell compatible + serial port for debugging purposes, and indepdently implemented the low + level debug macros every time. Provide a common implementation and + convert these implementations to use this version. + + Signed-off-by: Russell King + +commit 268099e3ccca5a988632ce18abd21d809d632ddc +Author: Russell King +Date: Thu Mar 16 20:40:25 2006 +0000 + + [ARM] Collect 8250-based debug implementations together + + Several ARM machine implementations used an 8250 compatible port for + debugging purposes, and indepdently implemented the low level debug + macros every time. Provide a common implementation and convert these + implementations to use this version. + + Signed-off-by: Russell King + +commit 22398f57b6372f3150f9ebb4b6d0aa4bf98c5dfb +Author: Russell King +Date: Wed Mar 15 15:55:01 2006 +0000 + + [ARM] Fix SA1100 debug-macros.S + + This needs asm/hardware.h - include it. + + Signed-off-by: Russell King + +commit 97d654f8eb4b8fbb6e1afef076429a4235a3a3ad +Author: Russell King +Date: Wed Mar 15 15:54:37 2006 +0000 + + [ARM] Convert SA1111 to use clock architecture + + Signed-off-by: Russell King + +commit 824b5b5e59472c89bc508afa5c453547c91ed53b +Author: Russell King +Date: Wed Mar 15 15:44:29 2006 +0000 + + [ARM] Adapt vic.c to allow for multiple VICs in a system. + + Some SoCs have multiple VIC devices. Adapt the generic vic code + to allow multiple implementations to be handled. + + Signed-off-by: Russell King + +commit 548153663bbf33ca7c244a6bbddd82c26a17c331 +Author: Russell King +Date: Wed Mar 15 15:43:04 2006 +0000 + + [ARM] Rename chipdata to 'base' and make it an iomem pointer + + In all current use cases, "chipdata" is used to store an iomem address. + Mark it with __iomem, and rename it to 'base'. Leave the accessor macros + alone. + + Signed-off-by: Russell King + +commit 5d25ac038a317d454a4321cba955f756400835a5 +Author: Russell King +Date: Wed Mar 15 12:33:43 2006 +0000 + + [ARM] Move IRQ enable after coprocessor number decode + + Allow the individual coprocessor handlers to decide when to enable + interrupts, rather than unconditionally enabling them. + + Signed-off-by: Russell King + +commit f78f10436806660f39440a729acbaf03e3a01023 +Author: Russell King +Date: Sat Mar 4 11:04:12 2006 +0000 + + [ARM] Remove unnecessary asm/hardware.h includes + + asm/hardware.h is not required for the majority of processor support + files, ioremap support, mm initialisation, acorn IO support, nor + the debug code (which picks up its machine specific includes via + debug-macros.S) + + Signed-off-by: Russell King + +commit bfe65704812f82751470106ea50aeb7e7d37cc3f +Author: Russell King +Date: Sat Mar 4 11:01:53 2006 +0000 + + [ARM] Fix HZ definition for OMAP without 32K timer + + Unfortunately, OMAP platforms without the 32K timer left HZ set to + an empty value. Fix this by making the dependency on OMAP_32K_TIMER + rather than OMAP_32K_TIMER_HZ. + + Signed-off-by: Russell King + +commit 411ef7f4cf1684ca7977c7917fd841ea091c5b26 +Author: Russell King +Date: Sat Mar 4 10:37:07 2006 +0000 + + [ARM] Remove asm/arch/irq.h + + asm/arch/irq.h used to be included from asm/irq.h, but was removed + from the ARM kernel a long time ago. Consequently, the contents + of asm/arch/irq.h (which mostly contain a definition for fixup_irq()) + have not been used. Hence, remove asm/arch/irq.h. + + Some machine support files incorrectly included this file, making + little or no use of the contents. Move the contents to a local + include file, and remove those include statements as well. + + Signed-off-by: Russell King + +commit f80658137fc8b789a71953adeca194a5a4747427 +Author: Russell King +Date: Thu Mar 2 22:41:59 2006 +0000 + + [ARM] Move HZ definition into Kconfig + + Move the HZ definition into Kconfig, and set appropriate defaults + for platforms. Remove mostly empty asm/arch/param.h include file. + + Signed-off-by: Russell King + +commit 48fa14f7618fe89cac9b807b05b66df4b595fc7e +Author: Russell King +Date: Thu Mar 16 14:52:33 2006 +0000 + + [ARM] select TLS_REG_EMUL and NEEDS_SYSCALL_FOR_CMPXCHG + + Rather than having a growing dependency line, use select to set + these configuration symbols. + + Signed-off-by: Russell King + +commit 74945c8616a50074277e18641baaae7464006766 +Author: Russell King +Date: Thu Mar 16 14:44:36 2006 +0000 + + [ARM] nommu: Move hardware page table definitions to pgtable-hwdef.h + + Move the hardware PMD and PTE page table definitions from pgtable.h + into pgtable-hwdef.h, and include pgtable-hwdef.h as necessary. + + Signed-off-by: Russell King + +commit 0f44ba1d1e67201c0c58af26eb441fa7014c89ec +Author: Russell King +Date: Fri Feb 24 21:04:56 2006 +0000 + + [ARM] Move read of processor ID out of lookup_processor_type() + + Read the processor ID at boot, and save it in "processor_id" as we + did before. Later, when we re-parse the CPU type in the setup.c code, + re-use the value stored in "processor_id". + + This allows a cleaner work-around for noMMU devices without CP#15. + + Signed-off-by: Russell King + +commit fb1c7762b9b1f3c53daf0e700e977d77a29bcf04 +Author: Russell King +Date: Fri Feb 24 21:44:56 2006 +0000 + + [ARM] Fix typo in tlbflush.h + + s/CONFIG_MMY/CONFIG_MMU/ + + Signed-off-by: Russell King + +commit 0157903e840f970c90880426505cbb8be5ddde68 +Author: Hyok S. Choi +Date: Fri Feb 24 21:41:25 2006 +0000 + + [ARM] noMMU: removes TLB codes in nommu mode + + This patch removes TLB related codes in nommu mode. + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit f24284adcdeae963aacf0c9b17979c875069cd80 +Author: Hyok S. Choi +Date: Fri Feb 24 21:37:50 2006 +0000 + + [ARM] noMMU: block sys_fork in nommu mode + + The sys_fork is not supported in nommu mode. The other syscalls + that is not supported in nommu mode are to be defined as cond_signal + in kernel/sys_ni.c. + + Signed-off-by: Hyok S. Choi + Signed-off-by: Russell King + +commit 0b5bf225c06e62eb6066fc5b7ccf4f296356c503 +Author: Jeff Garzik +Date: Tue Mar 21 16:22:47 2006 -0500 + + [netdrvr] pcnet32: other source formatting cleanups + + - undo some Lindent damage by indenting member names + - remove history at top of .c file, this is stored in the kernel + repo changelog (in greater detail, even). + +commit 4a5e8e296cfdeef18312c08199f25c00ec148f41 +Author: Jeff Garzik +Date: Tue Mar 21 16:15:44 2006 -0500 + + [netdrvr] pcnet32: Lindent + +commit 3d781a02313e9f22923ee919d99e1cf72fd1f468 +Author: Andrew Morton +Date: Thu Mar 16 23:58:44 2006 -0800 + + [PATCH] skfp warning fixes + + drivers/net/skfp/fplustm.c: In function `enable_formac': + drivers/net/skfp/fplustm.c:552: warning: large integer implicitly truncated to unsigned type + drivers/net/skfp/fplustm.c:555: warning: large integer implicitly truncated to unsigned type + + These arguments were changed to `const', so the compiler can now see that it's + doing and outw(..., 0xffffnnnn). Cast the arg to ushort. + + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 09779c6df2dbe95483269d194b327d41fe2cc57e +Author: Nicolas Pitre +Date: Mon Mar 20 11:54:27 2006 -0500 + + [PATCH] smc91x: allow for dynamic bus access configs + + All accessor's different methods are now selected with C code and unused + ones statically optimized away at compile time instead of being selected + with #if's and #ifdef's. This has many advantages such as allowing the + compiler to validate the syntax of the whole code, making it cleaner and + easier to understand, and ultimately allowing people to define + configuration symbols in terms of variables if they really want to + dynamically support multiple bus configurations at the same time (with + the unavoidable performance cost). + + Signed-off-by: Nicolas Pitre + Signed-off-by: Jeff Garzik + +commit ac62ef043504d5c754357325cd514553ddabb046 +Author: Don Fry +Date: Mon Mar 20 15:26:03 2006 -0800 + + [PATCH] pcnet32: support boards with multiple phys + + Boards with multiple PHYs were not being handled properly by the pcnet32 + driver. This patch by Thomas Bogendoerfer with changes by me will allow + Allied Telesyn 2700FTX and 2701FTX boards to use either the copper or + the fiber interfaces. It has been tested on ia32 and ppc64 hardware. + Philippe Seewer also tested and improved the patch. + ethtool for pcnet32 already supports multiple phys. + + See also bugzilla bug 4219. + + Please apply to 2.6.16 + + Signed-off-by: Don Fry + Signed-off-by: Jeff Garzik + +commit 8368f31c8f51ef8ba61ce9fff7b94259777b6419 +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:23 2006 -0800 + + [PATCH] sky2 version 1.1 + + Set version to 1.1 + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit d257924e85a81561a956f1791fa5a226e3a32ce1 +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:22 2006 -0800 + + [PATCH] sky2: handle all error irqs + + The hardware has additional error trap interrupt bits. I have never seen + them trigger, but if they do, it looks like this might be useful. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 8f24664da64f8db094cd9d379b16fc1d8776d1df +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:21 2006 -0800 + + [PATCH] sky2: transmit recovery + + This patch decodes state and revovers from any races in the transmit + timeout and NAPI logic. It should never trigger, but if it does then + do the right thing. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit d89e1343959200a578465d50bb36c89733cf66a7 +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:20 2006 -0800 + + [PATCH] sky2: whitespace fixes + + Small whitespace fixes. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit fb2690a9bfa330aff3de29cbdde526591ac90dce +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:19 2006 -0800 + + [PATCH] sky2: add MSI support + + Add MSI support to sky2 driver. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 77b3d6a2d56be5af87ffae5bb78a39c847d49f99 +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:18 2006 -0800 + + [PATCH] sky2: coalescing parameters + + Change default coalescing parameters slightly, and allow wider + range of values. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit e07b1aa8b3ebedd3c7e0e1b4b524f1b2d62707cf +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:17 2006 -0800 + + [PATCH] sky2: rework of NAPI and IRQ management + + Redo the interupt handling of sky2 driver based on the IRQ mangement + documentation. All interrupts are handled by the device0 NAPI poll + routine. + + Don't need to adjust interrupt mask in IRQ context, done only when + changing device under RTNL. Therefore don't need hwlock anymore. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit c4b1580e8ad1aab13e0d8b97c7af3eebab8791ae +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:16 2006 -0800 + + [PATCH] sky2: drop broken wake on lan support + + Remove wake on lan support for now. It doesn't work right, and I + don't have a machine with working suspend/resume to test or fix it. + It will be re-enabled later. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 290d4de5b71f60bb5853a7ef9f0e8c817cd26892 +Author: Stephen Hemminger +Date: Mon Mar 20 15:48:15 2006 -0800 + + [PATCH] sky2: remove support for untested Yukon EC/rev 0 + + The Yukon EC/rev0 (A1) chipset requires a bunch of workarounds. I copied these + from sk98lin. But since they never got tested and add more cruft to the code; + any attempt at using driver as is on this version will probably fail. + + It looks like this was a early engineering sample chip revision, if it ever shows + up on a real system. Produce an error message. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 6f059c3e9042bc4eaa4f7a8dd651bbed9be144f2 +Author: Dale Farnsworth +Date: Tue Mar 21 11:44:35 2006 -0700 + + [PATCH] mv643xx_eth: Cache align skb->data if CONFIG_NOT_COHERENT_CACHE + + When I/O is non-cache-coherent, we need to ensure that the I/O buffers + we use don't share cache lines with other data. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 9362860fd1d9062ff9b3dca42aa3e1e68c2ddb67 +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:07 2006 -0800 + + [PATCH] skge: version 1.4 + + Update version number + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit b9d64acc82c104df9e4d6b74cbb1af05a77b5d44 +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:06 2006 -0800 + + [PATCH] skge: handle pci errors better + + When a PCI error occurs, try and report more info. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 203babb650d0c99a8be08f479d4a05d420988d89 +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:05 2006 -0800 + + [PATCH] skge: formmating and whitespace cleanup + + Reformat some code to make it easier to read. And whitespace + fixes. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit c68ce71a340ffb5c589db5d9f9af1ce4ef81baa9 +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:04 2006 -0800 + + [PATCH] skge: use mmiowb + + Add mmio barriers at the appropriate places, don't have a platform + that needs them, but this is where the documentation of the patch + says to add them. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit ff7907aede7962629c2eb50e08b870316c80518f +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:03 2006 -0800 + + [PATCH] skge: use kcalloc + + Use kcalloc when allocating ring data structure. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 93aea718c69d44ee492f233929686b15b5b3702d +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:02 2006 -0800 + + [PATCH] skge: dma configuration cleanup + + Cleanup of the part of the code that sets up DMA configuration. + Should cause no real change in operation, just clearer. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit c3da14474063e71686039d961d14785a9c2971ae +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:01 2006 -0800 + + [PATCH] skge: check the allocation of ring buffer + + The SysKonnect Genesis and Yukon chip sets have restrictions on the possible + control block area. The memory needs to not cross 4 Gig boundary, and it needs + to be 8 byte aligned. This patch checks and fails to bring the device up + if region is unacceptable. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit cfc3ed796eda2c41fb20986d831ed56c0474279d +Author: Stephen Hemminger +Date: Tue Mar 21 10:57:00 2006 -0800 + + [PATCH] skge: use auto masking of irqs + + Improve performance of skge driver by not touching irq mask + register as much. Since the interrupt source auto-masks, the driver + can just leave it disabled until the end of the soft irq. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 00a6cae288138ce0444ab6f48a81da12afe557aa +Author: Stephen Hemminger +Date: Tue Mar 21 10:56:59 2006 -0800 + + [PATCH] skge: use NAPI for tx cleanup. + + Cleanup transmit buffers using NAPI. This allows the transmit routine + to leave interrupts enabled, and that improves performance. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Jeff Garzik + +commit 30afc84cf7325e88fb9746340eba3c161080ff49 +Author: Tejun Heo +Date: Sat Mar 18 18:40:14 2006 +0900 + + [SCSI] libata: implement minimal transport template for ->eh_timed_out + + SCSI midlayer has moved hostt->eh_timed_out to transport template. As + libata doesn't need full-blown transport support yet, implement + minimal transport for libata. No transport class or whatsoever, just + empty transport template with ->eh_timed_out hook. + + Signed-off-by: Tejun Heo + Signed-off-by: James Bottomley + +commit ecb73774e5f5b5f635a70073086c3f57b4ca4ae6 +Author: Mauro Carvalho Chehab +Date: Fri Mar 17 20:54:32 2006 -0300 + + V4L/DVB (3545): Fixed no_overlay option and quirks on saa7134 driver + + Some chipsets have several problems when pci to pci transfers are activated + on overlay mode. the option no_overlay allows disabling such feature of + the driver, in favor of keeping the system stable. + The default is to use pcipci_fail flag defined on drivers/pci/quirks.c. + It also allows the user to override it by forcing disable overlay or forcing + enable. Forcing enable may generate PCI transfer corruption, including disk + mass corruption, so should be used with care. + Added a text description to this option and make messages looks the same at + both bttv and saa7134 drivers. + + Signed-off-by: Mauro Carvalho Chehab + +commit 08f1d0b99f4e2203935d86640a7fec5c233b777c +Author: Manu Abraham +Date: Fri Mar 17 18:21:17 2006 -0300 + + V4L/DVB (3543): Fix Makefile to adapt to bt8xx/ conversion + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 8abe58aee6c682b5d300ce8e792821475646d79d +Author: Uwe Bugla +Date: Thu Mar 16 20:37:05 2006 -0300 + + V4L/DVB (3538): Bt8xx documentation update + + Signed-off-by: Uwe Bugla + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit a8733ca5141c256322ab5ea9fd3074942a209bba +Author: Mauro Carvalho Chehab +Date: Fri Mar 17 10:37:02 2006 -0300 + + V4L/DVB (3537a): Whitespace cleanup + + Signed-off-by: Mauro Carvalho Chehab + +commit 4caba4261f2649215710ac0298bd7814080000ad +Author: Oliver Endriss +Date: Fri Mar 17 05:29:15 2006 -0300 + + V4L/DVB (3533): Add WSS (wide screen signalling) module parameters + + Add wss_cfg_4_3 and wss_cfg_16_9 configuration options. + Firmware 2623 or later required. + Both parameters are bit masks: + - bit 15: disable WSS + - bit 14: send short WSS burst, then turn off WSS + - bit 13..0: WSS bits as specified by the standard + These parameters are useful if you own a broken tv set which + does not handle wss correctly. + Default settings: + - wss_cfg_4_3: 0x4008 + - wss_cfg_16_9: 0x0007 + These should work with most devices. + + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit 265366e8fb8c31706711aea5f79d763816a968db +Author: Perceval Anichini +Date: Thu Mar 16 11:22:47 2006 -0300 + + V4L/DVB (3532): Moved duplicated code of ALPS BSRU6 tuner to a standalone file. + + Moved duplicated code of ALPS BSRU6 tuner to a standalone file. + Modified av7110 and budget drivers to include the new file. + + Signed-off-by: Perceval Anichini + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit ad5125913be0a723a2e17824ec688d4890bf978b +Author: Michael Krufky +Date: Thu Mar 16 14:53:23 2006 -0300 + + V4L/DVB (3530): Kconfig: remove VIDEO_AUDIO_DECODER + + - removed VIDEO_AUDIO_DECODER Kconfig menu item. + VIDEO_MSP3400, VIDEO_CS53L32A and VIDEO_WM8775 now + each have their own menu items. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit e273db7a99eabb4b2ba66dbaa90a63894cb2f2e3 +Author: Michael Krufky +Date: Thu Mar 16 14:48:38 2006 -0300 + + V4L/DVB (3529): Kconfig: add menu items for cs53l32a and wm8775 A/D converters + + - created Kconfig item, VIDEO_CS53L32A, for the cs53l32a module which supports + the Cirrus Logic CS53L32A Low Voltage Stereo A/D Converter. + - created Kconfig item, VIDEO_WM8775, for the wm8775 module which supports + the Wolfson Microelectronics WM8775 high performance stereo A/D Converter. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit f5c08a2ee906381d85a6f0a3ca309fd56cf3b90f +Author: Michael Krufky +Date: Thu Mar 16 13:18:25 2006 -0300 + + V4L/DVB (3528): Kconfig: fix ATSC frontend menu item names by manufacturer + + - Corrected typo for NxtWave NXT200X + - Added "Oren" manufacturer name to menu items for OR51132 and OR51211 + - Removed "(pcHDTV HDx000 card)" from Oren frontends menu item names, + This isn't necessary, as these frontends are selected by the card drivers, + build configuration (DVB_BT8XX and VIDEO_CX88_DVB). + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit e690e14c9476aa46ec49ce8e24a591f786aa4766 +Author: Adrian Bunk +Date: Thu Mar 16 12:53:53 2006 -0300 + + V4L/DVB (3527): VIDEO_CPIA2 must depend on USB + + CONFIG_VIDEO_CPIA2=y, CONFIG_USB=n results in the following compile + <-- snip --> + ... + LD .tmp_vmlinux1 + drivers/built-in.o: In function `set_alternate':cpia2_usb.c:(.text+0x443aa2): undefined reference to `usb_set_interface' + drivers/built-in.o: In function `cpia2_usb_stream_resume': undefined reference to `usb_alloc_urb' + drivers/built-in.o: In function `cpia2_usb_stream_resume': undefined reference to `usb_submit_urb' + drivers/built-in.o: In function `cpia2_usb_stream_pause': undefined reference to `usb_kill_urb' + drivers/built-in.o: In function `cpia2_usb_stream_pause': undefined reference to `usb_free_urb' + drivers/built-in.o: In function `cpia2_usb_disconnect':cpia2_usb.c:(.text+0x443e14): undefined reference to `usb_driver_release_interface' + drivers/built-in.o: In function `cpia2_usb_transfer_cmd': undefined reference to `usb_control_msg' + drivers/built-in.o: In function `cpia2_usb_transfer_cmd': undefined reference to `usb_control_msg' + drivers/built-in.o: In function `cpia2_usb_complete':cpia2_usb.c:(.text+0x444836): undefined reference to `usb_submit_urb' + drivers/built-in.o: In function `cpia2_usb_cleanup': undefined reference to `usb_deregister' + drivers/built-in.o: In function `cpia2_usb_init': undefined reference to `usb_register_driver' + + Signed-off-by: Adrian Bunk + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit baacb5bf47eb4066d5f715529d5e68b004ad574c +Author: Michael Krufky +Date: Thu Mar 16 02:59:09 2006 -0300 + + V4L/DVB (3525): Kconfig: remove VIDEO_DECODER + + - removed VIDEO_DECODER Kconfig menu item. + VIDEO_CX25840, VIDEO_SAA711X and VIDEO_SAA7127 now + each have their own menu items. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit ac9ec9358e63878b105f48f5f094105dff7d9833 +Author: Michael Krufky +Date: Thu Mar 16 02:53:14 2006 -0300 + + V4L/DVB (3524): Kconfig: add menu items for saa7115 and saa7127 + + - created Kconfig menu item, VIDEO_SAA711X, for the saa7115 module, + which supports SAA7113, SAA7114 and SAA7115 video decoders. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit cfdd4ad0661e57db353ff36c2e8c57fc956cf6fb +Author: Michael Krufky +Date: Mon Mar 13 23:44:31 2006 -0300 + + V4L/DVB (3494): Kconfig: select VIDEO_MSP3400 to build msp3400.ko + + The msp3400 driver is currently only being built if + the bttv driver is selected. There are new drivers + that will be needing msp3400, so simply including + msp3400 in the Makefile is no longer appropriate. + This patch creates VIDEO_MSP3400, and alters VIDEO_BT848, VIDEO_PVRUSB2 + and VIDEO_AUDIO_DECODER each to select VIDEO_MSP3400. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 02c17224da6182d11cde34d57b27b93aaa7206cf +Author: Mauro Carvalho Chehab +Date: Thu Mar 16 18:44:07 2006 -0300 + + V4L/DVB (3522): Fixed a trouble with other PAL standards + + V4L2_STD_PAL define is not correct. It specifies only 50Hz PAL standards. + This patch fixes saa7113 color config for other PAL video standards. + + Signed-off-by: Mauro Carvalho Chehab + +commit 9b89f2d301db6ad1fc716b70d9e26a38c958e7a5 +Author: Mauro Carvalho Chehab +Date: Wed Mar 15 17:52:14 2006 -0300 + + V4L/DVB (3521): Avoid warnings at video-buf.c + + Signed-off-by: Mauro Carvalho Chehab + +commit f89982a978974cc2fb74f512d7ec7438e0e851ea +Author: Mauro Carvalho Chehab +Date: Tue Mar 14 16:33:33 2006 -0300 + + V4L/DVB (3514): SAA7113 doesn't have auto std chroma detection mode + + This patch makes chroma standard selection based at possible values, + according with datasheet. + + Signed-off-by: Mauro Carvalho Chehab + +commit f5762e441d5022ecc5b66b5fe54e41e2ac5d02be +Author: Mauro Carvalho Chehab +Date: Mon Mar 13 13:31:31 2006 -0300 + + V4L/DVB (3513): Remove saa711x driver + + Now, em28xx uses saa7115 instead of saa711x. + saa7115 driver is capable of handling saa 7113, 7114 and 7115. + + Signed-off-by: Mauro Carvalho Chehab + +commit c04e89b1f2c624fbb1e57874062491c2b987c7e2 +Author: Adrian Bunk +Date: Wed Mar 15 16:17:11 2006 -0300 + + V4L/DVB (3509): Make a needlessly global function static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 77cc5319900054662861cb147f300b1d1d22fcc5 +Author: Markus Rechberger +Date: Wed Mar 15 09:31:31 2006 -0300 + + V4L/DVB (3506): Cinergy T2 dmx cleanup on disconnect + + Detaching the device didn't clean up several device files in /dev/dvb, + after applying that patch all dvb devices disappeared as expected. + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit ba3a5a81f79d16666e1b46ee9e4fe7f2bc8bd70f +Author: Michael Krufky +Date: Tue Mar 14 19:02:12 2006 -0300 + + V4L/DVB (3504): Medion 7134: Autodetect second bridge chip + + The device, Medion 7134, has two saa7134 chips on it, but only one of them + is functional in the current saa7134 driver. + This patch adds autodetection for the second, unsupported saa7134 chip, + as SAA7134_BOARD_MD7134_BRIDGE_2, and displays a message to the user + (in dmesg) indicating that the second chip isn't yet functional. + This is useful for users, since two instances of the saa7134 driver + will spawn. This patch will prevent confusion by warning the user that + only one of the chips on the board are functional. + There are other versions of the SAA7134_BOARD_MD7134 with only a single + saa7134 bridge/decoder -- those devices will not be affected by this patch. + Only devices containing the second chip will display the warning. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 67ac9a40f90db57b09f7d98f72d8d0344acefbac +Author: Michael Krufky +Date: Tue Mar 14 16:18:49 2006 -0300 + + V4L/DVB (3503): Whitespace: fix incorrect indentation of curly bracket + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 12a219da0a74d1d797475addbccaedf2343be571 +Author: Michael Krufky +Date: Tue Mar 14 16:07:42 2006 -0300 + + V4L/DVB (3502): Saa7134: make unsupported secondary decoder message generic + + There are already some supported devices that contain two + saa713x chips on-board, where only one of these chips is + currently functional in the driver. + We are already printing a warning message for the second + saa7134 decoder in SAA7134_BOARD_AVERMEDIA_A169_B. This + patch alters that case to make it generic, so that other + cards in the same situation can use it. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 34731df288a5ffe4b0c396caf8cd24c6a710a222 +Author: Andreas Oberritter +Date: Tue Mar 14 17:31:01 2006 -0300 + + V4L/DVB (3501): Dmxdev: use dvb_ringbuffer + + Use dvb_ringbuffer instead of an own buffer implementation in + dmxdev.[ch]. + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit 4304954eb668ce66fc58f1cab9abb9a9e2584549 +Author: Andreas Oberritter +Date: Tue Mar 14 17:30:09 2006 -0300 + + V4L/DVB (3500): Ringbuffer: don't reset pointers to zero + + Oliver Endriss spotted, that resetting read and write pointers on + flush() requires additional locking and breaks the av7110 driver. + Therefore this patch partially reverts the previous patch titled "make + dvb_ringbuffer compatible to dmxdev_buffer". + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit 19478843e4f8af7de9b297876519ee8b98c2f5ad +Author: Mauro Carvalho Chehab +Date: Tue Mar 14 17:24:57 2006 -0300 + + V4L/DVB (3499): Fix a bug when more than MAXBOARDS were plugged on em28xx + + Coverity reported a bug at checking max number of supported boards by + em28xx init code. + + Signed-off-by: Mauro Carvalho Chehab + +commit 5e5890e16ea917ad489a7778f51631bdb14523a2 +Author: Michael Krufky +Date: Tue Mar 14 01:25:01 2006 -0300 + + V4L/DVB (3497): Remove redundant makefile inclusion of tuner.o + + VIDEO_MXB selects VIDEO_TUNER, so we don't have to include tuner.o + in the Makefile. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 49444fe1239cc26882d1b1fdcc658b3bdf8df942 +Author: Michael Krufky +Date: Tue Mar 14 00:52:20 2006 -0300 + + V4L/DVB (3496): Cpia2: move Kconfig build logic into cpia2/Kconfig + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit f6fe8c6a429bb44d95091e67f8e39662cd4e6fc3 +Author: Michael Krufky +Date: Tue Mar 14 00:35:07 2006 -0300 + + V4L/DVB (3495): Kconfig: select VIDEO_CX25840 to build cx25840 a/v decoder module + + The cx25840 module requires external firmware in order to function, + so it must select FW_LOADER, but saa7115 and saa7129 do not require it. + This patch creates VIDEO_CX25840, and alters VIDEO_DECODER to select it. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 31dcbf994b9eda784c620c8caa3a9dc67a9d0045 +Author: Duncan Sands +Date: Tue Mar 14 12:12:39 2006 -0300 + + V4L/DVB (3488): Snd_cx88_create: don't dereference NULL core + + If the call to cx88_core_get returns a NULL value, it is dereferenced + by cx88_reset, and perhaps by cx88_core_put. Spotted by the Coverity + checker. + + Signed-off-by: Duncan Sands + Signed-off-by: Mauro Carvalho Chehab + +commit ae24601b47c3f4a56545ef4cd4e7c821ac1db598 +Author: Eric Sesterhenn +Date: Mon Mar 13 13:17:11 2006 -0300 + + V4L/DVB (3485): BUG_ON() Conversion in drivers/video/media + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Mauro Carvalho Chehab + +commit 9d9d6baeca6f9174b8e7fd219a62a8fa09d61cc7 +Author: Andreas Oberritter +Date: Mon Mar 13 13:14:34 2006 -0300 + + V4L/DVB (3484): Make dvb_ringbuffer compatible to dmxdev_buffer + + Added variable 'error' to struct dvb_ringbuffer, which is set to zero on + init() and flush(). Also reset read an write pointers to zero on flush() + to get less fragmented data. + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit fc34f165317403444d254a27bc356dc5de0bbc3d +Author: Michael Krufky +Date: Mon Mar 13 03:41:44 2006 -0300 + + V4L/DVB (3479): Cleanup mangled whitespace + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 9f9c907fdc331fc6062d758f46f65cb0d2dd11be +Author: Marcin Rudowski +Date: Sun Mar 12 00:03:47 2006 -0300 + + V4L/DVB (3449): Cx88 default picture controls values + + This patch fixes default values for some picture controls: + - brightness set to 50% by default (now is 0%) + - hue set to 50% by default (now is 0%) + - sets saturation to datasheet value + - volume set to 0dB (now is -32dB) + and some left small fixes: + - twice offset adding + - balance didn't follow datasheet (bits[0:5] = attenuation; + bit[6] = channel to provide attenuation) + + Signed-off-by: Marcin Rudowski + Signed-off-by: Ian Pickworth + Signed-off-by: Mauro Carvalho Chehab + +commit a5daecbaebda687d62c2ba1f46adaa96e4394282 +Author: Matheus Izvekov +Date: Sat Mar 11 23:54:58 2006 -0300 + + V4L/DVB (3448): Cx88-input.c: add IR remote control support to CX88_BOARD_PROLINK_PLAYTVPVR + + This patch adds support for the IR remote control found in the card + CX88_BOARD_PROLINK_PLAYTVPVR. + + Signed-off-by: Matheus Izvekov + Signed-off-by: Mauro Carvalho Chehab + +commit 49239c35f28e53f280b47efdbccfdf2cbd728993 +Author: Matheus Izvekov +Date: Sat Mar 11 23:54:24 2006 -0300 + + V4L/DVB (3447): Cx88-cards.c: fix values of gpio0 for card CX88_BOARD_PROLINK_PLAYTVPVR + + This patch changes the gpio0 values for the card CX88_BOARD_PROLINK_PLAYTVPVR + to the ones observed using RegSpy from the dscaler project. + + Signed-off-by: Matheus Izvekov + Signed-off-by: Mauro Carvalho Chehab + +commit 68593af311aadb541b3b70acea175dea8e9cf7ca +Author: Rickard Osser +Date: Sat Mar 11 17:14:12 2006 -0300 + + V4L/DVB (3446): Saa7134: add support for AVerMedia A169 Dual Analog tuner card + + - Added support for AVerMedia A169 Dual Analog tuner card + (dual saa7134 decoders - only 1 working right now) + - Added autodetection for both parts of the card. + It shows up like 2 cards, B1 and B + - Enabled tuner B1, SVIDEO on B1 and composite1 through SVIDEO, + FIXME: B is more or less dead at this point and I suspect the + FM-radio is on the B part of the board + + Signed-off-by: Rickard Osser + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit f3629be8388a679590eb919919ee63e2715ec25e +Author: Michael Krufky +Date: Sat Mar 11 17:02:01 2006 -0300 + + V4L/DVB (3445): LG TALN series: add PAL / SECAM support + + - added tuner_lg_taln_pal_secam_ranges + - renamed tuner 66 from TUNER_LG_NTSC_TALN_MINI to TUNER_LG_TALN + - updated FlyTV mini Asus Digimatrix with new tuner + + Thanks-to: Rickard Osser + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit fd2f26771b14a321f4003366fdf99a2484fa6b2a +Author: Michael Krufky +Date: Sat Mar 11 16:21:36 2006 -0300 + + V4L/DVB (3444): Saa7134: small whitespace cleanup + + - matched indents on quotes within a printk + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit b1b168e62390b720e46271937355edba0a6e30bf +Author: Michael Krufky +Date: Sat Mar 11 16:12:35 2006 -0300 + + V4L/DVB (3443): Thomson FE6600: add missing "count" array element + + - added missing "count" element in Thomson FE6600 + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 9050d942b7dc55cd8e6d9b2c1ce260656021f0fb +Author: Mauro Carvalho Chehab +Date: Fri Mar 10 16:46:50 2006 -0300 + + V4L/DVB (3439): Added no_overlay option and quirks to saa7134 + + Some chipsets have several problems when pci to pci transfers are activated + on overlay mode. the option no_overlay allows disabling such feature of + the driver, in favor of keeping the system stable. + The default is to use pcipci_fail flag defined on drivers/pci/quirks.c. + It also allows the user to override it by forcing disable overlay or forcing + enable. Forcing enable may generate PCI transfer corruption, including disk + mass corruption, so should be used with care. + Added a text description to this option and make messages looks the same at + both bttv and saa7134 drivers. + + Signed-off-by: Mauro Carvalho Chehab + +commit f705e6e4940c4e803240b77c6c63fb2d47a97b59 +Author: Andreas Oberritter +Date: Fri Mar 10 15:22:31 2006 -0300 + + V4L/DVB (3438): Optical cleanup for dmxdev.c + + Used Lindent, manually changed some line breaks. Removed invalid email + addresses, useless casts and useless initialization of return values. + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit bbad7dc5488a04fadebd7fa8aa051d81c2ae0080 +Author: Andreas Oberritter +Date: Fri Mar 10 15:21:58 2006 -0300 + + V4L/DVB (3437): Fix typo in enum name and use enum in struct dmxdev_filter + + Rename 'enum dmxdevype' to 'enum dmxdev_type' and use this enum instead + of int for the member 'type' of struct dmxdev_filter. + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit 6abe6bff6fc62832bc8cce3886b9670ba2542601 +Author: Andreas Oberritter +Date: Fri Mar 10 15:21:43 2006 -0300 + + V4L/DVB (3436): Remove 'dvbdev' from struct dmxdev_filter + + The member dvbdev gets initialized once but is never used after that. + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit 09794a6f95cf970d76e8b1c0ddd2b20a89f3dd88 +Author: Andreas Oberritter +Date: Fri Mar 10 15:21:28 2006 -0300 + + V4L/DVB (3435): Remove 'pid' from struct dmxdev_filter + + The PID value is already stored in struct dmx_sct_filter_params which is + a member of struct dmxdev_filter. + Acked-by: Johannes Stezenbach + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit 4aca4831aafad64a8622cd855c5f952228d75d72 +Author: Marcin Rudowski +Date: Thu Mar 9 16:09:51 2006 -0300 + + V4L/DVB (3425): Correct gpio values for Aver 303 Studio in v4l-dvb tree + + Old values generally works in A2 mono, but new ones allows: + - detect and use Nicam stereo + - mute in tv + - use radio FM + + Signed-off-by: Marcin Rudowski + Signed-off-by: Mauro Carvalho Chehab + +commit 7947a220e5fe1373f1830b41fb7376bef636f113 +Author: Mauro Carvalho Chehab +Date: Thu Mar 9 16:09:20 2006 -0300 + + V4L/DVB (3424): Updated CARDLIST.tuner with newer tenna string + + Also Removed whitespaces introduced by previous tena patch + + Signed-off-by: Mauro Carvalho Chehab + +commit cef4e7af71ec16aba13ae291e41262a8913a56d8 +Author: Ian Pickworth +Date: Thu Mar 9 12:03:40 2006 -0300 + + V4L/DVB (3423): Fix cx88 error messages on balance change + + There is an error in the cx88 code that causes this message in the syslog when + balance is changed at full volume: + Mar 4 18:35:08 ian2 kernel: cx88[0]: irq pci [0x1] vid* + Mar 4 18:35:39 ian2 last message repeated 348 times + Mar 4 18:36:01 ian2 last message repeated 564 times + ... and so on + The attached patch cures this problem. + + Signed-off-by: Ian Pickworth + Signed-off-by: Marcin Rudowski + Signed-off-by: Mauro Carvalho Chehab + +commit 99ca99915068806552d1f90ce50bed4c7387d65a +Author: Duncan Sands +Date: Thu Mar 9 11:20:14 2006 -0300 + + V4L/DVB (3420): Nskips maybe used uninitialized in bttv_risc_overlay + + The Coverity checker (previously Stanford checker) noticed that + the value of nskips could be read even if it was never written. + + Signed-off-by: Duncan Sands + Signed-off-by: Mauro Carvalho Chehab + +commit efcf55cb5c21d7142aeb1a5a4c14e40960600bd6 +Author: Mauro Carvalho Chehab +Date: Thu Mar 9 11:17:43 2006 -0300 + + V4L/DVB (3419): This patch fixes Tuner TNF5335 family + + Radio now works. + Tuner now supports both PAL/D and STD/MN models + + Signed-off-by: Mauro Carvalho Chehab + +commit 48e08101c0fa0e1767cdef13fdaea79cad3106a2 +Author: Ralf Baechle +Date: Tue Mar 21 13:27:48 2006 +0000 + + [MIPS] Update defconfigs. + + Signed-off-by: Ralf Baechle + +commit 17256052ff8c50f2330d2f297745fdbd6f37b720 +Author: Martin Michlmayr +Date: Mon Mar 20 02:51:20 2006 +0000 + + [MIPS] Separate CPU entries in /proc/cpuinfo with a blank line. + + Put in a blank line between CPU entries in /proc/cpuinfo, just like + most other architectures (i386, ia64, x86_64) do. + + Signed-off-by: Martin Michlmayr + Signed-off-by: Ralf Baechle + + --- + +commit 947df17cb1be4c7239280a77263c249fde1379ef +Author: H. Peter Anvin +Date: Fri Feb 24 21:20:29 2006 -0800 + + [MIPS] sys_mmap2 offset argument should always be shifted 12, not PAGE_SHIFT. + + This patch adjusts the offset argument passed into sys_mmap2 to be + always shifted 12, even when the native page size isn't 4K. This is + what all existing userspace libraries expect. + + Signed-off-by: H. Peter Anvin + Signed-off-by: Ralf Baechle + + --- + +commit de862b488e81172d4c610945efd9f3fc7f4b84a7 +Author: Atsushi Nemoto +Date: Fri Mar 17 12:59:22 2006 +0900 + + [MIPS] TX49XX has prefetch. + + The TX49XX has the prefetch instruction. It supports only Pref_Load + (hint 0). Actually changes in this patch except for Kconfig are not + have any effects, I added these changes to prevent misuse of unsupported + hints. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit c6281edb1d5e307f056fff0e174f60fa6133adc5 +Author: Thiemo Seufer +Date: Tue Mar 14 14:35:27 2006 +0000 + + [MIPS] Kill tlb-andes.c. + + Basically identical to c-r4k.c, so maintaining one is really enough. + + Signed-off-by: Thiemo Seufer + Signed-off-by: Ralf Baechle + +commit a3dddd560ee936495466d85ecc97490d171e8d31 +Author: Ralf Baechle +Date: Sat Mar 11 08:18:41 2006 +0000 + + [MIPS] War on whitespace: cleanup initial spaces followed by tabs. + + Signed-off-by: Ralf Baechle + +commit 59b3e8e9aac69d2d02853acac7e2affdfbabca50 +Author: Ralf Baechle +Date: Wed Mar 8 11:35:00 2006 +0000 + + [MIPS] Makefile crapectomy. + + Dump all the ridiculously complicated stuff that was needed support + compilers older and newer than 3.0. + + Signed-off-by: Ralf Baechle + Signed-off-by: Thiemo Seufer + +commit 0cea043b56443aef8a77539cdd79451f5d55009d +Author: Ralf Baechle +Date: Fri Mar 3 09:42:05 2006 +0000 + + [MIPS] Reformat __xchg(). + + Signed-off-by: Ralf Baechle + +commit a206f6a7aa78cfaad1d4519e87d9a54fa2b5cfa6 +Author: Martin Michlmayr +Date: Wed Mar 1 01:55:05 2006 +0000 + + [MIPS] Mention Broadcom part number for BigSur board + + Mention the Broadcom part number for the BigSur board (BCM91480B) + in Kconfig, just like it's done for other Broadcom boards. + + Signed-off-by: Martin Michlmayr + Signed-off-by: Ralf Baechle + +commit 8145095cd8fd466980ea6401f26a52e462275222 +Author: Ralf Baechle +Date: Wed Feb 22 23:06:55 2006 +0000 + + [MIPS] Remove CONFIG_BUILD_ELF64. + + This option is no longer usable with supported compilers. It will be + replaced by usage of -msym32 in a separate patch. + + Signed-off-by: Ralf Baechle + +commit 219ac73a7ad17a3ae3d5c07b4fc8c280645a073a +Author: Atsushi Nemoto +Date: Tue Feb 21 16:05:11 2006 +0900 + + [MIPS] Further sparsification for 32-bit compat code. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit b1bcb362d921f5e46a3bec0c7a73c32abfe74db2 +Author: Atsushi Nemoto +Date: Tue Feb 21 01:27:59 2006 +0900 + + [MIPS] fix wrong __user usage in _sysn32_rt_sigsuspend + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 9c6031cc93626a194a9ef32d62b078ef1b396c45 +Author: Atsushi Nemoto +Date: Sun Feb 19 23:46:44 2006 +0900 + + [MIPS] Signal cleanup + + Move function prototypes to asm/signal.h to detect trivial errors and + add some __user tags to get rid of sparse warnings. Generated code + should not be changed. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit 6254944faf5ff96b8b468457e3e2b2dcacc29fb7 +Author: Martin Michlmayr +Date: Sat Feb 18 20:06:32 2006 +0000 + + [MIPS] Reformat all of signal32.c with tabs instead of space for consistency + + Signed-off-by: Martin Michlmayr + Signed-off-by: Ralf Baechle + +commit af2667f7efa64706c78b8bee1398726fc86b42ad +Author: Ralf Baechle +Date: Sun Feb 19 03:20:07 2006 +0000 + + [MIPS] Delete unused sys32_waitpid. + + Signed-off-by: Ralf Baechle + +commit a8433137ea9143bb3a2bc18a3407b5a130fdb868 +Author: Atsushi Nemoto +Date: Fri Feb 17 01:36:24 2006 +0900 + + [MIPS] Make I/O helpers more customizable + + 1. Move ioswab*() and __mem_ioswab*() to mangle-port.h. This gets rid + of CONFIG_SGI_IP22 from include/asm-mips/io.h. + + 2. Pass a virtual address to *ioswab*(). Then we can provide + mach-specific *ioswab*() and can do every evil thing based on its + argument. It could be useful on machines which have regions with + different endian conversion scheme. + + 3. Call __swizzle_addr*() _after_ adding mips_io_port_base. This + unifies the meaning of the argument of __swizzle_addr*() (always + virtual address). Then mach-specific __swizzle_addr*() can do every + evil thing based on the argument. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit c1449c8fa40859eb269025a7db85b34115205f5b +Author: Ralf Baechle +Date: Wed Feb 15 15:17:19 2006 +0000 + + [MIPS] Symmetric Uniprocessor support for Qemu. + + SMP bits needed to builds and run an SMP kernel. While only a single + processor is supported ATM it's still useful for some SMP debugging using + Qemu. + + Signed-off-by: Ralf Baechle + +commit 37caa934af02bc01d0e1366a49e1c89360fa0f29 +Author: Atsushi Nemoto +Date: Wed Feb 15 18:25:48 2006 +0900 + + [MIPS] sc-rm7k.c cleanup + + Use blast_scache_range, blast_inv_scache_range for rm7k scache routine. + Output code should be logically same. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Ralf Baechle + +commit bbad8123f3a40a7b262e8e52d0bc10da67d719bb +Author: Ralf Baechle +Date: Wed Feb 15 13:06:34 2006 +0000 + + [MIPS] MIPS64 R2 optimizations for 64-bit endianess swapping. + + Signed-off-by: Ralf Baechle + +commit e87dddeb92618d9dbb8b9f946a193739a4447609 +Author: Peter Horton +Date: Sun Feb 12 17:10:25 2006 +0000 + + [MIPS] Add early console for Cobalt. + + Signed-off-by: Peter Horton + Signed-off-by: Ralf Baechle + +commit 55e9dce37ddf3ab358ba1d1e9eef4ee4bd8174a6 +Author: David McCullough +Date: Wed Mar 15 21:08:51 2006 +1100 + + [CRYPTO] aes: Fixed array boundary violation + + The AES setkey routine writes 64 bytes to the E_KEY area even though + there are only 60 bytes there. It is in fact safe since E_KEY is + immediately follwed by D_KEY which is initialised afterwards. However, + doing this may trigger undefined behaviour and makes Coverity unhappy. + + So by combining E_KEY and D_KEY into one array we sidestep this issue + altogether. + + This problem was reported by Adrian Bunk. + + Signed-off-by: Herbert Xu + +commit 06b42aa94b65806b4f8c5fc893ef97a2f491fb32 +Author: Atsushi Nemoto +Date: Mon Mar 13 21:39:23 2006 +1100 + + [CRYPTO] tcrypt: Fix key alignment + + Force 32-bit alignment on keys in tcrypt test vectors. Also rearrange the + structure to prevent unnecessary padding. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Herbert Xu + +commit 20ea340489ddee7b3a438ee58f32f2608cc145de +Author: Atsushi Nemoto +Date: Mon Mar 13 21:30:29 2006 +1100 + + [CRYPTO] all: Add missing cra_alignmask + + The "des3_ede" and "serpent" lack cra_alignmask. + + Signed-off-by: Atsushi Nemoto + Signed-off-by: Herbert Xu + +commit bbeb563f7bb5e703e4d60c18bed81c987781343f +Author: Eric Sesterhenn +Date: Mon Mar 6 21:42:07 2006 +1100 + + [CRYPTO] all: Use kzalloc where possible + + this patch converts crypto/ to kzalloc usage. + Compile tested with allyesconfig. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Herbert Xu + +commit f10b7897ee29649fa7f0ccdc8d859ccd6ce7dbfd +Author: Herbert Xu +Date: Wed Jan 25 22:34:01 2006 +1100 + + [CRYPTO] api: Align tfm context as wide as possible + + Since tfm contexts can contain arbitrary types we should provide at least + natural alignment (__attribute__ ((__aligned__))) for them. In particular, + this is needed on the Xscale which is a 32-bit architecture with a u64 type + that requires 64-bit alignment. This problem was reported by Ronen Shitrit. + + The crypto_tfm structure's size was 44 bytes on 32-bit architectures and + 80 bytes on 64-bit architectures. So adding this requirement only means + that we have to add an extra 4 bytes on 32-bit architectures. + + On i386 the natural alignment is 16 bytes which also benefits the VIA + Padlock as it no longer has to manually align its context structure to + 128 bits. + + Signed-off-by: Herbert Xu + +commit a5f8c473052bc693cdbe2f9ae4b424b993886ff5 +Author: Denis Vlasenko +Date: Mon Jan 16 17:42:28 2006 +1100 + + [CRYPTO] twofish: Use rol32/ror32 where appropriate + + Convert open coded rotations to rol32/ror32. + + Signed-off-by: Herbert Xu + +commit 5e35941d990123f155b02d5663e51a24f816b6f3 +Author: Jing Min Zhao +Date: Mon Mar 20 23:41:17 2006 -0800 + + [NETFILTER]: Add H.323 conntrack/NAT helper + + Signed-off-by: Jing Min Zhao + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 30ca3e376e82cc44488b1d377adfb10b5818548e +Author: David S. Miller +Date: Mon Mar 20 23:02:36 2006 -0800 + + [TG3]: Don't mark tg3_test_registers() as returning const. + + Signed-off-by: David S. Miller + +commit 322f74a432f976328e834a8663f2e75eb5933ecc +Author: Ingo Oeser +Date: Mon Mar 20 23:01:47 2006 -0800 + + [IPV6]: Cleanups for net/ipv6/addrconf.c (kzalloc, early exit) v2 + + Here are some possible (and trivial) cleanups. + - use kzalloc() where possible + - invert allocation failure test like + if (object) { + /* Rest of function here */ + } + to + + if (object == NULL) + return NULL; + + /* Rest of function here */ + + Signed-off-by: Ingo Oeser + Acked-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 0c600eda4b1c9f8f6d1bd643d494db5a29842fbe +Author: Ingo Oeser +Date: Mon Mar 20 23:01:32 2006 -0800 + + [IPV6]: Nearly complete kzalloc cleanup for net/ipv6 + + Stupidly use kzalloc() instead of kmalloc()/memset() + everywhere where this is possible in net/ipv6/*.c . + + Signed-off-by: Ingo Oeser + Signed-off-by: David S. Miller + +commit 78c784c47a2be593480cb6c69829a59f0504d575 +Author: Ingo Oeser +Date: Mon Mar 20 23:01:17 2006 -0800 + + [IPV6]: Cleanup of net/ipv6/reassambly.c + + Two minor cleanups: + + 1. Using kzalloc() in fraq_alloc_queue() + saves the memset() in ipv6_frag_create(). + + 2. Invert sense of if-statements to streamline code. + Inverts the comment, too. + + Signed-off-by: Ingo Oeser + Signed-off-by: David S. Miller + +commit b3e83d6d187664be56a1591ccfa99124b88f0582 +Author: Andrew Morton +Date: Mon Mar 20 23:00:56 2006 -0800 + + [BRIDGE]: Remove duplicate const from is_link_local() argument type. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 3400112794724d9bdc3de6e1ce1475b726e6ca7d +Author: Adrian Bunk +Date: Mon Mar 20 23:00:29 2006 -0800 + + [DECNET]: net/decnet/dn_route.c: fix inconsequent NULL checking + + The Coverity checker noted this inconsequent NULL checking in + dnrt_drop(). + + Since all callers ensure that NULL isn't passed, we can simply remove + the check. + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit 81789ef5c9a435fbf94224987efe6fbb97ffab09 +Author: Adrian Bunk +Date: Mon Mar 20 23:00:14 2006 -0800 + + [TG3]: make drivers/net/tg3.c:tg3_request_irq() static + + This patch makes the needlessly global function tg3_request_irq() + static. + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit 12ac84c4a9c505e3e30529563b04cc8f6d5ebbf3 +Author: Stephen Hemminger +Date: Mon Mar 20 22:59:49 2006 -0800 + + [BRIDGE]: use LLC to send STP + + The bridge code can use existing LLC output code when building + spanning tree protocol packets. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit f4ad2b162d653e4a6e57d598119e3820c65fef71 +Author: Stephen Hemminger +Date: Mon Mar 20 22:59:36 2006 -0800 + + [LLC]: llc_mac_hdr_init const arguments + + Cleanup of LLC. llc_mac_hdr_init can take constant arguments, + and it is defined twice once in llc_output.h that is otherwise unused. + + Signed-off-by: Stephen Hemminger + Acked-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit fda93d92d7824159d8532995072dde2bee4bc4b3 +Author: Stephen Hemminger +Date: Mon Mar 20 22:59:21 2006 -0800 + + [BRIDGE]: allow show/store of group multicast address + + Bridge's communicate with each other using Spanning Tree Protocol + over a standard multicast address. There are times when testing or + layering bridges over existing topologies or tunnels, when it is + useful to use alternative multicast addresses for STP packets. + + The 802.1d standard has some unused addresses, that can be used for this. + This patch is restrictive in that it only allows one of the possible + addresses in the standard. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit cf0f02d04a830c8202e6a8f8bb37acc6c1629a91 +Author: Stephen Hemminger +Date: Mon Mar 20 22:59:06 2006 -0800 + + [BRIDGE]: use llc for receiving STP packets + + Use LLC for the receive path of Spanning Tree Protocol packets. + This allows link local multicast packets to be received by + other protocols (if they care), and uses the existing LLC + code to get STP packets back into bridge code. + + The bridge multicast address is also checked, so bridges using + other link local multicast addresses are ignored. This allows + for use of different multicast addresses to define separate STP + domains. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 18fdb2b25be37e49b1669b5c394671f8c5b6550f +Author: Stephen Hemminger +Date: Mon Mar 20 22:58:49 2006 -0800 + + [BRIDGE]: stp timer to jiffies cleanup + + Cleanup the get/set of bridge timer value in the packets. + It is clearer not to bury the conversion in macro. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit f8ae737deea1be001d7d8ac11c382a7b73a1c98f +Author: Stephen Hemminger +Date: Mon Mar 20 22:58:36 2006 -0800 + + [BRIDGE]: forwarding remove unneeded preempt and bh diasables + + Optimize the forwarding and transmit paths. Both places are + called with bottom half/no preempt so there is no need to use + spin_lock_bh or rcu_read_lock. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit fdeabdefb227be9aa932f59a23ddb47e003e643e +Author: Stephen Hemminger +Date: Mon Mar 20 22:58:21 2006 -0800 + + [BRIDGE]: netfilter inline cleanup + + Move nf_bridge_alloc from header file to the one place it is + used and optimize it. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 8b42ec39264a1e7a508f5d80169a5fb137bcc833 +Author: Stephen Hemminger +Date: Mon Mar 20 22:58:05 2006 -0800 + + [BRIDGE]: netfilter VLAN macro cleanup + + Fix the VLAN macros in bridge netfilter code. Macros should + not depend on magic variables. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit f8a26028611fb93ac935ac32a72793f7fcb56a88 +Author: Stephen Hemminger +Date: Mon Mar 20 22:57:46 2006 -0800 + + [BRIDGE]: netfilter dont use __constant_htons + + Only use__constant_htons() for initializers and switch cases. + For other uses, it is just as efficient and clearer to use htons + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 789bc3e5b66d3664f651f6c10a188c8e3e025037 +Author: Stephen Hemminger +Date: Mon Mar 20 22:57:32 2006 -0800 + + [BRIDGE]: netfilter whitespace + + Run br_netfilter through Lindent to fix whitespace. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit d5513a7d32de721a9e396c2b32cf277d5cef5fb6 +Author: Stephen Hemminger +Date: Mon Mar 20 22:57:18 2006 -0800 + + [BRIDGE]: optimize frame pass up + + The netfilter hook that is used to receive frames doesn't need to be a + stub. It is only called in two ways, both of which ignore the return + value. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit cee4854122d4347b2f6f10fe7f007a48fada29a0 +Author: Stephen Hemminger +Date: Mon Mar 20 22:57:03 2006 -0800 + + [BRIDGE]: use kzalloc + + Use kzalloc versus kmalloc+memset. Also don't need to do + memset() of bridge address since it is in netdev private data + that is already zero'd in alloc_netdev. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 3b781fa10bcdb148924d1847f68899583e0d66ef +Author: Stephen Hemminger +Date: Mon Mar 20 22:56:50 2006 -0800 + + [BRIDGE]: use kcalloc + + Use kcalloc rather than kmalloc + memset. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit a95fcacdc33fa12836c306deb085ef3e68bca15a +Author: Stephen Hemminger +Date: Mon Mar 20 22:56:38 2006 -0800 + + [BRIDGE]: use setup_timer + + Use the now standard setup_timer function. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit e3efe08e9a2c24232711dc573bf2decd2d93e335 +Author: Stephen Hemminger +Date: Mon Mar 20 22:56:25 2006 -0800 + + [BRIDGE]: remove unneeded bh disables + + The STP timers run off softirq (kernel timers), so there is no need to + disable bottom half in the spin locks. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 9ebddc1aa386f257125a569b41f90418b63b4d5f +Author: Andrew Morton +Date: Mon Mar 20 22:55:24 2006 -0800 + + [BRIDGE] br_netfilter: Warning fixes. + + net/bridge/br_netfilter.c: In function `br_nf_pre_routing': + net/bridge/br_netfilter.c:427: warning: unused variable `vhdr' + net/bridge/br_netfilter.c:445: warning: unused variable `vhdr' + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 74ca4e5acd7d09a5133bb75043c2c474347f2c7e +Author: Andrew Morton +Date: Mon Mar 20 22:55:02 2006 -0800 + + [BRIDGE] ebtables: Build fix. + + net/bridge/netfilter/ebtables.c:1481: warning: initialization makes pointer from integer without a cast + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit c8b2a6c50cacc98c924233a9e474c74c0370b6b8 +Author: David S. Miller +Date: Mon Mar 20 22:53:42 2006 -0800 + + [SPARC]: Fixup SO_PEERSEC value on 32-bit sparc. + + Sparc64 and Sparc32 have to have identical socket call + numbering in order to handle compat layer stuff properly. + + Signed-off-by: David S. Miller + +commit dbeff12b4d2fd5943f6f03f7ed9a3ca486577bb0 +Author: David S. Miller +Date: Mon Mar 20 22:52:32 2006 -0800 + + [INET]: Fix typo in Arnaldo's connection sock compat fixups. + + "struct inet_csk" --> "struct inet_connection_sock" :-) + + Signed-off-by: David S. Miller + +commit 8ca0d17bd716c0aa3f496714e0e304fc6b982ae3 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:51:53 2006 -0800 + + [DCCP] feat: Pass dccp_minisock ptr where only the minisock is used + + This is in preparation for having a dccp_minisock embedded into + dccp_request_sock so that feature negotiation can be done prior to + creating the full blown dccp_sock. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit a4bf3902427a128455b8de299ff0918072b2e974 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:50:58 2006 -0800 + + [DCCP] minisock: Rename struct dccp_options to struct dccp_minisock + + This will later be included in struct dccp_request_sock so that we can + have per connection feature negotiation state while in the 3way + handshake, when we clone the DCCP_ROLE_LISTEN socket (in + dccp_create_openreq_child) we'll just copy this state from + dreq_minisock to dccps_minisock. + + Also the feature negotiation and option parsing code will mostly touch + dccps_minisock, which will simplify some stuff. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit e6f507196c2b50243beb09b1bfa4639f999d4d1e +Author: Catherine Zhang +Date: Mon Mar 20 22:49:00 2006 -0800 + + [SELINUX]: selinux_socket_getpeer_{stream,dgram} fixup + + Signed-off-by: Catherine Zhang + Signed-off-by: Arnaldo Carvalho de Melo + +commit 543d9cfeec4d58ad3fd974db5531b06b6b95deb4 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:48:35 2006 -0800 + + [NET]: Identation & other cleanups related to compat_[gs]etsockopt cset + + No code changes, just tidying up, in some cases moving EXPORT_SYMBOLs + to just after the function exported, etc. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit f94691acf9df35d5cd828373e35391bdc4a3fde6 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:47:55 2006 -0800 + + [SK_BUFF]: export skb_pull_rcsum + + *** Warning: "skb_pull_rcsum" [net/bridge/bridge.ko] undefined! + *** Warning: "skb_pull_rcsum" [net/8021q/8021q.ko] undefined! + *** Warning: "skb_pull_rcsum" [drivers/net/pppoe.ko] undefined! + *** Warning: "skb_pull_rcsum" [drivers/net/ppp_generic.ko] undefined! + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit c841aa030437bdf1b6fb22d93eb760e35380a4ed +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:47:37 2006 -0800 + + [SECURITY] getpeersec: Fix build breakage + + A recent changeset removes dummy_socket_getpeersec, replacing it with + two new functions, but still references the removed function in the + security_fixup_ops table, fix it by doing the replacement operation in + the fixup table too. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit e35fc385655ac584902edd98dd07ac488e986aa1 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:46:40 2006 -0800 + + [INFINIBAND] ipoib: Remove leftover use of neigh_ops->destructor + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit dec73ff0293d59076d1fd8f4a264898ecfc457ec +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:46:16 2006 -0800 + + [ICSK] compat: Introduce inet_csk_compat_[gs]etsockopt + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit d1d47beef8ecaeedc368f00780d02cfa5e540005 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:45:37 2006 -0800 + + [SNAP]: Remove leftover unused hdr variable + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 3fdadf7d27e3fbcf72930941884387d1f4936f04 +Author: Dmitry Mishin +Date: Mon Mar 20 22:45:21 2006 -0800 + + [NET]: {get|set}sockopt compatibility layer + + This patch extends {get|set}sockopt compatibility layer in order to + move protocol specific parts to their place and avoid huge universal + net/compat.c file in the future. + + Signed-off-by: Dmitry Mishin + Signed-off-by: David S. Miller + +commit c750360938b403e6cc193d293cfbcb099dd6c60e +Author: Dave Jones +Date: Mon Mar 20 22:44:52 2006 -0800 + + [IPV6]: remove useless test in ip6_append_data + + We've already dereferenced 'np' a dozen + times at this point, so it's safe to say it's not null. + + Signed-off-by: Dave Jones + Signed-off-by: David S. Miller + +commit afb5bb57440f7c419b1214628d32c92293f1cfd4 +Author: Adrian Bunk +Date: Mon Mar 20 22:44:24 2006 -0800 + + [PKT_SCHED]: Let NET_CLS_ACT no longer depend on EXPERIMENTAL + + This option should IMHO no longer depend on EXPERIMENTAL. + + Signed-off-by: Adrian Bunk + ACKed-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit cbb042f9e1292434e3cacb90e67d8d381aeac5a9 +Author: Herbert Xu +Date: Mon Mar 20 22:43:56 2006 -0800 + + [NET]: Replace skb_pull/skb_postpull_rcsum with skb_pull_rcsum + + We're now starting to have quite a number of places that do skb_pull + followed immediately by an skb_postpull_rcsum. We can merge these two + operations into one function with skb_pull_rcsum. This makes sense + since most pull operations on receive skb's need to update the + checksum. + + I've decided to make this out-of-line since it is fairly big and the + fast path where hardware checksums are enabled need to call + csum_partial anyway. + + Since this is a brand new function we get to add an extra check on the + len argument. As it is most callers of skb_pull ignore its return + value which essentially means that there is no check on the len + argument. + + Signed-off-by: Herbert Xu + Signed-off-by: David S. Miller + +commit ecba320f2e95c9a0c35011d1ecb1db4419980536 +Author: Steven Whitehouse +Date: Mon Mar 20 22:43:28 2006 -0800 + + [DECnet]: Use RCU locking in dn_rules.c + + As per Robert Olsson's patch for ipv4, this is the DECnet + version to keep the code "in step". It changes the list + of rules to use RCU rather than an rwlock. + + Inspired-by: Robert Olsson + Signed-off-by: Steven Whitehouse + Signed-off-by: Patrick Caulfield + Signed-off-by: David S. Miller + +commit c60992db464bc3c459a6e2d3694fe1ae1a5ec784 +Author: Patrick Caulfield +Date: Mon Mar 20 22:43:05 2006 -0800 + + [DECnet]: Patch to fix recvmsg() flag check + + This patch means that 64bit kernel/32bit userland platforms will now + work correctly with DECnet. + + Signed-off-by: Patrick Caulfield + Signed-off-by: Steven Whitehouse + Signed-off-by: David S. Miller + +commit c4ea94ab3710eb2434abe2eab1a479c2dc01f8ac +Author: Steven Whitehouse +Date: Mon Mar 20 22:42:39 2006 -0800 + + [DECnet]: Endian annotation and fixes for DECnet. + + The typedef for dn_address has been removed in favour of using __le16 + or __u16 directly as appropriate. All the DECnet header files are + updated accordingly. + + The byte ordering of dn_eth2dn() and dn_dn2eth() are both changed + since just about all their callers wanted network order rather than + host order, so the conversion is now done in the functions themselves. + + Several missed endianess conversions have been picked up during the + conversion process. The nh_gw field in struct dn_fib_info has been + changed from a 32 bit field to 16 bits as it ought to be. + + One or two cases of using htons rather than dn_htons in the routing + code have been found and fixed. + + There are still a few warnings to fix, but this patch deals with the + important cases. + + Signed-off-by: Steven Whitehouse + Signed-off-by: Patrick Caulfield + Signed-off-by: David S. Miller + +commit 2c7946a7bf45ae86736ab3b43d0085e43947945c +Author: Catherine Zhang +Date: Mon Mar 20 22:41:23 2006 -0800 + + [SECURITY]: TCP/UDP getpeersec + + This patch implements an application of the LSM-IPSec networking + controls whereby an application can determine the label of the + security association its TCP or UDP sockets are currently connected to + via getsockopt and the auxiliary data mechanism of recvmsg. + + Patch purpose: + + This patch enables a security-aware application to retrieve the + security context of an IPSec security association a particular TCP or + UDP socket is using. The application can then use this security + context to determine the security context for processing on behalf of + the peer at the other end of this connection. In the case of UDP, the + security context is for each individual packet. An example + application is the inetd daemon, which could be modified to start + daemons running at security contexts dependent on the remote client. + + Patch design approach: + + - Design for TCP + The patch enables the SELinux LSM to set the peer security context for + a socket based on the security context of the IPSec security + association. The application may retrieve this context using + getsockopt. When called, the kernel determines if the socket is a + connected (TCP_ESTABLISHED) TCP socket and, if so, uses the dst_entry + cache on the socket to retrieve the security associations. If a + security association has a security context, the context string is + returned, as for UNIX domain sockets. + + - Design for UDP + Unlike TCP, UDP is connectionless. This requires a somewhat different + API to retrieve the peer security context. With TCP, the peer + security context stays the same throughout the connection, thus it can + be retrieved at any time between when the connection is established + and when it is torn down. With UDP, each read/write can have + different peer and thus the security context might change every time. + As a result the security context retrieval must be done TOGETHER with + the packet retrieval. + + The solution is to build upon the existing Unix domain socket API for + retrieving user credentials. Linux offers the API for obtaining user + credentials via ancillary messages (i.e., out of band/control messages + that are bundled together with a normal message). + + Patch implementation details: + + - Implementation for TCP + The security context can be retrieved by applications using getsockopt + with the existing SO_PEERSEC flag. As an example (ignoring error + checking): + + getsockopt(sockfd, SOL_SOCKET, SO_PEERSEC, optbuf, &optlen); + printf("Socket peer context is: %s\n", optbuf); + + The SELinux function, selinux_socket_getpeersec, is extended to check + for labeled security associations for connected (TCP_ESTABLISHED == + sk->sk_state) TCP sockets only. If so, the socket has a dst_cache of + struct dst_entry values that may refer to security associations. If + these have security associations with security contexts, the security + context is returned. + + getsockopt returns a buffer that contains a security context string or + the buffer is unmodified. + + - Implementation for UDP + To retrieve the security context, the application first indicates to + the kernel such desire by setting the IP_PASSSEC option via + getsockopt. Then the application retrieves the security context using + the auxiliary data mechanism. + + An example server application for UDP should look like this: + + toggle = 1; + toggle_len = sizeof(toggle); + + setsockopt(sockfd, SOL_IP, IP_PASSSEC, &toggle, &toggle_len); + recvmsg(sockfd, &msg_hdr, 0); + if (msg_hdr.msg_controllen > sizeof(struct cmsghdr)) { + cmsg_hdr = CMSG_FIRSTHDR(&msg_hdr); + if (cmsg_hdr->cmsg_len <= CMSG_LEN(sizeof(scontext)) && + cmsg_hdr->cmsg_level == SOL_IP && + cmsg_hdr->cmsg_type == SCM_SECURITY) { + memcpy(&scontext, CMSG_DATA(cmsg_hdr), sizeof(scontext)); + } + } + + ip_setsockopt is enhanced with a new socket option IP_PASSSEC to allow + a server socket to receive security context of the peer. A new + ancillary message type SCM_SECURITY. + + When the packet is received we get the security context from the + sec_path pointer which is contained in the sk_buff, and copy it to the + ancillary message space. An additional LSM hook, + selinux_socket_getpeersec_udp, is defined to retrieve the security + context from the SELinux space. The existing function, + selinux_socket_getpeersec does not suit our purpose, because the + security context is copied directly to user space, rather than to + kernel space. + + Testing: + + We have tested the patch by setting up TCP and UDP connections between + applications on two machines using the IPSec policies that result in + labeled security associations being built. For TCP, we can then + extract the peer security context using getsockopt on either end. For + UDP, the receiving end can retrieve the security context using the + auxiliary data mechanism of recvmsg. + + Signed-off-by: Catherine Zhang + Acked-by: James Morris + Acked-by: Herbert Xu + Signed-off-by: David S. Miller + +commit be33690d8fcf40377f16193c463681170eb6b295 +Author: Patrick McHardy +Date: Mon Mar 20 22:40:54 2006 -0800 + + [XFRM]: Fix aevent related crash + + When xfrm_user isn't loaded xfrm_nl is NULL, which makes IPsec crash because + xfrm_aevent_is_on passes the NULL pointer to netlink_has_listeners as socket. + A second problem is that the xfrm_nl pointer is not cleared when the socket + is releases at module unload time. + + Protect references of xfrm_nl from outside of xfrm_user by RCU, check + that the socket is present in xfrm_aevent_is_on and set it to NULL + when unloading xfrm_user. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 15d99e02babae8bc20b836917ace07d93e318149 +Author: Rick Jones +Date: Mon Mar 20 22:40:29 2006 -0800 + + [TCP]: sysctl to allow TCP window > 32767 sans wscale + + Back in the dark ages, we had to be conservative and only allow 15-bit + window fields if the window scale option was not negotiated. Some + ancient stacks used a signed 16-bit quantity for the window field of + the TCP header and would get confused. + + Those days are long gone, so we can use the full 16-bits by default + now. + + There is a sysctl added so that we can still interact with such old + stacks + + Signed-off-by: Rick Jones + Signed-off-by: David S. Miller + +commit c1b1bce8527c2c3cac7e2520ca54b7c04281033e +Author: Neil Horman +Date: Mon Mar 20 22:40:03 2006 -0800 + + [IPV4] ARP: Documentation for new arp_accept sysctl variable. + + As John pointed out, I had not added documentation to describe the + arp_accpet sysctl that I posted in my last patch. This patch adds + that documentation. + + Signed-off-by: Neil Horman + Signed-off-by: David S. Miller + +commit abd596a4b68b6526c2676233e10602dd9660e9d7 +Author: Neil Horman +Date: Mon Mar 20 22:39:47 2006 -0800 + + [IPV4] ARP: Alloc acceptance of unsolicited ARP via netdevice sysctl. + + Signed-off-by: Neil Horman + Signed-off-by: David S. Miller + +commit 59f1741e541bf4f6139599389610a70de49c3ad2 +Author: Jeff Mahoney +Date: Mon Mar 20 22:39:21 2006 -0800 + + [TG3]: netif_carrier_off runs too early; could still be queued when init fails + + Move the netif_carrier_off() call from tg3_init_one()-> + tg3_init_link_config() to tg3_open() as is the convention for most other + network drivers. + + I was getting a panic after a tg3 device failed to initialize due to DMA + failure. The oops pointed to the link watch queue with spinlock debugging + enabled. Without spinlock debugging, the Oops didn't occur. + + I suspect that the link event was getting queued but not executed until + after the DMA test had failed and the device was freed. The link event was + then operating on freed memory, which could contain anything. With this + patch applied, the Oops no longer occurs. + + [ Based upon feedback from Michael Chan, we move netif_carrier_off() + to the end of tg3_init_one() instead of moving it to tg3_open() -DaveM ] + + Signed-off-by: Jeff Mahoney + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 87546b1c25daa2c72ba6741c777f76c1eac6e2d9 +Author: Per Liden +Date: Mon Mar 20 22:38:33 2006 -0800 + + [TIPC]: Avoid compiler warning + + Signed-off-by: Per Liden + Signed-off-by: David S. Miller + +commit de70c5ba43b3442b99e94dc35bba2bbced168a84 +Author: Per Liden +Date: Mon Mar 20 22:38:14 2006 -0800 + + [TIPC]: Reduce stack usage + + The node_map struct can be quite large (516 bytes) and allocating two of + them on the stack is not a good idea since we might only have a 4K stack + to start with. + + Signed-off-by: Per Liden + Signed-off-by: David S. Miller + +commit 988f088a8e9e555dc99ced83690967fad3d905f6 +Author: Adrian Bunk +Date: Mon Mar 20 22:37:52 2006 -0800 + + [TIPC]: Cleanups + + This patch contains the following possible cleanups: + - make needlessly global code static + - #if 0 the following unused global functions: + - name_table.c: tipc_nametbl_print() + - name_table.c: tipc_nametbl_dump() + - net.c: tipc_net_next_node() + + Signed-off-by: Adrian Bunk + Signed-off-by: Per Liden + Signed-off-by: David S. Miller + +commit 7c501a5960a1bdf3b9eaef262916dc67107ff2b5 +Author: Per Liden +Date: Mon Mar 20 22:37:27 2006 -0800 + + [TIPC]: Remove unused functions + + Signed-off-by: Per Liden + Signed-off-by: David S. Miller + +commit 05790c6456f144024e655710347b3df499260374 +Author: Sam Ravnborg +Date: Mon Mar 20 22:37:04 2006 -0800 + + [TIPC]: Remove inlines from *.c + + With reference to latest discussions on linux-kernel with respect to + inline here is a patch for tipc to remove all inlines as used in + the .c files. See also chapter 14 in Documentation/CodingStyle. + + Before: + text data bss dec hex filename + 102990 5292 1752 110034 1add2 tipc.o + + Now: + text data bss dec hex filename + 101190 5292 1752 108234 1a6ca tipc.o + + This is a nice text size reduction which will improve icache usage. + In some cases bigger (> 4 lines) functions where declared inline + and used in many places, they are most probarly no longer inlined by gcc + resulting in the size reduction. + There are several one liners that no longer are declared inline, but gcc + should inline these just fine without the inline hint. + + With this patch applied one warning is added about an unused static + function - that was hidded by utilising inline before. + The function in question were kept so this patch is solely a + inline removal patch. + + Signed-off-by: Sam Ravnborg + Signed-off-by: Per Liden + Signed-off-by: David S. Miller + +commit 1fc54d8f49c1270c584803437fb7c0ac543588c1 +Author: Sam Ravnborg +Date: Mon Mar 20 22:36:47 2006 -0800 + + [TIPC]: Fix simple sparse warnings + + Tried to run the new tipc stack through sparse. + Following patch fixes all cases where 0 was used + as replacement of NULL. + Use NULL to document this is a pointer and to silence sparse. + + This brough sparse warning count down with 127 to 24 warnings. + + Signed-off-by: Sam Ravnborg + Signed-off-by: Per Liden + Signed-off-by: David S. Miller + +commit edb2c34fb2683ff21c8a6bcc3e41c07a53601761 +Author: David S. Miller +Date: Mon Mar 20 22:36:21 2006 -0800 + + [NETFILTER]: Fix warnings in ip_nat_snmp_basic.c + + net/ipv4/netfilter/ip_nat_snmp_basic.c: In function 'asn1_header_decode': + net/ipv4/netfilter/ip_nat_snmp_basic.c:248: warning: 'len' may be used uninitialized in this function + net/ipv4/netfilter/ip_nat_snmp_basic.c:248: warning: 'def' may be used uninitialized in this function + net/ipv4/netfilter/ip_nat_snmp_basic.c: In function 'snmp_translate': + net/ipv4/netfilter/ip_nat_snmp_basic.c:672: warning: 'l' may be used uninitialized in this function + net/ipv4/netfilter/ip_nat_snmp_basic.c:668: warning: 'type' may be used uninitialized in this function + + Signed-off-by: David S. Miller + +commit fb9504964d32f69e4381dc8895eeb8e81a32af72 +Author: David S. Miller +Date: Mon Mar 20 22:36:01 2006 -0800 + + [DCCP]: Fix uninitialized var warnings in dccp_parse_options(). + + Signed-off-by: David S. Miller + +commit 57b47a53ec4a67691ba32cff5768e8d78fa6c67f +Author: Ingo Molnar +Date: Mon Mar 20 22:35:41 2006 -0800 + + [NET]: sem2mutex part 2 + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 6613f82dd293b23f582a649b287fadbf8d23e6cf +Author: Alexey Dobriyan +Date: Mon Mar 20 22:35:16 2006 -0800 + + [ATM] suni: cast arg properly in SONET_SETFRAMING + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 471a24c0589cd192dcd2c6770ab6252cd42b1cff +Author: Sam Ravnborg +Date: Mon Mar 20 22:34:52 2006 -0800 + + [WAN]: fix section mismatch warning in sbni + + In latest -mm sbni gives following warning: WARNING: + drivers/net/wan/sbni.o - Section mismatch: reference to \ .init.data: + from .text between 'init_module' (at offset 0x14ef) and \ + 'cleanup_module' + + The warning is caused by init_module() calling a function declared + __init. Declare init_module() __init too to fix warning. + + Signed-off-by: Sam Ravnborg + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit e3968fc0f3db58e4c448ec20f66ce6da49d9bc5f +Author: Ingo Molnar +Date: Mon Mar 20 22:34:25 2006 -0800 + + [SUNGEM]: sem2mutex + + Semaphore to mutexes conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 758df69ee01f7be99c2df5562ef278bab05623dd +Author: Ingo Molnar +Date: Mon Mar 20 22:34:09 2006 -0800 + + [CASSINI]: sem2mutex + + Semaphore to mutexes conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 73a6c6306876c83ed992f1b15069a0ee9b3fa73b +Author: Andrew Morton +Date: Mon Mar 20 22:33:41 2006 -0800 + + [IRDA]: remove MODULE_PARM() + + MODULE_PARM() is deprecated and is about to go away altogether. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 4a3e2f711a00a1feb72ae12fdc749da10179d185 +Author: Arjan van de Ven +Date: Mon Mar 20 22:33:17 2006 -0800 + + [NET] sem2mutex: net/ + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit d4ccd08cdfa8d34f4d25b62041343c52fc79385f +Author: Arjan van de Ven +Date: Mon Mar 20 22:32:53 2006 -0800 + + [IRDA] sem2mutex: drivers/net/irda + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 153330618691694af64f39fb56c9de051862380e +Author: Stephen Hemminger +Date: Mon Mar 20 22:32:28 2006 -0800 + + [NET]: dev_put/dev_hold cleanup + + Get rid of the old __dev_put macro that is just a hold over from pre 2.6 + kernel. And turn dev_hold into an inline instead of a macro. + + Signed-off-by: Stephen Hemminger + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 2d0817d11eaec57435feb61493331a763f732a2b +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:32:06 2006 -0800 + + [DCCP] options: Make dccp_insert_options & friends yell on error + + And not the silly LIMIT_NETDEBUG and silently return without inserting + the option requested. + + Also drop some old debugging messages associated to option insertion. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 110bae4efb5ed5565257a0fb9f6d26e6125a1c4b +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:31:46 2006 -0800 + + [DCCP]: Remove leftover dccp_send_response prototype + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit c5fed1597ebb2c1bf55a7334cce2d0e8d18ef5b7 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:31:26 2006 -0800 + + [DCCP]: ditch dccp_v[46]_ctl_send_ack + + Merging it with its only user: dccp_v[46]_reqsk_send_ack. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 118b2c9532c853ebdf15c21128d30a343b89ea45 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:31:09 2006 -0800 + + [DCCP]: Use sk->sk_prot->max_header consistently for non-data packets + + Using this also provides opportunities for introducing + inet_csk_alloc_skb that would call alloc_skb, account it to the sock + and skb_reserve(max_header), but I'll leave this for later, for now + using sk_prot->max_header consistently is enough. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit e5a6de915ba9ba828751ade5d3e874072a89a00a +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:30:51 2006 -0800 + + [DCCP] options: Fix handling of ackvecs in DATA packets + + I.e. they should be just ignored, but we have to use 'break', not 'continue', + as we have to possibly reset the mandatory flag. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit aa837b5bbd92ca3791345e809d0027594faa738b +Author: David S. Miller +Date: Mon Mar 20 22:30:23 2006 -0800 + + [ATM]: Fix build after neigh->parms->neigh_destructor change. + + Signed-off-by: David S. Miller + +commit e9e678006ee865b0f7e53069b0e519141a710a6e +Author: Michael Chan +Date: Mon Mar 20 22:29:52 2006 -0800 + + [TG3]: update version and reldate + + Update version to 3.52. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit c4e6575c78b83928c470d81b271909084a2efd37 +Author: Michael Chan +Date: Mon Mar 20 22:29:32 2006 -0800 + + [TG3]: Add firmware version info + + Add fw_version information to ethtool -i. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 1820180b0e59cc48019414018b180518059f50d3 +Author: Michael Chan +Date: Mon Mar 20 22:29:15 2006 -0800 + + [TG3]: nvram cleanup + + Some nvram related cleanup: + + 1. Add a tg3_nvram_read_swab() since swabing the data is frequently + done. + + 2. Add a function to convert nvram address to physical address + instead of doing it in 2 separate places. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 79f4d13a15774c2d442b619bad95a4c612eed4f3 +Author: Michael Chan +Date: Mon Mar 20 22:28:57 2006 -0800 + + [TG3]: Fixup memory test for 5787 + + Ethtool memory test on 5787 requires a new memory table. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit fcfa0a32c767219c1bdad621ef4a3aff1904cbbd +Author: Michael Chan +Date: Mon Mar 20 22:28:41 2006 -0800 + + [TG3]: Add new one-shot MSI handler + + Support one-shot MSI on 5787. + + This one-shot MSI idea is credited to David Miller. In this mode, MSI + disables itself automatically after it is generated, saving the driver + a register access to disable it for NAPI. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 9c27dbdf64cba05d0cacc343118a7fd01d4b82f7 +Author: Michael Chan +Date: Mon Mar 20 22:28:27 2006 -0800 + + [TG3]: Add ipv6 checksum support + + Support ipv6 tx csum on 5787 by setting NETIF_F_HW_CSUM. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit eae0f536f640bb95f2ad437a57c40c7d5683d1ac +Author: Sam Ravnborg +Date: Tue Mar 21 07:28:24 2006 +0100 + + kbuild: remove obsoleted scripts/reference_* files + + The checks performed by scripts/reference_* has been moved to modpost. + Remove the files and their reference in top-level Makefile. + + Signed-off-by: Sam Ravnborg + +commit 5a6f3074c2ea5a7b4ff5b18f0e1fd9b1257e1a29 +Author: Michael Chan +Date: Mon Mar 20 22:28:05 2006 -0800 + + [TG3]: Add new hard_start_xmit + + Support 5787 hardware TSO using a new flag TG3_FLG2_HW_TSO_2. + + Since the TSO interface is slightly different and these chips have + finally fixed the 4GB DMA problem and do not have the 40-bit DMA + problem, a new hard_start_xmit is used for these chips. All previous + chips will use the old hard_start_xmit that is now renamed + tg3_start_xmit_dma_bug(). + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 1b27777a9b9b2b6d1c06000b7a31262d198b4238 +Author: Michael Chan +Date: Mon Mar 20 22:27:48 2006 -0800 + + [TG3]: Add 5787 nvram support + + Support additional nvrams and new nvram format for 5787 and 5754. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit d9ab5ad12b0d865bdb1b750d81192d34465541e9 +Author: Michael Chan +Date: Mon Mar 20 22:27:35 2006 -0800 + + [TG3]: Add 5787 and 5754 basic support + + Add basic support for 2 new chips 5787 and 5754. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 6cb153cab92a6dc8771d496b10a50cd066fa7f71 +Author: Benjamin LaHaise +Date: Mon Mar 20 22:27:12 2006 -0800 + + [NET]: use fget_light() in net/socket.c + + Here's an updated copy of the patch to use fget_light in net/socket.c. + Rerunning the tests show a drop of ~80Mbit/s on average, which looks + bad until you see the drop in cpu usage from ~89% to ~82%. That will + get fixed in another patch... + + Before: max 8113.70, min 8026.32, avg 8072.34 + 87380 16384 16384 10.01 8045.55 87.11 87.11 1.774 1.774 + 87380 16384 16384 10.01 8065.14 90.86 90.86 1.846 1.846 + 87380 16384 16384 10.00 8077.76 89.85 89.85 1.822 1.822 + 87380 16384 16384 10.00 8026.32 89.80 89.80 1.833 1.833 + 87380 16384 16384 10.01 8108.59 89.81 89.81 1.815 1.815 + 87380 16384 16384 10.01 8034.53 89.01 89.01 1.815 1.815 + 87380 16384 16384 10.00 8113.70 90.45 90.45 1.827 1.827 + 87380 16384 16384 10.00 8111.37 89.90 89.90 1.816 1.816 + 87380 16384 16384 10.01 8077.75 87.96 87.96 1.784 1.784 + 87380 16384 16384 10.00 8062.70 90.25 90.25 1.834 1.834 + + After: max 8035.81, min 7963.69, avg 7998.14 + 87380 16384 16384 10.01 8000.93 82.11 82.11 1.682 1.682 + 87380 16384 16384 10.01 8016.17 83.67 83.67 1.710 1.710 + 87380 16384 16384 10.01 7963.69 83.47 83.47 1.717 1.717 + 87380 16384 16384 10.01 8014.35 81.71 81.71 1.671 1.671 + 87380 16384 16384 10.00 7967.68 83.41 83.41 1.715 1.715 + 87380 16384 16384 10.00 7995.22 81.00 81.00 1.660 1.660 + 87380 16384 16384 10.00 8002.61 83.90 83.90 1.718 1.718 + 87380 16384 16384 10.00 8035.81 81.71 81.71 1.666 1.666 + 87380 16384 16384 10.01 8005.36 82.56 82.56 1.690 1.690 + 87380 16384 16384 10.00 7979.61 82.50 82.50 1.694 1.694 + + Signed-off-by: Benjamin LaHaise + Signed-off-by: David S. Miller + +commit 8aca8a27d96cd75a30c380130496c98b658c9b98 +Author: Stephen Hemminger +Date: Mon Mar 20 22:26:39 2006 -0800 + + [NET]: minor net_rx_action optimization + + The functions list_del followed by list_add_tail is equivalent to the + existing inline list_move_tail. list_move_tail avoids unnecessary + _LIST_POISON. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 99cae7fca1311573f2777b8ceaa8a5abd6e9b04e +Author: Alpt +Date: Mon Mar 20 22:26:17 2006 -0800 + + [NET] rtnetlink: Add RTPROT entry for Netsukuku. + + The Netsukuku daemon is using the same number to mark its routes, you + can see it here: + http://hinezumilabs.org/cgi-bin/viewcvs.cgi/netsukuku/src/krnl_route.h?rev=HEAD&content-type=text/vnd.viewcvs-markup + + Signed-off-by: David S. Miller + +commit c5ecd62c25400a3c6856e009f84257d5bd03f03b +Author: Michael S. Tsirkin +Date: Mon Mar 20 22:25:41 2006 -0800 + + [NET]: Move destructor from neigh->ops to neigh_params + + struct neigh_ops currently has a destructor field, which no in-kernel + drivers outside of infiniband use. The infiniband/ulp/ipoib in-tree + driver stashes some info in the neighbour structure (the results of + the second-stage lookup from ARP results to real link-level path), and + it uses neigh->ops->destructor to get a callback so it can clean up + this extra info when a neighbour is freed. We've run into problems + with this: since the destructor is in an ops field that is shared + between neighbours that may belong to different net devices, there's + no way to set/clear it safely. + + The following patch moves this field to neigh_parms where it can be + safely set, together with its twin neigh_setup. Two additional + patches in the patch series update ipoib to use this new interface. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + Signed-off-by: David S. Miller + +commit 53dcb0e38c1786aa82ada4641b4607be315b610a +Author: Luiz Capitulino +Date: Mon Mar 20 22:25:05 2006 -0800 + + [PKTGEN]: Updates version. + + Due to the thread's lock changes, we're at a new version now. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit 6146e6a43b3584c0c67b0ac94e3f14fdc618bd30 +Author: Luiz Capitulino +Date: Mon Mar 20 22:24:45 2006 -0800 + + [PKTGEN]: Removes thread_{un,}lock() macros. + + As suggested by Arnaldo, this patch replaces the + thread_lock()/thread_unlock() by directly calls to + mutex_lock()/mutex_unlock(). + + This change makes the code a bit more readable, and the direct calls + are used everywhere in the kernel. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit 222fa076652cc1faf56eb7d554c2797ace3c5beb +Author: Luiz Capitulino +Date: Mon Mar 20 22:24:27 2006 -0800 + + [PKTGEN]: Convert thread lock to mutexes. + + pktgen's thread semaphores are strict mutexes, convert them to the + mutex implementation. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit 6756ae4b4e97aba48c042b4aa6b77a18f507d2cb +Author: Stephen Hemminger +Date: Mon Mar 20 22:23:58 2006 -0800 + + [NET]: Convert RTNL to mutex. + + This patch turns the RTNL from a semaphore to a new 2.6.16 mutex and + gets rid of some of the leftover legacy. + + Signed-off-by: Stephen Hemminger + Signed-off-by: David S. Miller + +commit 253aa11578c1b89757282430891bb66ae5300092 +Author: David S. Miller +Date: Mon Mar 20 22:23:35 2006 -0800 + + [IPSEC] xfrm_user: Kill PAGE_SIZE check in verify_sec_ctx_len() + + First, it warns when PAGE_SIZE >= 64K because the ctx_len + field is 16-bits. + + Secondly, if there are any real length limitations it can + be verified by the security layer security_xfrm_state_alloc() + call. + + Signed-off-by: David S. Miller + +commit 50bf3e224a2963c6dd5098f77bd7233222ebfbd2 +Author: Baruch Even +Date: Mon Mar 20 22:23:10 2006 -0800 + + [TCP] H-TCP: Better time accounting + + Instead of estimating the time since the last congestion event, count + it directly. + + Signed-off-by: Baruch Even + Signed-off-by: David S. Miller + +commit 0bc6d90b82775113bbbe371f5d9fcffefa5fa94d +Author: Baruch Even +Date: Mon Mar 20 22:22:47 2006 -0800 + + [TCP] H-TCP: Account for delayed-ACKs + + Account for delayed-ACKs in H-TCP. + + Delayed-ACKs cause H-TCP to be less aggressive than its design calls + for. It is especially true when the receiver is a Linux machine where + the average delayed ack is over 3 packets with values of 7 not unheard + of. + + Signed-off-By: Baruch Even + Signed-off-by: David S. Miller + +commit 6c2133e11b422b7379b5a660c639f7d53d18ca3b +Author: Sam Ravnborg +Date: Tue Mar 21 07:22:35 2006 +0100 + + kbuild: fix make help & make *pkg + + FORCE was not defined => error. + Use kbuild infrastructure to call down to the relevant + Makefile. This enables us to use the FORCE definition from kbuild. + + Signed-off-by: Sam Ravnborg + +commit c33ad6e476e4cdc245215f3eb5b3df353df1b370 +Author: Baruch Even +Date: Mon Mar 20 22:22:20 2006 -0800 + + [TCP] H-TCP: Use msecs_to_jiffies + + Use functions to calculate jiffies from milliseconds and not the old, + crude method of dividing HZ by a value. Ensures more accurate values + even in the face of strange HZ values. + + Signed-off-By: Baruch Even + Signed-off-by: David S. Miller + +commit b191ba0d599928372be5a89f75486eb58efab48a +Author: Evgeniy Polyakov +Date: Mon Mar 20 22:21:40 2006 -0800 + + [CONNECTOR]: Use netlink_has_listeners() to avoind unnecessary allocations. + + Return -ESRCH from cn_netlink_send() when there are not listeners, + just as it could be done by netlink_broadcast(). Propagate + netlink_broadcast() error back to the caller. + + Signed-off-by: Evgeniy Polyakov + Signed-off-by: David S. Miller + +commit 0ac81ae34ec8898e7eb1388fe21e3cee7b626a88 +Author: David Basden +Date: Mon Mar 20 22:21:10 2006 -0800 + + [IRDA]: TOIM3232 dongle support + + Here goes a patch for supporting TOIM3232 based serial IrDA dongles. + The code is based on the tekram dongle code. + + It's been tested with a TOIM3232 based IRWave 320S dongle. It may work + for TOIM4232 dongles, although it's not been tested. + + Signed-off-by: David Basden + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 65a3980e6b14d591e3b8f5cdc7219be99e3003a4 +Author: Luiz Capitulino +Date: Mon Mar 20 22:18:31 2006 -0800 + + [PKTGEN]: Updates version. + + With all the previous changes, we're at a new version now. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit c26a80168f2d44f525a5adb0c95cddffb4a5aaa4 +Author: Luiz Capitulino +Date: Mon Mar 20 22:18:16 2006 -0800 + + [PKTGEN]: Ports if_list to the in-kernel implementation. + + This patch ports the per-thread interface list list to the in-kernel + linked list implementation. In the general, the resulting code is a + bit simpler. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit 8024bb245408060bec8393469e945b541a9b0865 +Author: Luiz Capitulino +Date: Mon Mar 20 22:17:55 2006 -0800 + + [PKTGEN]: Fix Initialization fail leak. + + Even if pktgen's thread initialization fails for all CPUs, the module + will be successfully loaded. + + This patch changes that behaivor, by returning an error on module load time, + and also freeing all the resources allocated. It also prints a warning if a + thread initialization has failed. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit 12e1872328e7055d06e539f1b687dc3d0610855c +Author: Luiz Capitulino +Date: Mon Mar 20 22:17:00 2006 -0800 + + [PKTGEN]: Fix kernel_thread() fail leak. + + Free all the alocated resources if kernel_thread() call fails. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit cdcdbe0b179adca0bcf98f660fcc63e208ae4284 +Author: Luiz Capitulino +Date: Mon Mar 20 22:16:40 2006 -0800 + + [PKTGEN]: Ports thread list to Kernel list implementation. + + The final result is a simpler and smaller code. + + Note that I'm adding a new member in the struct pktgen_thread called + 'removed'. The reason is that I didn't find a better wait condition to + be used in the place of the replaced one. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit 222f18065868b04df92df476b19c99c28740e00f +Author: Luiz Capitulino +Date: Mon Mar 20 22:16:13 2006 -0800 + + [PKTGEN]: Lindent run. + + Lindet run, with some fixes made by hand. + + Signed-off-by: Luiz Capitulino + Signed-off-by: David S. Miller + +commit 6df9424a9ca35f9fab773d1a0a8919781a367125 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:06:02 2006 -0800 + + [DCCP] options: Fix some aspects of mandatory option processing + + According to dccp draft (draft-ietf-dccp-spec-13.txt) section 5.8.2 + (Mandatory Option) the following patch correct the handling of the + following cases: + + 1) "... and any Mandatory options received on DCCP-Data packets MUST be + ignored." + + 2) "The connection is in error and should be reset with Reset Code 5, ... + if option O is absent (Mandatory was the last byte of the option list), or + if option O equals Mandatory." + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: Hagen Paul Pfeifer + Signed-off-by: David S. Miller + +commit c0c736db7ef4a7bdc1a28f3de751cc7e9f720313 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:05:37 2006 -0800 + + [DCCP] ccid2: coding style cleanups + + No changes in the logic where made. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 45329e71eeb6cb483c6e7fe9e6f2849dd2932cb5 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:01:29 2006 -0800 + + [DCCP] ipv6: cleanups + + No changes in the logic were made, just removing trailing whitespaces, + etc. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit c4d9390941aee136fd35bb38eb1d6de4e3b1487d +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:01:03 2006 -0800 + + [ICSK]: Introduce inet_csk_ctl_sock_create + + Consolidating open coded sequences in tcp and dccp, v4 and v6. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 72478873571d869906f7a250b09e12fa5b65e321 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 22:00:37 2006 -0800 + + [DCCP] ipv6: Add missing ipv6 control socket + + I guess I forgot to add it, nah, now it just works: + + 18:04:33.274066 IP6 ::1.1476 > ::1.5001: request (service=0) + 18:04:33.334482 IP6 ::1.5001 > ::1.1476: reset (code=bad_service_code) + + Ditched IP_DCCP_UNLOAD_HACK, as now we would have to do it for both + IPv6 and IPv4, so I'll come up with another way for freeing the + control sockets in upcoming changesets. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit c25a18ba347f091d1ce620ba33e6772b60a528e1 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:58:56 2006 -0800 + + [DCCP]: Uninline some functions + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 5e0817f84c33285c2ac7d3848e8896d025b5deff +Author: Adrian Bunk +Date: Mon Mar 20 21:58:29 2006 -0800 + + [DCCP] ipv4: make struct dccp_v4_prot static + + There's no reason for struct dccp_v4_prot being global. + + Signed-off-by: Adrian Bunk + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit d76e60a5b510bab0af130fca9f4ed06499be4d2f +Author: David S. Miller +Date: Mon Mar 20 21:35:50 2006 -0800 + + [IPV6]: Fix some code/comment formatting in ip6_dst_output(). + + Signed-off-by: David S. Miller + +commit 06ef921d60bbf6f765d1b9492fb4fc88ac7814bd +Author: Robert Olsson +Date: Mon Mar 20 21:35:01 2006 -0800 + + [IPV4]: fib_trie stats fix + + fib_triestats has been buggy and caused oopses some platforms as + openwrt. The patch below should cure those problems. + + Signed-off-by: Robert Olsson + Signed-off-by: David S. Miller + +commit 5ddf0eb2bfd613e941dd8748870c71da2e5ad409 +Author: Robert Olsson +Date: Mon Mar 20 21:34:12 2006 -0800 + + [IPV4]: fib_trie initialzation fix + + In some kernel configs /proc functions seems to be accessed before the + trie is initialized. The patch below checks for this. + + Signed-off-by: Robert Olsson + Signed-off-by: David S. Miller + +commit 4f81c32b028aecd818634b1ef36aae3b2b3e66ce +Author: Michael Chan +Date: Mon Mar 20 21:33:42 2006 -0800 + + [TG3]: Fix tg3_get_ringparam() + + Fix-up tg3_get_ringparam() to return the correct parameters. + + Set the jumbo rx ring parameter only if it is supported by the chip + and currently in use. + + Add missing value for tx_max_pending, noticed by Rick Jones. + + Update version to 3.51. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit e75f7c900944aa90831f6d343ca40090a68b56dd +Author: Michael Chan +Date: Mon Mar 20 21:33:26 2006 -0800 + + [TG3]: Add some missing netif_running() checks + + Add missing netif_running() checks in tg3's dev->set_multicast_list() + and dev->set_mac_address(). If not netif_running(), these 2 calls can + simply return 0 after storing the new settings if required. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 0e7b13685f9a06949ea3070c97c0f0085a08cd37 +Author: John Heffner +Date: Mon Mar 20 21:32:58 2006 -0800 + + [TCP] mtu probing: move tcp-specific data out of inet_connection_sock + + This moves some TCP-specific MTU probing state out of + inet_connection_sock back to tcp_sock. + + Signed-off-by: John Heffner + Signed-off-by: David S. Miller + +commit 1d541ddd74802cfa0eb8a3864668851f6cd79bdf +Author: Benjamin LaHaise +Date: Mon Mar 20 21:31:51 2006 -0800 + + [AF_UNIX]: scm: better initialization + + Instead of doing a memset then initialization of the fields of the scm + structure, just initialize all the members explicitly. Prevent reloading + of current on x86 and x86-64 by storing the value in a local variable for + subsequent dereferences. This is worth a ~7KB/s increase in af_unix + bandwidth. Note that we avoid the issues surrounding potentially + uninitialized members of the ucred structure by constructing a struct + ucred instead of assigning the members individually, which forces the + compiler to zero any padding. + + [ I modified the patch not to use the aggregate assignment since + gcc-3.4.x and earlier cannot optimize that properly at all even + though gcc-4.0.x and later can -DaveM ] + + Signed-off-by: Benjamin LaHaise + Signed-off-by: David S. Miller + +commit e9df7d7f584666533b1bdfcf5c60a43d64689198 +Author: Benjamin LaHaise +Date: Mon Mar 20 21:29:05 2006 -0800 + + [AF_UNIX]: use shift instead of integer division + + The patch below replaces a divide by 2 with a shift -- sk_sndbuf is an + integer, so gcc emits an idiv, which takes 10x longer than a shift by 1. + This improves af_unix bandwidth by ~6-10K/s. Also, tidy up the comment + to fit in 80 columns while we're at it. + + Signed-off-by: Benjamin LaHaise + Signed-off-by: David S. Miller + +commit 231d06ae826664b83369166449144304859a62fa +Author: Jörn Engel +Date: Mon Mar 20 21:28:35 2006 -0800 + + [NET]: Uninline kfree_skb and allow NULL argument + + o Uninline kfree_skb, which saves some 15k of object code on my notebook. + + o Allow kfree_skb to be called with a NULL argument. + + Subsequent patches can remove conditional from drivers and further + reduce source and object size. + + Signed-off-by: Jörn Engel + Signed-off-by: David S. Miller + +commit 2e1f47c74c26a591fc490eb339f1b3167361158b +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:28:11 2006 -0800 + + [LLC]: Fix sap refcounting + + Thanks to Leslie Harlley Watter for reporting the + problem an testing this patch. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 2342c990bbd2c075d627720006f0e602134346a7 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:27:43 2006 -0800 + + [LLC]: Replace __inline__ with inline + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 9c005e018cd951699e371a06889c553f9f4d1478 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:27:23 2006 -0800 + + [LLC]: Fix struct proto .name + + Cut'n'paste error from ddp_proto. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 95ed63f791656fc19e36ae68bc328e367958c76b +Author: Arthur Kepner +Date: Mon Mar 20 21:26:56 2006 -0800 + + [NET] pktgen: Fix races between control/worker threads. + + There's a race in pktgen which can lead to a double + free of a pktgen_dev's skb. If a worker thread is in + the midst of doing fill_packet(), and the controlling + thread gets a "stop" message, the already freed skb + can be freed once again in pktgen_stop_device(). This + patch gives all responsibility for cleaning up a + pktgen_dev's skb to the associated worker thread. + + Signed-off-by: Arthur Kepner + Acked-by: Robert Olsson + Signed-off-by: David S. Miller + +commit 4bf07ef3fd5db2df7d1899fcf9c67d2263ead2e2 +Author: Jamal Hadi Salim +Date: Mon Mar 20 21:25:50 2006 -0800 + + [XFRM]: Rearrange struct xfrm_aevent_id for better compatibility. + + struct xfrm_aevent_id needs to be 32-bit + 64-bit align friendly. + + Based upon suggestions from Yoshifuji. + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit b61fafc4ef3faf54236d57e3b230ca19167663bf +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:25:11 2006 -0800 + + [DCCP]: Move the IPv4 specific bits from proto.c to ipv4.c + + With this patch in place we can break down the complexity by better + compartmentalizing the code that is common to ipv6 and ipv4. + + Now we have these modules: + Module Size Used by + dccp_diag 1344 0 + inet_diag 9448 1 dccp_diag + dccp_ccid3 15856 0 + dccp_tfrc_lib 12320 1 dccp_ccid3 + dccp_ccid2 5764 0 + dccp_ipv4 16996 2 + dccp 48208 4 dccp_diag,dccp_ccid3,dccp_ccid2,dccp_ipv4 + + dccp_ipv6 still requires dccp_ipv4 due to dccp_ipv6_mapped, that is + the next target to work on the "hey, ipv4 is legacy, I only want ipv6 + dude!" direction. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 46f09ffa7db595f49fb42338e013417756816d37 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:24:42 2006 -0800 + + [DCCP]: Rename init_dccp_v4_mibs to dccp_mib_init + + And introduce dccp_mib_exit grouping previously open coded sequence. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 075ae86611011e1acdda9df6a7e30f8508b31fd6 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:24:19 2006 -0800 + + [DCCP]: Move dccp_hashinfo from ipv4.c to the core + + As it is used by both ipv4 and ipv6. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 0a1ec676ddbee712e1c1da679be4bdc529caf215 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:23:59 2006 -0800 + + [DCCP]: Dont use dccp_v4_checksum in dccp_make_response + + dccp_make_response is shared by ipv4/6 and the ipv6 code was + recalculating the checksum, not good, so move the dccp_v4_checksum + call to dccp_v4_send_response. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit c985ed705ffc682ce40d46a5f7bf98db86b27899 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:23:39 2006 -0800 + + [DCCP]: Move dccp_[un]hash from ipv4.c to the core + + As this is used by both ipv4 and ipv6 and is not ipv4 specific. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 3e0fadc51f2fde01e0e22f481370a9b5f073bfc3 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 21:23:15 2006 -0800 + + [DCCP]: Move dccp_v4_{init,destroy}_sock to the core + + Removing one more ipv6 uses ipv4 stuff case in dccp land. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit df6db302cb236ac3a683d535a3e2073d9f4b2833 +Author: J. Bruce Fields +Date: Mon Mar 20 23:25:10 2006 -0500 + + SUNRPC,RPCSEC_GSS: spkm3--fix config dependencies + + Add default selection of CRYPTO_CAST5 when selecting RPCSEC_GSS_SPKM3. + + Signed-off-by: Kevin Coffman + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 0e19c1ea2fa57f0612c80595f534b4ddcf69ad8f +Author: J. Bruce Fields +Date: Mon Mar 20 23:24:40 2006 -0500 + + SUNRPC,RPCSEC_GSS: spkm3: import contexts using NID_cast5_cbc + + Import the NID_cast5_cbc from the userland context. Not used. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 5f12191bc000ea31970339a5f54c11087506711c +Author: J. Bruce Fields +Date: Mon Mar 20 23:24:25 2006 -0500 + + LOCKD: Make nlmsvc_traverse_shares return void + + The nlmsvc_traverse_shares return value is always zero, hence useless. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit f3ee439f43381e45b191cf721b4a51d41f33301f +Author: J. Bruce Fields +Date: Mon Mar 20 23:24:13 2006 -0500 + + LOCKD: nlmsvc_traverse_blocks return is unused + + Note that we never return non-zero. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit eaa82edf20d738a7ae31f4b0a5f72f64c14a58df +Author: J. Bruce Fields +Date: Mon Mar 20 23:24:04 2006 -0500 + + SUNRPC,RPCSEC_GSS: fix krb5 sequence numbers. + + Use a spinlock to ensure unique sequence numbers when creating krb5 gss tokens. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 096455a22acac06fb6d0d75f276170ab72d55ba6 +Author: J. Bruce Fields +Date: Mon Mar 20 23:23:42 2006 -0500 + + NFSv4: Dont list system.nfs4_acl for filesystems that don't support it. + + Thanks to Frank Filz for pointing out that we list system.nfs4_acl extended + attribute even on filesystems where we don't actually support nfs4_acl. + This is inconsistent with the e.g. ext3 POSIX ACL behaviour, and seems to + annoy cp. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 9e57b302cf0f27063184196def620f39ca7a5fc6 +Author: J. Bruce Fields +Date: Mon Mar 20 23:23:11 2006 -0500 + + SUNRPC,RPCSEC_GSS: remove unnecessary kmalloc of a checksum + + Remove unnecessary kmalloc of temporary space to hold the md5 result; it's + small enough to just put on the stack. + + This code may be called to process rpc's necessary to perform writes, so + there's a potential deadlock whenever we kmalloc() here. After this a + couple kmalloc()'s still remain, to be removed soon. + + This also fixes a rare double-free on error noticed by coverity. + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 017487d7d1e905a5bb529f6a2bc8cf8ea14e2307 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 19:25:24 2006 -0800 + + [DCCP]: Generalize dccp_v4_send_reset + + Renaming it to dccp_send_reset and moving it from the ipv4 specific + code to the core dccp code. + + This fixes some bugs in IPV6 where timers would send v4 resets, etc. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit e55d912f5b75723159348a7fc7692f869a86636a +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 19:25:02 2006 -0800 + + [DCCP] feat: Introduce sysctls for the default features + + [root@qemu ~]# for a in /proc/sys/net/dccp/default/* ; do echo $a ; cat $a ; done + /proc/sys/net/dccp/default/ack_ratio + 2 + /proc/sys/net/dccp/default/rx_ccid + 3 + /proc/sys/net/dccp/default/send_ackvec + 1 + /proc/sys/net/dccp/default/send_ndp + 1 + /proc/sys/net/dccp/default/seq_window + 100 + /proc/sys/net/dccp/default/tx_ccid + 3 + [root@qemu ~]# + + So if wanting to test ccid3 as the tx CCID one can just do: + + [root@qemu ~]# echo 3 > /proc/sys/net/dccp/default/tx_ccid + [root@qemu ~]# echo 2 > /proc/sys/net/dccp/default/rx_ccid + [root@qemu ~]# cat /proc/sys/net/dccp/default/[tr]x_ccid + 2 + 3 + [root@qemu ~]# + + Of course we also need the setsockopt for each app to tell its preferences, but + for testing or defining something other than CCID2 as the default for apps that + don't explicitely set their preference the sysctl interface is handy. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 04e2661e9c00386412b64612549cf24c8baef67c +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 19:24:41 2006 -0800 + + [DCCP]: Call dccp_feat_init more early in dccp_v4_init_sock + + So that dccp_feat_clean doesn't get confused with uninitialized + list_heads. + + Noticed when testing with no ccid kernel modules. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 057fc6755a2381b4e81636659ef519e069f38623 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 19:24:22 2006 -0800 + + [DCCP]: Kconfig tidy up + + Make CCID2 and CCID3 default to what was selected for DCCP and use the + standard short description for the CCIDs (TCP-Like & TCP-Friendly). + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 93ce20928f6e197707add8f670ae0cd029107e8f +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 19:23:58 2006 -0800 + + [DCCP]: Make CCID2 be the default + + As per the draft. This fixes the build when netfilter dccp components + are built and dccp isn't. Thanks to Reuben Farrelly for reporting + this. + + The following changesets will introduce /proc/sys/net/dccp/defaults/ + to give more flexibility to DCCP developers and testers while apps + doesn't use setsockopt to specify the desired CCID, etc. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 60fe62e789076ae7c13f7ffb35fec4b24802530d +Author: Andrea Bittau +Date: Mon Mar 20 19:23:32 2006 -0800 + + [DCCP]: sparse endianness annotations + + This also fixes the layout of dccp_hdr short sequence numbers, problem + was not fatal now as we only support long (48 bits) sequence numbers. + + Signed-off-by: Andrea Bittau + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: Al Viro + Signed-off-by: David S. Miller + +commit a193a4abdd1f742a57f3f70b6a83c3e536876e97 +Author: Patrick McHardy +Date: Mon Mar 20 19:23:05 2006 -0800 + + [NETFILTER]: Fix skb->nf_bridge lifetime issues + + The bridge netfilter code simulates the NF_IP_PRE_ROUTING hook and skips + the real hook by registering with high priority and returning NF_STOP if + skb->nf_bridge is present and the BRNF_NF_BRIDGE_PREROUTING flag is not + set. The flag is only set during the simulated hook. + + Because skb->nf_bridge is only freed when the packet is destroyed, the + packet will not only skip the first invocation of NF_IP_PRE_ROUTING, but + in the case of tunnel devices on top of the bridge also all further ones. + Forwarded packets from a bridge encapsulated by a tunnel device and sent + as locally outgoing packet will also still have the incorrect bridge + information from the input path attached. + + We already have nf_reset calls on all RX/TX paths of tunnel devices, + so simply reset the nf_bridge field there too. As an added bonus, + the bridge information for locally delivered packets is now also freed + when the packet is queued to a socket. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 6ffd30fbbb1b4a01a9f56049521693375a864d3e +Author: Andrea Bittau +Date: Mon Mar 20 19:22:37 2006 -0800 + + [DCCP] feat: Actually change the CCID upon negotiation + + Change the CCID upon successful feature negotiation. + + Commiter note: patch mostly rewritten to use the new ccid API. + + Signed-off-by: Andrea Bittau + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 91f0ebf7b6d5cb2b6e818d48587566144821babe +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 19:21:44 2006 -0800 + + [DCCP] CCID: Improve CCID infrastructure + + 1. No need for ->ccid_init nor ->ccid_exit, this is what module_{init,exit} + does and anynways neither ccid2 nor ccid3 were using it. + + 2. Rename struct ccid to struct ccid_operations and introduce struct ccid + with a pointer to ccid_operations and rigth after it the rx or tx + private state. + + 3. Remove the pointer to the state of the half connections from struct + dccp_sock, now its derived thru ccid_priv() from the ccid pointer. + + Now we also can implement the setsockopt for changing the CCID easily as + no ccid init routines can affect struct dccp_sock in any way that prevents + other CCIDs from working if a CCID switch operation is asked by apps. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit f38c39d6ce8226519455a6dfe91c2ad84f363f6f +Author: Patrick McHardy +Date: Mon Mar 20 19:20:44 2006 -0800 + + [PKT_SCHED]: Convert sch_red to a classful qdisc + + Convert sch_red to a classful qdisc. All qdiscs that maintain accurate + backlog counters are eligible as child qdiscs. When a queue limit larger + than zero is given, a bfifo qdisc is used for backwards compatibility. + Current versions of tc enforce a limit larger than zero, other users + can avoid creating the default qdisc by using zero. + + Signed-off-by: Patrick McHardy + Acked-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit a70fcb0ba337956d91476e2e7c3e71d9df940a82 +Author: David S. Miller +Date: Mon Mar 20 19:18:52 2006 -0800 + + [XFRM]: Add some missing exports. + + To fix the case of modular xfrm_user. + + Signed-off-by: David S. Miller + +commit ee857a7d672859cf4eb735d32bce22c8b7ad0bd2 +Author: David S. Miller +Date: Mon Mar 20 19:18:37 2006 -0800 + + [XFRM]: Move xfrm_nl to xfrm_state.c from xfrm_user.c + + xfrm_user could be modular, and since generic code uses this symbol + now... + + Signed-off-by: David S. Miller + +commit 0ac8475248164553ffe21948c7b1a4b9d2a935dc +Author: David S. Miller +Date: Mon Mar 20 19:18:23 2006 -0800 + + [XFRM]: Make sure xfrm_replay_timer_handler() is declared early enough. + + Signed-off-by: David S. Miller + +commit 8c29bfe1cfbe6050c797a6364a0cc0ff57c377fc +Author: Jamal Hadi Salim +Date: Mon Mar 20 19:17:39 2006 -0800 + + [IPSEC]: Sync series - update selinux + + Add new netlink messages to selinux framework + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit 6c5c8ca7ff20523e427b955aa84cef407934710f +Author: Jamal Hadi Salim +Date: Mon Mar 20 19:17:25 2006 -0800 + + [IPSEC]: Sync series - policy expires + + This is similar to the SA expire insertion patch - only it inserts + expires for SP. + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit 53bc6b4d29c07664f3abe029b7e6878a1067899a +Author: Jamal Hadi Salim +Date: Mon Mar 20 19:17:03 2006 -0800 + + [IPSEC]: Sync series - SA expires + + This patch allows a user to insert SA expires. This is useful to + do on an HA backup for the case of byte counts but may not be very + useful for the case of time based expiry. + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit 980ebd25794f0f87ac32844e2c73e9e81f0a72ba +Author: Jamal Hadi Salim +Date: Mon Mar 20 19:16:40 2006 -0800 + + [IPSEC]: Sync series - acquire insert + + This introduces a feature similar to the one described in RFC 2367: + " + ... the application needing an SA sends a PF_KEY + SADB_ACQUIRE message down to the Key Engine, which then either + returns an error or sends a similar SADB_ACQUIRE message up to one or + more key management applications capable of creating such SAs. + ... + ... + The third is where an application-layer consumer of security + associations (e.g. an OSPFv2 or RIPv2 daemon) needs a security + association. + + Send an SADB_ACQUIRE message from a user process to the kernel. + + + + The kernel returns an SADB_ACQUIRE message to registered + sockets. + + + + The user-level consumer waits for an SADB_UPDATE or SADB_ADD + message for its particular type, and then can use that + association by using SADB_GET messages. + + " + An app such as OSPF could then use ipsec KM to get keys + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit d51d081d65048a7a6f9956a7809c3bb504f3b95d +Author: Jamal Hadi Salim +Date: Mon Mar 20 19:16:12 2006 -0800 + + [IPSEC]: Sync series - user + + Add xfrm as the user of the core changes + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit 9500e8a81fe6302fcc5e4110adc4d166c9873d3a +Author: Jamal Hadi Salim +Date: Mon Mar 20 19:15:29 2006 -0800 + + [IPSEC]: Sync series - fast path + + Fast path sequence updates that will generate ipsec async + events + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit f8cd54884e675dfaf0c86cc7c088adb6ca9d7638 +Author: Jamal Hadi Salim +Date: Mon Mar 20 19:15:11 2006 -0800 + + [IPSEC]: Sync series - core changes + + This patch provides the core functionality needed for sync events + for ipsec. Derived work of Krisztian KOVACS + + Signed-off-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit f5539eb8caa52a9198079df767cc1bb5494e69e3 +Author: Patrick McHardy +Date: Mon Mar 20 19:01:38 2006 -0800 + + [PKT_SCHED]: Keep backlog counter in sch_sfq + + Keep backlog counter in SFQ qdisc to make it usable as child qdisc + with RED. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 053cfed75d9e01bda274c5b0126f5937181dcb62 +Author: Patrick McHardy +Date: Mon Mar 20 19:01:21 2006 -0800 + + [PKT_SCHED]: Restore TBF change semantic + + When TBF was converted to a classful qdisc, the semantic of the limit + parameter was broken. On initilization an inner bfifo qdisc is created + for backwards compatibility, when changing parameters however the new + limit is ignored and the current child qdisc remains in place. + + Always replace the child qdisc by the default bfifo when limit is above + zero, otherwise don't touch the inner qdisc. Current tc version enforce + a limit above zero, other users can avoid creating the inner qdisc by + using zero. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit cdc7f8e362bcadbc312c97fb69d8d59676eec422 +Author: Patrick McHardy +Date: Mon Mar 20 19:01:06 2006 -0800 + + [PKT_SCHED]: Dump child qdisc handle in sch_{atm,dsmark} + + A qdisc should set tcm_info to the child qdisc handle in its class + dump function. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 6d037a26f08711a222ed0d3d12b09e93eed7d3e8 +Author: Patrick McHardy +Date: Mon Mar 20 19:00:49 2006 -0800 + + [PKT_SCHED]: Qdisc drop operation is optional + + The drop operation is optional and qdiscs must check if childs support it. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit a85d771e32f9724b61a68748cc667d1e11fe3478 +Author: Christophe Lucas +Date: Mon Mar 20 19:00:27 2006 -0800 + + [IRDA]: pci_register_driver conversion + + This patch converts 2 IrDA drivers pci_module_init() calls to + pci_register_driver(). + + Signed-off-by: Christophe Lucas + Signed-off-by: Domen Puncer + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 034888262eb8de1a91bc471d4e6d8173f6b3dbda +Author: David chosrova +Date: Mon Mar 20 19:00:04 2006 -0800 + + [IRDA]: sti/cli removal from EP7211 IrDA driver + + This patch replaces the deprecated sti/cli routines with the corresponding + spin_lock ones. + + Signed-off-by: David chosrova + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 0ed79c9b7dea5cd9a55589a495cf96f00cd037d9 +Author: Jean Tourrilhes +Date: Mon Mar 20 18:59:40 2006 -0800 + + [IRDA]: nsc-ircc: support for yet another Thinkpad IrDA chipset + + This patch simply adds support for a variation of the nsc-ircc PC8739x + chipset, found in some IBM Thinkpad laptops. + + Signed-off-by: Jean Tourrilhes + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 3b99b93baba4cbf4fd3d206e65e81a070b21b560 +Author: Dmitry Torokhov +Date: Mon Mar 20 18:59:05 2006 -0800 + + [IRDA]: nsc-ircc: PM update + + This patch brings the nsc-ircc code to a more up to date power + management scheme, following the current device model. + + Signed-off-by: Dmitry Torokhov + Signed-off-by: Rudolf Marek + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit ec4f32d550b94b4b66c9c7689bc09c6b32c8e82e +Author: Jean Tourrilhes +Date: Mon Mar 20 18:54:03 2006 -0800 + + [IRDA]: nsc-ircc: ISAPnP support + + This enables PnP support for the nsc-ircc chipset. + Since we can't fetch the chipset cfg_base from the PnP layer, we just use + the PnP information as one more hint when probing the chip. + + Signed-off-by: Jean Tourrilhes + Signed-off-by: Samuel Ortiz + Signed-off-by: David S. Miller + +commit 4277a083ecd2c8771058641132bcecea04ca6608 +Author: Patrick McHardy +Date: Mon Mar 20 18:52:01 2006 -0800 + + [NETLINK]: Add netlink_has_listeners for avoiding unneccessary event message generation + + Keep a bitmask of multicast groups with subscribed listeners to let + netlink users check for listeners before generating multicast + messages. + + Queries don't perform any locking, which may result in false + positives, it is guaranteed however that any new subscriptions are + visible before bind() or setsockopt() return. + + Signed-off-by: Patrick McHardy + ACKed-by: Jamal Hadi Salim + Signed-off-by: David S. Miller + +commit a24276924875802853b5bdc12c56d29f1c1bbc79 +Author: Patrick McHardy +Date: Mon Mar 20 18:03:59 2006 -0800 + + [NETFILTER]: ctnetlink: avoid unneccessary event message generation + + Avoid unneccessary event message generation by checking for netlink + listeners before building a message. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit c4b885139203d37f76662c37ae645fe8e0f4e4e5 +Author: Patrick McHardy +Date: Mon Mar 20 18:03:40 2006 -0800 + + [NETFILTER]: x_tables: replace IPv4/IPv6 policy match by address family independant version + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit f2ffd9eeda82b476c034d733be08ecf6a87d2edf +Author: Patrick McHardy +Date: Mon Mar 20 18:03:16 2006 -0800 + + [NETFILTER]: Move ip6_masked_addrcmp to include/net/ipv6.h + + Replace netfilter's ip6_masked_addrcmp by a more efficient version + in include/net/ipv6.h to make it usable without module dependencies. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit c49867347404c46f137a261643ed4fce4376f324 +Author: Patrick McHardy +Date: Mon Mar 20 18:02:56 2006 -0800 + + [NETFILTER]: x_tables: add xt_{match,target} arguments to match/target functions + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 1c524830d0b39472f0278989bf1119750a5e234d +Author: Patrick McHardy +Date: Mon Mar 20 18:02:15 2006 -0800 + + [NETFILTER]: x_tables: pass registered match/target data to match/target functions + + This allows to make decisions based on the revision (and address family + with a follow-up patch) at runtime. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 5d04bff096180f032de8b9b12153a8a1b4009b8d +Author: Patrick McHardy +Date: Mon Mar 20 18:01:58 2006 -0800 + + [NETFILTER]: Convert x_tables matches/targets to centralized error checking + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 7f9397138e297904bf1c717651183e785a01ff13 +Author: Patrick McHardy +Date: Mon Mar 20 18:01:43 2006 -0800 + + [NETFILTER]: Convert ip6_tables matches/targets to centralized error checking + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit aa83c1ab4384c0905527c84e5135a56daa885834 +Author: Patrick McHardy +Date: Mon Mar 20 18:01:28 2006 -0800 + + [NETFILTER]: Convert arp_tables targets to centralized error checking + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 1d5cd90976fa0d1cc21554b9d43f5c517323ebfc +Author: Patrick McHardy +Date: Mon Mar 20 18:01:14 2006 -0800 + + [NETFILTER]: Convert ip_tables matches/targets to centralized error checking + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 3cdc7c953eb1e1e1d1b82adbd140bf3451c165b1 +Author: Patrick McHardy +Date: Mon Mar 20 18:00:36 2006 -0800 + + [NETFILTER]: Change {ip,ip6,arp}_tables to use centralized error checking + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 37f9f7334b86ffc3b8a1921842ae33cb9aa22ee3 +Author: Patrick McHardy +Date: Mon Mar 20 17:59:06 2006 -0800 + + [NETFILTER]: xt_tables: add centralized error checking + + Introduce new functions for common match/target checks (private data + size, valid hooks, valid tables and valid protocols) to get more consistent + error reporting and to avoid each module duplicating them. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 6ea46c9c12da79ec6eead0cf4b3114143dd30bc1 +Author: Yasuyuki Kozakai +Date: Mon Mar 20 17:58:44 2006 -0800 + + [NETFILTER]: nf_conntrack: use ipv6_addr_equal in nf_ct_reasm + + Signed-off-by: Yasuyuki Kozakai + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit f2ad52c9da2229d7f038d02139d21478b33b76b4 +Author: Holger Eitzenberger +Date: Mon Mar 20 17:58:21 2006 -0800 + + [NETFILTER]: Fix CID offset bug in PPTP NAT helper debug message + + The recent (kernel 2.6.15.1) fix for PPTP NAT helper introduced a + bug - which only appears if DEBUGP is enabled though. + + The calculation of the CID offset into a PPTP request struct is + not correct, so that at least not the correct CID is displayed + if DEBUGP is enabled. + + This patch corrects CID offset calculation and introduces a #define + for that. + + Signed-off-by: Holger Eitzenberger + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit 77ff72d528d5b9d30a47f42f364ba34d931f9da3 +Author: Andrea Bittau +Date: Mon Mar 20 17:57:52 2006 -0800 + + [DCCP] CCID2: Drop sock reference count on timer expiration and reset. + + There was a hybrid use of standard timers and sk_timers. This caused + the reference count of the sock to be incorrect when resetting the RTO + timer. The sock reference count should now be correct, enabling its + destruction, and allowing the DCCP module to be unloaded. + + Signed-off-by: Andrea Bittau + Signed-off-by: Arnaldo Carvalho de Melo + +commit ba66c6e8b292997467128506f39fa6607e959050 +Author: Ian McDonald +Date: Mon Mar 20 17:56:56 2006 -0800 + + [DCCP]: Set the default CCID according to kernel config selection + + Now CCID2 is the default, as stated in the RFC drafts, but we allow + a config where just CCID3 is built, where CCID3 becomes the default. + + Signed-off-by: Ian McDonald + Signed-off-by: Arnaldo Carvalho de Melo + +commit dc808fe28db59fadf4ec32d53f62477fa28f3be8 +Author: Harald Welte +Date: Mon Mar 20 17:56:32 2006 -0800 + + [NETFILTER] nf_conntrack: clean up to reduce size of 'struct nf_conn' + + This patch moves all helper related data fields of 'struct nf_conn' + into a separate structure 'struct nf_conn_help'. This new structure + is only present in conntrack entries for which we actually have a + helper loaded. + + Also, this patch cleans up the nf_conntrack 'features' mechanism to + resemble what the original idea was: Just glue the feature-specific + data structures at the end of 'struct nf_conn', and explicitly + re-calculate the pointer to it when needed rather than keeping + pointers around. + + Saves 20 bytes per conntrack on my x86_64 box. A non-helped conntrack + is 276 bytes. We still need to save another 20 bytes in order to fit + into to target of 256bytes. + + Signed-off-by: Harald Welte + Signed-off-by: David S. Miller + +commit 0d36f37bb1e1cbadca6dc90a840bb2bc9ab51c44 +Author: Michael Chan +Date: Mon Mar 20 17:55:25 2006 -0800 + + [BNX2]: include + + Include so that it compiles properly on all archs. + + Update version to 1.4.38. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 5d424d5a674f782d0659a3b66d951f412901faee +Author: John Heffner +Date: Mon Mar 20 17:53:41 2006 -0800 + + [TCP]: MTU probing + + Implementation of packetization layer path mtu discovery for TCP, based on + the internet-draft currently found at + . + + Signed-off-by: John Heffner + Signed-off-by: David S. Miller + +commit 1d60290f27e7dc4bce2c43922d0bfa9abd246fc9 +Author: Michael Chan +Date: Mon Mar 20 17:50:08 2006 -0800 + + [BNX2]: Update version + + Update version to 1.4.37. + + Add missing flush_scheduled_work() in bnx2_suspend as noted by Jeff + Garzik. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 3fdfcc2c95ffc7ee04b480a4c1fd4809b5ff2f7c +Author: Michael Chan +Date: Mon Mar 20 17:49:49 2006 -0800 + + [BNX2]: Support larger rx ring sizes (part 2) + + Support bigger rx ring sizes (up to 1020) in the rx fast path. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 13daffa2f2ba65674e7816a0e95e7b93246cb686 +Author: Michael Chan +Date: Mon Mar 20 17:49:20 2006 -0800 + + [BNX2]: Support larger rx ring sizes (part 1) + + Increase maximum receive ring size from 255 to 1020 by supporting + up to 4 linked pages of receive descriptors. To accomodate the + higher memory usage, each physical descriptor page is allocated + separately and the software ring that keeps track of the SKBs and the + DMA addresses is allocated using vmalloc. + + Some of the receive-related fields in the bp structure are re- + organized a bit for better locality of reference. + + The max. was reduced to 1020 from 4080 after discussion with David + Miller. + + This patch contains ring init code changes only. This next patch + contains rx data path code changes. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 236b6394bb49ea58465c6f935a286d2342576f8d +Author: Michael Chan +Date: Mon Mar 20 17:49:02 2006 -0800 + + [BNX2]: Fix bug when rx ring is full + + Fix the rx code path that does not handle the full rx ring correctly. + + When the rx ring is set to the max. size (i.e. 255), the consumer and + producer indices will be the same when completing an rx packet. Fix + the rx code to handle this condition properly. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 244ac4f446ac6a19caf5eb692c4844f29e6478bf +Author: Michael Chan +Date: Mon Mar 20 17:48:46 2006 -0800 + + [BNX2]: Add ethtool -d support + + Add ETHTOOL_GREGS support. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 6b39777c5924b9db2406c5769a044da383782d0e +Author: Michael Chan +Date: Mon Mar 20 17:48:32 2006 -0800 + + [BNX2]: Reduce register test size + + Eliminate some of the registers in ethtool register test to reduce + driver size. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 2e2e4f5c996d577383c5cb584b153b39f4961155 +Author: Michael Chan +Date: Mon Mar 20 17:48:18 2006 -0800 + + [TG3]: Update version and reldate + + Update version to 3.50. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit bc1c756741b065cfebf850e4164c0e2aae9d527f +Author: Michael Chan +Date: Mon Mar 20 17:48:03 2006 -0800 + + [TG3]: Support shutdown WoL. + + Support WoL during shutdown by calling + tg3_set_power_state(tp, PCI_D3hot) during tg3_close(). + + Change the power state parameter to pci_power_t type and use + constants defined in pci.h. + + Certain ethtool operations cannot be performed after tg3_close() + because the device will go to low power state. Add return -EAGAIN + in such cases where appropriate. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit 4e3a7aaa28db952392814f889dfbd25672266d29 +Author: Michael Chan +Date: Mon Mar 20 17:47:44 2006 -0800 + + [TG3]: Enable TSO by default + + Enable TSO by default on newer chips that support TSO in hardware. + Leave TSO off by default on older chips that do firmware TSO because + performance is slightly lower. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit d4d2c558fd3e1f5e386b153f194aa8f0be496c77 +Author: Michael Chan +Date: Mon Mar 20 17:47:20 2006 -0800 + + [TG3]: Add support for 5714S and 5715S + + Add support for 5714S and 5715S. + + Signed-off-by: Michael Chan + Signed-off-by: David S. Miller + +commit d15150f755bb468afe003d1afee0f45a2fc5eeeb +Author: Adrian Bunk +Date: Mon Mar 20 17:46:56 2006 -0800 + + [IPV4] fib_rules.c: make struct fib_rules static again + + struct fib_rules became global for no good reason. + + Signed-off-by: Adrian Bunk + Signed-off-by: David S. Miller + +commit 2b191befe2c47c2f6e96b836a1f6054c9cbc4a0b +Author: Jesper Juhl +Date: Mon Mar 20 17:46:29 2006 -0800 + + [IPCOMP6]: don't check vfree() argument for NULL. + + vfree does it's own NULL checking, so checking a pointer before + handing it to vfree is pointless. + + Signed-off-by: Jesper Juhl + Signed-off-by: David S. Miller + +commit afe00251dd9b53d51de91ff0099961f42bbf3754 +Author: Andrea Bittau +Date: Mon Mar 20 17:43:56 2006 -0800 + + [DCCP]: Initial feature negotiation implementation + + Still needs more work, but boots and doesn't crashes, even + does some negotiation! + + 18:38:52.174934 127.0.0.1.43458 > 127.0.0.1.5001: request + 18:38:52.218526 127.0.0.1.5001 > 127.0.0.1.43458: response + 18:38:52.185398 127.0.0.1.43458 > 127.0.0.1.5001: + + :-) + + Signed-off-by: Andrea Bittau + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 2a91aa3967398fb94eccc8da67c82bce9f67afdf +Author: Andrea Bittau +Date: Mon Mar 20 17:41:47 2006 -0800 + + [DCCP] CCID2: Initial CCID2 (TCP-Like) implementation + + Original work by Andrea Bittau, Arnaldo Melo cleaned up and fixed several + issues on the merge process. + + For now CCID2 was turned the default for all SOCK_DCCP connections, but this + will be remedied soon with the merge of the feature negotiation code. + + Signed-off-by: Andrea Bittau + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit aa5d7df3b20e0e493e90e1151510ab3ae8366bb5 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:35:13 2006 -0800 + + [DCCP] CCID3: Set the no_feedback_timer fields near init_timer + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 9833d6da00c95e8a471411fb079da6b25787b05e +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:34:53 2006 -0800 + + [DCCP]: Don't alloc ack vector for the control sock + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit d5e9b2c737ecaedae66e3dffdd0d92d2a189ec5c +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:20:46 2006 -0800 + + [DCCP] ackvec: Delete all the ack vector records in dccp_ackvec_free + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 411447019ab583c659600b0519db5658a2444f11 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:20:23 2006 -0800 + + [DCCP] CCID: Allow ccid_{init,exit} to be NULL + + Testing if the ccid being instantiated has these methods in + ccid_init(). + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 02bcf28c82c8e4b72c4b89bddbbb6fea1a646d07 +Author: Andrea Bittau +Date: Mon Mar 20 17:19:55 2006 -0800 + + [DCCP] ackvec: Introduce ack vector records + + Based on a patch by Andrea Bittau. + + Signed-off-by: Andrea Bittau + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit e229c2fb3370a0c4ebac06cad67ce1cb35abcfe6 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:19:17 2006 -0800 + + [LIST]: Introduce list_for_each_entry_from + + For iterating over list of given type continuing from existing point. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 7b204afd45820fc21b5983205ad535c6b8088765 +Author: Robert Olsson +Date: Mon Mar 20 17:18:53 2006 -0800 + + [IPV4]: Use RCU locking in fib_rules. + + Signed-off-by: Robert Olsson + Signed-off-by: David S. Miller + +commit d8dcffee860d6b63996923b10f07c91d3d6c2fab +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:18:05 2006 -0800 + + [LIST]: Introduce list_for_each_entry_safe_from + + For iterate over list of given type from existing point safe against removal of + list entry. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 9b07ef5ddaced1e822b1a1fb1da088eb15c45cb4 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:16:17 2006 -0800 + + [DCCP] ackvec: Introduce dccp_ackvec_slab + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit fa23e2ecd30a584cdcb9b3de0149dbb5c073c20b +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:16:01 2006 -0800 + + [DCCP]: Fix error handling in dccp_init + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 7400d781105d18bf5bba89f8b986a413f14144a8 +Author: Arnaldo Carvalho de Melo +Date: Mon Mar 20 17:15:42 2006 -0800 + + [DCCP] ackvec: Ditch dccpav_buf_len + + Simplifying the code a bit as we're always using DCCP_MAX_ACKVEC_LEN. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: David S. Miller + +commit 0af5f6c1eba4a18e6b2ed518b589927d778c6c16 +Author: Harald Welte +Date: Mon Mar 20 17:15:11 2006 -0800 + + [NETFILTER] nfnetlink_log: add sequence numbers for log events + + By using a sequence number for every logged netfilter event, we can + determine from userspace whether logging information was lots somewhere + downstream. + + The user has a choice of either having per-instance local sequence + counters, or using a global sequence counter, or both. + + Signed-off-by: Harald Welte + Signed-off-by: David S. Miller + +commit 5ee956125a780baf15f2c1d09f2cbf8adcf598fe +Author: Harald Welte +Date: Mon Mar 20 17:14:12 2006 -0800 + + [NETFILTER] NAT sequence adjustment: Save eight bytes per conntrack + + This patch reduces the size of 'struct ip_conntrack' on systems with NAT + by eight bytes. The sequence number delta values can be int16_t, since + we only support one sequence number modification per window anyway, and + one such modification is not going to exceed 32kB ;) + + Signed-off-by: Harald Welte + Signed-off-by: David S. Miller + +commit 39d8c1b6fbaeb8d6adec4a8c08365cc9eaca6ae4 +Author: David S. Miller +Date: Mon Mar 20 17:13:49 2006 -0800 + + [NET]: Do not lose accepted socket when -ENFILE/-EMFILE. + + Try to allocate the struct file and an unused file + descriptor before we try to pull a newly accepted + socket out of the protocol layer. + + Based upon a patch by Prassana Meda. + + Signed-off-by: David S. Miller + +commit 77d2ca350018c507815f5d38a40ffb597eb9ae25 +Author: Patrick McHardy +Date: Mon Mar 20 17:12:12 2006 -0800 + + [NET]: Reduce size of struct sk_buff on 64 bit architectures + + Move skb->nf_mark next to skb->tc_index to remove a 4 byte hole between + skb->nfmark and skb->nfct and another one between skb->users and skb->head + when CONFIG_NETFILTER, CONFIG_NET_SCHED and CONFIG_NET_CLS_ACT are enabled. + For all other combinations the size stays the same. + + Signed-off-by: Patrick McHardy + Signed-off-by: David S. Miller + +commit ddd7bf9fe4e59afc0a041378f82b6e1aa88f714b +Author: Stefan Rompf +Date: Mon Mar 20 17:11:41 2006 -0800 + + [VLAN]: translate IF_OPER_DORMANT to netif_dormant_on() + + this patch adds support to the VLAN driver to translate IF_OPER_DORMANT of the + underlying device to netif_dormant_on(). Beside clean state forwarding, this + allows running independant userspace supplicants on both the real device and + the stacked VLAN. It depends on my RFC2863 patch. + + Signed-off-by: Stefan Rompf + Signed-off-by: David S. Miller + +commit b00055aacdb172c05067612278ba27265fcd05ce +Author: Stefan Rompf +Date: Mon Mar 20 17:09:11 2006 -0800 + + [NET] core: add RFC2863 operstate + + this patch adds a dormant flag to network devices, RFC2863 operstate derived + from these flags and possibility for userspace interaction. It allows drivers + to signal that a device is unusable for user traffic without disabling + queueing (and therefore the possibility for protocol establishment traffic to + flow) and a userspace supplicant (WPA, 802.1X) to mark a device unusable + without changes to the driver. + + It is the result of our long discussion. However I must admit that it + represents what Jamal and I agreed on with compromises towards Krzysztof, but + Thomas and Krzysztof still disagree with some parts. Anyway I think it should + be applied. + + Signed-off-by: Stefan Rompf + Signed-off-by: David S. Miller + +commit e843b9e1bec4a953d848a319da6a18ca5c667f55 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:07:49 2006 -0800 + + [IPV6]: ROUTE: Ensure to accept redirects from nexthop for the target. + + It is possible to get redirects from nexthop of "more-specific" + routes. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 09c884d4c3b45cda904c2291d4723074ff523611 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:07:03 2006 -0800 + + [IPV6]: ROUTE: Add accept_ra_rt_info_max_plen sysctl. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit e317da96227cef28a137e2d1ad790b23e518dd2b +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:06:42 2006 -0800 + + [IPV6]: ROUTE: Flag RTF_DEFAULT for Route Infomation for ::/0. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 70ceb4f53929f73746be72f73707cd9f8753e2fc +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:06:24 2006 -0800 + + [IPV6]: ROUTE: Add experimental support for Route Information Option in RA (RFC4191). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 52e1635631b342803aecaf81a362c1464e3da2e5 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:05:47 2006 -0800 + + [IPV6]: ROUTE: Add router_probe_interval sysctl. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 930d6ff2e2a5f1538448d3b0b2652a8f0c0f6cba +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:05:30 2006 -0800 + + [IPV6]: ROUTE: Add accept_ra_rtr_pref sysctl. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 270972554c91acd29412d8b6a10e606041012106 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:05:13 2006 -0800 + + [IPV6]: ROUTE: Add Router Reachability Probing (RFC4191). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit ebacaaa0fdf4402cdf4c8e569f54af36b6f0aa2d +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:04:53 2006 -0800 + + [IPV6]: ROUTE: Add support for Router Preference (RFC4191). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 8238dd0698b480e432acd955c45f9f907b8d27de +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:04:35 2006 -0800 + + [IPV6]: ROUTE: Handle finding the next best route in reachability in BACKTRACK(). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit bb133964e036c4aaf773244468d589c024e7b399 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:01:43 2006 -0800 + + [IPV6]: ROUTE: Try finding the next best route. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 1ddef044ed9dd6c7c23562d1140522e28de888a5 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:01:24 2006 -0800 + + [IPV6]: ROUTE: Clean up rt6_select() code path in ip6_route_{intput,output}(). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 118f8c1654b8f2e79fa0eb8b2d84283ab62a5498 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:01:06 2006 -0800 + + [IPV6]: ROUTE: Try selecting better route for non-default routes as well. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 045927ff84c340da5442543e87be988fcde5a283 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:00:48 2006 -0800 + + [IPV6]: ROUTE: More strict check for default routers in rt6_get_dflt_router(). + + Check RTF_ADDRCONF|RTF_DEFAULT in rt6_get_dflt_router(). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 554cfb7ee5d4f2d0edb280e66e4a2db1906a8300 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:00:26 2006 -0800 + + [IPV6]: ROUTE: Eliminate lock for default route pointer. + + And prepare for more advanced router selection. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 519fbd8715ce6413ec8e122bf02f09b0e49d3ca5 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 17:00:05 2006 -0800 + + [IPV6]: ROUTE: Clean-up cow'ing in ip6_route_{intput,output}(). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit e40cf3533c712b941d4c8ebb3eca892d55c32c34 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:59:27 2006 -0800 + + [IPV6]: ROUTE: Convert rt6_cow() to rt6_alloc_cow(). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit fb9de91ea8035b99757d9f8a04aa058c982c361b +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:59:08 2006 -0800 + + [IPV6]: ROUTE: Clean up reference counting / unlocking for returning object. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit d5315b500b68ea921fe05fe2cbc06bcae90ff615 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:58:48 2006 -0800 + + [IPV6]: ROUTE: Unify two code paths for pmtu disc. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 299d9939089126f764090a202f2d6c69934bcf66 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:58:32 2006 -0800 + + [IPV6]: ROUTE: Add rt6_alloc_clone() for cloning route allocation. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 76f9edd17d90e11ef04d20fe457dd172fe8157a6 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:56:50 2006 -0800 + + [IPV6]: ROUTE: Copy u.dst.error for RTF_REJECT routes when cloning. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit a1e783634a64d002c58391cf8150fcb80856a4fe +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:56:32 2006 -0800 + + [IPV6]: ROUTE: Set appropriate information before inserting a route. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 95a9a5ba0219a4d4237fb39703bfa58626c6fe72 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:55:51 2006 -0800 + + [IPV6]: ROUTE: Split up rt6_cow() for future changes. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit c4fd30eb18666972230689eb30e8f90844bce635 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:55:26 2006 -0800 + + [IPV6]: ADDRCONF: Add accept_ra_pinfo sysctl. + + This controls whether we accept Prefix Information in RAs. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 65f5c7c1143fb8eed5bc7e7d8c926346e00fe3c0 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:55:08 2006 -0800 + + [IPV6]: ROUTE: Add accept_ra_defrtr sysctl. + + This controls whether we accept default router information + in RAs. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 073a8e0e154c1c440e0b33aaa887473d5cc843f4 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:54:49 2006 -0800 + + [IPV6]: ADDRCONF: Split up ipv6_generate_eui64() by device type. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 955189efb44742890f33c91df478877af25246da +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:54:09 2006 -0800 + + [IPV6]: ADDRCONF: Use our standard algorithm for randomized ifid. + + RFC 3041 describes an algorithm to generate random interface + identifier. In RFC 3041bis, it is allowed to use different + algorithm than one described in RFC 3041. + + So, let's use our standard pseudo random algorithm to simplify + our implementation. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 955aaa2fe39e21e49521449c09548ce1ba501010 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:52:52 2006 -0800 + + [NET]: NEIGHBOUR: Ensure to record time to neigh->updated when neighbour's state changed. + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit 74a3a0ed9096ba9feffc7e44f2a2c37d968bc6d1 +Author: YOSHIFUJI Hideaki +Date: Mon Mar 20 16:51:48 2006 -0800 + + [IPV6]: TUNNEL6: Don't try to add multicast route twice. + + Since addrconf_add_dev() has already called addrconf_add_mroute() + to added route for multicast prefix, there's no point to call it + again in addrconf_ip6_tnl_config(). + + Signed-off-by: YOSHIFUJI Hideaki + Signed-off-by: David S. Miller + +commit cd85f6e2f58282186ad720fc18482be228f0b972 +Author: Jeff Garzik +Date: Mon Mar 20 19:49:54 2006 -0500 + + [libata] sata_mv: fix irq port status usage + + Interrupt handler did not properly initialize a variable on a per-port + basis, leading to incorrect behavior on ports other than port 0. + + Bug caught and fixed by Mark Lord. + + Signed-off-by: Jeff Garzik + +commit 7a1218a277c45cba1fb8d7089407a1769c645c43 +Author: Trond Myklebust +Date: Mon Mar 20 18:11:10 2006 -0500 + + SUNRPC: Ensure rpc_call_async() always calls tk_ops->rpc_release() + + Currently this will not happen if we exit before rpc_new_task() was called. + Also fix up rpc_run_task() to do the same (for consistency). + + Signed-off-by: Trond Myklebust + +commit 71a8924bee63d891f6256d560e32416a458440b3 +Author: Greg Kroah-Hartman +Date: Mon Mar 20 17:28:39 2006 -0500 + + [PATCH] USB: omninet: fix up debugging comments + + Signed-off-by: Greg Kroah-Hartman + +commit e9a66c64bb7033cb0180d419b2008acf7a141adc +Author: Greg Kroah-Hartman +Date: Fri Mar 17 17:40:08 2006 -0800 + + [PATCH] USB serial: add navman driver + + Thanks to Warren Lewis for the information needed to + write the driver and for testing it out. + + Signed-off-by: Greg Kroah-Hartman + +commit da81817fbd744ce70983f1d3c61841265003c7f4 +Author: Eugene Teo +Date: Wed Mar 15 14:57:19 2006 -0800 + + [PATCH] USB: Fix irda-usb use after use + + Don't read from free'd memory after calling netif_rx(). docopy is used as + a boolean (0 and 1) so unsigned int is sufficient. + + Coverity bug #928 + + Signed-off-by: Eugene Teo + Cc: "David S. Miller" + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 09abfa8048de8e68eaa09eb07ac18f2d549dfe58 +Author: Petko Manolov +Date: Wed Mar 15 16:29:38 2006 +0200 + + [PATCH] USB: rtl8150 small fix + + This one is about announcing the device registration after the last check + has been made. + + From: Petko Manolov + Signed-off-by: Greg Kroah-Hartman + +commit bf58fbd5e86a43466e638407ff8a4eb7766a3b68 +Author: A. Maitland Bottoms +Date: Tue Mar 14 18:44:23 2006 -0500 + + [PATCH] USB: ftdi_sio: add Icom ID1 USB product and vendor ids + + The Icom ID-1 1.2 GHz band digital transceiver is a new radio + that has a USB interface. With this patch, the ftdi_sio driver + will report "Detected FT8U232AM" and provide a serial device + interface. + + Signed-off-by: "A. Maitland Bottoms" + Signed-off-by: Greg Kroah-Hartman + +commit 59224f5352542b968c41200954e56c26c4f0a075 +Author: Craig Shelley +Date: Sat Mar 11 11:29:02 2006 +0000 + + [PATCH] USB: cp2101: add new device IDs + + This patch adds a new device ID to the cp2101 driver + + Signed-off-by: Craig Shelley + Signed-off-by: Greg Kroah-Hartman + +commit 24f8b116c45e46779dec553f934c3d74f79c06fb +Author: Horst Schirmeier +Date: Sat Mar 11 00:16:55 2006 -0800 + + [PATCH] USB: fix check_ctrlrecip to allow control transfers in state ADDRESS + + check_ctrlrecip() disallows any control transfers if the device is + deconfigured (in configuration 0, ie. state ADDRESS). This for example + makes it impossible to read the device descriptors without configuring the + device, although most standard device requests are allowed in this state by + the spec. This patch allows control transfers for the ADDRESS state, too. + + Signed-off-by: Horst Schirmeier + Cc: Alan Stern + Cc: David Brownell + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit f88f8295d8a9229fc8b647baf4f15959384d7bb7 +Author: Adrian Bunk +Date: Fri Mar 10 23:25:06 2006 +0100 + + [PATCH] USB: vicam.c: fix a NULL pointer dereference + + This patch fixes a NULL pointer dereference spotted by the Coverity + checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit 6e0755a4b2a41a8cd5839db69532d07262294b41 +Author: Luca Risolia +Date: Fri Mar 3 09:58:39 2006 +0000 + + [PATCH] USB: ZC0301 driver bugfix + + ZC0301 driver bugfix. + + Use correct PID/VID USB entries. + + Signed-off-by: Luca Risolia + Signed-off-by: Greg Kroah-Hartman + +commit 2e56222ed52cec40427fa89f23b228232e3e327e +Author: Wolfgang Rohdewald +Date: Wed Mar 8 16:59:44 2006 +0100 + + [PATCH] USB: add support for Creativelabs Silvercrest USB keyboard + + Signed-off-by: Wolfgang Rohdewald + Signed-off-by: Greg Kroah-Hartman + +commit 9d5847bc1a3977fbfb4057aad41458df89792309 +Author: Rodolfo Quesada +Date: Mon Mar 6 10:45:42 2006 -0500 + + [PATCH] USB: storage: new unusual_devs.h entry: Mitsumi 7in1 Card Reader + + This patch (as661) adds an unusual_devs entry for the Mitsumi 7in1 Card + Reader. + + From: Rodolfo Quesada + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 23b7885d50c5f5fe6dca93d4b0913f6e7b878dad +Author: Pete Zaitcev +Date: Sun Mar 5 21:45:44 2006 -0800 + + [PATCH] USB: storage: unusual_devs.h entry 0420:0001 + + Ref + https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=176584 + + Signed-off-by: Phil Dibowitz + Signed-off-by: Greg Kroah-Hartman + +commit c713c973fb4bfdb22cce488cca4f9f8006ed58ce +Author: Pete Zaitcev +Date: Sun Mar 5 21:43:40 2006 -0800 + + [PATCH] USB: storage: another unusual_devs.h entry + + Signed-off-by: Phil Dibowitz + Signed-off-by: Greg Kroah-Hartman + +commit 1e7a5a84e407dfa20813a7f55413be8193ee5380 +Author: Phil Dibowitz +Date: Sun Mar 5 21:36:51 2006 -0800 + + [PATCH] USB: storage: sandisk unusual_devices entry + + The following adds an unusual_devs entry for the SanDisk ImageMate CompactFlash + USB drive, for the US_FL_FIX_CAPACITY flag. Additionally, it removes trailing + whitespace from the previous entry. It's based on the patch sent by Roman Hodek + . + + Signed-off-by: Phil Dibowitz + Signed-off-by: Greg Kroah-Hartman + +commit b712548c5d88f2e4672f8482c3904e8c5728dbf1 +Author: Greg Kroah-Hartman +Date: Fri Mar 17 17:40:08 2006 -0800 + + [PATCH] USB: fix initdata issue in isp116x-hcd + + As found by Sam's scripts. + + Cc: Sam Ravnborg + Cc: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit f48219db93eaee644e9fd9f22fb6421f38059cc5 +Author: Horst Schirmeier +Date: Thu Mar 9 14:10:49 2006 +0100 + + [PATCH] USB: usbcore: usb_set_configuration oops (NULL ptr dereference) + + When trying to deconfigure a device via usb_set_configuration(dev, 0), + 2.6.16-rc kernels after 55c527187c9d78f840b284d596a0b298bc1493af oops + with "Unable to handle NULL pointer dereference at...". This is due to + an unchecked dereference of cp in the power budget part. + + Signed-off-by: Horst Schirmeier + Acked-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 6aa35675bbc370e5f11baae7e01a9ab255d8030c +Author: Alan Stern +Date: Wed Mar 8 15:14:09 2006 -0500 + + [PATCH] USB: usbcore: Don't assume a USB configuration includes any interfaces + + In a couple of places, usbcore assumes that a USB device configuration + will have a nonzero number of interfaces. Having no interfaces may or + may not be allowed by the USB spec; in any event we shouldn't die if we + encounter such a thing. This patch (as662) removes the assumptions. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 11a223ae3b86b94391774512e5671600367a305c +Author: Pete Zaitcev +Date: Thu Mar 2 16:53:00 2006 -0800 + + [PATCH] USB: ub 03 drop stall clearing + + Matt mentioned that a very old ZIP-100 actually does need this, but I am + yet to see anyone who actually has one still working and uses ub with it. + He/she must be a retrocomputing geek, who can easily bias it to usb-storage + with libusual, if needed. Meanwhile, common folks have trouble with poorly + designed USB keys and some el-cheapo European music players. I think we + better drop this for now. + + Signed-off-by: Pete Zaitcev + Signed-off-by: Greg Kroah-Hartman + +commit 952ba222962bf3fb1336f139f1049030153cae55 +Author: Pete Zaitcev +Date: Thu Mar 2 16:42:59 2006 -0800 + + [PATCH] USB: ub 02 remove diag + + Remove the "diag" file from the sysfs. The usbmon is good enough these days + so I do not need this feature anymore. Also, sysfs is a pain. Al Viro caught + a race in this, which I thought too bothersome to fix. + + Signed-off-by: Pete Zaitcev + Signed-off-by: Greg Kroah-Hartman + +commit 4d69581929b8f8836f806bcc320b19ed886e9517 +Author: Pete Zaitcev +Date: Thu Mar 2 16:36:09 2006 -0800 + + [PATCH] USB: ub 01 remove first_open + + The first_open was long overdue for removal, but I wanted to keep this + separate for other changes in case of regressions. + + Signed-off-by: Pete Zaitcev + Signed-off-by: Greg Kroah-Hartman + +commit ae55717584431761b70215d3d574c13fe97093f2 +Author: Alan Stern +Date: Tue Feb 28 10:16:12 2006 -0500 + + [PATCH] USB: UHCI: Increase port-reset completion delay for HP controllers + + This patch (as657) increases the port-reset completion delay in uhci-hcd + for HP's embedded controllers. Unlike other UHCI controllers, the HP + chips can take as long as 250 us to carry out the processing associated + with finishing a port reset. + + This fixes Novell bug #148761. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 491b04ce1c9adfa0cd73f095086f3c37da81b667 +Author: Dick Streefland +Date: Wed Mar 1 00:53:33 2006 -0800 + + [PATCH] USB: support for USB-to-serial cable from Speed Dragon Multimedia + + The USB data cable for my Samsung GSM phone contains the USB-to-serial + converter chip MS3303H from Speed Dragon Multimedia, Inc. that appears to + be compatible with the PL2303 chip. The following patch adds support for + this chip to the pl2303 driver. + + Signed-off-by: Dick Streefland + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 96050b11f690878c19c1cd39970ab7325d91e18b +Author: Julian Bradfield +Date: Wed Mar 1 10:19:44 2006 +0000 + + [PATCH] USB: PL2303 and TIOCMIWAIT + + A while ago, I posted about TIOCMIWAIT not working with the PL2303 + USB-serial adapter. + + After a brief exchange with Greg, I tracked this to a missing wake-up + in the USB interrupt procedures. I got our systems staff to install + the enclosed very simple patch to our 2.6.12 kernels, and it all works + fine as expected. I guess this should also apply to the latest version + and go into the mainstream. + + Apologies for the long delay in posting the result. + + The routine being patched is pl2303_update_line_status + + Signed-off-by: Julian Bradfield + Signed-off-by: Greg Kroah-Hartman + +commit a5c44e29e5637b5e6fe59d225eb4f438688b3849 +Author: Lonnie Mendez +Date: Wed Mar 1 10:45:24 2006 -0600 + + [PATCH] USB: cypress_m8: add support for the Nokia ca42-version 2 cable + + This patch adds support for the Nokia ca42 version 2 cable to the + cypress_m8 driver. The device was tested by others with this patch and + found to be compatible with the cypress_m8 driver. A special note + should be taken that this cable seems to vary in the type of chipset + used. This patch supports the cable with product id 0x4101. + + Signed-off-by: Lonnie Mendez + Signed-off-by: Greg Kroah-Hartman + +commit a847423905c6a8ccd6671d05f5877d893d10cd9f +Author: Luca Risolia +Date: Sat Feb 25 06:57:49 2006 +0000 + + [PATCH] USB: ZC0301 driver updates + + ZC0301 driver updates. + + Changes: + new, - removed, * cleanup, @ bugfix + + @ Need usb_get|put_dev() when disconnecting, if the device is open + * Cleanups and updates in the documentation + + Use per-device sensor structures + + Add frame_timeout module parameter + + Signed-off-by: Luca Risolia + Signed-off-by: Greg Kroah-Hartman + +commit ccad7789d5e557644d1c866b018394872af0ec5b +Author: Luca Risolia +Date: Sat Feb 25 06:54:18 2006 +0000 + + [PATCH] USB: ET61X[12]51 driver updates + + USB: ET61X[12]51 driver updates + + Changes: + new, - removed, * cleanup, @ bugfix + + @ Fix stream_interrupt() + @ Fix vidioc_enum_input() and split vidioc_gs_input() + @ Need usb_get|put_dev() when disconnecting, if the device is open + * Use wait_event_interruptible_timeout() instead of wait_event_interruptible() + when waiting for video frames + * replace wake_up_interruptible(&wait_stream) with wake_up(&wait_stream) + * Cleanups and updates in the documentation + * Use mutexes instead of semaphores + + Use per-device sensor structures + + Add support for PAS202BCA image sensors + + Add frame_timeout module parameter + + Signed-off-by: Luca Risolia + Signed-off-by: Greg Kroah-Hartman + +commit 2ffab02fea5880da284dc5511479b25a796a8dee +Author: Luca Risolia +Date: Sat Feb 25 06:50:47 2006 +0000 + + [PATCH] USB: SN9C10x driver updates + + SN9C10x driver updates. + + Changes: + new, - removed, * cleanup, @ bugfix + + @ Fix stream_interrupt() + @ Fix vidioc_enum_input() and split vidioc_gs_input() + @ Need usb_get|put_dev() when disconnecting, if the device is open + * Use wait_event_interruptible_timeout() instead of wait_event_interruptible() + when waiting for video frames + * replace wake_up_interruptible(&wait_stream) with wake_up(&wait_stream) + * Cleanups and updates in the documentation + + Use per-device sensor structures + + Add support for PAS202BCA image sensors + + Add frame_timeout module parameter + + Signed-off-by: Luca Risolia + Signed-off-by: Greg Kroah-Hartman + +commit 7039f4224d4e40b06308d5c1a97427af1a142459 +Author: Eric Sesterhenn +Date: Mon Feb 27 13:34:10 2006 -0800 + + [PATCH] USB: kzalloc() conversion in drivers/usb/gadget + + this patch converts drivers/usb to kzalloc usage. + Compile tested with allyes config. + + I think there was a bug in drivers/usb/gadget/inode.c because + it used sizeof(*data) for the kmalloc() and sizeof(data) for + the memset(), since sizeof(data) just returns the size for a pointer. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 80b6ca48321974a6566a1c9048ba34f60420bca6 +Author: Eric Sesterhenn +Date: Mon Feb 27 21:29:43 2006 +0100 + + [PATCH] USB: kzalloc() conversion for rest of drivers/usb + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Greg Kroah-Hartman + +commit d54a5cb6484705f7808b337917cc7598f2f971c3 +Author: Luca Risolia +Date: Wed Feb 8 00:50:59 2006 +0000 + + [PATCH] USB: CREDITS: Add credits about the ZC0301 and ET61X[12]51 USB drivers + + This patch adds credits about the ZC0301 and ET61X[12]51 USB drivers + which have been included in the mainline kernel recently. + + Signed-off-by: Luca Risolia + Signed-off-by: Greg Kroah-Hartman + +commit 9e47a52bf36fa4a24f56f878f4ca57eb885c78dd +Author: Luca Risolia +Date: Wed Feb 8 00:05:27 2006 +0000 + + [PATCH] USB: ZC0301 driver updates + + "Cosmetic" driver updates for the ZC0301 driver: + + - Fix stream_interrupt() (and work around a possible kernel bug); + + - Fix vidioc_enum_input() and split vidioc_gs_input() in two parts; + - Use wait_event_interruptible_timeout() instead of wait_event_interruptible() + when waiting for video frames; + - replace erroneous wake_up_interruptible(&wait_stream) with + wake_up(&wait_stream); + - Cosmetic cleanups in the documentation. + + Signed-off-by: Luca Risolia + Signed-off-by: Greg Kroah-Hartman + +commit addf36fec058691f7ba4f95b5487d140f4a86f5a +Author: Matthew Martin +Date: Wed Feb 15 15:41:25 2006 -0600 + + [PATCH] USB: Fix warning in drivers/usb/media/ov511.c + + Gcc 4.0.2 had the warning: + + drivers/usb/media/ov511.c: In function 'show_exposure': + drivers/usb/media/ov511.c:5642: warning: 'exp' may be used uninitialized + in this function + + Here is the patch to fix that warning. + + Signed-off-by: Matthew Martin + Signed-off-by: Greg Kroah-Hartman + +commit 1afc64a3d68174fe524f11d92e045a30eacc927e +Author: Aras Vaichas +Date: Sat Feb 18 12:31:23 2006 -0800 + + [PATCH] USB: ethernet gadget driver section fixups + + This patch allows you to set the iSerialNumber field in the + usb_device_descriptor structure for your USB ethernet gadget. + + It also changes the parameters shown through sysfs so they're + no longer declared as __initdata, preventing potential oopses. + + That's most useful for the Ethernet addresses, which may in + some cases be random "locally administered" addresses. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 329af28b141ab4ae847aff1362864c4cc332641f +Author: David Brownell +Date: Sat Feb 18 12:31:05 2006 -0800 + + [PATCH] USB: gadget driver section fixups + + This adds __init section annotations to gadget driver bind() routines to + remove calls from .text into .init sections (for endpoint autoconfig). + Likewise it adds __exit section annotations to their unbind() routines. + + The specification of the gadget driver register/unregister functions is + updated to explicitly allow use of those sections. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 43c5d5aaafef56618a6efbcab7f91615da1a8659 +Author: Alan Stern +Date: Wed Feb 1 10:47:11 2006 -0500 + + [PATCH] usbcore: fix compile error with CONFIG_USB_SUSPEND=n + + This patch (as647) fixes a small error introduced by a recent change to + the USB core suspend/resume code. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 6a8e87b23ff4a979bde5451a242466a4b3f9fe7d +Author: Alan Stern +Date: Thu Jan 19 10:46:27 2006 -0500 + + [PATCH] USB core and HCDs: don't put_device while atomic + + This patch (as640) removes several put_device and the corresponding + get_device calls from the USB core and HCDs. Some of the puts were done + in atomic contexts, and none of them are needed since the core now + guarantees that every endpoint will be disabled and every URB completed + before a USB device is released. + + Signed-off-by: Alan Stern + Acked-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 1393adb2ebb00a2cd54b293cd7ee71e3376f4e9f +Author: Alan Stern +Date: Tue Jan 31 10:02:55 2006 -0500 + + [PATCH] uhci-hcd: fix mistaken usage of list_prepare_entry + + A recent update to the uhci-hcd driver invoked the list_prepare_entry + macro incorrectly. This patch (as646) corrects it. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit dbf4fcad62467ce1bd6966292b6850fc7a210e0b +Author: Alan Stern +Date: Tue Dec 20 09:58:08 2005 -0500 + + [PATCH] UHCI: Don't log short transfers + + Even when the URB_SHORT_NOT_OK flag is set, a short transfer shouldn't + generate a debugging log message. Especially not one with the confusing + claim that the transfer "failed with status 0". This patch (as627) + fixes that behavior in uhci-hcd. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 8d402e1ae03656c1ad215514f8885ef4793f0948 +Author: Alan Stern +Date: Sat Dec 17 18:03:37 2005 -0500 + + [PATCH] UHCI: improve debugging code + + This patch (as626) makes some improvements to the debugging code in + uhci-hcd. The main change is that now the code won't get compiled if + CONFIG_USB_DEBUG isn't set. But there are other changes too, like + adding a missing .owner field and printing a debugging dump if the + controller dies. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 0ed8fee1c1d38a62e981025ba40b5eba30c4ce2a +Author: Alan Stern +Date: Sat Dec 17 18:02:38 2005 -0500 + + [PATCH] UHCI: remove main list of URBs + + As part of reorienting uhci-hcd away from URBs and toward endpoint + queues, this patch (as625) eliminates the driver's main list of URBs. + The list wsa used mainly in checking for URB completions; now the driver + goes through the list of active endpoints and checks the members of the + queues. + + As a side effect, I had to remove the code that looks for FSBR timeouts. + For now, FSBR will remain on so long as any URBs on a full-speed control + or bulk queue request it, even if the queue isn't advancing. A later + patch can add more intelligent handling. This isn't a huge drawback; + it's pretty rare for an URB to get stuck for more than a fraction of a + second. (And it will help the people trying to use those insane HP USB + devices.) + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit af0bb5998abe8ed28ee354dd4c71689cacdc91e9 +Author: Alan Stern +Date: Sat Dec 17 18:00:12 2005 -0500 + + [PATCH] UHCI: use dummy TDs + + This patch (as624) fixes a hardware race in uhci-hcd by adding a dummy + TD to the end of each endpoint's queue. Without the dummy the host + controller will effectively turn off the queue when it reaches the end, + which happens asynchronously. This leads to a potential problem when + new transfer descriptors are added to the end of the queue; they may + never get used. + + With a dummy TD present the controller never turns off the queue; + instead it just stops at the dummy and leaves the queue on but inactive. + When new TDs are added to the end of the queue, the first new one gets + written over the dummy. Thus there's never any question about whether + the queue is running or needs to be restarted. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit dccf4a48d47120a42382ba526f1a0848c13ba2a4 +Author: Alan Stern +Date: Sat Dec 17 17:58:46 2005 -0500 + + [PATCH] UHCI: use one QH per endpoint, not per URB + + This patch (as623) changes the uhci-hcd driver to make it use one QH per + device endpoint, instead of a QH per URB as it does now. Numerous areas + of the code are affected by this. For example, the distinction between + "queued" URBs and non-"queued" URBs no longer exists; all URBs belong to + a queue and some just happen to be at the queue's head. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit 499003e815344304c7b0c93aad923ddf644d24e0 +Author: Kumar Gala +Date: Tue Jan 24 08:11:27 2006 -0800 + + [PATCH] USB: Fix masking bug initialization of Freescale EHCI controller + + In setting up the of PHY we masked off too many bits, instead just + initialize PORTSC for the type of PHY we are using. + + Signed-off-by: Kumar Gala + Acked-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 0eb8c7cafe8d4fa9a90ea8680200e3ae3d57b1bd +Author: Franck Bui-Huu +Date: Tue Feb 7 09:06:17 2006 +0100 + + [PATCH] USB: Zero driver: Removed duplicated code + + Signed-off-by: Franck Bui-Huu + Signed-off-by: Greg Kroah-Hartman + +commit efafe6fb72b2bbab40080a08f7946f1eadb9bad9 +Author: Malte Doersam +Date: Sat Jan 28 17:48:33 2006 +0100 + + [PATCH] USB: Pegasus: Linksys USBVPN1 support + cleanup + + This patch adds a second linksys vendor-id (077b) and the product id of the + pegasus based adapter USBVPN1 + + http://www1.linksys.com/Products/product.asp?prid=3D543&scid=3D30 + + Furthermore it replaces all LINKSYS_GPIO_RESET with DEFAULT_GPIO_RESET as both + are declared like this: + #define DEFAULT_GPIO_RESET 0x24 + #define LINKSYS_GPIO_RESET 0x24 + + This is misleading and confusing. + The check is now done via the VENDOR_ID in pegasus.c: + if (usb_dev_id[pegasus->dev_index].vendor == VENDOR_LINKSYS + + Signed-off-by: Malte Doersam + Signed-off-by: Greg Kroah-Hartman + +commit aef4e266964bc15861b5835c1f5b9d2ebc155c2a +Author: Alan Stern +Date: Tue Jan 31 12:58:38 2006 -0500 + + [PATCH] usbhid: add error handling + + This patch (as628c) adds error handling to the USB HID core. When an + error is reported for an interrupt URB, the driver will do delayed + retries, at increasing intervals, for up to one second. If that doesn't + work, it will try to reset the device. Testing by users has shown that + both the retries and the resets end up getting used. + + Signed-off-by: Alan Stern + Signed-off-by: Greg Kroah-Hartman + +commit fb669cc01ed778c4926f395e44a9b61644597d38 +Author: David Brownell +Date: Tue Jan 24 08:40:27 2006 -0800 + + [PATCH] USB: remove usbcore-specific wakeup flags + + This makes usbcore use the driver model wakeup flags for host controllers + and for their root hubs. Since previous patches have removed all users of + the HCD flags they replace, this converts the last users of those flags. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 6a9062f393fa48125df23c5491543828a21e1ae0 +Author: David Brownell +Date: Mon Jan 23 15:28:07 2006 -0800 + + [PATCH] USB: ohci uses driver model wakeup flags + + This makes OHCI use the driver model wakeup control bits for its root hub + (e.g. disable on amd756, because of chip erratum) and for the controller + itself. It no longer uses the hcd glue bits with those roles, and depends + on the previous patch making the root hub available earlier. + + Note that on most platforms (boot code properly setting the RWC bit) this + gives a partial workaround for the way PCI isn't currently flagging devices + that support PME# signals. (Because of odd PCI init sequencing on PPC.) + That's because many OHCI controllers support "legacy PCI PM" ... without + involving any PCI PM capability. + + USB wakeup from STR, if it works on your system, may still involve + tweaking things by hand in /proc/acpi/wakeup. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit b1e8f0a6a8805c971857cd10a65cf8caa4c1a672 +Author: David Brownell +Date: Mon Jan 23 15:25:40 2006 -0800 + + [PATCH] USB: usbcore sets up root hubs earlier + + Make the HCD initialization sequence more sane ... notably, setting up + root hubs before HCDs are asked to do their one-time init. Among other + things, that lets the HCDs do custom root hub init along with all the + other one-time initialization done in the (now misnamed) reset() method. + + This also copies the controller wakeup flags into the root hub; it's + done a bit later than would be ideal, but that'll be necessary until + the PCI code initializes them correctly. (The PCI patch breaks on PPC + due to how it sequences PCI initialization.) + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 1c05ad4447e4ecbd61647c102fb6f2f5a6634ff3 +Author: David Brownell +Date: Wed Jan 25 08:45:59 2006 -0800 + + [PATCH] recognize three more usb peripheral controllers + + This adds declarations for three USB peripheral controllers: + + - Two high speed USB cores that can be licensed from Mentor Graphics + to be integrated into silicon: + + * "musbhsfc" is for peripherals only, as found in for example the + IBM/AMCC 44EP processors. + + * "musbhdrc" is OTG-capable (dual role), and is found in various + products including OMAP 2430 and the new DaVinci SOCs. + + The "musbh" standing for "Mentor USB Highspeed", the rest standing + for "Function Controller" or "Dual Role Controller" (OTG-capable). + + - The full speed controller on the FreeScale MPC8272. + + Adding these definitions just allows gadget driver code to handle any + controller-specific logic; controller drivers are quite separate. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 7802ac5c29d135345db1b06f9167075cd9f2d675 +Author: David Brownell +Date: Sun Jan 22 10:33:27 2006 -0800 + + [PATCH] USB: minor gadget/rndis tweak + + Resove a minor FIXME: don't change MTU while RNDIS link is active, + the other end won't expect such things... + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit bae4bd848dc0b7e6defc7a5d62834a35d1eed06d +Author: David Brownell +Date: Sun Jan 22 10:32:37 2006 -0800 + + [PATCH] USB: add support for AT91 gadget + + This adds support for the USB peripheral controller on AT91 + (rm9200, eventually also sam9261 or uClinux) platforms. + + More SOC support for Linux-USB ... an uncomplicated pure PIO driver. + It'd be worth using this as a model, if you're starting a driver + for some other peripheral controller. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 39a269c09f854d3d98cbb755b3568175f04efa10 +Author: Andrew Victor +Date: Sun Jan 22 10:32:13 2006 -0800 + + [PATCH] USB: add support for OCHI on AT91rm9200 + + This adds support for OHCI on AT91rm9200 based boards. + + Possibly of interest here is the way this uses to + gate clocks on/off during system pm state transitions. That's + typical for non-PCI systems. Some can go further; Mini-A host + side connectors enable ID-pin sensing. + + From: Andrew Victor + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit d0852299381326c5d8eb67771aa98108050e6901 +Author: David Brownell +Date: Fri Jan 20 14:35:55 2006 -0800 + + [PATCH] USB: EHCI unlink tweaks + + This patch modifies the behavior of the EHCI driver in an unlink path + that seems to be causing various issues on some systems. Those problems + have included issues with disconnection, driver unbinding, and similar + cases where urb unlinking would just not work right. + + This patch should help avoid those problems by not turning off the async + (control/bulk) schedule until it's not expecting an "async advance" IRQ, + which comes from the processing passing the schedule head. Whether the + driver attempts to do such things is dependent on system timings, so + many folk would never have seen these problems. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit d5fb7f1b5b832946eaf450b2a695ec3e7fd2d351 +Author: Jordan Crouse +Date: Fri Jan 20 14:09:54 2006 -0800 + + [PATCH] USB: OHCI for AU1200 + + ALCHEMY: Add OHCI support for AU1200 + + Updated by moving the OHCI support out of the EHCI patch. + + Signed-off-by: Jordan Crouse + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 76fa9a240de4294a097235c9ddd470c21eb3449e +Author: Jordan Crouse +Date: Fri Jan 20 14:06:09 2006 -0800 + + [PATCH] USB: EHCI for AU1200 + + ALCHEMY: Add EHCI support for AU1200 + + Updated by removing the OHCI support + + Signed-off-by: Jordan Crouse + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 8cd42e97bf451bbbb2f54dc571366ae5a72faaea +Author: Kumar Gala +Date: Fri Jan 20 13:57:52 2006 -0800 + + [PATCH] USB: EHCI and Freescale 83xx quirk + + On the MPC834x processors the multiport host (MPH) EHCI controller has an + erratum in which the port number in the queue head expects to be 0..N-1 + instead of 1..N. If we are on one of these chips we subtract one from + the port number before putting it into the queue head. + + Signed-off-by: Kumar Gala + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 80cb9aee01245b38325dd84f1359b14a3f01f10d +Author: Randy Vinson +Date: Fri Jan 20 13:53:38 2006 -0800 + + [PATCH] USB: EHCI for Freescale 83xx + + Adding a Host Mode USB driver for the Freescale 83xx. + + This driver supports both the Dual-Role (DR) controller and the + Multi-Port-Host (MPH) controller present in the Freescale MPC8349. It has + been tested with the MPC8349CDS reference system. This driver depends on + platform support code for setting up the pins on the device package in a + manner appropriate for the board in use. Note that this patch requires + selecting the EHCI controller option under the USB Host menu. + + Signed-off-by: Randy Vinson + Signed-off-by: Greg Kroah-Hartman + +commit 469d02293d494d30dba81895cd3d34b0a3a6d51a +Author: Clemens Ladisch +Date: Fri Jan 20 13:49:10 2006 -0800 + + [PATCH] USB: EHCI full speed ISO bugfixes + + This patch replaces the split ISO raw_mask calculation code in the + iso_stream_init() function that computed incorrect numbers of high + speed transactions for both input and output transfers. + + In the output case, it added a superfluous start-split transaction for + all maxmimum packet sizes that are a multiple of 188. + + In the input case, it forgot to add complete-split transactions for all + microframes covered by the full speed transaction, and the additional + complete-split transaction needed for the case when full speed data + starts arriving near the end of a microframe. + + These changes don't affect the lack of full speed bandwidth, but at + least it removes the MMF errors that the HC raised with some input + streams. + + Signed-off-by: Clemens Ladisch + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit f8aeb3bb8657b207895aa10f75e63f2c48d08985 +Author: David Brownell +Date: Fri Jan 20 13:55:14 2006 -0800 + + [PATCH] USB: EHCI and NF2 quirk + + This teaches the EHCI driver about a quirk seen in older NForce2 chips, + adding a workaround to ignore selective suspend requests. Bus-wide + (so-called "global") suspend still works, as does USB wakeup of a + root hub that's globally suspended. + + There's still a hole in this support though. Strictly speaking, this + should _fail_ selective suspend requests, rather than ignoring them, + since doing it this way means that devices which should be able to issue + remote wakeup are not going to be able to do that. For now, we'll just + live with that problem ... since usbcore expects to do selective suspend + on the way towards a full bus suspend, and usbcore needs to be able to + do full bus suspend. + + Signed-off-by: David Brownell + Signed-off-by: Greg Kroah-Hartman + +commit 4186ecf8ad16dd05759a09594de6a87e48759ba6 +Author: Arjan van de Ven +Date: Wed Jan 11 15:55:29 2006 +0100 + + [PATCH] USB: convert a bunch of USB semaphores to mutexes + + the patch below converts a bunch of semaphores-used-as-mutex in the USB + code to mutexes + + Signed-off-by: Arjan van de Ven + Signed-off-by: Greg Kroah-Hartman + +commit 35cce732d9d4d9af6b4ad4d26d8f8c0eddb573a2 +Author: Pekka Enberg +Date: Thu Jan 12 20:35:25 2006 +0200 + + [PATCH] USB: remove LINUX_VERSION_CODE macro usage + + This patch removes unnecessary LINUX_VERSION_CODE macro usage from + drivers/usb/. + + Signed-off-by: Pekka Enberg + Signed-off-by: Greg Kroah-Hartman + +commit e266a12492f7ca9142882710bff92e902b7c95c8 +Author: Adrian Bunk +Date: Tue Nov 8 21:05:43 2005 +0100 + + [PATCH] USB: drivers/usb/core/message.c: make usb_get_string() static + + After the removal of usb-midi.c, there's no longer any external user of + usb_get_string(). + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit 9628416a542488230b53df48d90d4a967dea41c8 +Author: Adrian Bunk +Date: Sun Feb 5 00:03:28 2006 +0100 + + [PATCH] USB: remove OBSOLETE_OSS_USB_DRIVER drivers + + This patch removes the obsolete USB_MIDI and USB_AUDIO drivers. + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit 29da7937a11a47bad64558c3be4d998c4ea5e823 +Author: Pete Zaitcev +Date: Mon Feb 13 20:35:57 2006 -0800 + + [PATCH] ub: use kzalloc + + Switch from kmalloc+memset to kzalloc. + + Signed-off-by: Pete Zaitcev + Signed-off-by: Greg Kroah-Hartman + +commit 9ee884cc89dc339276c719ab4ff53913ac03d083 +Author: Oliver Neukum +Date: Fri Jan 6 23:27:17 2006 +0100 + + [PATCH] USB: kzalloc in sisusbvga + + this does two things: + - use kzalloc where appropriate + - correct error return codes in ioctl + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 06d694748b5173d972d7e4169173adad62ee67c0 +Author: Oliver Neukum +Date: Fri Jan 6 22:44:52 2006 +0100 + + [PATCH] USB: kzalloc in usbled + + another one for kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit d874a2bade6eec21abb30d4822d7b3e43cfbae95 +Author: Oliver Neukum +Date: Fri Jan 6 22:43:32 2006 +0100 + + [PATCH] USB: kzalloc in PhidgetServo + + another for kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 17590840dc3c14cb059817466884ac9bd97c4a35 +Author: Oliver Neukum +Date: Fri Jan 6 22:41:51 2006 +0100 + + [PATCH] USB: kzalloc in PhidgetInterfaceKit + + another for kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 1144cf7af2ff8e6816e360d03f867439f7efde40 +Author: Oliver Neukum +Date: Fri Jan 6 22:40:02 2006 +0100 + + [PATCH] USB: kzalloc in ldusb + + another one for kzalloc + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 092e462a537ba60e5f78ff208c8a95e6fd071fa5 +Author: Oliver Neukum +Date: Fri Jan 6 22:36:27 2006 +0100 + + [PATCH] USB: kzalloc in idmouse + + another for kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 5f7481337cc803926b5c43aac44441f683ff91ed +Author: Oliver Neukum +Date: Fri Jan 6 22:24:56 2006 +0100 + + [PATCH] USB: kzalloc in cytherm + + another one for kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 51b208ddf6e492c58609e07fa50bce98bb02cb27 +Author: Oliver Neukum +Date: Fri Jan 6 21:35:08 2006 +0100 + + [PATCH] USB: kzalloc in usbvideo + + another for kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit b10b4177881c50f22a79832558054f2e42be5cfa +Author: Oliver Neukum +Date: Fri Jan 6 21:28:40 2006 +0100 + + [PATCH] USB: kzalloc in w9968cf + + another one for kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit d8e298dc9feed17f397be4bb2cd8c1dd47248c74 +Author: Oliver Neukum +Date: Fri Jan 6 21:01:47 2006 +0100 + + [PATCH] USB: kzalloc in dabusb + + kzalloc in dabusb. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit bbdb7dafb5b5a3c0197cbabd5055d8e9c093e3ea +Author: Oliver Neukum +Date: Fri Jan 6 20:54:29 2006 +0100 + + [PATCH] USB: kzalloc for hid + + this uses kzalloc in hid. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 887c2560b6ceb5fe7ac24704e85af507c6d960e5 +Author: Oliver Neukum +Date: Sun Jan 8 12:33:45 2006 +0100 + + [PATCH] USB: kzalloc for storage + + another one for kzalloc. This covers the storage subdirectory. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 9ff87d7326d9e4666721070040474f60a68ab467 +Author: Oliver Neukum +Date: Fri Jan 6 20:45:11 2006 +0100 + + [PATCH] USB: mdc800.c to kzalloc + + one more conversion to kzalloc. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 9fcd5c322ca2ee636e06e0c099cf8f1a692f832e +Author: Andrew Morton +Date: Wed Jan 18 23:55:07 2006 -0800 + + [PATCH] USB: optimise devio.c usbdev_read fix + + drivers/usb/core/devio.c: In function `usbdev_read': + drivers/usb/core/devio.c:140: error: invalid type argument of `->' + drivers/usb/core/devio.c:141: error: invalid type argument of `->' + drivers/usb/core/devio.c:142: error: invalid type argument of `->' + drivers/usb/core/devio.c:143: error: invalid type argument of `->' + + Cc: Oliver Neukum + Cc: Pete Zaitcev + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 8781ba0aa9d9dd2870b75dba8d9a47e0f5a3f96a +Author: Oliver Neukum +Date: Fri Jan 6 21:24:25 2006 +0100 + + [PATCH] USB: optimise devio.c::usbdev_read + + this is a small optimisation. It is ridiculous to do a kmalloc for + 18 bytes. This puts it onto the stack. + + Signed-off-by: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 60f780528f3ae603eb169a221628b93b6c6929f9 +Author: Luca Risolia +Date: Mon Feb 6 16:29:35 2006 +0000 + + [PATCH] USB: Add ZC0301 Video4Linux2 driver + + This patch adds a Video4Linux2 driver for ZC0301 + Image Processor and Control Chip. + + Signed-off-by: Luca Risolia + Signed-off-by: Greg Kroah-Hartman + +commit b3229087c5e08589cea4f5040dab56f7dc11332a +Author: Greg Kroah-Hartman +Date: Thu Mar 16 15:44:26 2006 -0800 + + [PATCH] sysfs: fix a kobject leak in sysfs_add_link on the error path + + As pointed out by Oliver Neukum. + + Cc: Maneesh Soni + Cc: Oliver Neukum + Signed-off-by: Greg Kroah-Hartman + +commit 832c57e9afa7a263bb2f8ee6d04d527ef6709aae +Author: Greg Kroah-Hartman +Date: Thu Mar 16 11:23:21 2006 -0700 + + [PATCH] sysfs: don't export dir symbols + + These functions should only be used by the kobject core, and if any + driver tries to use them, bad things happen. Unexport them to try to + prevent this from happening. + + Signed-off-by: Greg Kroah-Hartman + +commit a29d642a4aa99c5234314ab2523281139226c231 +Author: Andrew Morton +Date: Tue Mar 7 23:53:25 2006 -0800 + + [PATCH] get_cpu_sysdev() signedness fix + + Doing (int < NR_CPUS) doesn't dtrt if it's negative.. + + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 7423172a50968de1905a61413c52bb070a62f5ce +Author: Jun'ichi Nomura +Date: Mon Mar 13 17:14:25 2006 -0500 + + [PATCH] kobject_add_dir + + Adding kobject_add_dir() function which creates a subdirectory + for a given kobject. + + Signed-off-by: Jun'ichi Nomura + Signed-off-by: Greg Kroah-Hartman + +commit dd308bc355a1aa4f202fe9a3133b6c676cb9606c +Author: Michael Ellerman +Date: Tue Mar 7 21:41:59 2006 +1100 + + [PATCH] debugfs: Add debugfs_create_blob() helper for exporting binary data + + I wanted to export a binary blob via debugfs, and although it was pretty easy + it seems like it'd be easier if there was a helper for it. It's a pity we need + the wrapper struct but I can't see a cleaner way to do it. + + Signed-off-by: Michael Ellerman + Signed-off-by: Greg Kroah-Hartman + +commit c516865cfbac0d862d4888df91793ad1e74ffd58 +Author: Maneesh Soni +Date: Thu Mar 9 19:40:14 2006 +0530 + + [PATCH] sysfs: fix problem with duplicate sysfs directories and files + + The following patch checks for existing sysfs_dirent before + preparing new one while creating sysfs directories and files. + + Signed-off-by: Maneesh Soni + Signed-off-by: Greg Kroah-Hartman + +commit 22f98c0cd7e003b896ee52ded945081307118745 +Author: Adrian Bunk +Date: Sat Mar 4 13:15:31 2006 +0100 + + [PATCH] Kobject: kobject.h: fix a typo + + It shouldn't cause real harm, but it hurts my eyes. + + Signed-off-by: Adrian Bunk + Signed-off-by: Greg Kroah-Hartman + +commit dcd0da002122a70fe1c625c0ca9f58c95aa33ebe +Author: Greg Kroah-Hartman +Date: Mon Mar 20 13:17:13 2006 -0800 + + [PATCH] Kobject: provide better warning messages when people do stupid things + + Now that kobject_add() is used more than kobject_register() the kernel + wasn't always letting people know that they were doing something wrong. + This change fixes this. + + Signed-off-by: Greg Kroah-Hartman + +commit 4f2928d0a439553f0288d9483faf417430629635 +Author: Tilman Schmidt +Date: Fri Feb 24 11:05:45 2006 +0100 + + [PATCH] Driver core: add macros notice(), dev_notice() + + Both usb.h and device.h have collections of convenience macros for + printk() with the KERN_ERR, KERN_WARNING, and KERN_NOTICE severity + levels. This patch adds macros for the KERN_NOTICE level which was + so far uncatered for. + + These macros already exist privately in drivers/isdn/gigaset/gigaset.h + (currently in the process of being submitted for the kernel tree) + but they really belong with their brothers and sisters in + include/linux/{device,usb}.h. + + Signed-off-by: Tilman Schmidt + Signed-off-by: Greg Kroah-Hartman + +commit 30560ba6eda308c13a361d08eb5d4eaab94ab37e +Author: Jeff Moyer +Date: Mon Feb 13 14:52:38 2006 -0800 + + [PATCH] firmware: fix BUG: in fw_realloc_buffer + + The fw_realloc_buffer routine does not handle an increase in buffer size of + more than 4k. It's not clear to me why it expects that it will only get an + extra 4k of data. The attached patch modifies fw_realloc_buffer to vmalloc + as much memory as is requested, instead of what we previously had + 4k. + + I've tested this on my laptop, which would crash occaisionally on boot + without the patch. With the patch, it hasn't crashed, but I can't be + certain that this code path is exercised. + + Signed-off-by: Jeff Moyer + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 58d49283b87751f7af75e021a629dcddb027e8eb +Author: Eric Sesterhenn +Date: Wed Feb 22 11:18:15 2006 +0100 + + [PATCH] sysfs: kzalloc conversion + + this converts fs/sysfs to kzalloc() usage. + compile tested with make allyesconfig + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Greg Kroah-Hartman + +commit 03e88ae1b13dfdc8bbaa59b8198e1ca53aad12ac +Author: Greg Kroah-Hartman +Date: Thu Feb 16 13:50:23 2006 -0800 + + [PATCH] fix module sysfs files reference counting + + The module files, refcnt, version, and srcversion did not properly + increment the owner's module reference count, allowing the modules to + be removed while the files were open, causing oopses. + + This patch fixes this, and also fixes the problem that the version and + srcversion files were not showing up, unless CONFIG_MODULE_UNLOAD was + enabled, which is not correct. + + Cc: Nathan Lynch + Signed-off-by: Greg Kroah-Hartman + +commit b87ba0a33a634c9a8e3609702122a04034a0688d +Author: Greg Kroah-Hartman +Date: Mon Mar 20 13:17:13 2006 -0800 + + [PATCH] add EXPORT_SYMBOL_GPL_FUTURE() to USB subsystem + + The USB core symbols will be converted to GPL-only in a few years. Mark + this as such and update the documentation explaining why, and provide a + pointer for developers to receive help if they need it. + + Signed-off-by: Greg Kroah-Hartman + +commit 01ca70dca5c64cb774a8ac2f50bddff21d60169f +Author: Greg Kroah-Hartman +Date: Mon Mar 20 13:17:13 2006 -0800 + + [PATCH] add EXPORT_SYMBOL_GPL_FUTURE() to RCU subsystem + + As the RCU symbols are going to be changed to GPL in the near future, + lets warn users that this is going to happen. + + Cc: Paul McKenney + Acked-by: Dipankar Sarma + Signed-off-by: Greg Kroah-Hartman + +commit 9f28bb7e1d0188a993403ab39b774785892805e1 +Author: Greg Kroah-Hartman +Date: Mon Mar 20 13:17:13 2006 -0800 + + [PATCH] add EXPORT_SYMBOL_GPL_FUTURE() + + This patch adds the ability to mark symbols that will be changed in the + future, so that kernel modules that don't include MODULE_LICENSE("GPL") + and use the symbols, will be flagged and printed out to the system log. + + Signed-off-by: Greg Kroah-Hartman + +commit 3fd6805f4dfb02bcfb5634972eabad0e790f119a +Author: Sam Ravnborg +Date: Wed Feb 8 21:16:45 2006 +0100 + + [PATCH] Clean up module.c symbol searching logic + + Signed-off-by: Sam Ravnborg + Signed-off-by: Greg Kroah-Hartman + +commit 58383af629efb07e5a0694e445eda0c65b16e1de +Author: Jes Sorensen +Date: Mon Feb 6 14:12:43 2006 -0800 + + [PATCH] kobj_map semaphore to mutex conversion + + Convert the kobj_map code to use a mutex instead of a semaphore. It + converts the single two users as well, genhd.c and char_dev.c. + + Signed-off-by: Jes Sorensen + Signed-off-by: Andrew Morton + Signed-off-by: Greg Kroah-Hartman + +commit 8b5536bbee53620f8d5f367987e5727ba36d886d +Author: Eric Dumazet +Date: Mon Jan 30 06:19:35 2006 +0100 + + [PATCH] kref: avoid an atomic operation in kref_put() + + Avoid an atomic operation in kref_put() when the last reference is + dropped. On most platforms, atomic_read() is a plan read of the counter + and involves no atomic at all. + + Signed-off-by: Eric Dumazet + Signed-off-by: Greg Kroah-Hartman + +commit 489447380a2921ec0e9154f773c44ab3167ede4b +Author: David Vrabel +Date: Thu Jan 19 17:56:29 2006 +0000 + + [PATCH] handle errors returned by platform_get_irq*() + + platform_get_irq*() now returns on -ENXIO when the resource cannot be + found. Ensure all users of platform_get_irq*() handle this error + appropriately. + + Signed-off-by: David Vrabel + Signed-off-by: Greg Kroah-Hartman + +commit 305b3228f9ff4d59f49e6d34a7034d44ee8ce2f0 +Author: David Vrabel +Date: Thu Jan 19 17:52:27 2006 +0000 + + [PATCH] driver core: platform_get_irq*(): return -ENXIO on error + + platform_get_irq*() cannot return 0 on error as 0 is a valid IRQ on some + platforms, return -ENXIO instead. + + Signed-off-by: David Vrabel + Signed-off-by: Greg Kroah-Hartman + +commit 972de6c8bfd8b36618563be454df1e95a36dc379 +Author: Greg Kroah-Hartman +Date: Mon Mar 20 13:17:13 2006 -0800 + + [PATCH] Mark empty release functions as broken + + Come on people, this is just wrong... + + Signed-off-by: Greg Kroah-Hartman + +commit 51107301b629640f9ab76fe23bf385e187b9ac29 +Author: Jun'ichi Nomura +Date: Wed Mar 15 08:28:55 2006 -0500 + + [PATCH] kobject: fix build error if CONFIG_SYSFS=n + + Moving uevent_seqnum and uevent_helper to kobject_uevent.c + because they are used even if CONFIG_SYSFS=n + while kernel/ksysfs.c is built only if CONFIG_SYSFS=y, + + Signed-off-by: Jun'ichi Nomura + Signed-off-by: Greg Kroah-Hartman + +commit 641e6f30a095f3752ed84fd9d279382f5d3ef4c1 +Author: Greg Kroah-Hartman +Date: Thu Mar 16 15:44:26 2006 -0800 + + [PATCH] sysfs: sysfs_remove_dir() needs to invalidate the dentry + + When calling sysfs_remove_dir() don't allow any further sysfs functions + to work for this kobject anymore. This fixes a nasty USB cdc-acm oops + on disconnect. + + Many thanks to Bob Copeland and Paul Fulghum for taking the time to + track this down. + + Cc: Bob Copeland + Cc: Paul Fulghum + Cc: Maneesh Soni + Signed-off-by: Greg Kroah-Hartman + +commit 91bca4b3e2f1aaaf67e62a36914f33ca1e7d5a06 +Author: Russell King +Date: Mon Mar 20 20:08:22 2006 +0000 + + [SERIAL] Merge avlab serial board entries in parport_serial + + As can be seen from this patch, the avlab_*_[68]50 table entries are + identical to the plain avlab_* entries in every respect. Hence, there + is no need to list them separately in the pciserial_board nor + parport_pc_pci card tables - they can re-use the plain avlab_* entries. + + Signed-off-by: Russell King + +commit d358788f3f30113e49882187d794832905e42592 +Author: Russell King +Date: Mon Mar 20 20:00:09 2006 +0000 + + [SERIAL] kernel console should send CRLF not LFCR + + Glen Turner reported that writing LFCR rather than the more + traditional CRLF causes issues with some terminals. + + Since this aflicts many serial drivers, extract the common code + to a library function (uart_console_write) and arrange for each + driver to supply a "putchar" function. + + Signed-off-by: Russell King + +commit 2b422383c3d8dcd203dd9aea70155be6258dbf6c +Author: Håkon Løvdal +Date: Mon Mar 20 20:32:04 2006 +0100 + + README: bzip2 is not new + + From: Håkon Løvdal + + Signed-off-by: Håkon Løvdal + Signed-off-by: Alexey Dobriyan + Signed-off-by: Adrian Bunk + +commit 44fc355db7c224c95752155c54cbe28380f14c19 +Author: Jochen Hein +Date: Mon Mar 20 20:28:13 2006 +0100 + + Documentation/Changes: remove outdated translation references + + The patch removes references to kernel 2.4 and to translations that + are outdated for 2.6 (german translation is at 2.4.20) or hosts that + are not available. + + Signed-off-by: Adrian Bunk + +commit 7b9af3455b9edb3ca8efb251bd9d2d51ecb0066c +Author: Adrian Bunk +Date: Mon Mar 20 20:23:13 2006 +0100 + + remove dead Radeon URL + + This patch removes a dead Radeon URL from two Kconfig files. + + This isue was noted by Reto Gantenbein in + Kernel Bugzilla #4446. + + Signed-off-by: Adrian Bunk + +commit 8075f21fc6dac8fb16372a7d4e28d9f21077cdda +Author: Adrian Bunk +Date: Mon Mar 20 20:21:24 2006 +0100 + + SCSI_AACRAID: add a help text + + Most of the text by Mark Salyzyn . + + Signed-off-by: Adrian Bunk + Acked-by: Mark Salyzyn + +commit f30c52d0c9081019bf76a4dbd905bc7c0d89411c +Author: Adrian Bunk +Date: Mon Mar 20 20:14:06 2006 +0100 + + update the i386 defconfig + + The i386 defconfig wasn't updated for ages. + + Instead of running "make oldconfig" on the old defconfig and trying to + give reasonable answers at all new options, this patch replaces it with + the one I'm using in 2.6.16-rc1. + + This way, it's a .config that is confirmed to work on at least one + computer in the world. ;-) + + Signed-off-by: Adrian Bunk + +commit 98cb9e1d0044b438603f8f933803b56573b49f28 +Author: Adrian Bunk +Date: Mon Mar 20 20:13:16 2006 +0100 + + MAINTAINERS: remove the LANMEDIA entry + + Remove the maintainers entry pointing to a no longer existing domain. + + Signed-off-by: Adrian Bunk + +commit 71e1c784b24a026a490b3de01541fc5ee14ebc09 +Author: Amy Griffis +Date: Mon Mar 6 22:40:05 2006 -0500 + + [PATCH] fix audit_init failure path + + Make audit_init() failure path handle situations where the audit_panic() + action is not AUDIT_FAIL_PANIC (default is AUDIT_FAIL_PRINTK). Other uses + of audit_sock are not reached unless audit's netlink message handler is + properly registered. Bug noticed by Peter Staubach. + + Signed-off-by: Amy Griffis + Signed-off-by: Al Viro + +commit bf45da97a45f634422559ec61429dddf4d2fffb9 +Author: lorenzo@gnu.org +Date: Thu Mar 9 00:33:47 2006 +0100 + + [PATCH] EXPORT_SYMBOL patch for audit_log, audit_log_start, audit_log_end and audit_format + + Hi, + + This is a trivial patch that enables the possibility of using some auditing + functions within loadable kernel modules (ie. inside a Linux Security Module). + + _ + + Make the audit_log_start, audit_log_end, audit_format and audit_log + interfaces available to Loadable Kernel Modules, thus making possible + the usage of the audit framework inside LSMs, etc. + + Signed-off-by: > + Signed-off-by: Al Viro + +commit 5a0bbce58bb25bd756f7ec437319d6ed2201a18b +Author: Ingo Molnar +Date: Tue Mar 7 23:51:38 2006 -0800 + + [PATCH] sem2mutex: audit_netlink_sem + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Al Viro + +commit 4023e020807ea249ae83f0d1d851b4c7cf0afd8a +Author: Ingo Molnar +Date: Tue Mar 7 23:51:39 2006 -0800 + + [PATCH] simplify audit_free() locking + + Simplify audit_free()'s locking: no need to lock a task that we are tearing + down. [the extra locking also caused false positives in the lock + validator] + + Signed-off-by: Ingo Molnar + Cc: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Al Viro + +commit d9d9ec6e2c45b22282cd36cf92fcb23d504350a8 +Author: Dustin Kirkland +Date: Thu Feb 16 13:40:01 2006 -0600 + + [PATCH] Fix audit operators + + Darrel Goeddel initiated a discussion on IRC regarding the possibility + of audit_comparator() returning -EINVAL signaling an invalid operator. + + It is possible when creating the rule to assure that the operator is one + of the 6 sane values. Here's a snip from include/linux/audit.h Note + that 0 (nonsense) and 7 (all operators) are not valid values for an + operator. + + ... + + /* These are the supported operators. + * 4 2 1 + * = > < + * ------- + * 0 0 0 0 nonsense + * 0 0 1 1 < + * 0 1 0 2 > + * 0 1 1 3 != + * 1 0 0 4 = + * 1 0 1 5 <= + * 1 1 0 6 >= + * 1 1 1 7 all operators + */ + ... + + Furthermore, prior to adding these extended operators, flagging the + AUDIT_NEGATE bit implied !=, and otherwise == was assumed. + + The following code forces the operator to be != if the AUDIT_NEGATE bit + was flipped on. And if no operator was specified, == is assumed. The + only invalid condition is if the AUDIT_NEGATE bit is off and all of the + AUDIT_EQUAL, AUDIT_LESS_THAN, and AUDIT_GREATER_THAN bits are + on--clearly a nonsensical operator. + + Now that this is handled at rule insertion time, the default -EINVAL + return of audit_comparator() is eliminated such that the function can + only return 1 or 0. + + If this is acceptable, let's get this applied to the current tree. + + :-Dustin + + -- + + Signed-off-by: Al Viro + (cherry picked from 9bf0a8e137040f87d1b563336d4194e38fb2ba1a commit) + +commit 5bdb98868062c1b14025883049551af343233187 +Author: Steve Grubb +Date: Sat Dec 3 08:39:35 2005 -0500 + + [PATCH] promiscuous mode + + Hi, + + When a network interface goes into promiscuous mode, its an important security + issue. The attached patch is intended to capture that action and send an + event to the audit system. + + The patch carves out a new block of numbers for kernel detected anomalies. + These are events that may indicate suspicious activity. Other examples of + potential kernel anomalies would be: exceeding disk quota, rlimit violations, + changes to syscall entry table. + + Signed-off-by: Steve Grubb + Signed-off-by: Al Viro + +commit a6c043a887a9db32a545539426ddfc8cc2c28f8f +Author: Steve Grubb +Date: Sun Jan 1 14:07:00 2006 -0500 + + [PATCH] Add tty to syscall audit records + + Hi, + + >From the RBAC specs: + + FAU_SAR.1.1 The TSF shall provide the set of authorized + RBAC administrators with the capability to read the following + audit information from the audit records: + + + (e) The User Session Identifier or Terminal Type + + A patch adding the tty for all syscalls is included in this email. + Please apply. + + Signed-off-by: Steve Grubb + Signed-off-by: Al Viro + +commit 5d3301088f7e412992d9e61cc3604cbdff3090ff +Author: Steve Grubb +Date: Mon Jan 9 09:48:17 2006 -0500 + + [PATCH] add/remove rule update + + Hi, + + The following patch adds a little more information to the add/remove rule message emitted + by the kernel. + + Signed-off-by: Steve Grubb + Signed-off-by: Al Viro + +commit 93315ed6dd12dacfc941f9eb8ca0293aadf99793 +Author: Amy Griffis +Date: Tue Feb 7 12:05:27 2006 -0500 + + [PATCH] audit string fields interface + consumer + + Updated patch to dynamically allocate audit rule fields in kernel's + internal representation. Added unlikely() calls for testing memory + allocation result. + + Amy Griffis wrote: [Wed Jan 11 2006, 02:02:31PM EST] + > Modify audit's kernel-userspace interface to allow the specification + > of string fields in audit rules. + > + > Signed-off-by: Amy Griffis + + Signed-off-by: Al Viro + (cherry picked from 5ffc4a863f92351b720fe3e9c5cd647accff9e03 commit) + +commit af601e4623d0303bfafa54ec728b7ae8493a8e1b +Author: Steve Grubb +Date: Wed Jan 4 14:08:39 2006 +0000 + + [PATCH] SE Linux audit events + + Attached is a patch that hardwires important SE Linux events to the audit + system. Please Apply. + + Signed-off-by: Steve Grubb + Acked-by: Stephen Smalley + Signed-off-by: David Woodhouse + +commit d884596f44ef5a0bcd8a66405dc04902aeaa6fc7 +Author: David Woodhouse +Date: Fri Dec 16 10:48:28 2005 +0000 + + [PATCH] Minor cosmetic cleanups to the code moved into auditfilter.c + + Signed-off-by: David Woodhouse + +commit fe7752bab26a9ac0651b695ad4f55659761f68f7 +Author: David Woodhouse +Date: Thu Dec 15 18:33:52 2005 +0000 + + [PATCH] Fix audit record filtering with !CONFIG_AUDITSYSCALL + + This fixes the per-user and per-message-type filtering when syscall + auditing isn't enabled. + + [AV: folded followup fix from the same author] + + Signed-off-by: David Woodhouse + Signed-off-by: Al Viro + +commit ee436dc46a762f430e37952d375a23d87735f73f +Author: David Woodhouse +Date: Fri Nov 18 14:43:54 2005 +0000 + + [PATCH] Fix IA64 success/failure indication in syscall auditing. + + Original 2.6.9 patch and explanation from somewhere within HP via + bugzilla... + + ia64 stores a success/failure code in r10, and the return value (normal + return, or *positive* errno) in r8. The patch also sets the exit code to + negative errno if it's a failure result for consistency with other + architectures. + + Signed-off-by: David Woodhouse + +commit 7306a0b9b3e2056a616c84841288ca2431a05627 +Author: Dustin Kirkland +Date: Wed Nov 16 15:53:13 2005 +0000 + + [PATCH] Miscellaneous bug and warning fixes + + This patch fixes a couple of bugs revealed in new features recently + added to -mm1: + * fixes warnings due to inconsistent use of const struct inode *inode + * fixes bug that prevent a kernel from booting with audit on, and SELinux off + due to a missing function in security/dummy.c + * fixes a bug that throws spurious audit_panic() messages due to a missing + return just before an error_path label + * some reasonable house cleaning in audit_ipc_context(), + audit_inode_context(), and audit_log_task_context() + + Signed-off-by: Dustin Kirkland + Signed-off-by: David Woodhouse + +commit 8c8570fb8feef2bc166bee75a85748b25cda22d9 +Author: Dustin Kirkland +Date: Thu Nov 3 17:15:16 2005 +0000 + + [PATCH] Capture selinux subject/object context information. + + This patch extends existing audit records with subject/object context + information. Audit records associated with filesystem inodes, ipc, and + tasks now contain SELinux label information in the field "subj" if the + item is performing the action, or in "obj" if the item is the receiver + of an action. + + These labels are collected via hooks in SELinux and appended to the + appropriate record in the audit code. + + This additional information is required for Common Criteria Labeled + Security Protection Profile (LSPP). + + [AV: fixed kmalloc flags use] + [folded leak fixes] + [folded cleanup from akpm (kfree(NULL)] + [folded audit_inode_context() leak fix] + [folded akpm's fix for audit_ipc_perm() definition in case of !CONFIG_AUDIT] + + Signed-off-by: Dustin Kirkland + Signed-off-by: David Woodhouse + Signed-off-by: Andrew Morton + Signed-off-by: Al Viro + +commit c8edc80c8b8c397c53f4f659a05b9ea6208029bf +Author: Dustin Kirkland +Date: Thu Nov 3 16:12:36 2005 +0000 + + [PATCH] Exclude messages by message type + + - Add a new, 5th filter called "exclude". + - And add a new field AUDIT_MSGTYPE. + - Define a new function audit_filter_exclude() that takes a message type + as input and examines all rules in the filter. It returns '1' if the + message is to be excluded, and '0' otherwise. + - Call the audit_filter_exclude() function near the top of + audit_log_start() just after asserting audit_initialized. If the + message type is not to be audited, return NULL very early, before + doing a lot of work. + [combined with followup fix for bug in original patch, Nov 4, same author] + [combined with later renaming AUDIT_FILTER_EXCLUDE->AUDIT_FILTER_TYPE + and audit_filter_exclude() -> audit_filter_type()] + + Signed-off-by: Dustin Kirkland + Signed-off-by: David Woodhouse + Signed-off-by: Al Viro + +commit 73241ccca0f7786933f1d31b3d86f2456549953a +Author: Amy Griffis +Date: Thu Nov 3 16:00:25 2005 +0000 + + [PATCH] Collect more inode information during syscall processing. + + This patch augments the collection of inode info during syscall + processing. It represents part of the functionality that was provided + by the auditfs patch included in RHEL4. + + Specifically, it: + + - Collects information for target inodes created or removed during + syscalls. Previous code only collects information for the target + inode's parent. + + - Adds the audit_inode() hook to syscalls that operate on a file + descriptor (e.g. fchown), enabling audit to do inode filtering for + these calls. + + - Modifies filtering code to check audit context for either an inode # + or a parent inode # matching a given rule. + + - Modifies logging to provide inode # for both parent and child. + + - Protect debug info from NULL audit_names.name. + + [AV: folded a later typo fix from the same author] + + Signed-off-by: Amy Griffis + Signed-off-by: David Woodhouse + Signed-off-by: Al Viro + +commit f38aa94224c5517a40ba56d453779f70d3229803 +Author: Amy Griffis +Date: Thu Nov 3 15:57:06 2005 +0000 + + [PATCH] Pass dentry, not just name, in fsnotify creation hooks. + + The audit hooks (to be added shortly) will want to see dentry->d_inode + too, not just the name. + + Signed-off-by: Amy Griffis + Signed-off-by: David Woodhouse + +commit 90d526c074ae5db484388da56c399acf892b6c17 +Author: Steve Grubb +Date: Thu Nov 3 15:48:08 2005 +0000 + + [PATCH] Define new range of userspace messages. + + The attached patch updates various items for the new user space + messages. Please apply. + + Signed-off-by: Steve Grubb + Signed-off-by: David Woodhouse + +commit b63862f46547487388e582e8ac9083830d34f058 +Author: Dustin Kirkland +Date: Thu Nov 3 15:41:46 2005 +0000 + + [PATCH] Filter rule comparators + + Currently, audit only supports the "=" and "!=" operators in the -F + filter rules. + + This patch reworks the support for "=" and "!=", and adds support + for ">", ">=", "<", and "<=". + + This turned out to be a pretty clean, and simply process. I ended up + using the high order bits of the "field", as suggested by Steve and Amy. + This allowed for no changes whatsoever to the netlink communications. + See the documentation within the patch in the include/linux/audit.h + area, where there is a table that explains the reasoning of the bitmask + assignments clearly. + + The patch adds a new function, audit_comparator(left, op, right). + This function will perform the specified comparison (op, which defaults + to "==" for backward compatibility) between two values (left and right). + If the negate bit is on, it will negate whatever that result was. This + value is returned. + + Signed-off-by: Dustin Kirkland + Signed-off-by: David Woodhouse + +commit b0dd25a8263dde3c30b0d7d72a8bd92d7ba0e3f5 +Author: Randy Dunlap +Date: Tue Sep 13 12:47:11 2005 -0700 + + [PATCH] AUDIT: kerneldoc for kernel/audit*.c + + - add kerneldoc for non-static functions; + - don't init static data to 0; + - limit lines to < 80 columns; + - fix long-format style; + - delete whitespace at end of some lines; + + (chrisw: resend and update to current audit-2.6 tree) + + Signed-off-by: Randy Dunlap + Signed-off-by: Chris Wright + Signed-off-by: David Woodhouse + +commit 7e7f8a036b8e2b2a300df016da5e7128c8a9192e +Author: Jason Baron +Date: Tue Jan 31 16:56:28 2006 -0500 + + [PATCH] make vm86 call audit_syscall_exit + + hi, + + The motivation behind the patch below was to address messages in + /var/log/messages such as: + + Jan 31 10:54:15 mets kernel: audit(:0): major=252 name_count=0: freeing + multiple contexts (1) + Jan 31 10:54:15 mets kernel: audit(:0): major=113 name_count=0: freeing + multiple contexts (2) + + I can reproduce by running 'get-edid' from: + http://john.fremlin.de/programs/linux/read-edid/. + + These messages come about in the log b/c the vm86 calls do not exit via + the normal system call exit paths and thus do not call + 'audit_syscall_exit'. The next system call will then free the context for + itself and for the vm86 context, thus generating the above messages. This + patch addresses the issue by simply adding a call to 'audit_syscall_exit' + from the vm86 code. + + Besides fixing the above error messages the patch also now allows vm86 + system calls to become auditable. This is useful since strace does not + appear to properly record the return values from sys_vm86. + + I think this patch is also a step in the right direction in terms of + cleaning up some core auditing code. If we can correct any other paths + that do not properly call the audit exit and entries points, then we can + also eliminate the notion of context chaining. + + I've tested this patch by verifying that the log messages no longer + appear, and that the audit records for sys_vm86 appear to be correct. + Also, 'read_edid' produces itentical output. + + thanks, + + -Jason + + Signed-off-by: Jason Baron + Signed-off-by: Al Viro + +commit 43ac3f2961b8616da26114ec6dc76ac2a61f76ad +Author: Trond Myklebust +Date: Mon Mar 20 13:44:51 2006 -0500 + + SUNRPC: Fix memory barriers for req->rq_received + + We need to ensure that all writes to the XDR buffers are done before + req->rq_received is visible to other processors. + + Signed-off-by: Trond Myklebust + +commit c42de9dd67250fe984e0e31c9b542d721af6454b +Author: Trond Myklebust +Date: Mon Mar 20 13:44:51 2006 -0500 + + NFS: Fix a race in nfs_sync_inode() + + Kudos to Neil Brown for spotting the problem: + + "in nfs_sync_inode, there is effectively the sequence: + + nfs_wait_on_requests + nfs_flush_inode + nfs_commit_inode + + This seems a bit racy to me as if the only requests are on the + ->commit list, and nfs_commit_inode is called separately after + nfs_wait_on_requests completes, and before nfs_commit_inode start + (say: by nfs_write_inode) then none of these function will return + >0, yet there will be some pending request that aren't waited for." + + The solution is to search for requests to wait upon, search for dirty + requests, and search for uncommitted requests while holding the + nfsi->req_lock + + The patch also cleans up nfs_sync_inode(), getting rid of the redundant + FLUSH_WAIT flag. It turns out that we were always setting it. + + Signed-off-by: Trond Myklebust + +commit 7d46a49f512e8d10b23353781a8ba85edd4fa640 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:50 2006 -0500 + + NFS: Clean up nfs_flush_list() + + Signed-off-by: Trond Myklebust + +commit deb7d638262019cbac5d15ab74ffd1c29242c7cb +Author: Trond Myklebust +Date: Mon Mar 20 13:44:50 2006 -0500 + + NFS: Fix a race with PG_private and nfs_release_page() + + We don't need to set PG_private for readahead pages, since they never get + unlocked while I/O is in progress. However there is a small race in + nfs_readpage_release() whereby the page may be unlocked, and have + PG_private set. + + Fix is to have PG_private set only for the case of writes... + + Also fix a bug in nfs_clear_page_writeback(): Don't attempt to clear the + radix_tree tag if we've already deleted the radix tree entry. + + Signed-off-by: Trond Myklebust + +commit 1dd761e9070aa2e543df3db41bd75ed4b8f2fab9 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:49 2006 -0500 + + NFSv4: Ensure the callback daemon flushes signals + + If the callback daemon is signalled, but is unable to exit because it still + has users, then we need to flush signals. If not, then svc_recv() can + never sleep, and so we hang. + If we flush signals, then we also have to be prepared to resend them when + we want the thread to exit. + + Signed-off-by: Trond Myklebust + +commit 5428154827c2bf7cfdc9dab60db1e0eaa57c027a +Author: Trond Myklebust +Date: Mon Mar 20 13:44:49 2006 -0500 + + SUNRPC: Fix a 'Busy inodes' error in rpc_pipefs + + Signed-off-by: Trond Myklebust + +commit a9a801787a761616589a6526d7a29c13f4deb3d8 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:48 2006 -0500 + + NFS, NLM: Allow blocking locks to respect signals + + Signed-off-by: Trond Myklebust + +commit 03f28e3a2059fc466761d872122f30acb7be61ae +Author: Trond Myklebust +Date: Mon Mar 20 13:44:48 2006 -0500 + + NFS: Make nfs_fhget() return appropriate error values + + Currently it returns NULL, which usually gets interpreted as ENOMEM. In + fact it can mean a host of issues. + + Signed-off-by: Trond Myklebust + +commit 01d0ae8beaee75d954900109619b700fe68707d9 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:48 2006 -0500 + + NFSv4: Fix an oops in nfs4_fill_super + + The mount statistics patches introduced a call to nfs_free_iostats that is + not only redundant, but actually causes an oops. + + Also fix a memory leak due to the lack of a call to nfs_free_iostats on + unmount. + + Signed-off-by: Trond Myklebust + +commit d9f6eb75d4900782a095b98470decfe98971f920 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:47 2006 -0500 + + lockd: blocks should hold a reference to the nlm_file + + Signed-off-by: Trond Myklebust + +commit 51581f3bf922512880f52a7777923fd6dcfc792b +Author: Trond Myklebust +Date: Mon Mar 20 13:44:47 2006 -0500 + + NFSv4: SETCLIENTID_CONFIRM should handle NFS4ERR_DELAY/NFS4ERR_RESOURCE + + Signed-off-by: Trond Myklebust + +commit 3e4f6290ca4df7464ee066123f2bca4298c2dab4 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:46 2006 -0500 + + NFSv4: Send the delegation stateid for SETATTR calls + + In the case where we hold a delegation stateid, use that in for inside + SETATTR calls. + + Signed-off-by: Trond Myklebust + +commit f25bc34967d76610d17bc70769d7c220976eeeb1 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:46 2006 -0500 + + NFSv4: Ensure nfs_callback_down() calls svc_destroy() + + Signed-off-by: Trond Myklebust + +commit 6041b79192bdf0e7ab18ea6859effa5d8311391b +Author: Trond Myklebust +Date: Mon Mar 20 13:44:45 2006 -0500 + + lockd: Fix a typo in nlmsvc_grant_release() + + Signed-off-by: Trond Myklebust + +commit d47166244860eb5dfdb12ee4703968beef8a0db2 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:45 2006 -0500 + + lockd: Add helper for *_RES callbacks + + Signed-off-by: Trond Myklebust + +commit 92737230dd3f1478033819d4bc20339f8da852da +Author: Trond Myklebust +Date: Mon Mar 20 13:44:45 2006 -0500 + + NLM: Add nlmclnt_release_call + + Add a helper function to simplify the freeing of NLM client requests. + + Signed-off-by: Trond Myklebust + +commit e4cd038a45a46ffbe06a1a72f3f15246e5b041ca +Author: Trond Myklebust +Date: Mon Mar 20 13:44:44 2006 -0500 + + NLM: Fix nlmclnt_test to not copy private part of locks + + The struct file_lock does not carry a properly initialised lock, + so don't copy it as if it were. + + Signed-off-by: Trond Myklebust + +commit 3a649b884637c4fdff50a6beebc3dc0e6082e048 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:44 2006 -0500 + + NLM: Simplify client locks + + Signed-off-by: Trond Myklebust + +commit d72b7a6b26b9009b7a05117fe2e04b3a73ae4a5c +Author: Trond Myklebust +Date: Mon Mar 20 13:44:43 2006 -0500 + + NFS: O_DIRECT needs to use a completion + + Now that we have aio writes, it is possible for dreq->outstanding to be + zero, but for the I/O not to have completed. Convert struct nfs_direct_req + to use a completion to signal when the I/O is done. + + Signed-off-by: Trond Myklebust + +commit 6b45d858ed6821dd687efd3b68929de2e4954fec +Author: Trond Myklebust +Date: Mon Mar 20 13:44:43 2006 -0500 + + NFS: Clean up nfs_get_user_pages + + Signed-off-by: Trond Myklebust + +commit 606bbba06b11ebcbdf3a4fcd8cce4507c5bd7a4b +Author: Chuck Lever +Date: Mon Mar 20 13:44:42 2006 -0500 + + NFS: fix compiler warnings on 64-bit platforms + + Introduced by NFS aio+dio patches. + + Test plan: + Compile kernel with CONFIG_NFS enabled on 64-bit hardware. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 5eb53f41d11c04aa4ddb9f168b6bbb27b9790348 +Author: Chuck Lever +Date: Mon Mar 20 13:44:42 2006 -0500 + + SUNRPC: fix compile warnings on 64-bit platforms + + Introduced by NFS metrics patch. + + Test plan: + Compile kernel with CONFIG_NFS enabled on a 64-bit platform. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 35576cba57f1c042b87d6586b3229d13067264c6 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:41 2006 -0500 + + NLM: nlmclnt_cancel_callback should accept NLM_LCK_DENIED errors + + NLM_LCK_DENIED is a valid error return for an NLM_CANCEL call by the + client. + + Signed-off-by: Trond Myklebust + +commit 4c060b531006e0711db32a132d6ac7661594b280 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:41 2006 -0500 + + lockd: Fix Oopses due to list manipulation errors. + + The patch "stop abusing file_lock_list introduces a couple of bugs since + the locks may be copied and need to be removed from the lists when they are + destroyed. + + Signed-off-by: Trond Myklebust + +commit 26bcbf965f857c710adafd16cf424f043006b5dd +Author: Christoph Hellwig +Date: Mon Mar 20 13:44:40 2006 -0500 + + lockd: stop abusing file_lock_list + + Currently lockd directly access the file_lock_list from fs/locks.c. + It does so to mark locks granted or reclaimable. This is very + suboptimal, because a) lockd needs to poke into locks.c internals, and + b) it needs to iterate over all locks in the system for marking locks + granted or reclaimable. + + This patch adds lists for granted and reclaimable locks to the nlm_host + structure instead, and adds locks to those. + + nlmclnt_lock: + now adds the lock to h_granted instead of setting the + NFS_LCK_GRANTED, still O(1) + + nlmclnt_mark_reclaim: + goes away completely, replaced by a list_splice_init. + Complexity reduced from O(locks in the system) to O(1) + + reclaimer: + iterates over h_reclaim now, complexity reduced from + O(locks in the system) to O(locks per nlm_host) + + Signed-off-by: Christoph Hellwig + Signed-off-by: Trond Myklebust + +commit 04266473ecf5cdca242201d9f1ed890afe070fb6 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:40 2006 -0500 + + lockd: Make lockd use rpc_new_client() instead of rpc_create_client + + When doing NLM_GRANTED requests, lockd may end up blocking if we use + rpc_create_client() due to the synchronous call to rpc_ping(). Instead, use + rpc_new_client(). + + Signed-off-by: Trond Myklebust + +commit 686517f1ad1630c11964d668b556aab79b8c942e +Author: Trond Myklebust +Date: Mon Mar 20 13:44:39 2006 -0500 + + lockd: Make nlmsvc_create_block() use nlmsvc_lookup_host() + + Currently it uses nlmclnt_lookup_host(), which puts the resulting host + structure on a different list. + + Signed-off-by: Trond Myklebust + +commit 5e1abf8cb713a0b94f5a400c7b9b797990cd9dec +Author: Trond Myklebust +Date: Mon Mar 20 13:44:39 2006 -0500 + + lockd: Clean up of the server-side GRANTED code + + Signed-off-by: Trond Myklebust + +commit 6849c0cab69f5d1a0fc7b05fa5bfb3dec53f86df +Author: Trond Myklebust +Date: Mon Mar 20 13:44:39 2006 -0500 + + lockd: Add refcounting to struct nlm_block + + Otherwise, the block may disappear from underneath us when in + nlmsvc_retry_blocked. + + Signed-off-by: Trond Myklebust + +commit 09c7938c5640a6f22bef074ca6b803dccfdb93e3 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:38 2006 -0500 + + lockd: Fix server-side lock blocking code + + Signed-off-by: Trond Myklebust + +commit 0996905f9301c2ff4c021982c42a15b35e74bf1c +Author: Trond Myklebust +Date: Mon Mar 20 13:44:38 2006 -0500 + + lockd: posix_test_lock() should not call locks_copy_lock() + + The caller of posix_test_lock() should never need to look at the lock + private data, so do not copy that information. This also means that there + is no need to call the fl_release_private methods. + + Signed-off-by: Trond Myklebust + +commit 3feb2d49394b7874348a6e43c076b780c1d222c5 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:37 2006 -0500 + + NFS: Uninline nfs_writedata_(alloc|free) and nfs_readdata_(alloc|free) + + Signed-off-by: Trond Myklebust + +commit 5db3a7b2cabe8f0957683f798c4f8fa8605f9ebb +Author: Trond Myklebust +Date: Mon Mar 20 13:44:37 2006 -0500 + + NFS: Debugging code for nfs_direct_(read|write)_schedule() + + Make sure that we're doing our list accounting correctly. + + Signed-off-by: Trond Myklebust + +commit a8881f5a5c723f82da84b786d3ca83a0df9e0c33 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:36 2006 -0500 + + NFS: O_DIRECT async IO may lose context + + The struct nfs_direct_req currently keeps a pointer to the file descriptor + without referencing it. This may cause problems if the parent process is + killed. + + The nfs_open_context should normally have all the information that we're + currently using the filp for, and unlike fput(), is safe to release from + an rpciod process context. + + Signed-off-by: Trond Myklebust + +commit fad61490419b3e494f300e9b2579810ef3bcda31 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:36 2006 -0500 + + nfs: Use UNSTABLE + COMMIT for NFS O_DIRECT writes + + Currently NFS O_DIRECT writes use FILE_SYNC so that a COMMIT is not + necessary. This simplifies the internal logic, but this could be a + difficult workload for some servers. + + Instead, let's send UNSTABLE writes, and after they all complete, send a + COMMIT for the dirty range. After the COMMIT returns successfully, then do + the wake_up or fire off aio_complete(). + + Test plan: + Async direct I/O tests against Solaris (or any server that requires + committed unstable writes). Reboot server during test. + + Based on an earlier patch by Chuck Lever + + Signed-off-by: Trond Myklebust + +commit e17b1fc4b35399935f00a635206e183d9292fe4f +Author: Trond Myklebust +Date: Mon Mar 20 13:44:35 2006 -0500 + + NFS: Make nfs_commit_alloc() extern + + We need to use nfs_commit_alloc() in fs/nfs/direct.c. + + Signed-off-by: Trond Myklebust + +commit a37ec012d7fd352648c8455d3396ea24001efcd3 +Author: Chuck Lever +Date: Mon Mar 20 13:44:35 2006 -0500 + + NFS: fix data_update accounting in NFS direct I/O path + + ^C against "iozone -I" is hitting the assertion in nfs_clear_inode(). + + Test plan: + "iozone -i0 -I -a -c" against a slow server, then control C. This should + not cause an oops. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 15ce4a0c1ce0d5e288398cb9e5493fd4e55e2025 +Author: Chuck Lever +Date: Mon Mar 20 13:44:34 2006 -0500 + + NFS: Replace atomic_t variables in nfs_direct_req with a single spin lock + + Three atomic_t variables cause a lot of bus locking. Because they are all + used in the same places in the code, just use a single spin lock. + + Now that the atomic_t variables are gone, we can remove the request size + limitation since the code no longer depends on the limited width of atomic_t + on some platforms. + + Test plan: + Compile with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. Millions of fsx + operations, iozone, OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 88467055f7654302c12df74e5fe4d12516656a39 +Author: Chuck Lever +Date: Mon Mar 20 13:44:34 2006 -0500 + + NFS: clean up comments and tab damage in direct.c + + Clean up tab damage and comments. Replace "file_offset" with more commonly + used "pos". + + Test plan: + Compile with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 9eafa8cc521b489f205bf7b0634c99e34e046606 +Author: Chuck Lever +Date: Mon Mar 20 13:44:33 2006 -0500 + + NFS: support EIOCBQUEUED return in direct write path + + For async iocb's, the NFS direct write path now returns EIOCBQUEUED, + and calls aio_complete when all the requested writes are finished. The + synchronous part of the NFS direct write path behaves exactly as it + was before. + + Shared mapped NFS files will have some coherency difficulties when + accessed concurrently with aio+dio. Will need to explore how this + is handled in the local file system case. + + Test plan: + aio-stress with "-O". OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit c89f2ee5f9223b864725f7344f24a037dfa76568 +Author: Chuck Lever +Date: Mon Mar 20 13:44:33 2006 -0500 + + NFS: make iocb available everywhere in direct write path + + Pass the iocb argument all the way down to the direct write request + scheduler, and make it available in nfs_direct_write_result. + + Test plan: + Compile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + Millions of fsx-odirect ops. OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 47989d7454398827500d0e73766270986a3b488f +Author: Chuck Lever +Date: Mon Mar 20 13:44:32 2006 -0500 + + NFS: remove support for multi-segment iovs in the direct write path + + Eliminate the persistent use of automatic storage in all parts of the + NFS client's direct write path to pave the way for introducing support + for aio against files opened with the O_DIRECT flag. + + Test plan: + Compile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + Millions of fsx-odirect ops. OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 462d5b3296b56289efec426499a83faad4c08d9e +Author: Chuck Lever +Date: Mon Mar 20 13:44:32 2006 -0500 + + NFS: make direct write path generate write requests concurrently + + Duplicate infrastructure from direct read path that will allow write + path to generate multiple write requests concurrently. This will + enable us to add support for aio in this path. + + Temporarily we will lose the ability to do UNSTABLE writes followed by + a COMMIT in the direct write path. However, all applications I am + aware of that use NFS O_DIRECT currently write in relatively small + chunks, so this should not be inconvenient in any way. + + Test plan: + Millions of fsx-odirect ops. OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 63ab46abc70b01cb0711301f5ddb08c1c0bb9b1c +Author: Chuck Lever +Date: Mon Mar 20 13:44:31 2006 -0500 + + NFS: create common routine for handling direct I/O completion + + Factor out the common piece of completing an NFS direct I/O request. + + Test plan: + Compile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 93619e5989173614bef0013b0bb8a3fe3dbd5a95 +Author: Chuck Lever +Date: Mon Mar 20 13:44:31 2006 -0500 + + NFS: create common routine for allocating nfs_direct_req + + Factor out a small common piece of the path that allocate nfs_direct_req + structures. + + Test plan: + Compile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit bc0fb201b34b12e2d16e8cbd5bb078c1db936304 +Author: Chuck Lever +Date: Mon Mar 20 13:44:31 2006 -0500 + + NFS: create common routine for waiting for direct I/O to complete + + We're about to add asynchrony to the NFS direct write path. Begin by + abstracting out the common pieces in the read path. + + The first piece is nfs_direct_read_wait, which works the same whether the + process is waiting for a read or a write. + + Test plan: + Compile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 487b83723ed4d4eaafd5109f36560da4f15c6578 +Author: Chuck Lever +Date: Mon Mar 20 13:44:30 2006 -0500 + + NFS: support EIOCBQUEUED return in direct read path + + For async iocb's, the NFS direct read path should return EIOCBQUEUED and + call aio_complete when all the requested reads are finished. The + synchronous part of the NFS direct read path behaves exactly as it was + before. + + Test plan: + aio-stress with "-O". OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 99514f8fdda2beef1ca922b7f9d89c1a2c57fec0 +Author: Chuck Lever +Date: Mon Mar 20 13:44:30 2006 -0500 + + NFS: make iocb available everywhere in direct read path + + Pass the iocb argument all the way down to the direct read request + scheduler, and make it available in nfs_direct_read_result. + + Test plan: + Compile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + Millions of fsx-odirect ops. OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 0cdd80d07fb0f558dfdb30f6e0b9905f5e5475f1 +Author: Chuck Lever +Date: Mon Mar 20 13:44:29 2006 -0500 + + NFS: remove support for multi-segment iovs in the direct read path + + Eliminate the persistent use of automatic storage in all parts of the NFS + client's direct read path to pave the way for introducing support for aio + against files opened with the O_DIRECT flag. + + Test plan: + Compile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. + Millions of fsx-odirect ops. OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 5dd602f20688e08c85ac91e0451c4e6321ed25d7 +Author: Chuck Lever +Date: Mon Mar 20 13:44:29 2006 -0500 + + NFS: use size_t type for holding rsize bytes in NFS O_DIRECT read path + + size_t is used for holding byte counts, so use it for variables storing rsize. + Note that the write path will be updated as we add support for async + O_DIRECT writes. + + Test plan: + Need to verify that existing comparisons against new size_t variables behave + correctly. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit d4cc948ba97980c55a308eab167a695109796456 +Author: Chuck Lever +Date: Mon Mar 20 13:44:28 2006 -0500 + + NFS: update comments and function definitions in fs/nfs/direct.c + + Update to latest coding style standards. Remove block comments on + statically defined functions, and place function definitions all on + one line. + + Test plan: + Compile kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit b8a32e2b8b7fefff994c89d398b6ac920a195b43 +Author: Chuck Lever +Date: Mon Mar 20 13:44:28 2006 -0500 + + NFS: clean up NFS client's a_ops->direct_IO method + + The NFS client's a_ops->direct_IO method, nfs_direct_IO, is required to + be present to allow NFS files to be opened with O_DIRECT, but is never + called because the NFS client shunts reads and writes to files opened + with O_DIRECT directly to its own routines. + + Gut the nfs_direct_IO function. This eliminates the only part of the + NFS client's direct I/O path that requires support for multi-segment + iovs, allowing further simplification in subsequent patches. + + Test plan: + Compile the kernel with CONFIG_NFS and CONFIG_NFS_DIRECTIO enabled. Millions + of fsx-odirect ops. OraSim. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit ec06c096edec0755534c7126f4caded69de131c2 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:27 2006 -0500 + + NFS: Cleanup of NFS read code + + Same callback hierarchy inversion as for the NFS write calls. This patch is + not strictly speaking needed by the O_DIRECT code, but avoids confusing + differences between the asynchronous read and write code. + + Signed-off-by: Trond Myklebust + +commit 788e7a89a03e364855583c0ab4649b94925efbb9 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:27 2006 -0500 + + NFS: Cleanup of NFS write code in preparation for asynchronous o_direct + + This patch inverts the callback hierarchy for NFS write calls. + + Instead of having the NFSv2/v3/v4-specific code set up the RPC callback + ops, we allow the original caller to do so. This allows for more + flexibility w.r.t. how to set up and tear down the nfs_write_data + structure while still allowing the NFSv3/v4 code to perform error + handling. + + The greater flexibility is needed by the asynchronous O_DIRECT code, which + wants to be able to hold on to the original nfs_write_data structures after + the WRITE RPC call has completed in order to be able to replay them if the + COMMIT call determines that the server has rebooted. + + Signed-off-by: Trond Myklebust + +commit 7117bf3dfb10b534a017260d9fc643bc1d0afd2a +Author: J. Bruce Fields +Date: Mon Mar 20 13:44:26 2006 -0500 + + lockd: Remove FL_LOCKD flag + + Currently lockd identifies its own locks using the FL_LOCKD flag. This + doesn't scale well to multiple lock managers--if we did this in nfsv4 too, + for example, we'd be left with only one free flag bit. + + Instead, we just check whether the file manager ops (fl_lmops) set on this + lock are our own. + + The only use for this is in nlm_traverse_locks, which uses it to find locks + that need cleaning up when freeing a host or a file. + + In the long run it might be nice to do reference counting instead of + traversing all the locks like this.... + + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 8dc7c3115b611c00006eac3ee5b108296432aab7 +Author: Andy Adamson +Date: Mon Mar 20 13:44:26 2006 -0500 + + locks,lockd: fix race in nlmsvc_testlock + + posix_test_lock() returns a pointer to a struct file_lock which is unprotected + and can be removed while in use by the caller. Move the conflicting lock from + the return to a parameter, and copy the conflicting lock. + + In most cases the caller ends up putting the copy of the conflicting lock on + the stack. On i386, sizeof(struct file_lock) appears to be about 100 bytes. + We're assuming that's reasonable. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 2e0af86f618c697b44e2d67dff151256c58201c4 +Author: Andy Adamson +Date: Mon Mar 20 13:44:26 2006 -0500 + + locks: remove unused posix_block_lock + + posix_lock_file() is used to add a blocked lock to Lockd's block, so + posix_block_lock() is no longer needed. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit a85f193e2fb7d53e48ae6a9d9ea990bfb4cea555 +Author: Andy Adamson +Date: Mon Mar 20 13:44:25 2006 -0500 + + lockd: make nlmsvc_lock use only posix_lock_file + + Reorganize nlmsvc_lock() to make full use of posix_lock_file(), which does + eveything nlmsvc_lock() needs - no need to call posix_test_lock(), + posix_locks_deadlock(), or posix_block_lock() separately. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 5de0e5024a4e21251fd80dbfdb83316ce97086bc +Author: Andy Adamson +Date: Mon Mar 20 13:44:25 2006 -0500 + + lockd: simplify nlmsvc_grant_blocked + + Reorganize nlmsvc_grant_blocked() to make full use of posix_lock_file(). Note + that there's no need for separate calls to posix_test_lock(), + posix_locks_deadlock(), or posix_block_lock(). + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 15dadef9460ad8d3b1d5ede1c1697dc79af44a72 +Author: Andy Adamson +Date: Mon Mar 20 13:44:24 2006 -0500 + + lockd: clean up nlmsvc_lock + + Slightly more consistent dprintk error reporting, consolidate some up()'s. + + Signed-off-by: Andy Adamson + Signed-off-by: J. Bruce Fields + Signed-off-by: Trond Myklebust + +commit 1e7cb3dc12dbbac690d78c84f9c7cb11132ed121 +Author: Chuck Lever +Date: Mon Mar 20 13:44:24 2006 -0500 + + NFS: directory trace messages + + Reuse NFSDBG_DIRCACHE and NFSDBG_LOOKUPCACHE to provide additional + diagnostic messages that trace the operation of the NFS client's + directory behavior. A few new messages are now generated when NFSDBG_VFS + is active, as well, to trace normal VFS activity. This compromise + provides better trace debugging for those who use pre-built kernels, + without adding a lot of extra noise to the standard debug settings. + + Test-plan: + Enable NFS trace debugging with flags 1, 2, or 4. You should be able to + see different types of trace messages with each flag setting. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit e95b85ec9d8c8ad4667f746aa4c9d22c281efc44 +Author: Chuck Lever +Date: Mon Mar 20 13:44:23 2006 -0500 + + SUNRPC: minor cleanup + + RPC_DEBUG_DATA no longer needed in net/sunrpc/xprt.c. + + Test plan: + Compile kernel with CONFIG_NFS enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit dead28da8e3fb32601d38fb32b7021122e0a3d21 +Author: Chuck Lever +Date: Mon Mar 20 13:44:23 2006 -0500 + + SUNRPC: eliminate rpc_call() + + Clean-up: replace rpc_call() helper with direct call to rpc_call_sync. + + This makes NFSv2 and NFSv3 synchronous calls more computationally + efficient, and reduces stack consumption in functions that used to + invoke rpc_call more than once. + + Test plan: + Compile kernel with CONFIG_NFS enabled. Connectathon on NFS version 2, + version 3, and version 4 mount points. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit cc0175c1dc1de8f6af0eb0631dcc5b999a6fcc42 +Author: Chuck Lever +Date: Mon Mar 20 13:44:22 2006 -0500 + + SUNRPC: display human-readable procedure name in rpc_iostats output + + Add fields to the rpc_procinfo struct that allow the display of a + human-readable name for each procedure in the rpc_iostats output. + + Also fix it so that the NFSv4 stats are broken up correctly by + sub-procedure number. NFSv4 uses only two real RPC procedures: + NULL, and COMPOUND. + + Test plan: + Mount with NFSv2, NFSv3, and NFSv4, and do "cat /proc/self/mountstats". + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 4ece3a2d18fd7fe1d4972284a8c98c569020093f +Author: Chuck Lever +Date: Mon Mar 20 13:44:22 2006 -0500 + + NFS: add RPC I/O statistics to /proc/self/mountstats + + NFS client now shows various RPC I/O metrics in /proc/self/mountstats. + + Test plan: + Mount/umount while doing "cat /proc/self/mountstats", multiple iterations + of connectathon locking suite. Test with NFS version 2, 3, and 4. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 11c556b3d8d481829ab5f9933a25d29b00913b5a +Author: Chuck Lever +Date: Mon Mar 20 13:44:22 2006 -0500 + + SUNRPC: provide a mechanism for collecting stats in the RPC client + + Add a simple mechanism for collecting stats in the RPC client. Stats are + tabulated during xprt_release. Note that per_cpu shenanigans are not + required here because the RPC client already serializes on the transport + write lock. + + Test plan: + Compile kernel with CONFIG_NFS enabled. Basic performance regression + testing with high-speed networking and high performance server. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit ef759a2e54ed434b2f72b52a14edecd6d4eadf74 +Author: Chuck Lever +Date: Mon Mar 20 13:44:17 2006 -0500 + + SUNRPC: introduce per-task RPC iostats + + Account for various things that occur while an RPC task is executed. + Separate timers for RPC round trip and RPC execution time show how + long RPC requests wait in queue before being sent. Eventually these + will be accumulated at xprt_release time in one place where they can + be viewed from userland. + + Test plan: + Compile kernel with CONFIG_NFS enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 262ca07de4d7f1bff20361c1353bb14b3607afb2 +Author: Chuck Lever +Date: Mon Mar 20 13:44:16 2006 -0500 + + SUNRPC: add a handful of per-xprt counters + + Monitor generic transport events. Add a transport switch callout to + format transport counters for export to user-land. + + Test plan: + Compile kernel with CONFIG_NFS enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit e19b63dafdf7d615b0d36b90990a07e7792b9d3a +Author: Chuck Lever +Date: Mon Mar 20 13:44:15 2006 -0500 + + SUNRPC: track length of RPC wait queues + + RPC wait queue length will eventually be exported to userland via the RPC + iostats interface. + + Test plan: + Compile kernel with CONFIG_NFS enabled. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 67ec9f46b889bfb1ab0a4e307d53929d5f0692bf +Author: Chuck Lever +Date: Mon Mar 20 13:44:15 2006 -0500 + + NFS: report how long an NFS file system has been mounted + + Add a field in nfs_server to record a timestamp when a mount succeeds. + Report the number of seconds the file system has been mounted via + nfs_show_stats(). + + Test plan: + Mount an NFS file system, watch the mountstats reports and compare with + clock time. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 006ea73e5fa82915d0ac7a3f15ee7c688433236d +Author: Chuck Lever +Date: Mon Mar 20 13:44:14 2006 -0500 + + NFS: add hooks to account for NFSERR_JUKEBOX errors + + Make an inode or an nfs_server struct available in the logic that handles + JUKEBOX/DELAY type errors so the NFS client can account for them. + + This patch is split out from the main nfs iostat patch to highlight minor + architectural changes required to support this statistic. + + Test plan: + None. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 91d5b47023b608227d605d1e916b29dd0215bff7 +Author: Chuck Lever +Date: Mon Mar 20 13:44:14 2006 -0500 + + NFS: add I/O performance counters + + Invoke the byte and event counter macros where we want to count bytes and + events. + + Clean-up: fix a possible NULL dereference in nfs_lock, and simplify + nfs_file_open. + + Test-plan: + fsx and iozone on UP and SMP systems, with and without pre-emption. Watch + for memory overwrite bugs, and performance loss (significantly more CPU + required per op). + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit d9ef5a8c26aab09762afce43df64736720b4860e +Author: Chuck Lever +Date: Mon Mar 20 13:44:13 2006 -0500 + + NFS: introduce mechanism for tracking NFS client metrics + + Add a per-superblock performance counter facility to the NFS client. This + facility mimics the counters available for block devices and for + networking. Expose these new counters via the new /proc/self/mountstats + interface. + + Thanks to Andrew Morton and Trond Myklebust for their review and comments. + + Test plan: + fsx and iozone on UP and SMP systems, with and without pre-emption. Watch + for memory overwrite bugs, and performance loss (significantly more CPU + required per op). + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit c8bded96aa8735823e53c95a26177987ebb19a90 +Author: Chuck Lever +Date: Mon Mar 20 13:44:13 2006 -0500 + + NFS: clean up some mount options + + Get rid of "lock" and "posix", and spell out "vers=". + + Test plan: + None. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 7a480e250c7ca9187275d8574ae9e48a6b602cb9 +Author: Chuck Lever +Date: Mon Mar 20 13:44:12 2006 -0500 + + NFS: show retransmit settings when displaying mount options + + Sometimes it's important to know the exact RPC retransmit settings the + kernel is using for an NFS mount point. Add this facility to the NFS + client's show_options method. + + Test plan: + Set various retransmit settings via the mount command, and check that the + settings are reflected in /proc/mounts. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit b4629fe2f094b719847f31be1ee5ab38300038b2 +Author: Chuck Lever +Date: Mon Mar 20 13:44:12 2006 -0500 + + VFS: New /proc file /proc/self/mountstats + + Create a new file under /proc/self, called mountstats, where mounted file + systems can export information (configuration options, performance counters, + and so on). Use a mechanism similar to /proc/mounts and s_ops->show_options. + + This mechanism does not violate namespace security, and is safe to use while + other processes are unmounting file systems. + + Thanks to Mike Waychison for his review and comments. + + Test-plan: + Test concurrent mount/unmount operations while cat'ing /proc/self/mountstats. + + Signed-off-by: Chuck Lever + Signed-off-by: Trond Myklebust + +commit 1356b8c28d67cafd74f7e7dcfb39bf53681790a5 +Author: Levent Serinol +Date: Mon Mar 20 13:44:11 2006 -0500 + + SUNRPC: more verbose output for rpc auth weak error + + This patch adds server ip address to be printed out when "server + requires stronger authentication" error occured. + + Signed-off-by: Levent Serinol + Signed-off-by: Trond Myklebust + +commit 24bd68f46b1ad08d69bf32779f860df867780a7a +Author: Goldwyn Rodrigues +Date: Mon Mar 20 13:44:11 2006 -0500 + + NFS: Code comments update in NFS + + read_cache_mtime is no longer used in nfs_inode. This patch removes + references of read_cache_mtime in the code comments. + + Signed-off-by: Goldwyn Rodrigues + Signed-off-by: Trond Myklebust + +commit c9d5128a10a4974f72674ff3463da4db439e8b04 +Author: Ingo Molnar +Date: Mon Mar 20 13:44:11 2006 -0500 + + NFS: sem2mutex idmap.c + + semaphore to mutex conversion. + + the conversion was generated via scripts, and the result was validated + automatically via a script as well. + + build and boot tested. + + Signed-off-by: Ingo Molnar + Signed-off-by: Trond Myklebust + +commit bd6475454c774bd9dbe6078d94bbf72b1d3b65f4 +Author: Eric Sesterhenn +Date: Mon Mar 20 13:44:10 2006 -0500 + + NFS: kzalloc conversion in fs/nfs + + this converts fs/nfs to kzalloc() usage. + compile tested with make allyesconfig + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Trond Myklebust + +commit a162a6b804b48c605d1fd35e1861a5d32d00ad3f +Author: Trond Myklebust +Date: Mon Mar 20 13:44:10 2006 -0500 + + NFSv4: Kill braindead gcc warnings + + nfs4_open_revalidate: 'res' may be used uninitialized + nfs4_callback_compound: ‘hdr_res.nops’ may be used uninitialized + 'op_nr’ may be used uninitialized + encode_getattr_res: ‘savep’ may be used uninitialized + + Signed-off-by: Trond Myklebust + +commit 967b9281361481aecf323563886ef972ee88c681 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:09 2006 -0500 + + NFSv4: Do not call rpciod_down() before call to destroy_nfsv4_state() + + The reason is that the idmapper cleanup may call flush_workqueue() on + rpciod_workqueue. + + Signed-off-by: Trond Myklebust + +commit 12de3b35ea549c5819f287508d7afab0bf3ac44d +Author: Trond Myklebust +Date: Mon Mar 20 13:44:09 2006 -0500 + + SUNRPC: Ensure that rpc_mkpipe returns a refcounted dentry + + If not, we cannot guarantee that idmap->idmap_dentry, gss_auth->dentry and + clnt->cl_dentry are valid dentries. + + Signed-off-by: Trond Myklebust + +commit 24c5d9d7ea5a64fb5f157d17aa2c67a3300f8a08 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:08 2006 -0500 + + SUNRPC: Run rpci->queue_timeout on the rpciod workqueue instead of generic + + Signed-off-by: Trond Myklebust + +commit f344f6df4b2baa3e5c553c461735dfaf92f44be7 +Author: Olaf Kirch +Date: Mon Mar 20 13:44:08 2006 -0500 + + SUNRPC: Auto-load RPC authentication kernel modules + + This patch adds a request_module call to rpcauth_create which will try + to auto-load the kernel module for the requested authentication flavor. + For kernels with modular sunrpc, this reduces the admin overhead for + the user. + + Signed-off-by: Olaf Kirch + Signed-off-by: Trond Myklebust + +commit fb374d24f225f38f13dbffb65dd7ec72daf08dba +Author: Trond Myklebust +Date: Mon Mar 20 13:44:08 2006 -0500 + + NFS: reduce the number of false cache invalidations. + + Signed-off-by: Trond Myklebust + +commit c8d149f3dbd582a101aa7da7bdd6c3316efd11b4 +Author: Jesper Juhl +Date: Mon Mar 20 13:44:07 2006 -0500 + + NFS: "const static" vs "static const" in nfs4 + + My previous "const static" vs "static const" cleanup missed a single case, + patch below takes care of it. + + Signed-off-by: Jesper Juhl + Signed-off-by: Trond Myklebust + +commit ca62b9c3f7b8679ada4de94d2ab7098c6860c3d7 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:07 2006 -0500 + + NFSv4: Don't invalidate cached attributes if change attribute is unchanged + + Signed-off-by: Trond Myklebust + +commit 755c1e20cd2ad56e5c567fa05769eb98a3eef72b +Author: Trond Myklebust +Date: Mon Mar 20 13:44:06 2006 -0500 + + NFS: writes should not clobber utimes() calls + + Ensure that we flush out writes in the case when someone calls utimes() in + order to set the file times. + + Signed-off-by: Trond Myklebust + +commit 7bab377fcb495ee2e5a1cd69d235f8d84c76e3af +Author: Trond Myklebust +Date: Mon Mar 20 13:44:06 2006 -0500 + + lockd: Don't expose the process pid to the NLM server + + Instead we use the nlm_lockowner->pid. + + Signed-off-by: Trond Myklebust + +commit 36943fa4b2701b9ef2d60084c85ecbe634aec252 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:05 2006 -0500 + + NLM: nlm_alloc_call should not immediately fail on signal + + Currently, nlm_alloc_call tests for a signal before it even tries to + allocate memory. + Fix it so that it tries at least once. + + Signed-off-by: Trond Myklebust + +commit 47831f35b83e43c804215712dd0c834c92e8a441 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:05 2006 -0500 + + VFS: Fix __posix_lock_file() copy of private lock area + + The struct file_lock->fl_u area must be copied using the fl_copy_lock() + operation. + + Signed-off-by: Trond Myklebust + +commit 1dd594b21b2d98e56f2b1fe92bb222276b28de41 +Author: Neil Brown +Date: Mon Mar 20 13:44:04 2006 -0500 + + NFS: Fix buglet in fs/nfs/write.c + + I've been reading through fs/nfs/write.c trying to track down a bug + that seems to be related to pages loosing a refcount and getting + freed too early (you interested in detail??) and I spotted a little + bug which the following patch should fix. + + Signed-off-by: Neil Brown + Signed-off-by: Trond Myklebust + +commit cd52ed35535ef443f08bf5cd3331d350272885b8 +Author: Trond Myklebust +Date: Mon Mar 20 13:44:04 2006 -0500 + + NFS: Avoid races between writebacks and truncation + + Currently, there is no serialisation between NFS asynchronous writebacks + and truncation at the page level due to the fact that nfs_sync_inode() + cannot lock the pages that it is about to write out. + + This means that it is possible to be flushing out data (and calling something + like set_page_writeback()) while the page cache is busy evicting the page. + Oops... + + Use the hooks provided in try_to_release_page() to ensure that dirty pages + are always written back to storage before we evict them. + + Signed-off-by: Trond Myklebust + +commit b92dccf65bab3b6b7deb79ff3321dc256eb0f53b +Author: Trond Myklebust +Date: Mon Mar 20 13:44:03 2006 -0500 + + NFS: Fix a busy inodes issue... + + The nfs_open_context may live longer than the file descriptor that spawned + it, so it needs to carry a reference to the vfsmount. If not, then + generic_shutdown_super() may end up being called before reads and writes + have been flushed out. + + Make a couple of functions static while we're at it... + + Signed-off-by: Trond Myklebust + +commit fd02e8038eb943755e8727a0ea193c037a51714f +Author: Eli Cohen +Date: Mon Mar 13 14:33:01 2006 +0200 + + IB/mthca: Query SRQ srq_limit fixes + + Fix endianness handling of srq_limit: it is big-endian in the context + structure, so we need to swab it before returning it. + + Also add support for srq_limit query for Tavor (non-MemFree) HCAs. + + Signed-off-by: Eli Cohen + Signed-off-by: Roland Dreier + +commit bfef73fa78ca1e56175dcbd33aa11de4764f85a5 +Author: Roland Dreier +Date: Mon Mar 20 10:08:26 2006 -0800 + + IPoIB: Get rid of useless test of queue length + + In neigh_add_path(), the queue of delayed packets can never be full, + because the queue is always freshly created and cannot be found by any + other code path. In fact, the test of the queue length is worse than + useless: if somehow the test ever triggered and path_rec_start() also + failed, then dev_kfree_skb_any() will be called twice on the same skb. + Fix this by deleting the useless test. Pointed out by Michael + S. Tsirkin . + + Signed-off-by: Roland Dreier + +commit e10e271bfd295bf805dc294460868e1deb938211 +Author: Dotan Barak +Date: Mon Mar 20 10:08:26 2006 -0800 + + IB/mthca: Correct reported SRQ size in MemFree case. + + MemFree devices need to reserve one shared receive queue (SRQ) work + request for internal use, so the capacity returned from the create_srq + and query_srq methods should be srq->max - 1. + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit dc05980dd736bfbe5b2524b463e5f098e67a64e9 +Author: Michael S. Tsirkin +Date: Mon Mar 20 10:08:25 2006 -0800 + + IB/mad: Fix oopsable race on device removal + + Fix an oopsable race debugged by Eli Cohen : + After removing the port from port_list, ib_mad_port_close flushes + port_priv->wq before destroying the special QPs. This means that a + completion event could arrive, and queue a new work in this work queue + after flush. + + This patch also removes an unnecessary flush_workqueue(): + destroy_workqueue() already includes a flush. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit bf17c1c7cc9250d7c3c01b0ae898aefa1853535a +Author: Roland Dreier +Date: Mon Mar 20 10:08:25 2006 -0800 + + IB/srp: Coverity fix to srp_parse_options() + + Fix leak found by Coverity: in the SRP_OPT_DGID case, + srp_parse_options() didn't free the result of match_strdup(). + + Signed-off-by: Roland Dreier + +commit 6b63e3015a69dd8aa5534e23af9f132a021da02e +Author: Roland Dreier +Date: Mon Mar 20 10:08:25 2006 -0800 + + IB/mthca: Coverity fix to mthca_init_eq_table() + + Fix bug found by coverity: the loop body never executed, because it + was doing for (i = 0; i < MTHCA_EQ_CMD; ++i), but MTHCA_EQ_CMD is 0. + The correct loop bound is MTHCA_NUM_EQ, to loop over all EQs. + + Signed-off-by: Roland Dreier + +commit 048975ac580a771fc5bb96c6b454cba897ab1a73 +Author: Roland Dreier +Date: Mon Mar 20 10:08:25 2006 -0800 + + IB: Coverity fixes to sysfs.c + + Fix two bugs found by coverity: + - Memory leak in error path of alloc_group_attrs() + - Fencepost error in state_show(): the test should be < ARRAY_SIZE(), + not <= ARRAY_SIZE(). + + Signed-off-by: Roland Dreier + +commit 0b3ea0829cbcdaee6e018a83a2949ef458213f3b +Author: Jack Morgenstein +Date: Mon Mar 20 10:08:24 2006 -0800 + + IPoIB: Move ipoib_ib_dev_flush() to ipoib workqueue + + Move ipoib_ib_dev_flush() to ipoib's workqueue. This keeps it ordered + with respect to other work scheduled by the ipoib driver. This fixes + problems with races, for example: + - ipoib_ib_dev_flush() has started running because of an IB event + - user does ifconfig ib0 down + - ipoib_mcast_stop_thread() gets called twice and waits for the same + completion twice + + Signed-off-by: Jack Morgenstein + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 8b9ab02b690e988f19c9d740ef642d7d833d23d5 +Author: Roland Dreier +Date: Tue Mar 7 11:21:08 2006 -0800 + + IPoIB: Fix build now that neighbour destructor is in neigh_params + + Fix the IPoIB build (which is broken in net-2.6.17 because of my + screw-up, which left out this chunk in ipoib_multicast.c). + The neighbour destructor is now in neigh_params, so we don't + need to clear it in the ops structure. + + Signed-off-by: Roland Dreier + +commit 702b2aaccfbf0fa29c6ffb423a39a7a5573f793a +Author: Ami Perlmutter +Date: Mon Mar 20 10:08:24 2006 -0800 + + IB/uverbs: Use correct alt_pkey_index in modify QP + + The old code incorrectly used the primary P_Key index as the alternate + index too. + + Signed-off-by: Ami Perlmutter + Signed-off-by: Roland Dreier + +commit f36e1793e25513380cae5958a9164d4cc4458ad0 +Author: Jack Morgenstein +Date: Fri Mar 3 21:54:13 2006 -0800 + + IB/umad: Add support for large RMPP transfers + + Add support for sending and receiving large RMPP transfers. The old + code supports transfers only as large as a single contiguous kernel + memory allocation. This patch uses linked list of memory buffers when + sending and receiving data to avoid needing contiguous pages for + larger transfers. + + Receive side: copy the arriving MADs in chunks instead of coalescing + to one large buffer in kernel space. + + Send side: split a multipacket MAD buffer to a list of segments, + (multipacket_list) and send these using a gather list of size 2. + Also, save pointer to last sent segment, and retrieve requested + segments by walking list starting at last sent segment. Finally, + save pointer to last-acked segment. When retrying, retrieve + segments for resending relative to this pointer. When updating last + ack, start at this pointer. + + Signed-off-by: Jack Morgenstein + Signed-off-by: Sean Hefty + Signed-off-by: Roland Dreier + +commit 6ecb0c849625e830ab96495d473bb704812c30e1 +Author: Roland Dreier +Date: Mon Mar 20 10:08:23 2006 -0800 + + IB/srp: Add SCSI host attributes to show target port + + Add SCSI host attributes in sysfs that show the ID extension, IOC + GUID, service ID, P_Key and destination GID for each target port that + the SRP initiator connects to. + + Signed-off-by: Roland Dreier + +commit 87fd1a11ae91ab42fac978467667c61fee9f01da +Author: Sean Hefty +Date: Thu Mar 2 16:50:37 2006 -0800 + + IB/cm: Check cm_id state before handling a REP + + Move checking the state of a cm_id before modifying it when handling a + REP. This fixes a bug seen under MPI scale-up testing, where a NULL + timewait_info pointer is dereferenced if a request times out before a + REP is received. + + Signed-off-by: Sean Hefty + Signed-off-by: Roland Dreier + +commit 6226bb570184eb6c645e047d2aecbce8c0442e3e +Author: Roland Dreier +Date: Thu Mar 2 13:56:37 2006 -0800 + + IB/mthca: Update firmware versions + + Update known firmware versions in driver's table to the latest releases. + + Signed-off-by: Roland Dreier + +commit 651eaac92894f8b6761c51b6637ea9cacea7fba2 +Author: Eli Cohen +Date: Thu Mar 2 12:40:46 2006 -0800 + + IB/mthca: Optimize large messages on Sinai HCAs + + Sinai (one-port PCI Express) HCAs get improved throughput for messages + bigger than 80 KB in DDR mode if memory keys are formatted in a + specific way. The enhancement only works if the memory key table is + smaller than 2^24 entries. For larger tables, the enhancement is off + and a warning is printed (to avoid silent performance loss). + + Signed-off-by: Eli Cohen + Signed-off-by: Michael Tsirkin + Signed-off-by: Roland Dreier + +commit 27d56300647f6e76847bc2407d7abc782fe87495 +Author: Dotan Barak +Date: Thu Mar 2 11:25:27 2006 -0800 + + IB/uverbs: Fix query QP return of sq_sig_all + + The old code didn't convert from the kernel's enum correctly. + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit 4546d31d84beafe74c56651173ac4fe197c7de8b +Author: Dotan Barak +Date: Thu Mar 2 11:22:28 2006 -0800 + + IB: Fix modify QP checking of "current QP state" attribute + + According to the IB spec version 1.2, section 11.2.4.2, the current + table has a couple of mistakes where it allows the current QP state + (IB_QP_CUR_STATE) attribute. For the transitions: + + RTS -> RTS: IB_QP_CUR_STATE should be allowed for all transports + SQD -> SQD: IB_QP_CUR_STATE should never be allowed + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit 9acf6a8570dcfc9f55724b8b71099fc8768e8c26 +Author: Michael S. Tsirkin +Date: Thu Mar 2 11:07:47 2006 -0800 + + IPoIB: Fix multicast race between canceling and completing + + ipoib_mcast_stop_thread currently tests mcast->query and if it is + NULL, does not perform wait_for_completion on the mcast and frees the + mcast object directly. + + However, since both operations are done without locking, it is + possible that ipoib_mcast_join_complete is in progress on this mcast + object and has set mcast->query to NULL already. + + Solve this by: + - taking priv->lock before we change mcast->query in ipoib_mcast_join_complete, + and keeping it until we no longer need the mcast object + - taking priv->lock around mcast->query test in ipoib_mcast_stop_thread + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 54d07e2a1ead2f093ce054cda2e0f5ec163c650c +Author: Eli Cohen +Date: Thu Mar 2 11:05:19 2006 -0800 + + IPoIB: Clean up if posting receives fails + + If posting receives in ipoib_ib_dev_open() fails, call + ipoib_ib_dev_stop() to move the device's QP back to the RESET state so + that we can try again later. + + Signed-off-by: Eli Cohen + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 8d3ef29d6be1e750512e0a9dbea6225290b81d0a +Author: Ishai Rabinovitz +Date: Wed Mar 1 22:33:11 2006 -0800 + + IB/mthca: Use an enum for HCA page size + + Use a named enum for the HCA's internal page size, rather than having + magic values of 4096 and shifts by 12 all over the code. Also, fix + one minor bug in EQ handling: only one HCA page is mapped to the HCA + during initialization, but a full kernel page is unmapped during + cleanup. This might cause problems when PAGE_SIZE != 4096. + + Signed-off-by: Ishai Rabinovitz + Signed-off-by: Roland Dreier + +commit 67e7377661db4e341ed5e9a0358d11a55e532aa8 +Author: Dotan Barak +Date: Wed Mar 1 14:28:12 2006 -0800 + + IB/mthca: Check alternate P_Key index when setting alternate path + + Check that the alternate P_Key index is in range when setting the + alternate path for a QP. Also make a cosmetic touch up to the debug + message printed when the main P_Key index is out of range. + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit 7667abd1528782003d8b83c54756523ec547af6e +Author: Dotan Barak +Date: Mon Feb 27 21:02:00 2006 -0800 + + IB/mthca: Add support for send work request fence flag + + Add support for IB_SEND_FENCE flag in post_send methods. + + Signed-off-by: Dotan Barak + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 7343b231f22cec11f069bcdbb0c9a417df2750d3 +Author: Eli Cohen +Date: Mon Feb 27 20:47:43 2006 -0800 + + IPoIB: Close race in setting mcast->ah + + ipoib_mcast_send() tests mcast->ah twice. If this value is changed + between these two points, we leak an skb. However, + ipoib_mcast_join_finish() sets mcast->ah with no locking, so it could + race against ipoib_mcast_send(). + + As a solution, take priv->lock around assignment to mcast->ah thus + making sure ipoib_mcast_send() (which also takes priv->lock) is not in + flight. + + Signed-off-by: Eli Cohen + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 1d89b1ae6c203bc68a3f424be144abcdf62773c9 +Author: Jack Morgenstein +Date: Sun Feb 26 16:05:59 2006 -0800 + + IB/mthca: Implement query_ah method + + Implement query_ah (except for AVs which are in HCA memory). This is + needed to implement RMPP duplicate session detection on sending side + (extraction of DGID/DLID and GRH flag from address handle). + + Signed-off-by: Jack Morgenstein + Signed-off-by: Roland Dreier + +commit 14abdffcc0a0ca9c5bb3274648d073e09a6fd2ba +Author: Eli Cohen +Date: Sun Feb 26 14:36:06 2006 -0800 + + IB/mthca: Write FW commands through doorbell page + + This patch is checks whether the HCA supports posting FW commands + through a doorbell page (user access region 0, or "UAR0"). If this is + supported, the driver maps UAR0 and uses it for FW commands. This can + be controlled by the value of a writable module parameter + fw_cmd_doorbell. When the parameter is 0, the commands are posted + through HCR using the old method; otherwise if HCA is capable commands + go through UAR0. + + This use of UAR0 to post commands eliminates the need for polling the + "go" bit prior to posting a new command. Since reading from a PCI + device is much more expensive then issuing a posted write, it is + expected that issuing FW commands this way will provide better CPU + utilization. + + Signed-off-by: Eli Cohen + Signed-off-by: Roland Dreier + +commit ea88fd16d6e85f4bc71b6053180b64f04be1ff14 +Author: Dotan Barak +Date: Thu Feb 23 12:36:18 2006 -0800 + + IB/uverbs: Return actual capacity from create SRQ operation + + Pass actual capacity of created SRQ back to userspace, so that + userspace can report accurate capacities. This requires an ABI bump, + to change struct ib_uverbs_create_srq_resp. + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit abb6e9ba17eb133ab385d0f9017fa8afa809d52a +Author: Dotan Barak +Date: Thu Feb 23 12:13:51 2006 -0800 + + IB/mthca: Return actual capacity from create_srq + + Have mthca's create_srq method return the actual capacity of the SRQ + that gets created. Also update comments in to + clarify that this is what is expected from ib_create_srq(). + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit 44af79f9524c29d6850591cc972f2667a27234d4 +Author: Michael S. Tsirkin +Date: Mon Feb 20 21:50:39 2006 -0800 + + IPoIB: clarify to_ipoib_neigh() + + Cosmetic change: make alignment explicit in to_ipoib_neigh. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 4d9781c5ce1a517a07dbf03c37323c011037fe79 +Author: Roland Dreier +Date: Thu Feb 16 09:26:19 2006 -0800 + + IB/uverbs: Fix alignment of struct ib_uverbs_create_qp_resp + + The size of struct ib_uverbs_create_qp_resp is not even multiple of 8 + bytes. This causes problems for low-level drivers that add private + data after the structure: 32-bit userspace will look in the wrong + place for a response from a 64-bit kernel. Fix this by adding a + reserved field. Also, bump the ABI version because this changes the + size of a structure. + + Pointed out by Hoang-Nam Nguyen . + + Signed-off-by: Roland Dreier + +commit 00df1b2c8b1f07e02a74e2d10b176f29395ce7d2 +Author: Roland Dreier +Date: Mon Feb 13 17:21:09 2006 -0800 + + IB/mthca: Bump driver version and release date + + Signed-off-by: Roland Dreier + +commit 8ebe5077e37a0cb0da527e397460188e6bfdd3ee +Author: Eli Cohen +Date: Mon Feb 13 16:40:21 2006 -0800 + + IB/mthca: Support for query QP and SRQ + + Implement the query_qp and query_srq methods in mthca. + + Signed-off-by: Eli Cohen + Signed-off-by: Roland Dreier + +commit 8bdb0e8632e0f5061bd18b6934346cb609490135 +Author: Dotan Barak +Date: Mon Feb 13 16:31:57 2006 -0800 + + IB/uverbs: Support for query SRQ from userspace + + Add support to uverbs to handle querying userspace SRQs (shared + receive queues), including adding an ABI for marshalling requests and + responses. The kernel midlayer already has the underlying + ib_query_srq() function. + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit 7ccc9a24e01258a31ee2b964215e4ddddd2a02c4 +Author: Dotan Barak +Date: Mon Feb 13 16:31:25 2006 -0800 + + IB/uverbs: Support for query QP from userspace + + Add support to uverbs to handle querying userspace QPs (queue pairs), + including adding an ABI for marshalling requests and responses. The + kernel midlayer already has the underlying ib_query_qp() function. + + Signed-off-by: Dotan Barak + Signed-off-by: Roland Dreier + +commit a74cd4af0bfa9578594acbb711a958104c93b772 +Author: Roland Dreier +Date: Mon Feb 13 16:30:49 2006 -0800 + + IB: Whitespace cleanups + + Remove trailing whitespace and fix indentation that with spaces + instead of tabs. + + Signed-off-by: Roland Dreier + +commit d844183d9c7b103da1d7a1c753a1c171e9ce26b3 +Author: Roland Dreier +Date: Mon Feb 13 16:30:18 2006 -0800 + + IB/mthca: Convert to use ib_modify_qp_is_ok() + + Use ib_modify_qp_is_ok() in mthca, and delete the big table of + attributes for queue pair state transitions. + + Signed-off-by: Roland Dreier + +commit 8a51866f08103ba04894ce0f65eef567ddc3ed40 +Author: Roland Dreier +Date: Mon Feb 13 12:48:12 2006 -0800 + + IB: Add ib_modify_qp_is_ok() library function + + The in-kernel mthca driver contains a table of which attributes are + valid for each queue pair state transition. It turns out that both + other IB drivers -- ipath and ehca -- which are being prepared for + merging have copied this table, errors and all. + + To forestall this code duplication, move this table and the code to + check parameters against it into a midlayer library function, + ib_modify_qp_is_ok(). + + Signed-off-by: Roland Dreier + +commit 3fa1fa3e809dc009a080ca9f052cee2e17836c63 +Author: Roland Dreier +Date: Fri Feb 3 14:53:28 2006 -0800 + + IB/mthca: Generate SQ drained events when requested + + Add low-level driver support to ib_mthca so that consumers can request + a "send queue drained" event be generated when a transiton to the SQD + state completes. + + Signed-off-by: Roland Dreier + +commit 5e9f71a16c56af7e2ff8b7ea251e0fd90b5de560 +Author: Ralph Campbell +Date: Fri Feb 3 14:32:01 2006 -0800 + + IB/mad: Simplify SMI by eliminating smi_check_local_dr_smp() + + The call to ib_get_agent_port() shouldn't be possible to fail when + smi_check_local_dr_smp() is called from ib_mad_recv_done_handler(). + When it is called from handle_outgoing_dr_smp(), the device and + port_num come from mad_agent_priv so I assume the call to + ib_get_agent_port() shouldn't fail either. In either case, + smi_check_local_smp() only uses the mad_agent pointer to check that + mad_agent->device->process_mad is not NULL. The device pointer would + have to be the same as the one passed to smi_check_local_dr_smp() + since that pointer is used later instead of the one checked in + smi_check_local_smp(). + + Signed-off-by: Hal Rosenstock + Signed-off-by: Roland Dreier + +commit 5f0b67e0d5c2807337b8fee4aa71b05f4f641534 +Author: Ralph Campbell +Date: Fri Feb 3 14:30:24 2006 -0800 + + IB/mad: Remove redundant check from smi_check_local_dr_smp() + + smi_check_local_dr_smp() is called only from two places in core/mad.c + It returns 0 or 1. In smi_check_local_dr_smp(), it checks for + a directed route SMP but this function is only called when the SMP + is a directed route so this is a NOP. + + Signed-off-by: Hal Rosenstock + Signed-off-by: Roland Dreier + +commit d36f34aadf184d8cc4c240de2b6319ccea8334bb +Author: Or Gerlitz +Date: Thu Feb 2 10:43:45 2006 -0800 + + IB: Enable FMR pool user to set page size + + This patch allows the consumer to set the page size of "pages" mapped + by the pool FMRs, which is a feature already existing in the base + verbs API. On the cosmetic side it changes ib_fmr_attr.page_size field + to be named page_shift. + + Signed-off-by: Or Gerlitz + Signed-off-by: Roland Dreier + +commit 6dfc3901b04d1b79fa982d6de6d5af3b50c6cea8 +Author: Roland Dreier +Date: Thu Feb 2 10:04:19 2006 -0800 + + IB/mthca: Add modify_device method to set node description + + Add a modify_device method to mthca, which implements setting the node + description. This makes the writable "node_desc" sysfs attribute work + for Mellanox HCAs. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit c5bcbbb9fe00128d500c2f473d5ddc8d8c2c53a7 +Author: Roland Dreier +Date: Thu Feb 2 09:47:14 2006 -0800 + + IB: Allow userspace to set node description + + Expose a writable "node_desc" sysfs attribute for InfiniBand devices. + This allows userspace to update the node description with information + such as the node's hostname, so that IB network management software + can tie its view to the real world. + + Signed-off-by: Michael S. Tsirkin + Signed-off-by: Roland Dreier + +commit 2fa5e2ebbe2d81f741ba7bed9e07dc38cc734625 +Author: Roland Dreier +Date: Wed Feb 1 13:38:24 2006 -0800 + + IB/mthca: Whitespace cleanups + + Remove trailing whitespace and fix indentation that with spaces + instead of tabs. + + Signed-off-by: Roland Dreier + +commit 4885bf64bc2eb242ebebe67077cfe3688283b586 +Author: Roland Dreier +Date: Mon Jan 30 14:31:33 2006 -0800 + + IB/mthca: Add device-specific support for resizing CQs + + Add low-level driver support for resizing CQs (both kernel and + userspace) to mthca. + + Signed-off-by: Roland Dreier + +commit 33b9b3ee9709b19c4f02ab91571d53540d05c3d1 +Author: Roland Dreier +Date: Mon Jan 30 14:29:21 2006 -0800 + + IB: Add userspace support for resizing CQs + + Add support to uverbs to handle resizing userspace CQs (completion + queues), including adding an ABI for marshalling requests and + responses. The kernel midlayer already has ib_resize_cq(). + + Signed-off-by: Roland Dreier + +commit 399d7921299fc4f146bd62bfa6312382a5429bcc +Author: Roland Dreier +Date: Tue Jan 31 21:14:18 2006 -0800 + + IB/mthca: Get rid of might_sleep() annotations + + The might_sleep() annotations in mthca are silly -- they all occur + shortly before calls that will end up in core functions like kmalloc() + that will print the same warning in an unsafe context anyway. In + fact, beyond cluttering the source, we're actually bloating text with + CONFIG_DEBUG_SPINLOCK_SLEEP and/or CONFIG_PREEMPT_VOLUNTARY set. + + With both options set, getting rid of the might_sleep()s saves a lot: + add/remove: 0/0 grow/shrink: 0/7 up/down: 0/-171 (-171) + function old new delta + mthca_pd_alloc 132 109 -23 + mthca_init_cq 969 946 -23 + mthca_mr_alloc 592 568 -24 + mthca_pd_free 67 42 -25 + mthca_free_mr 219 194 -25 + mthca_free_cq 570 545 -25 + mthca_fmr_alloc 742 716 -26 + + Signed-off-by: Roland Dreier + +commit d9b98b0f11ee7dd39429001ba289f095b9d66917 +Author: Roland Dreier +Date: Tue Jan 31 20:45:51 2006 -0800 + + IB/mthca: Make functions that never fail return void + + The function mthca_free_err_wqe() can never fail, so get rid of its + return value. That means handle_error_cqe() doesn't have to check + what mthca_free_err_wqe() returns, which means it can't fail either + and doesn't have to return anything either. All this results in + simpler source code and a slight object code improvement: + + add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-10 (-10) + function old new delta + mthca_free_err_wqe 83 81 -2 + mthca_poll_cq 1758 1750 -8 + + Signed-off-by: Roland Dreier + +commit 7abe53155b77c31028a7158883bc9aac705790da +Author: Russell King +Date: Mon Mar 20 10:12:31 2006 +0000 + + [ARM] Fix cosmetic typo in asm/irq.h + + The IRQ resource flags are IORESOURCE_IRQ not IRQRESOURCE_IRQ. + + Signed-off-by: Russell King + +commit ac0eb3eb7e54b700386068be025a43d2a3958ee5 +Author: David S. Miller +Date: Mon Mar 20 01:23:43 2006 -0800 + + [SPARC64]: Update defconfig. + + Signed-off-by: David S. Miller + +commit f6b83f070e9b7ad9075f7cc5646260e56c7d0219 +Author: David S. Miller +Date: Mon Mar 20 01:17:17 2006 -0800 + + [SPARC64]: Fix 2 bugs in huge page support. + + 1) huge_pte_offset() did not check the page table hierarchy + elements as being empty correctly, resulting in an OOPS + + 2) Need platform specific hugetlb_get_unmapped_area() to handle + the top-down vs. bottom-up address space allocation strategies. + + Signed-off-by: David S. Miller + +commit 467418f3508b426adbc7df795ebf3baaed4fbefc +Author: Andrew Morton +Date: Sun Mar 19 12:46:55 2006 -0800 + + [SPARC64]: CONFIG_BLK_DEV_RAM fix + + init/do_mounts_rd.c depends upon CONFIG_BLK_DEV_RAM, not CONFIG_BLK_DEV_INITRD. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit bb8646d8340fa7c1b66a037428e39f85f8738f0a +Author: David S. Miller +Date: Sat Mar 18 23:55:11 2006 -0800 + + [SPARC64]: Optimized TSB table initialization. + + We only need to write an invalid tag every 16 bytes, + so taking advantage of this can save many instructions + compared to the simple memset() call we make now. + + A prefetching implementation is implemented for sun4u + and a block-init store version if implemented for Niagara. + + The next trick is to be able to perform an init and + a copy_tsb() in parallel when growing a TSB table. + + Signed-off-by: David S. Miller + +commit 88d7079458f87d6f2d2261b2f87b7b9416019f5e +Author: David S. Miller +Date: Sat Mar 18 19:16:23 2006 -0800 + + [SPARC64]: Allow CONFIG_MEMORY_HOTPLUG to build. + + online_page() is straightforward, and then add a dummy + remove_memory() that returns -EINVAL just like i386. + + There is no point in implementing remove_memory() since + __remove_pages() has no implementation either. + + Signed-off-by: David S. Miller + +commit 9b4006dcf6a8c43bd482b9c1ec576f0ed270ef23 +Author: David S. Miller +Date: Sat Mar 18 18:12:42 2006 -0800 + + [SPARC64]: Use SLAB caches for TSB tables. + + Signed-off-by: David S. Miller + +commit b52439c22c63dbbefd5395f2151c0ef4f667e949 +Author: David S. Miller +Date: Fri Mar 17 23:40:47 2006 -0800 + + [SPARC64]: Don't kill the page allocator when growing a TSB. + + Try only lightly on > 1 order allocations. + + If a grow fails, we are under memory pressure, so do not try + to grow the TSB for this address space any more. + + If a > 0 order TSB allocation fails on a new fork, retry using + a 0 order allocation. + + Signed-off-by: David S. Miller + +commit 05f9ca83596c7801549a2b4eba469d51baf5480f +Author: David S. Miller +Date: Fri Mar 17 17:42:57 2006 -0800 + + [SPARC64]: Randomize mm->mmap_base when PF_RANDOMIZE is set. + + Signed-off-by: David S. Miller + +commit d61e16df940e02e25679bdc1aee8c25786f6de90 +Author: David S. Miller +Date: Fri Mar 17 17:33:56 2006 -0800 + + [SPARC64]: Increase top of 32-bit process stack. + + Put it one page below the top of the 32-bit address space. + This gives us ~16MB more address space to work with. + + Signed-off-by: David S. Miller + +commit a91690ddd05ab0b7fbdd37733875525ac75c20f2 +Author: David S. Miller +Date: Fri Mar 17 14:41:03 2006 -0800 + + [SPARC64]: Top-down address space allocation for 32-bit tasks. + + Currently allocations are very constrained for 32-bit processes. + It grows down-up from 0x70000000 to 0xf0000000 which gives about + 2GB of stack + dynamic mmap() space. + + So support the top-down method, and we need to override the + generic helper function in order to deal with D-cache coloring. + + With these changes I was able to squeeze out a mmap() just over + 3.6GB in size in a 32-bit process. + + Signed-off-by: David S. Miller + +commit b5e7ae5dd034c2c0ed75c31fca04a805097817bc +Author: David S. Miller +Date: Fri Mar 17 13:23:56 2006 -0800 + + [SPARC64] bbc_i2c: Fix cpu check and add missing module license. + + Should allow cheetah_plus cpu types and don't taint + the kernel. + + Signed-off-by: David S. Miller + +commit 7a1ac5264108fc3ed22d17a3cdd76212ed1666d1 +Author: David S. Miller +Date: Thu Mar 16 02:02:32 2006 -0800 + + [SPARC64]: Fix and re-enable dynamic TSB sizing. + + This is good for up to %50 performance improvement of some test cases. + The problem has been the race conditions, and hopefully I've plugged + them all up here. + + 1) There was a serious race in switch_mm() wrt. lazy TLB + switching to and from kernel threads. + + We could erroneously skip a tsb_context_switch() and thus + use a stale TSB across a TSB grow event. + + There is a big comment now in that function describing + exactly how it can happen. + + 2) All code paths that do something with the TSB need to be + guarded with the mm->context.lock spinlock. This makes + page table flushing paths properly synchronize with both + TSB growing and TLB context changes. + + 3) TSB growing events are moved to the end of successful fault + processing. Previously it was in update_mmu_cache() but + that is deadlock prone. At the end of do_sparc64_fault() + we hold no spinlocks that could deadlock the TSB grow + sequence. We also have dropped the address space semaphore. + + While we're here, add prefetching to the copy_tsb() routine + and put it in assembler into the tsb.S file. This piece of + code is quite time critical. + + There are some small negative side effects to this code which + can be improved upon. In particular we grab the mm->context.lock + even for the tsb insert done by update_mmu_cache() now and that's + a bit excessive. We can get rid of that locking, and the same + lock taking in flush_tsb_user(), by disabling PSTATE_IE around + the whole operation including the capturing of the tsb pointer + and tsb_nentries value. That would work because anyone growing + the TSB won't free up the old TSB until all cpus respond to the + TSB change cross call. + + I'm not quite so confident in that optimization to put it in + right now, but eventually we might be able to and the description + is here for reference. + + This code seems very solid now. It passes several parallel GCC + bootstrap builds, and our favorite "nut cruncher" stress test which is + a full "make -j8192" build of a "make allmodconfig" kernel. That puts + about 256 processes on each cpu's run queue, makes lots of process cpu + migrations occur, causes lots of page table and TLB flushing activity, + incurs many context version number changes, and it swaps the machine + real far out to disk even though there is 16GB of ram on this test + system. :-) + + Signed-off-by: David S. Miller + +commit a858f1ca726edc5eb7ed39722f7966d005f1c9ca +Author: David S. Miller +Date: Thu Mar 16 00:55:30 2006 -0800 + + [SUNSU]: Fix missing spinlock initialization. + + Caught by CONFIG_DEBUG_SPINLOCK. + + Signed-off-by: David S. Miller + +commit 72b845e04e99298e5179b31e8de16afed52a2627 +Author: David S. Miller +Date: Tue Mar 14 14:11:48 2006 -0800 + + [TG3]: Do not try to access NIC_SRAM_DATA_SIG on Sun parts. + + Sun does't put an SEEPROM behind the tigon3 chip, among other things, + so accesses to these areas just give bus timeouts. + + Signed-off-by: David S. Miller + +commit 0c51ed93ca0ecbf44ec096f4bd04c12a3e761e6b +Author: David S. Miller +Date: Mon Mar 13 01:27:34 2006 -0800 + + [SPARC64]: First cut at VIS simulator for Niagara. + + Niagara does not implement some of the VIS instructions in + hardware, so we have to emulate them. + + Signed-off-by: David S. Miller + +commit 90a6646bf6a1ca821f32d5510e935855612904df +Author: David S. Miller +Date: Wed Mar 8 17:18:19 2006 -0800 + + [SPARC64]: Fix system type in /proc/cpuinfo and remove bogus OBP check. + + Report 'sun4v' when appropriate in /proc/cpuinfo + + Remove all the verifications of the OBP version string. Just + make sure it's there, and report it raw in the bootup logs and + via /proc/cpuinfo. + + Signed-off-by: David S. Miller + +commit 8935dced547afbf37d0fcfcac9a3556494e53104 +Author: David S. Miller +Date: Wed Mar 8 16:09:19 2006 -0800 + + [SPARC64]: Add SMT scheduling support for Niagara. + + The mapping is a simple "(cpuid >> 2) == core" for now. + Later we'll add more sophisticated code that will walk + the sun4v machine description and figure this out from + there. + + We should also add core mappings for jaguar and panther + processors. + + Signed-off-by: David S. Miller + +commit 17b0e199a10184d8c5bbbd79a4cee993bb1fb257 +Author: David S. Miller +Date: Wed Mar 8 15:57:03 2006 -0800 + + [SPARC64]: Fix 32-bit truncation which broke sparsemem. + + The page->flags manipulations done by the D-cache dirty + state tracking was broken because the constants were not + marked with "UL" to make them 64-bit, which means we were + clobbering the upper 32-bits of page->flags all the time. + + This doesn't jive well with sparsemem which stores the + section and indexing information in the top 32-bits of + page->flags. + + This is yet another sparc64 bug which has been with us + forever. + + While we're here, tidy up some things in bootmem_init() + and paginig_init(): + + 1) Pass min_low_pfn to init_bootmem_node(), it's identical + to (phys_base >> PAGE_SHIFT) but we should use consistent + with the variable names we print in CONFIG_BOOTMEM_DEBUG + + 2) max_mapnr, although no longer used, was being set + inaccurately, we shouldn't subtract pfn_base any more. + + 3) All the games with phys_base in the zones_*[] arrays + we pass to free_area_init_node() are no longer necessary. + + Thanks to Josh Grebe and Fabbione for the bug reports + and testing. Fix also verified locally on an SB2500 + which had a memory layout that triggered the same problem. + + Signed-off-by: David S. Miller + +commit d1112018b4bc82adf5c8a9c15a08954328f023ae +Author: David S. Miller +Date: Wed Mar 8 02:16:07 2006 -0800 + + [SPARC64]: Move over to sparsemem. + + This has been pending for a long time, and the fact + that we waste a ton of ram on some configurations + kind of pushed things over the edge. + + Signed-off-by: David S. Miller + +commit ee29074d3bd23848905f52c515974e0cd0219faa +Author: David S. Miller +Date: Mon Mar 6 22:50:44 2006 -0800 + + [SPARC64]: Fix new context version SMP handling. + + Don't piggy back the SMP receive signal code to do the + context version change handling. + + Instead allocate another fixed PIL number for this + asynchronous cross-call. We can't use smp_call_function() + because this thing is invoked with interrupts disabled + and a few spinlocks held. + + Also, fix smp_call_function_mask() to count "cpus" correctly. + There is no guarentee that the local cpu is in the mask + yet that is exactly what this code was assuming. + + Signed-off-by: David S. Miller + +commit a77754b4d0731321db266c6c60ffcd7c62757da5 +Author: David S. Miller +Date: Mon Mar 6 19:59:50 2006 -0800 + + [SPARC64]: Bulletproof MMU context locking. + + 1) Always spin_lock_init() in init_context(). The caller essentially + clears it out, or copies the mm info from the parent. In both + cases we need to explicitly initialize the spinlock. + + 2) Always do explicit IRQ disabling while taking mm->context.lock + and ctx_alloc_lock. + + Signed-off-by: David S. Miller + +commit 9132983ae140a8ca81e95e081d5a4c0dd7a7f670 +Author: Eric Sesterhenn +Date: Mon Mar 6 13:48:40 2006 -0800 + + [SPARC64]: kzalloc() conversion + + this patch converts arch/sparc64 to kzalloc usage. + Crosscompile tested with allyesconfig. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: David S. Miller + +commit f7c00338cfeef125032aa12aa8ebeacf9e117e81 +Author: David S. Miller +Date: Sun Mar 5 22:18:50 2006 -0800 + + [SPARC64]: Fix loop termination in mark_kpte_bitmap() + + If we were aligned, but didn't have at least 256MB left + to process, we would loop forever. + + Thanks to fabbione for the report and testing the fix. + + Signed-off-by: David S. Miller + +commit 74ae998772041b62e9ad420d602e4f7dbb182cd6 +Author: David S. Miller +Date: Sun Mar 5 18:26:24 2006 -0800 + + [SPARC64]: Simplify TSB insert checks. + + Don't try to avoid putting non-base page sized entries + into the user TSB. It actually costs us more to check + this than it helps. + + Eventually we'll have a multiple TSB scheme for user + processes. Once a process starts using larger pages, + we'll allocate and use such a TSB. + + Signed-off-by: David S. Miller + +commit 3cab0c3e8636d5005041aa52224f796c3a4ef872 +Author: David S. Miller +Date: Thu Mar 2 21:50:47 2006 -0800 + + [SPARC64]: More SUN4V cpu mondo bug fixing. + + This cpu mondo sending interface isn't all that easy to + use correctly... + + We were clearing out the wrong bits from the "mask" after getting + something other than EOK from the hypervisor. + + It turns out the hypervisor can just be resent the same cpu_list[] + array, with the 0xffff "done" entries still in there, and it will do + the right thing. + + So don't update or try to rebuild the cpu_list[] array to condense it. + + This requires the "forward_progress" check to be done slightly + differently, but this new scheme is less bug prone than what we were + doing before. + + Signed-off-by: David S. Miller + +commit bcc28ee0bf390df0d81cc9dafe980faef6b2771a +Author: David S. Miller +Date: Thu Mar 2 20:42:53 2006 -0800 + + [SPARC64]: Fix sun4v mna winfixup handling. + + We were clobbering a base register before we were done + using it. Fix a comment typo while we're here. + + Signed-off-by: David S. Miller + +commit c4f8ef77f941e7d89a52fad1fbe04d59397e2bd1 +Author: David S. Miller +Date: Thu Mar 2 20:28:34 2006 -0800 + + [SPARC64]: Fix mini RTC driver reading. + + Need to subtract 1900 from year and 1 from month before + giving it back to userspace. + + Signed-off-by: David S. Miller + +commit 8bcd17411643beb9a601e032d0cf1016909a81d3 +Author: David S. Miller +Date: Thu Mar 2 18:12:27 2006 -0800 + + [SPARC64]: Do not allow mapping pages within 4GB of 64-bit VA hole. + + The UltraSPARC T1 manual recommends this because the chip + could instruction prefetch into the VA hole, and this would + also make decoding certain kinds of memory access traps + more difficult (because the chip sign extends certain pieces + of trap state). + + Signed-off-by: David S. Miller + +commit 45f791eb0f03e760183d30d3f1f18dc2b8e902fe +Author: David S. Miller +Date: Wed Mar 1 22:42:18 2006 -0800 + + [SPARC64]: Fix _PAGE_EXEC handling. + + First of all, use the known _PAGE_EXEC_{4U,4V} value instead + of loading _PAGE_EXEC from memory. We either know which one + to use by context, or we can code patch the test. + + Next, we need to check executability of a PTE in the generic + TSB miss handler. + + Signed-off-by: David S. Miller + +commit 92daa77e9a829350fd3900ff58d9c69820ad0e3d +Author: David S. Miller +Date: Wed Mar 1 22:27:09 2006 -0800 + + [SPARC64]: Fix typo in SUN4V D-TLB miss handler. + + Should put FAULT_CODE_DTLB into %g3 not FAULT_CODE_ITLB. + + Signed-off-by: David S. Miller + +commit e22990451a6a6263250cdd267708548dfa08a8f2 +Author: David S. Miller +Date: Wed Mar 1 22:25:43 2006 -0800 + + [SPARC64]: Kill bogus function externs in asm/pgtable.h + + These are all implemented inline earlier in the file. + + Signed-off-by: David S. Miller + +commit 8ba706a95bb92c3b14b812f6d507890336d19136 +Author: David S. Miller +Date: Wed Mar 1 17:32:46 2006 -0800 + + [SPARC64]: Add mini-RTC driver for Starfire and SUN4V. + + Signed-off-by: David S. Miller + +commit b830ab665ad96c6b20d51a89b35cbc09ab5a2c29 +Author: David S. Miller +Date: Tue Feb 28 15:10:26 2006 -0800 + + [SPARC64]: Fix bugs in SUN4V cpu mondo dispatch. + + There were several bugs in the SUN4V cpu mondo dispatch code. + + In fact, if we ever got a EWOULDBLOCK or other error from + the hypervisor call, we'd potentially send a cpu mondo multiple + times to the same cpu and even worse we could loop until the + timeout resending the same mondo over and over to such cpus. + + So let's bulletproof this thing as follows: + + 1) Implement cpu_mondo_send() and cpu_state() hypervisor calls + in arch/sparc64/kernel/entry.S, add prototypes to asm/hypervisor.h + + 2) Don't build and update the cpulist using inline functions, this + was causing the cpu mask to not get updated in the caller. + + 3) Disable interrupts during the entire mondo send, otherwise our + cpu list and/or mondo block could get overwritten if we take + an interrupt and do a cpu mondo send on the current cpu. + + 4) Check for all possible error return types from the cpu_mondo_send() + hypervisor call. In particular: + + HV_EOK) Our work is done, all cpus have received the mondo. + HV_CPUERROR) One or more of the cpus in the cpu list we passed + to the hypervisor are in error state. Use cpu_state() + calls over the entries in the cpu list to see which + ones. Record them in "error_mask" and report this + after we are done sending the mondo to cpus which are + not in error state. + HV_EWOULDBLOCK) We need to keep trying. + + Any other error we consider fatal, we report the event and exit + immediately. + + 5) We only timeout if forward progress is not made. Forward progress + is defined as having at least one cpu get the mondo successfully + in a given cpu_mondo_send() call. Otherwise we bump a counter + and delay a little. If the counter hits a limit, we signal an + error and report the event. + + Also, smp_call_function_mask() error handling reports the number + of cpus incorrectly. + + Signed-off-by: David S. Miller + +commit aac0aadf09b98ba36eab0bb02a560ebcb82ac39f +Author: David S. Miller +Date: Mon Feb 27 17:56:51 2006 -0800 + + [SPARC64]: Fix bugs in SMP TLB context version expiration handling. + + 1) We must flush the TLB, duh. + + 2) Even if the sw context was seen to be valid, the local cpu's + hw context can be out of date, so reload it unconditionally. + + Signed-off-by: David S. Miller + +commit 6889331a1260e42b0275f42c13d6342d6cc1a03d +Author: David S. Miller +Date: Sun Feb 26 23:09:37 2006 -0800 + + [SPARC64]: Fix indexing into kpte_linear_bitmap. + + Need to shift back up by 3 bits to get 8-byte entry + index. + + Signed-off-by: David S. Miller + +commit 97c4b6f95afadea5846b78ce589d25de2a245c56 +Author: David S. Miller +Date: Sun Feb 26 20:37:41 2006 -0800 + + [SPARC64]: Use 13-bit context size always. + + We no longer have the problems that require using the smaller + sizes. + + Signed-off-by: David S. Miller + +commit 7a591cfe4efef8a232e4938d44ae6693b319f6d7 +Author: David S. Miller +Date: Sun Feb 26 19:44:50 2006 -0800 + + [SPARC64]: Avoid dcache-dirty page state management on sun4v. + + It is totally wasted work, since we have no D-cache aliasing + issues on sun4v. + + Signed-off-by: David S. Miller + +commit 2a3a5f5ddbefde498e87f10924d4bf741c5bf37f +Author: David S. Miller +Date: Sun Feb 26 19:31:49 2006 -0800 + + [SPARC64]: Bulletproof hypervisor TLB flushing. + + Check TLB flush hypervisor calls for errors and report them. + + Pass HV_MMU_ALL always for now, we can add back the optimization + to avoid the I-TLB flush later. + + Always explicitly page align the virtual address arguments. + + Signed-off-by: David S. Miller + +commit 6cc80cfab8b2ce1919ad5862a43f6b7bcf163c80 +Author: David S. Miller +Date: Sun Feb 26 14:51:29 2006 -0800 + + [SPARC64]: Report mondo error correctly in hypervisor_xcall_deliver(). + + It's in "arg0" not "func". + + Signed-off-by: David S. Miller + +commit 36344762396ca868d6076c41a84bda25f1ed9d3c +Author: David S. Miller +Date: Sat Feb 25 17:16:29 2006 -0800 + + [SPARC64]: Niagara optimized XOR functions for RAID. + + Signed-off-by: David S. Miller + +commit c4e9249b1924118693f298ee8d38f7fe43587af3 +Author: Andrew Morton +Date: Fri Feb 24 13:21:18 2006 -0800 + + [SPARC64]: Fix binfmt_aout32.c build. + + Signed-off-by: Andrew Morton + Signed-off-by: David S. Miller + +commit 77b838fa1ef0ab02f75afc09834c60d87b86772f +Author: David S. Miller +Date: Thu Feb 23 21:40:15 2006 -0800 + + [SPARC64]: destroy_context() needs to disable interrupts. + + get_new_mmu_context() can be invoked from interrupt context + now for the new SMP version wrap handling. + + So disable interrupt while taking ctx_alloc_lock in destroy_context() + so we don't deadlock. + + Signed-off-by: David S. Miller + +commit a0663a79ad4faebe1db4a56e2e767b120b12333a +Author: David S. Miller +Date: Thu Feb 23 14:19:28 2006 -0800 + + [SPARC64]: Fix TLB context allocation with SMT style shared TLBs. + + The context allocation scheme we use depends upon there being a 1<-->1 + mapping from cpu to physical TLB for correctness. Chips like Niagara + break this assumption. + + So what we do is notify all cpus with a cross call when the context + version number changes, and if necessary this makes them allocate + a valid context for the address space they are running at the time. + + Stress tested with make -j1024, make -j2048, and make -j4096 kernel + builds on a 32-strand, 8 core, T2000 with 16GB of ram. + + Signed-off-by: David S. Miller + +commit 074d82cf688fe2dfa7ba4a2317c56f62d13fb522 +Author: David S. Miller +Date: Thu Feb 23 02:28:25 2006 -0800 + + [SPARC64]: Put syscall tables after trap table. + + Otherwise with too much stuff enabled in the kernel config + we can end up with an unaligned trap table. + + Signed-off-by: David S. Miller + +commit b2bef4424cb4522f53e34d98d3deb0916478338b +Author: David S. Miller +Date: Thu Feb 23 01:55:55 2006 -0800 + + [SPARC64]: Export _PAGE_E and _PAGE_CACHE to modules. + + SBUS flash driver needs it. + + Noticed by Fabbione. + + Signed-off-by: David S. Miller + +commit 0f05da6d577b80eb00f15994c86e4812ae60f1b9 +Author: David S. Miller +Date: Wed Feb 22 16:20:11 2006 -0800 + + [SPARC64]: Fix %tstate ASI handling in start_thread{,32}() + + Niagara helps us find a ancient bug in the sparc64 port :-) + + The ASI_* values are plain constant defines, thus signed 32-bit + on sparc64. To put shift this into the regs->tstate value we were + doing or'ing "(ASI_PNF << 24)" into there. + + ASI_PNF is 0x82 and shifted left by 24 makes that topmost bit the + sign bit in a 32-bit value. This would get sign extended to 64-bits + and thus corrupt the top-half of the reg->tstate value. + + This never caused problems in pre-Niagara cpus because the only thing + up there were the condition code values. But Niagara has the global + register level field, and this all 1's value is illegal there so + Niagara gives an illegal instruction trap due to this bug. + + I'm pretty sure this bug is about as old as the sparc64 port itself. + + This also points out that we weren't setting ASI_PNF for 32-bit tasks. + We should, so fix that while we're here. + + Signed-off-by: David S. Miller + +commit fc504928677049f0ad3f1fd4e0bb3908172df8f3 +Author: David S. Miller +Date: Wed Feb 22 16:15:45 2006 -0800 + + [SPARC64]: Drop %gl to 0 before re-enabling PSTATE_IE in rtrap + + If we take a window fault, on SUN4V set %gl to zero before we + turn PSTATE_IE back on in %pstate. Otherwise if we take an + interrupt we'll end up with corrupt register state. + + Signed-off-by: David S. Miller + +commit d7744a09504d5ae84edc8289a02254e1f2102410 +Author: David S. Miller +Date: Tue Feb 21 22:31:11 2006 -0800 + + [SPARC64]: Create a seperate kernel TSB for 4MB/256MB mappings. + + It can map all of the linear kernel mappings with zero TSB hash + conflicts for systems with 16GB or less ram. In such cases, on + SUN4V, once we load up this TSB the first time with all the + mappings, we never take a linear kernel mapping TLB miss ever + again, the hypervisor handles them all. + + Signed-off-by: David S. Miller + +commit 9cc3a1ac9a819cadff05ca37bb7f208013a22035 +Author: David S. Miller +Date: Tue Feb 21 20:51:13 2006 -0800 + + [SPARC64]: Make use of Niagara 256MB PTEs for kernel mappings. + + We use a bitmap, one bit for every 256MB of memory. If the + bit is set we can use a 256MB PTE for linear mappings, else + we have to use a 4MB PTE. + + SUN4V support is there, and we can very easily add support + for Panther cpu 256MB PTEs in the future. + + Signed-off-by: David S. Miller + +commit 30c91d576e9ea41c963e7f28643219bda73b0ddc +Author: David S. Miller +Date: Tue Feb 21 16:55:23 2006 -0800 + + [SPARC64]: Use sun4v_cpu_idle() in cpu_idle() on SUN4V. + + We have to turn off the "polling nrflag" bit when we sleep + the cpu like this, so that we'll get a cross-cpu interrupt + to wake the processor up from the yield. + + We also have to disable PSTATE_IE in %pstate around the yield + call and recheck need_resched() in order to avoid any races. + + Signed-off-by: David S. Miller + +commit 689126a48a4cf7efc77d0d090b2db4e8927d7819 +Author: David S. Miller +Date: Tue Feb 21 16:53:26 2006 -0800 + + [SPARC64] math-emu: Delete debugging printk left by previous commit. + + Signed-off-by: David S. Miller + +commit 6f5374c91f0dd1d92408ed44c066c32bcce5ce69 +Author: David S. Miller +Date: Tue Feb 21 15:42:09 2006 -0800 + + [SPARC64]: Add sun4v_cpu_yield(). + + Signed-off-by: David S. Miller + +commit 1bd0cd74d102a527b2a72907698d73fad4b82cbd +Author: David S. Miller +Date: Tue Feb 21 15:41:01 2006 -0800 + + [SPARC64]: Kill cpudata->idle_volume. + + Set, but never used. + + We used to use this for dynamic IRQ retargetting, but that + code died a long time ago. + + Signed-off-by: David S. Miller + +commit 8ca2557c48000daa8183b07d83f582a597705ebe +Author: David S. Miller +Date: Tue Feb 21 14:29:42 2006 -0800 + + [SPARC64]: Niagara optimized memset/bzero/clear_user. + + Signed-off-by: David S. Miller + +commit d371c0c17466b7e7bb4d395f96aa885a23df1073 +Author: David S. Miller +Date: Tue Feb 21 13:59:47 2006 -0800 + + [SPARC64]: Pass multiple CPUs at once to hypervisor cross-call API. + + Signed-off-by: David S. Miller + +commit c79f76777d678ba454aa727800e1386a1fd1f2e8 +Author: David S. Miller +Date: Mon Feb 20 22:56:01 2006 -0800 + + [SPARC64]: Args to SUNW,set-trap-table are 64-bit. + + They were getting truncated to 32-bit and this is very bad + when your MMU fault status area is in physical memory above + 4GB on SUN4V. + + Signed-off-by: David S. Miller + +commit 4e74ae800bafe79d4aaa529bc5d52425757c0115 +Author: David S. Miller +Date: Mon Feb 20 16:02:24 2006 -0800 + + [SPARC64]: Handle unimplemented FPU square-root on Niagara. + + The math-emu code only expects unfinished fpop traps when + emulating FPU sqrt instructions on pre-Niagara chips. + On Niagara we can get unimplemented fpop, so handle that. + + Signed-off-by: David S. Miller + +commit f5deb807b8cd5c8fe48cbb4f7f5dd70cfbdb1178 +Author: David S. Miller +Date: Mon Feb 20 14:39:16 2006 -0800 + + [SPARC] serial: Make sure sysfs nodes get named correctly. + + Because we play this trick where we use ttyS? in increasing minor + numbers for different sunfoo.c drivers, we have to inform the TTY + layer of this. + + Do so by setting the tty->name_base appropriately. + + Probably there should be a generic way to do this in the serial core, + but for now... + + Signed-off-by: David S. Miller + +commit 55555633bd4e72534b53c50525817259435e18df +Author: David S. Miller +Date: Mon Feb 20 01:50:09 2006 -0800 + + [SPARC64]: Typo in sun4v_data_access_exception log message. + + Should be "Dax" not "Iax". + + Signed-off-by: David S. Miller + +commit d82965c16781a7c5b8508c3784ba10bbeef34ff4 +Author: David S. Miller +Date: Mon Feb 20 01:42:51 2006 -0800 + + [SPARC64]: Handle zero-length map requests in pci_sun4v.c + + By simply changing the do-while loop into a plain + while loop. + + Signed-off-by: David S. Miller + +commit abf3b7bd89c11492b145e338913c0b511084cff7 +Author: David S. Miller +Date: Mon Feb 20 01:09:01 2006 -0800 + + [SPARC64]: Kill stray PGLIST_NENTS check in pci_sun4v.c + + I forgot to remove the one in pci_4v_map_sg() during the + iommu batching commit. + + Signed-off-by: David S. Miller + +commit 39334a4b2c52a06960c480b1a4a05f5d5375c8bf +Author: David S. Miller +Date: Mon Feb 20 00:54:09 2006 -0800 + + [SPARC64]: Fix typo in dump_tl1_traplog() + + Actually make use of the 'limit' we compute. + + Signed-off-by: David S. Miller + +commit 37133c006cd3ff4f4dccb3df88efc446863b515e +Author: David S. Miller +Date: Mon Feb 20 00:36:57 2006 -0800 + + [SPARC64]: Disable smp_report_regs() for now. + + It's extremely noisy and causes much grief on slow + consoles with large numbers of cpus. + + We'll have to provide this some saner way in order + to re-enable this. + + Signed-off-by: David S. Miller + +commit 6a32fd4d0d42258004631dc0ac90665382a2e5dc +Author: David S. Miller +Date: Sun Feb 19 22:21:32 2006 -0800 + + [SPARC64]: Remove PGLIST_NENTS PCI IOMMU mapping limitation on SUN4V. + + Use a batching queue system for IOMMU mapping setup, + with a page sized batch. + + Signed-off-by: David S. Miller + +commit 04d74758eb7dce6dfb7d2101315827c267ffefc4 +Author: David S. Miller +Date: Sat Feb 18 17:06:28 2006 -0800 + + [SPARC64]: Use KERN_EMERG in dump_tl1_traplog() and sun4v TLB errors. + + We're about to seriously die in these cases so it is important + that the messages make it to the console. + + Signed-off-by: David S. Miller + +commit 24c523ecc667dfeb28ef969cfabc531709bfffb8 +Author: David S. Miller +Date: Sat Feb 18 16:39:39 2006 -0800 + + [SPARC64]: Fix unaligned access winfxup handling on SUN4V. + + Another case where we have to force ourselves into global register + level one. Also make sure the arguments passed to sun4v_do_mna() are + correct. + + This area actually needs some more work, for example spill fixup is + not necessarily going to do the right thing for this case. + + Signed-off-by: David S. Miller + +commit 6cc200db9500f53c6b884ea5d5bc7eabae7f5d5c +Author: David S. Miller +Date: Sat Feb 18 16:36:39 2006 -0800 + + [SPARC64]: Set %gl to 1 in kvmap_itlb_longpath on SUN4V. + + Just like kvmap_dtlb_longpath we have to force the + global register level to one in order to mimick the + PSTATE_MG --> PSTATE_AG trasition done on SUN4U. + + Signed-off-by: David S. Miller + +commit 843dfb4d99c41116601694f314092b3b6c4511f4 +Author: David S. Miller +Date: Sat Feb 18 16:32:22 2006 -0800 + + [SPARC64] sunhv: Fix locking in sunhv_start_tx() + + Caller takes the lock already. + + Also, fixup the poll loop in sunhv_break_ctl(). Just + like in console write, we udelay(2) and use a loop + limit of 1000000 iterations. + + Signed-off-by: David S. Miller + +commit 11fc04e46a892563d0a9bb98560339f1672e3213 +Author: David S. Miller +Date: Sat Feb 18 16:30:59 2006 -0800 + + [SPARC64]: Put sunhv.o earliest in the list of sparc serial drivers. + + So that it will show up as /dev/ttyS0. Otherwise things like + installers will try to run on whatever serial port gets probed + first. + + Signed-off-by: David S. Miller + +commit 0f15952ac8641bde1045162ffd4a7b474cc318b0 +Author: David S. Miller +Date: Sat Feb 18 12:43:16 2006 -0800 + + [SPARC64]: Export a PAGE_SHARED symbol. + + For drivers/media/*, noticed by Fabbione. + + Signed-off-by: David S. Miller + +commit f6c1fe529217788f095f6953c2b66bec1196ad3d +Author: Fabio M. Di Nitto +Date: Sat Feb 18 00:32:31 2006 -0800 + + [SPARC64] Fix build if CONFIG_HUGETLB_PAGE is not set + + Signed-off-by: Fabio M. Di Nitto + Signed-off-by: David S. Miller + +commit 8b234274418d6d79527c4ac3a72da446ca4cb35f +Author: David S. Miller +Date: Fri Feb 17 18:01:02 2006 -0800 + + [SPARC64]: More TLB/TSB handling fixes. + + The SUN4V convention with non-shared TSBs is that the context + bit of the TAG is clear. So we have to choose an "invalid" + bit and initialize new TSBs appropriately. Otherwise a zero + TAG looks "valid". + + Make sure, for the window fixup cases, that we use the right + global registers and that we don't potentially trample on + the live global registers in etrap/rtrap handling (%g2 and + %g6) and that we put the missing virtual address properly + in %g5. + + Signed-off-by: David S. Miller + +commit 7adb37fe80d06cbd40de9b225b12a3a9ec40b6bb +Author: David S. Miller +Date: Fri Feb 17 15:07:43 2006 -0800 + + [SPARC64]: Don't do anything in flush_ptrace_access() on SUN4V. + + Signed-off-by: David S. Miller + +commit 6c8927c9634e8a1bc95d5291c55205707f9fa40a +Author: David S. Miller +Date: Fri Feb 17 14:58:02 2006 -0800 + + [SPARC64]: Fix some SUN4V TLB handling bugs. + + 1) Add error return checking for TLB load hypervisor + calls. + + 2) Don't fallthru to dtlb tsb miss handler from itlb tsb + miss handler, oops. + + 3) On window fixups, propagate fault information to fixup + handler correctly. + + Signed-off-by: David S. Miller + +commit 12e126ad229abc718d05600027fcd5794c1e31e5 +Author: David S. Miller +Date: Fri Feb 17 14:40:30 2006 -0800 + + [SPARC64]: Check for errors in hypervisor_tlb_lock(). + + Signed-off-by: David S. Miller + +commit 52845cdb3b9c4c5fe1c2e295bd14457ff8dd6bcc +Author: David S. Miller +Date: Sun Feb 26 23:32:33 2006 -0800 + + [SPARC64]: Init boot cpu's trap_block[] before paging_init() + + It must be ready when we take over the trap table. + + Signed-off-by: David S. Miller + +commit 3763be32d591cacf808c36390a8af3f2784cde5f +Author: David S. Miller +Date: Fri Feb 17 12:33:13 2006 -0800 + + [SPARC64]: Define ARCH_HAS_READ_CURRENT_TIMER. + + This gives more consistent bogomips and delay() semantics, + especially on sun4v. It gives weird looking values though... + + Signed-off-by: David S. Miller + +commit 3f19a84e39619053f117bd5bb9183c5bfea7db45 +Author: David S. Miller +Date: Fri Feb 17 12:03:20 2006 -0800 + + [SPARC64]: Set associativity of kernel TSB descriptor correctly. + + It should be 1, not 0. + + Signed-off-by: David S. Miller + +commit c857e3fdbc306e95fdcaad1d8f3ea6bc8e7eea99 +Author: David S. Miller +Date: Fri Feb 17 10:35:23 2006 -0800 + + [SPARC64]: __bzero_noasi --> __clear_user + + Signed-off-by: David S. Miller + +commit 46f860471483dce9ba5ce682a69c61cbceb54e52 +Author: David S. Miller +Date: Fri Feb 17 10:28:24 2006 -0800 + + [SPARC64]: Put SUN4V ITSB miss into correct trap table entry. + + It's 0x9 not 0xb. + + Signed-off-by: David S. Miller + +commit 97532f598273d03cab8bb5206669b6fdd654eb63 +Author: David S. Miller +Date: Fri Feb 17 10:14:38 2006 -0800 + + [SPARC64]: Add HWCAP_SPARC_BLKINIT elf capability flag for Niagara. + + Signed-off-by: David S. Miller + +commit 3b3ab2eb9cf07ef1bc7a676c19aab994adb41a87 +Author: David S. Miller +Date: Fri Feb 17 09:54:42 2006 -0800 + + [SPARC64]: Use phys tsb address in tsb_insert() in SUN4V. + + Signed-off-by: David S. Miller + +commit ebd8c56c5ae154e2c6cfb7453a76a4e7265b2377 +Author: David S. Miller +Date: Fri Feb 17 08:38:06 2006 -0800 + + [SPARC64]: Fix uniprocessor IRQ targetting on SUN4V. + + We need to use the real hardware processor ID when + targetting interrupts, not the "define to 0" thing + the uniprocessor build gives us. + + Also, fill in the Node-ID and Agent-ID fields properly + on sun4u/Safari. + + Signed-off-by: David S. Miller + +commit 101d5c18a928ef82b6c7bf99a9eaa536b5ccf593 +Author: David S. Miller +Date: Fri Feb 17 08:20:18 2006 -0800 + + [SPARC64]: Fix PCI IRQ probing regression. + + If the top-level cnode had multi entries in it's "reg" + property, we'd fail. The buffer wasn't large enough in + such cases. + + Signed-off-by: David S. Miller + +commit 72aff53f1fe74153eccef303ab2f79de888d248c +Author: David S. Miller +Date: Fri Feb 17 01:29:17 2006 -0800 + + [SPARC64]: Get SUN4V SMP working. + + The sibling cpu bringup is extremely fragile. We can only + perform the most basic calls until we take over the trap + table from the firmware/hypervisor on the new cpu. + + This means no accesses to %g4, %g5, %g6 since those can't be + TLB translated without our trap handlers. + + In order to achieve this: + + 1) Change sun4v_init_mondo_queues() so that it can operate in + several modes. + + It can allocate the queues, or install them in the current + processor, or both. + + The boot cpu does both in it's call early on. + + Later, the boot cpu allocates the sibling cpu queue, starts + the sibling cpu, then the sibling cpu loads them in. + + 2) init_cur_cpu_trap() is changed to take the current_thread_info() + as an argument instead of reading %g6 directly on the current + cpu. + + 3) Create a trampoline stack for the sibling cpus. We do our basic + kernel calls using this stack, which is locked into the kernel + image, then go to our proper thread stack after taking over the + trap table. + + 4) While we are in this delicate startup state, we put 0xdeadbeef + into %g4/%g5/%g6 in order to catch accidental accesses. + + 5) On the final prom_set_trap_table*() call, we put &init_thread_union + into %g6. This is a hack to make prom_world(0) work. All that + wants to do is restore the %asi register using + get_thread_current_ds(). + + Longer term we should just do the OBP calls to set the trap table by + hand just like we do for everything else. This would avoid that silly + prom_world(0) issue, then we can remove the init_thread_union hack. + + Signed-off-by: David S. Miller + +commit 19a0d585e80e84b54bb9bf120bf0c826045dd3dd +Author: David S. Miller +Date: Fri Feb 17 01:17:21 2006 -0800 + + [SPARC64]: Disable smp_report_regs() for now. + + For 32 cpus and a slow console, it just wedges the + machine especially with DETECT_SOFTLOCKUP enabled. + + Signed-off-by: David S. Miller + +commit 6154f94f0e1b3984ad2d0bcda586bc8946398b8a +Author: David S. Miller +Date: Thu Feb 16 23:01:10 2006 -0800 + + [SPARC64]: Rewrite pci_intmap_match(). + + The whole algorithm was wrong. What we need to do is: + + 1) Walk each PCI bus above this device on the path to the + PCI controller nexus, and for each: + a) If interrupt-map exists, apply it, record IRQ controller node + b) Else, swivel interrupt number using PCI_SLOT(), use PCI bus + parent OBP node as controller node + c) Walk up to "controller node" until we hit the first PCI bus + in this domain, or "controller node" is the PCI controller + OBP node + 2) If we walked to PCI controller OBP node, we're done. + 3) Else, apply PCI controller interrupt-map to interrupt. + + There is some stuff that needs to be checked out for ebus and + isa, but the PCI part is good to go. + + Signed-off-by: David S. Miller + +commit 14f6689cbb3ec2c194bd770fbe0d6e2d90eb6760 +Author: David S. Miller +Date: Thu Feb 16 20:44:25 2006 -0800 + + [SPARC64]: Don't set interrupt state to IDLE in enable_irq(). + + We'll lose events that way. + + Signed-off-by: David S. Miller + +commit af02bec66294c76fba181c665c68a31fd4392020 +Author: David S. Miller +Date: Thu Feb 16 16:23:45 2006 -0800 + + [SPARC64]: Fix return from trap on SUN4V. + + We need to set the global register set _AND_ disable + PSTATE_IE in %pstate. The original patch sequence was + leaving PSTATE_IE enabled when returning to kernel mode, + oops. + + This fixes the random register corruption being seen + on SUN4V. + + Signed-off-by: David S. Miller + +commit 4ff7ac417d4b628c23df3ae8301d17e29e6e8f16 +Author: David S. Miller +Date: Thu Feb 16 16:22:26 2006 -0800 + + [SPARC64]: Add GET_GL_GLOBAL() macro for SUN4V. + + So we can read the %gl register for debugging. + + Signed-off-by: David S. Miller + +commit 22780e23c629303474797d17e7f09ad7721ef55b +Author: David S. Miller +Date: Thu Feb 16 14:37:05 2006 -0800 + + [SPARC64]: Set dummy bucket->{imap,iclr} unique on SUN4V. + + So that free_irq() disable's the IRQ correctly. + + Signed-off-by: David S. Miller + +commit 94f8762db9a80ed34252e9fe5fa38be87bb7826b +Author: David S. Miller +Date: Thu Feb 16 14:26:53 2006 -0800 + + [SPARC64]: Add sun4v_cpu_qconf() hypervisor call. + + Call it from register_one_mondo(). + + Signed-off-by: David S. Miller + +commit bc45e32e0fbf661d0c5c5b9c981bc0fe5da4901f +Author: David S. Miller +Date: Sun Mar 5 16:46:58 2006 -0800 + + [SPARC]: Kill off these __put_user_ret things. + + They are bogus and haven't been referenced in years. + + Signed-off-by: David S. Miller + +commit 8e42550c683b2ad4869fc4fa438204841fd9b7cc +Author: David S. Miller +Date: Thu Feb 16 02:18:49 2006 -0800 + + [SPARC64]: do_fptrap needs to load the thread reg into %g6. + + Signed-off-by: David S. Miller + +commit 9b6b46470cc1c52f6917b0cd8b7cf4b5cbc5acf6 +Author: David S. Miller +Date: Thu Feb 16 01:45:49 2006 -0800 + + [SPARC64]: Fix bogus call to sun4v_mna in winfixup code. + + The C function is named sun4v_do_mna not sun4v_mna. + + Signed-off-by: David S. Miller + +commit 3d6395cb770b0db9135a853b1742418c99ed2148 +Author: David S. Miller +Date: Thu Feb 16 01:41:41 2006 -0800 + + [SPARC64]: Fix tl1 trap state capture/dump on SUN4V. + + No trap levels above 2 in privileged mode on SUN4V. + + Signed-off-by: David S. Miller + +commit 135066a21129760e44a51a7ef31d8c861f8ddace +Author: David S. Miller +Date: Thu Feb 16 00:42:21 2006 -0800 + + [SPARC64] sunhv: Support SYSRQ properly. + + By calling uart_handle_break(). We'll still do the + "sun_do_break()" handling if the user gives two + breaks in a row. + + We should probably do this in the other Sparc serial + drivers too. + + Signed-off-by: David S. Miller + +commit e7a0453ef82c1433a35ab82d874296fff68f3639 +Author: David S. Miller +Date: Wed Feb 15 22:25:27 2006 -0800 + + [SPARC64] PCI: Size TSB correctly on SUN4V. + + Forgot to multiply by 8 * 1024, oops. Correct the size constant when + the virtual-dma arena is 2GB in size, it should bet 256 not 128. + + Finally, log some info about the TSB at probe time. + + Signed-off-by: David S. Miller + +commit db33f9bc09aaf68db7866374f9219c676787b4a2 +Author: David S. Miller +Date: Wed Feb 15 21:56:49 2006 -0800 + + [SPARC64]: Fix OOPS on sunhv interrupts. + + Until the uart is openned, port->info is NULL. + + Also, init the port->irq properly and give a non-zero + port->membase so that the uart device reporting is done. + + Signed-off-by: David S. Miller + +commit c7f81d42d3d07115a7b92e36ade0f3167f75bc55 +Author: David S. Miller +Date: Wed Feb 15 21:21:17 2006 -0800 + + [SPARC64]: Don't use ASI_QUAD_LDD_PHYS on SUN4V. + + Need to use ASI_QUAD_LDD_PHYS_4V instead. + + Signed-off-by: David S. Miller + +commit a7b31bac691668a60da8b9892124b7da408e0a0e +Author: David S. Miller +Date: Wed Feb 15 21:16:42 2006 -0800 + + [SPARC64]: Do not write garbage into %pstate in tsb_context_switch(). + + For SUN4V, we were clobbering %o5 to do the hypervisor call. + This clobbers the saved %pstate value and we end up writing + garbage into that register as a result. Oops. + + Signed-off-by: David S. Miller + +commit de635d833f61ce0f2ad0b3431e6a3323a1c4fed5 +Author: David S. Miller +Date: Wed Feb 15 21:01:31 2006 -0800 + + [SPARC64]: Fix flush_tsb_user() on SUN4V. + + Needs to use physical addressing just like cheetah_plus. + + Signed-off-by: David S. Miller + +commit 1daef08a12157923d90ec7a47ead8a97e0d243cc +Author: David S. Miller +Date: Wed Feb 15 20:35:10 2006 -0800 + + [SPARC64]: Fix comment typo in __flush_tlb_kernel_range. + + Signed-off-by: David S. Miller + +commit 9d29a3fafd06534ad73427fee3c968c094d05b9b +Author: David S. Miller +Date: Wed Feb 15 19:48:54 2006 -0800 + + [SPARC64]: Decode virtual-devices interrupts correctly. + + Need to translate through the interrupt-map{,-mask] properties. + + Signed-off-by: David S. Miller + +commit 7890f794e0e6f7dce2a5f4a03ba64b0b3fe306bd +Author: David S. Miller +Date: Wed Feb 15 02:26:54 2006 -0800 + + [SPARC64]: Add prom_{start,stop}cpu_cpuid(). + + Use prom_startcpu_cpuid() on SUN4V instead of prom_startcpu(). + + We should really test for "SUNW,start-cpu-by-cpuid" presence + and use it if present even on SUN4U. + + Signed-off-by: David S. Miller + +commit 63c2a0e598c2fa769a08a6e9ad124bf270b4436e +Author: David S. Miller +Date: Wed Feb 15 01:19:56 2006 -0800 + + [SPARC64]: Fix pci_intmap_match(). + + When crawling up the PCI bus chain, stop at the first node + that has an interrupt-map property before we hit the root. + + Also, if we use a bus interrupt-{map,mask} do not forget to + update the 'intmask' pointer as we do for the 'intmap' pointer. + + Signed-off-by: David S. Miller + +commit ab66a50e31deb48b0444c248e67e5aa3217efda5 +Author: David S. Miller +Date: Wed Feb 15 01:18:19 2006 -0800 + + [SPARC64]: Two IRQ handling fixes. + + On SUN4V, force IRQ state to idle in enable_irq(). However, + I'm still not sure this is %100 correct. + + Call add_interrupt_randomness() on SUN4V too. + + Signed-off-by: David S. Miller + +commit 7c3514e4501565d76f9e4dec43e1fc17389f4811 +Author: David S. Miller +Date: Wed Feb 15 00:41:47 2006 -0800 + + [SPARC64]: Fixup TSTATE layout diagram in asm/pstate.h + + Signed-off-by: David S. Miller + +commit f03b8a546868fcf43feb455b69b152eb867606b2 +Author: David S. Miller +Date: Wed Feb 15 00:35:50 2006 -0800 + + [SPARC64]: Use different cache sizing defaults on SUN4V. + + Signed-off-by: David S. Miller + +commit 329c68b21896eea371edbfdf305c459fb74cf9a8 +Author: David S. Miller +Date: Tue Feb 14 22:20:41 2006 -0800 + + [SPARC64]: Make lack of interrupt-map-* a fatal error on SUN4V. + + Signed-off-by: David S. Miller + +commit abd92b2d21899d42a60c3c1ac995768c76774608 +Author: David S. Miller +Date: Tue Feb 14 22:20:13 2006 -0800 + + [SPARC64]: Fix sun4v_intr_setenabled() return value check in enable_irq(). + + Signed-off-by: David S. Miller + +commit 355db99860a1d77d77cd2fc66e2f5ab58f3e0995 +Author: David S. Miller +Date: Tue Feb 14 16:44:39 2006 -0800 + + [SPARC64]: Explicitly init *nregs to 0 in find_device_prom_node(). + + Signed-off-by: David S. Miller + +commit 987b6de7102cf2f583733efd726ae920a1335519 +Author: David S. Miller +Date: Tue Feb 14 16:42:11 2006 -0800 + + [SPARC64]: Restrict PCI bus scanning on SUN4V. + + On the PBM's first bus number, only allow device 0, function 0, to be + poked at with PCI config space accesses. + + For some reason, this single device responds to all device numbers. + + Also, reduce the verbiage of the debugging log printk's for PCI cfg + space accesses in the SUN4V PCI controller driver, so that it doesn't + overwhelm the slow SUN4V hypervisor console. + + Signed-off-by: David S. Miller + +commit 9f8a5b843fc47ea150525f912574677483e1a5ac +Author: David S. Miller +Date: Tue Feb 14 16:39:22 2006 -0800 + + [SPARC64]: Fix C-function name called by sun4v_mna trap code. + + The trap code was calling itself :-) + + Signed-off-by: David S. Miller + +commit fbf1c68eaf8a945c8617e355d8d6bd2fa09109d2 +Author: David S. Miller +Date: Tue Feb 14 16:37:13 2006 -0800 + + [SPARC64]: Don't printk() any messaages in sun4v_build_irq(). + + It just clutters up the log. + + Signed-off-by: David S. Miller + +commit e7093703d912254b5667dfe851a6d0f7e664f9df +Author: David S. Miller +Date: Tue Feb 14 14:12:44 2006 -0800 + + [SPARC64]: INO is never fully specified already on SUN4V. + + Signed-off-by: David S. Miller + +commit 4a07e646c55be118442e464b7a2a9682c7131d9a +Author: David S. Miller +Date: Tue Feb 14 13:49:32 2006 -0800 + + [SPARC64]: Kill sun4v_register_fault_status() on SMP. + + That now gets done as a side effect of taking over the + trap table from OBP. + + Signed-off-by: David S. Miller + +commit 50f4f23c3bd95afc82e931254a71e7b1b3699fd2 +Author: David S. Miller +Date: Tue Feb 14 01:32:29 2006 -0800 + + [SPARC64]: Fix gcc-3.3.x warnings. + + It doesn't like const variables being passed into + "i" constraing asm operations. It's a bug, but + there is nothing we can really do but work around + it. + + Based upon a report from Andrew Morton. + + Signed-off-by: David S. Miller + +commit 3af6e01e9acfb786c5dd2862f57f206b0b3cb889 +Author: David S. Miller +Date: Tue Feb 14 00:55:49 2006 -0800 + + [SPARC64]: arch/sparc64/kernel/trampoline.S needs asm/cpudata.h + + Signed-off-by: David S. Miller + +commit c4bea2883974a59ab7a0ac6c01d34f7ae0e8cd8e +Author: David S. Miller +Date: Mon Feb 13 22:56:27 2006 -0800 + + [SPARC64]: Make error codes available from sun4v_intr_get*(). + + And check for errors at call sites. + + Signed-off-by: David S. Miller + +commit 4bf447d6f7c2357dec8bdc24ce0fcffd71cc29c0 +Author: David S. Miller +Date: Mon Feb 13 22:37:32 2006 -0800 + + [SPARC64]: Pass correct ino to sun4v_intr_*(). + + Signed-off-by: David S. Miller + +commit a615fea48be4eada94986d63e3e8ee5563121649 +Author: David S. Miller +Date: Mon Feb 13 22:37:07 2006 -0800 + + [SPARC64]: Use TRAP_LOAD_IRQ_WORK() in sun4v device mondo handler. + + Signed-off-by: David S. Miller + +commit 7c8f486ae7fe90d7bb99a70a42d71c9a40688ec2 +Author: David S. Miller +Date: Mon Feb 13 21:50:27 2006 -0800 + + [SPARC64]: Fix IOMMU mapping on sun4v. + + We should dynamically allocate the per-cpu pglist not use + an in-kernel-image datum, since __pa() does not work on + such addresses. + + Also, consistently use "u32" for devhandle. + + Signed-off-by: David S. Miller + +commit 87bdc367ca1a7e16c29a6bff6b1e8fe179e27f90 +Author: David S. Miller +Date: Mon Feb 13 21:36:30 2006 -0800 + + [SPARC64]: Trim down sun4v IRQ translation kernel log message. + + Signed-off-by: David S. Miller + +commit d5a2aa241aa0babf382d42d6033b30a5112e4c1e +Author: David S. Miller +Date: Mon Feb 13 21:28:40 2006 -0800 + + [SPARC64] sunhv: Bug fixes. + + Add udelay to polling console write loop, and increment + the loop limit. + + Name the device "ttyHV" and pass that to add_preferred_console() + when we're using hypervisor console. + + Kill sunhv_console_setup(), it's empty. + + Handle the case where we don't want to use hypervisor console. + (ie. we have a head attached to a sun4v machine) + + Signed-off-by: David S. Miller + +commit 5259d5bfaf5b2953b130e9a500277a905bd37823 +Author: David S. Miller +Date: Mon Feb 13 21:15:44 2006 -0800 + + [SPARC64]: Fix comment typo in asm/hypervisor.h + + Signed-off-by: David S. Miller + +commit f4266ab45a3f08bd76c2d414a2d7a1a9dc2501c0 +Author: David S. Miller +Date: Mon Feb 13 20:43:02 2006 -0800 + + [SPARC64] sunhv: Use virtual-devices layer to get interrupt. + + Signed-off-by: David S. Miller + +commit e77227eb4e17591a6a511b9c0ff6e8ad7350c575 +Author: David S. Miller +Date: Mon Feb 13 20:42:16 2006 -0800 + + [SPARC64]: Probe virtual-devices root node on sun4v. + + This is where we learn how to get the interrupts + for things like the hypervisor console device. + + Signed-off-by: David S. Miller + +commit d5eb4004303b4dd04ec83b926b5fc2d9ceda4b2e +Author: David S. Miller +Date: Mon Feb 13 20:41:11 2006 -0800 + + [SPARC64]: Kill spurious semicolon in sun4v_pci_init(). + + Signed-off-by: David S. Miller + +commit 1ddb7c98d44b898cfe0443c1e242cebfb0479d46 +Author: David S. Miller +Date: Mon Feb 13 20:09:10 2006 -0800 + + [SPARC64]: Prevent registering wrong serial console. + + If the console is not for a particular Sun serial + controller, set the drv->cons to NULL. + + Signed-off-by: David S. Miller + +commit 10951ee61056a9f91c00c16746f2042672d7af7c +Author: David S. Miller +Date: Mon Feb 13 18:22:57 2006 -0800 + + [SPARC64]: Program IRQ registers correctly on sun4v. + + Need to use hypervisor calls instead of direct register + accesses. + + Signed-off-by: David S. Miller + +commit e3999574b48125c9bb0c95e3e9f1c696bf96c3e3 +Author: David S. Miller +Date: Mon Feb 13 18:16:10 2006 -0800 + + [SPARC64]: Generic sun4v_build_irq(). + + Signed-off-by: David S. Miller + +commit 10804828fd06a43ce964e9d9852332e7ff1507b1 +Author: David S. Miller +Date: Mon Feb 13 18:09:44 2006 -0800 + + [SPARC64]: More SUN4V PCI work. + + Get bus range from child of PCI controller root nexus. + This is actually a hack, but the PCI-E bridge sitting + at the top of the PCI tree responds to PCI config cycles + for every device number, so best to just ignore it for now. + + Preliminary PCI irq routing, needs lots of work. + + Signed-off-by: David S. Miller + +commit bf941d6cd62aa2022f0887e25e3d02c389b0bf9b +Author: David S. Miller +Date: Mon Feb 13 18:07:45 2006 -0800 + + [SPARC64]: Log faulting vaddr when bogus kernel PC detected. + + Signed-off-by: David S. Miller + +commit 6c0f402f6cc62314ef83b975f3430350dcb6055f +Author: David S. Miller +Date: Mon Feb 13 00:23:32 2006 -0800 + + [SPARC64]: Implement rest of generic interrupt hypervisor calls. + + Signed-off-by: David S. Miller + +commit 85dfa19ba92f88fa1c1482f655c7247119dfdcd5 +Author: David S. Miller +Date: Mon Feb 13 00:02:16 2006 -0800 + + [SPARC64]: Move devino_to_sysino out of pci_sun4v_asm.S + + It is not PCI specific, it is for all system interrupts. + + Signed-off-by: David S. Miller + +commit 059833eb817fec3a5a7f62fba9592749c4cebc73 +Author: David S. Miller +Date: Sun Feb 12 23:49:18 2006 -0800 + + [SPARC64]: Range check bus number in SUN4V PCI controller driver. + + It has to be somewhere in the range from pbm->pci_first_busno to + pbm->pci_last_busno, inclusive. + + Signed-off-by: David S. Miller + +commit 0b522497a176f222ae4cf7e6733a5357352224b2 +Author: David S. Miller +Date: Sun Feb 12 22:29:36 2006 -0800 + + [SPARC64]: Missing 'return' statement in sun4v_pci_init(). + + Signed-off-by: David S. Miller + +commit c26092675020ff495a16dd635bf1733215325540 +Author: David S. Miller +Date: Sun Feb 12 22:18:52 2006 -0800 + + [SPARC64]: Implement basic pci_sun4v_scan_bus(). + + Signed-off-by: David S. Miller + +commit 3833789bb2e15eb85fad296d8fb40f1437925645 +Author: David S. Miller +Date: Sun Feb 12 22:06:53 2006 -0800 + + [SPARC64]: PCI-SUN4V fixes. + + Clear top 8-bits of physical addresses in "ranges" property. + This gives the actual physical address. + + Detect PBM-A vs. PBM-B by checking bit 0x40 of the devhandle. + + Signed-off-by: David S. Miller + +commit cf627156c450cd5a0741b31f55181db3400d4887 +Author: David S. Miller +Date: Sun Feb 12 21:10:07 2006 -0800 + + [SPARC64]: Use inline patching for critical PTE operations. + + This handles the SUN4U vs SUN4V PTE layout differences + with near zero performance cost. + + Signed-off-by: David S. Miller + +commit ff02e0d26f139ad95ec3a7e94f88faccaa180dff +Author: David S. Miller +Date: Sun Feb 12 17:07:51 2006 -0800 + + [SPARC64]: Move PTE field definitions back into asm/pgtable.h + + Signed-off-by: David S. Miller + +commit 221b2fb818c307e1cb47e036a1671ca554d9cd0a +Author: David S. Miller +Date: Sat Feb 11 23:38:00 2006 -0800 + + [SPARC64]: Don't expect cfg space in PCI PBM ranges on SUN4V. + + PCI cfg space is accessed transparently through the Hypervisor and not + through direct cpu PIO operations. + + Signed-off-by: David S. Miller + +commit 6241e5cc6afe2c5b75b51e1c890df18f05838cf6 +Author: David S. Miller +Date: Sat Feb 11 23:28:40 2006 -0800 + + [SPARC64]: Fix branch signedness bug in all code patching. + + The bug that hit SUN4V TLB patching exists elsewhere. + Make sure we cure all such cases. + + Signed-off-by: David S. Miller + +commit 1a7a242c898dd131f2df005c492e9b44fb8900e0 +Author: David S. Miller +Date: Sat Feb 11 23:24:30 2006 -0800 + + [SPARC64]: Recognize "virtual-console" as input and output console device. + + Signed-off-by: David S. Miller + +commit 02fead75055246d01af56a45a9d1b311d506da3e +Author: David S. Miller +Date: Sat Feb 11 23:22:47 2006 -0800 + + [SPARC64]: Do not try to synchronize %stick registers on SUN4V. + + Writes by privileged code are not allowed. + + Signed-off-by: David S. Miller + +commit 7aa6264543f19ceea9b5f386242917296d63be05 +Author: David S. Miller +Date: Sat Feb 11 23:14:59 2006 -0800 + + [SPARC64]: Do not try to write to %tick or %stick on SUN4V. + + Writes by privileged code are disallowed. The hypervisor manages + the non-privileged bit. + + Signed-off-by: David S. Miller + +commit b5a37e96b8dc067b979e44c4e109c9bc49c2f4d8 +Author: David S. Miller +Date: Sat Feb 11 23:07:13 2006 -0800 + + [SPARC64]: Fix mondo queue allocations. + + We have to use bootmem during init_IRQ and page alloc + for sibling cpu calls. + + Also, fix incorrect hypervisor call return value + checks in the hypervisor SMP cpu mondo send code. + + Signed-off-by: David S. Miller + +commit c4bce90ea2069e5a87beac806de3090ab32128d5 +Author: David S. Miller +Date: Sat Feb 11 21:57:54 2006 -0800 + + [SPARC64]: Deal with PTE layout differences in SUN4V. + + Yes, you heard it right, they changed the PTE layout for + SUN4V. Ho hum... + + This is the simple and inefficient way to support this. + It'll get optimized, don't worry. + + Signed-off-by: David S. Miller + +commit 490384e752a43aa281ed533e9de2da36df25c337 +Author: David S. Miller +Date: Sat Feb 11 14:41:18 2006 -0800 + + [SPARC64]: Register kernel TSB with hypervisor. + + We do this right after we take over the trap table from OBP. + + Signed-off-by: David S. Miller + +commit 459b6e621e0e15315c25bac47fa7113e5818d45d +Author: David S. Miller +Date: Sat Feb 11 12:21:20 2006 -0800 + + [SPARC64]: Fix some SUN4V TLB miss bugs. + + Code patching did not sign extend negative branch + offsets correctly. + + Kernel TLB miss path needs patching and %g4 register + preservation in order to handle SUN4V correctly. + + Signed-off-by: David S. Miller + +commit fd05068d7b22b64211f9202aa67ad44b51d44242 +Author: David S. Miller +Date: Sat Feb 11 11:05:52 2006 -0800 + + [SPARC64]: Fix typo in sun4v_patch(). + + Second instruction offset is '4' not '3'. + + Signed-off-by: David S. Miller + +commit 6cebb52094baddd4c167bb5100a7cf6f7bee6910 +Author: David S. Miller +Date: Sat Feb 11 10:56:43 2006 -0800 + + [SPARC64]: Fix sun4v early bootup. + + prom_sun4v_name should be "sun4v" not "SUNW,sun4v" + + Also, this is too early to make use of the + .sun4v_Xinsn_patch code patching, so just check + things manually. + + This gets us at least to prom_init() on Niagara. + + Signed-off-by: David S. Miller + +commit 0d4bc95b9c205a7374afbe93b38d9c2757a45862 +Author: David S. Miller +Date: Sat Feb 11 10:30:41 2006 -0800 + + [SPARC64]: Fix some Niagara memcpy() bugs. + + We need to restore the %asi register properly. + For the kernel this means get_fs(), for user this + means ASI_PNF. + + Also, NGcopy_to_user.S was including U3memcpy.S instead + of NGmemcpy.S, oops :-) + + Signed-off-by: David S. Miller + +commit e92b92571c85dfa1cdc56e88566134c51ae1d12b +Author: David S. Miller +Date: Sat Feb 11 10:19:37 2006 -0800 + + [SPARC64]: Handle hypervisor case correctly in copy_tsb(). + + Signed-off-by: David S. Miller + +commit 02fd473bd4844befc74f7ca67cd60891e0a2d890 +Author: David S. Miller +Date: Sat Feb 11 02:25:21 2006 -0800 + + [SPARC64]: Add SUN4V Hypervisor Console driver. + + Since it can do things like BREAK and HUP, we implement + this as a serial uart driver. + + This still needs interrupt probing code, as I haven't figured + out how interrupts will work or be probed for on SUN4V yet. + + Signed-off-by: David S. Miller + +commit 4bdff41464c2954c6f62f849df0e73eb9fa21c65 +Author: David S. Miller +Date: Sat Feb 11 01:01:55 2006 -0800 + + [SPARC64]: Fetch bootup time of day from Hypervisor. + + Signed-off-by: David S. Miller + +commit 36a68e77c554f1ef1c206fd618e6daf82d3e38a3 +Author: David S. Miller +Date: Sat Feb 11 00:29:34 2006 -0800 + + [SPARC64]: Simplify sun4v TLB handling using macros. + + There was also a bug in sun4v_itlb_miss, it loaded the + MMU Fault Status base into %g3 instead of %g2. + + This pointed out a fast path for TSB miss processing, + since we have %g2 with the MMU Fault Status base, we + can use that to quickly load up the PGD phys address. + + Signed-off-by: David S. Miller + +commit 12eaa328f9fb2d3fcb5afb682c762690d05a3cd8 +Author: David S. Miller +Date: Fri Feb 10 15:39:51 2006 -0800 + + [SPARC64]: Use ASI_SCRATCHPAD address 0x0 properly. + + This is where the virtual address of the fault status + area belongs. + + To set it up we don't make a hypervisor call, instead + we call OBP's SUNW,set-trap-table with the real address + of the fault status area as the second argument. And + right before that call we write the virtual address into + ASI_SCRATCHPAD vaddr 0x0. + + Signed-off-by: David S. Miller + +commit 18397944642cbca7fcd4a109b43ed5b4652e95b9 +Author: David S. Miller +Date: Fri Feb 10 00:08:26 2006 -0800 + + [SPARC64]: First cut at SUN4V PCI IOMMU handling. + + Signed-off-by: David S. Miller + +commit 164c220fa3947abbada65329d168f421b461a2a7 +Author: David S. Miller +Date: Thu Feb 9 22:57:21 2006 -0800 + + [SPARC64]: Fix hypervisor call arg passing. + + Function goes in %o5, args go in %o0 --> %o5. + + Signed-off-by: David S. Miller + +commit dedacf623283cb24933ec9f7d5bf539f19173cd4 +Author: David S. Miller +Date: Thu Feb 9 22:26:34 2006 -0800 + + [SPARC64]: Add HV_PCI_TSBID() macro. + + For constructing hypervisor PCI TSB IDs. + + Signed-off-by: David S. Miller + +commit 7eae642f75e0f7fbce7c37b2dfe0641ff1e9ebfd +Author: David S. Miller +Date: Thu Feb 9 22:20:01 2006 -0800 + + [SPARC64]: Implement SUN4V PCI config space access. + + Signed-off-by: David S. Miller + +commit bade5622167181844cd4e60087971c1f949e149f +Author: David S. Miller +Date: Thu Feb 9 22:05:54 2006 -0800 + + [SPARC64]: More SUN4V PCI controller work. + + Add assembler file for PCI hypervisor calls. + Setup basic skeleton of SUN4V PCI controller driver. + + Add 32-bit devhandle to PBM struct, as this is needed for + hypervisor calls. + + Signed-off-by: David S. Miller + +commit 8f6a93a196ba6c569c3e8daa6e81cca7e3ba81b1 +Author: David S. Miller +Date: Thu Feb 9 21:32:07 2006 -0800 + + [SPARC64]: Beginnings of SUN4V PCI controller support. + + Abstract out IOMMU operations so that we can have a different + set of calls on sun4v, which needs to do things through + hypervisor calls. + + Signed-off-by: David S. Miller + +commit 4cce4b7cc56abc3d7b269d09224b8297aad15138 +Author: David S. Miller +Date: Thu Feb 9 20:46:22 2006 -0800 + + [SPARC64]: Fetch cpu mid properly on sun4v. + + If there is a "cpuid" property, use that. Else suck + it out of the top bits of the "reg" property. + + Signed-off-by: David S. Miller + +commit 5fe91cf6254c8f23d90efb5fc11fff57dd5ab8dd +Author: David S. Miller +Date: Thu Feb 9 20:45:26 2006 -0800 + + [SPARC]: Clean up idprom header files. + + Delete unused macros, and use fixed sized types in + sparc32 header. + + Signed-off-by: David S. Miller + +commit ed6b0b45437dcf7ef1c48b3be413bebcc84771d8 +Author: David S. Miller +Date: Thu Feb 9 20:20:34 2006 -0800 + + [SPARC64]: SUN4V memory exception trap handlers. + + Signed-off-by: David S. Miller + +commit 618e9ed98aed924a1fc664eb6522db4a5e927043 +Author: David S. Miller +Date: Thu Feb 9 17:21:53 2006 -0800 + + [SPARC64]: Hypervisor TSB context switching. + + Signed-off-by: David S. Miller + +commit aa9143b9719c07fb6f1f6207790c9c5086ae07e7 +Author: David S. Miller +Date: Thu Feb 9 16:12:22 2006 -0800 + + [SPARC64]: Implement sun4v TSB miss handlers. + + When we register a TSB with the hypervisor, so that it or hardware can + handle TLB misses and do the TSB walk for us, the hypervisor traps + down to these trap when it incurs a TSB miss. + + Processing is simple, we load the missing virtual address and context, + and do a full page table walk. + + Signed-off-by: David S. Miller + +commit 12816ab38adddc9d7e9b3315d1739655dedc7c9f +Author: David S. Miller +Date: Thu Feb 9 03:00:00 2006 -0800 + + [SPARC64]: kernel/cpu.c needs asm/spitfire.h + + For 'tlb_type'. + + Signed-off-by: David S. Miller + +commit 3a8c069d0eea936c2fe3637ab62967af31555ee9 +Author: David S. Miller +Date: Thu Feb 9 02:54:54 2006 -0800 + + [SPARC64]: Print ARCH as SUN4V when tlb_type is hypervisor. + + Signed-off-by: David S. Miller + +commit d82ace7dc4073b090a55b9740700e32b9a9ae302 +Author: David S. Miller +Date: Thu Feb 9 02:52:44 2006 -0800 + + [SPARC64]: Detect sun4v early in boot process. + + We look for "SUNW,sun4v" in the 'compatible' property + of the root OBP device tree node. + + Protect every %ver register access, to make sure it is + not touched on sun4v, as %ver is hyperprivileged there. + + Lock kernel TLB entries using hypervisor calls instead of + calls into OBP. + + Signed-off-by: David S. Miller + +commit 1d2f1f90a1e004b0c1b8a73ed4394a93f09104b3 +Author: David S. Miller +Date: Wed Feb 8 16:41:20 2006 -0800 + + [SPARC64]: Sun4v cross-call sending support. + + Technically the hypervisor call supports sending in a list + of all cpus to get the cross-call, but I only pass in one + cpu at a time for now. + + The multi-cpu support is there, just ifdef'd out so it's easy to + enable or delete it later. + + Signed-off-by: David S. Miller + +commit 5b0c0572fcd6204675c5f7ddfa572b5017f817dd +Author: David S. Miller +Date: Wed Feb 8 02:53:50 2006 -0800 + + [SPARC64]: Sun4v interrupt handling. + + Sun4v has 4 interrupt queues: cpu, device, resumable errors, + and non-resumable errors. A set of head/tail offset pointers + help maintain a work queue in physical memory. The entries + are 64-bytes in size. + + Each queue is allocated then registered with the hypervisor + as we bring cpus up. + + The two error queues each get a kernel side buffer that we + use to quickly empty the main interrupt queue before we + call up to C code to log the event and possibly take evasive + action. + + Signed-off-by: David S. Miller + +commit ac29c11d4cd4fa1fac968e99998a956405732f2f +Author: David S. Miller +Date: Wed Feb 8 00:08:23 2006 -0800 + + [SPARC64]: Allocate and register the 4 sun4v mondo queues at bootup. + + Needs to occur before we enable PSTATE_IE in %pstate. + + Signed-off-by: David S. Miller + +commit e088ad7ca3d09c96e63f1ce411a2ccba2688bf25 +Author: David S. Miller +Date: Tue Feb 7 23:51:49 2006 -0800 + + [SPARC64]: Verify all trap_per_cpu assembler offsets in trap_init() + + Signed-off-by: David S. Miller + +commit 7202c55c5c57d2ad4611a751544c9368d7fba93a +Author: David S. Miller +Date: Tue Feb 7 22:53:56 2006 -0800 + + [SPARC64]: Add sun4v mondo queue bases to struct trap_per_cpu. + + Also, correct TRAP_PER_CPU_FAULT_INFO define, it should be + 0x40 not 0x20. + + Signed-off-by: David S. Miller + +commit 3bfd6f3e77f58479ec53aa91d0b078abbb4c0868 +Author: David S. Miller +Date: Tue Feb 7 22:49:38 2006 -0800 + + [SPARC64]: Fix some comment typos in asm/hypervisor.h + + Signed-off-by: David S. Miller + +commit 8b11bd12aff76e02cdc2cbc9e439bba88d281223 +Author: David S. Miller +Date: Tue Feb 7 22:13:05 2006 -0800 + + [SPARC64]: Patch up mmu context register writes for sun4v. + + sun4v uses ASI_MMU instead of ASI_DMMU + + Signed-off-by: David S. Miller + +commit 481295f982b21b1dbe71cbf41d3a93028fee30d1 +Author: David S. Miller +Date: Tue Feb 7 21:51:08 2006 -0800 + + [SPARC64]: Register per-cpu fault status area with sun4v hypervisor. + + Signed-off-by: David S. Miller + +commit 89a5264f065672a882f555228000614a6b2182b7 +Author: David S. Miller +Date: Tue Feb 7 21:15:41 2006 -0800 + + [SPARC64]: asm/cpudata.h needs asm/asi.h + + For the expansion of __GET_CPUID() on SMP. + + Signed-off-by: David S. Miller + +commit 8591e3027235d6d11b958e43379f2ee7b7114841 +Author: David S. Miller +Date: Tue Feb 7 16:09:12 2006 -0800 + + [SPARC64]: Niagara copy/clear page. + + Happily we have no D-cache aliasing issues on these + chips, so the implementation is very straightforward. + + Add a stub in bootup which will be where the patching + calls will be made for niagara/sun4v/hypervisor. + + Signed-off-by: David S. Miller + +commit df7d6aec96ab98cb182dd5138a85bdc363a9bf0d +Author: David S. Miller +Date: Tue Feb 7 00:00:16 2006 -0800 + + [SPARC64]: Rename gl_{1,2}insn_patch --> sun4v_{1,2}insn_patch + + Signed-off-by: David S. Miller + +commit d257d5da39a78b32721ca84b2ba7f461f2f7ed7f +Author: David S. Miller +Date: Mon Feb 6 23:44:37 2006 -0800 + + [SPARC64]: Initial sun4v TLB miss handling infrastructure. + + Things are a little tricky because, unlike sun4u, we have + to: + + 1) do a hypervisor trap to do the TLB load. + 2) do the TSB lookup calculations by hand + + Signed-off-by: David S. Miller + +commit 840aaef8db32572b6d11e0d5cb5e6efcbc812000 +Author: David S. Miller +Date: Mon Feb 6 15:52:05 2006 -0800 + + [SPARC64]: Add missing memory barriers to instruction patching functions. + + V9 requires a write memory barrier before the instruction flush. + + Signed-off-by: David S. Miller + +commit 45fec05f805a113372c9a7ff4c653ac749f6921c +Author: David S. Miller +Date: Sun Feb 5 22:27:28 2006 -0800 + + [SPARC64]: Sanitize %pstate writes for sun4v. + + If we're just switching between different alternate global + sets, nop it out on sun4v. Also, get rid of all of the + alternate global save/restore in the OBP CIF trampoline code. + + Signed-off-by: David S. Miller + +commit 314981ac7177a933319e3c071a5cf0a579205e6e +Author: David S. Miller +Date: Sun Feb 5 21:59:03 2006 -0800 + + [SPARC64]: Kill all %pstate changes in context switch code. + + They are totally unnecessary because: + + 1) Interrupts are already disabled when switch_to() + runs. + + 2) We don't use hard-coded alternate globals any longer. + + This found a case in rtrap, which still assumed alternate + global %g6 was current_thread_info(), and that is fixed + by this changeset as well. + + Signed-off-by: David S. Miller + +commit 936f482af1743141d637483ec10eb881537c26dc +Author: David S. Miller +Date: Sun Feb 5 21:29:28 2006 -0800 + + [SPARC64]: Add initial code to twiddle %gl on trap entry/exit. + + Instead of setting/clearing PSTATE_AG we have to change + the %gl register value on sun4v. + + Signed-off-by: David S. Miller + +commit 6e02493a7f33ac89e698b980a657d77ab2749eaf +Author: David S. Miller +Date: Sun Feb 5 20:47:26 2006 -0800 + + [SPARC64]: Fill dead cycles on trap entry with real work. + + As we save trap state onto the stack, the store buffer fills up + mid-way through and we stall for several cycles as the store buffer + trickles out to the L2 cache. Meanwhile we can do some privileged + register reads and other calculations, essentially for free. + + Signed-off-by: David S. Miller + +commit d619d7f11670f5b1cfca30e6645e44c8a6014820 +Author: David S. Miller +Date: Sat Feb 4 23:59:38 2006 -0800 + + [SPARC64]: Add define for "GL" field of sun4v %tstate register. + + Signed-off-by: David S. Miller + +commit d96b81533ba3d5775e45aee6986b2aa33c10801c +Author: David S. Miller +Date: Sat Feb 4 15:40:53 2006 -0800 + + [SPARC64]: Add sun4v case to __GET_CPUID() patch tables. + + Signed-off-by: David S. Miller + +commit e1c21c4f476f2270c98aad1fe55e5f33e25f77f5 +Author: David S. Miller +Date: Sat Feb 4 03:12:14 2006 -0800 + + [SPARC64]: Sun4v interrupt queue register definitions. + + Signed-off-by: David S. Miller + +commit 277b6dd9600613b01f66cadef2f0065514fecf69 +Author: David S. Miller +Date: Sat Feb 4 03:12:02 2006 -0800 + + [SPARC64]: Sun4v scratchpad register layout. + + Signed-off-by: David S. Miller + +commit d398ee230f94a8ba386d8abb63f4fea129e4eaba +Author: David S. Miller +Date: Sat Feb 4 03:11:50 2006 -0800 + + [SPARC64]: Sun4v specific ASI defines. + + Signed-off-by: David S. Miller + +commit 398d10830843bda7798f71052b54a5341a8ddd53 +Author: David S. Miller +Date: Sun Mar 5 16:41:56 2006 -0800 + + [SPARC64]: Niagara optimized memcpy() and copy_{to,from}_user(). + + Signed-off-by: David S. Miller + +commit 30ddbdb03339fc62480ddbff800a44066bb14455 +Author: David S. Miller +Date: Sat Feb 4 03:11:17 2006 -0800 + + [SPARC64]: Add Niagara init-store twin-load ASI defines. + + Signed-off-by: David S. Miller + +commit a43fe0e789f5445f5224511034f410adf11f153b +Author: David S. Miller +Date: Sat Feb 4 03:10:53 2006 -0800 + + [SPARC64]: Add some hypervisor tlb_type checks. + + And more consistently check cheetah{,_plus} instead + of assuming anything not spitfire is cheetah{,_plus}. + + Signed-off-by: David S. Miller + +commit 1633a53c79498455b16d051451f4e3f83ab4e7dd +Author: David S. Miller +Date: Sat Feb 4 03:09:03 2006 -0800 + + [SPARC64]: Add 'hypervisor' to ultra_tlb_type enumeration. + + Signed-off-by: David S. Miller + +commit 52bf082f0a6e49e08ed99d4d9518c662dc735c7a +Author: David S. Miller +Date: Sat Feb 4 03:08:37 2006 -0800 + + [SPARC64]: SUN4V hypervisor TLB flush support code. + + Signed-off-by: David S. Miller + +commit 766f861fbbd968a1850295ed6dec4504b4500dcc +Author: David S. Miller +Date: Sat Feb 4 03:01:45 2006 -0800 + + [SPARC64]: SUN4V hypervisor interface defines. + + Signed-off-by: David S. Miller + +commit 314ef6859750b6539eac48d78059bb7986f29cb1 +Author: David S. Miller +Date: Sat Feb 4 00:10:01 2006 -0800 + + [SPARC64]: Refine register window trap handling. + + When saving and restoing trap state, do the window spill/fill + handling inline so that we never trap deeper than 2 trap levels. + This is important for chips like Niagara. + + The window fixup code is massively simplified, and many more + improvements are now possible. + + Signed-off-by: David S. Miller + +commit ffe483d55229fadbaf4cc7316d47024a24ecd1a2 +Author: David S. Miller +Date: Thu Feb 2 21:55:10 2006 -0800 + + [SPARC64]: Add explicit register args to trap state loading macros. + + This, as well as making the code cleaner, allows a simplification in + the TSB miss handling path. + + Signed-off-by: David S. Miller + +commit 92704a1c63c3b481870d02636d0b5a70c7e21cd1 +Author: David S. Miller +Date: Sun Feb 26 23:27:19 2006 -0800 + + [SPARC64]: Refine code sequences to get the cpu id. + + On uniprocessor, it's always zero for optimize that. + + On SMP, the jmpl to the stub kills the return address stack in the cpu + branch prediction logic, so expand the code sequence inline and use a + code patching section to fix things up. This also always better and + explicit register selection, which will be taken advantage of in a + future changeset. + + The hard_smp_processor_id() function is big, so do not inline it. + + Fix up tests for Jalapeno to also test for Serrano chips too. These + tests want "jbus Ultra-IIIi" cases to match, so that is what we should + test for. + + Signed-off-by: David S. Miller + +commit f4e841da30b4bcbb8f1cc20a01157a788ff58b21 +Author: David S. Miller +Date: Thu Feb 2 16:16:24 2006 -0800 + + [SPARC64]: Turn off TSB growing for now. + + There are several tricky races involved with growing the TSB. So just + use base-size TSBs for user contexts and we can revisit enabling this + later. + + One part of the SMP problems is that tsb_context_switch() can see + partially updated TSB configuration state if tsb_grow() is running in + parallel. That's easily solved with a seqlock taken as a writer by + tsb_grow() and taken as a reader to capture all the TSB config state + in tsb_context_switch(). + + Then there is flush_tsb_user() running in parallel with a tsb_grow(). + In theory we could take the seqlock as a reader there too, and just + resample the TSB pointer and reflush but that looks really ugly. + + Lastly, I believe there is a case with threads that results in a TSB + entry lock bit being set spuriously which will cause the next access + to that TSB entry to wedge the cpu (since the TSB entry lock bit will + never clear). It's either copy_tsb() or some bug elsewhere in the TSB + assembly. + + Signed-off-by: David S. Miller + +commit 7bec08e38a7d0f088994f6eec9b6374652ea71fb +Author: David S. Miller +Date: Thu Feb 2 01:20:18 2006 -0800 + + [SPARC64]: Correctable ECC errors cannot occur at trap level > 0. + + The are distrupting, which by the sparc v9 definition means they + can only occur when interrupts are enabled in the %pstate register. + This never occurs in any of the trap handling code running at + trap levels > 0. + + So just mark it as an unexpected trap. + + This allows us to kill off the cee_stuff member of struct thread_info. + + Signed-off-by: David S. Miller + +commit 517af33237ecfc3c8a93b335365fa61e741ceca4 +Author: David S. Miller +Date: Wed Feb 1 15:55:21 2006 -0800 + + [SPARC64]: Access TSB with physical addresses when possible. + + This way we don't need to lock the TSB into the TLB. + The trick is that every TSB load/store is registered into + a special instruction patch section. The default uses + virtual addresses, and the patch instructions use physical + address load/stores. + + We can't do this on all chips because only cheetah+ and later + have the physical variant of the atomic quad load. + + Signed-off-by: David S. Miller + +commit b0fd4e49aea8a460afab7bc67cd618e2d19291d4 +Author: David S. Miller +Date: Tue Jan 31 23:13:29 2006 -0800 + + [SPARC64]: Kill out-of-date commentary in asm-sparc64/tsb.h + + Signed-off-by: David S. Miller + +commit 30a6ecad9670d97c9d0fbfa7d80970aeb339bdec +Author: David S. Miller +Date: Tue Jan 31 18:35:05 2006 -0800 + + [SPARC64]: Don't clobber alt-global %g4 on window fixups. + + If we are returning back to kernel mode, %g4 could be live + (for example, in the case where we window spill in the etrap + code). So do not change it's value if going back to kernel. + + Signed-off-by: David S. Miller + +commit 86b818687d4894063ecd1190e54717a0cce8c009 +Author: David S. Miller +Date: Tue Jan 31 18:34:51 2006 -0800 + + [SPARC64]: Fix race in LOAD_PER_CPU_BASE() + + Since we use %g5 itself as a temporary, it can get clobbered + if we take an interrupt mid-stream and thus cause end up with + the final %g5 value too early as a result of rtrap processing. + + Set %g5 at the very end, atomically, to avoid this problem. + + Signed-off-by: David S. Miller + +commit 9954863975910a1b9372b7d5006a6cba43bdd288 +Author: David S. Miller +Date: Tue Jan 31 18:34:34 2006 -0800 + + [SPARC64]: Kill swapper_pgd_zero, totally unused. + + Signed-off-by: David S. Miller + +commit 9bc657b28eba22e36efcdf3afa08100f92971eb4 +Author: David S. Miller +Date: Tue Jan 31 18:34:21 2006 -0800 + + [SPARC64]: Fix too early reference to %g6 + + %g6 is not necessarily set to current_thread_info() + at sparc64_realfault_common. So store the fault + code and address after we invoke etrap and %g6 is + properly set up. + + Signed-off-by: David S. Miller + +commit 764afe2edb834930050313459cef9f1ae2656750 +Author: David S. Miller +Date: Tue Jan 31 18:34:06 2006 -0800 + + [SPARC64]: Kill hard-coded %pstate setting in sparc_exit. + + Just flip the bit off of whatever it's currently set to. + PSTATE_IE is guarenteed to be enabled when we get here. + + Signed-off-by: David S. Miller + +commit 2f7ee7c63f08b7f883b710a29d91c1891b81b8e1 +Author: David S. Miller +Date: Tue Jan 31 18:33:49 2006 -0800 + + [SPARC64]: Increase swapper_tsb size to 32K. + + Signed-off-by: David S. Miller + +commit a8b900d801697609d1b56cc9c110148c64678068 +Author: David S. Miller +Date: Tue Jan 31 18:33:37 2006 -0800 + + [SPARC64]: Kill sole argument passed to setup_tba(). + + No longer used, and move extern declaration to a header file. + + Signed-off-by: David S. Miller + +commit 3487d1d4414fbfab5d98ec559e6f84f55520cb15 +Author: David S. Miller +Date: Tue Jan 31 18:33:25 2006 -0800 + + [SPARC64]: Kill PROM locked TLB entry preservation code. + + It is totally unnecessary complexity. After we take over + the trap table, we handle all PROM tlb misses fully. + + Signed-off-by: David S. Miller + +commit 6b6d017235acad3ee1681140795593723bb9b9df +Author: David S. Miller +Date: Tue Jan 31 18:33:12 2006 -0800 + + [SPARC64]: Use sparc64_highest_unlocked_tlb_ent in __tsb_context_switch() + + Instead of ugly hard-coded value. + + Signed-off-by: David S. Miller + +commit 4da808c352c290d3f762933d44d4ab90c2fd65f3 +Author: David S. Miller +Date: Tue Jan 31 18:33:00 2006 -0800 + + [SPARC64]: Fix bogus flush instruction usage. + + Some of the trap code was still assuming that alternate + global %g6 was hard coded with current_thread_info(). + Let's just consistently flush at KERNBASE when we need + a pipeline synchronization. That's locked into the TLB + and will always work. + + Signed-off-by: David S. Miller + +commit 4753eb2ac7022b999e5e484f1a5dc001dba22bd3 +Author: David S. Miller +Date: Tue Jan 31 18:32:44 2006 -0800 + + [SPARC64]: Fix incorrect TSB lock bit handling. + + The TSB_LOCK_BIT define is actually a special + value shifted down by 32-bits for the assembler + code macros. + + In C code, this isn't what we want. + + Signed-off-by: David S. Miller + +commit 96c6e0d8e2a0eb1338751598be47fa1ffed91704 +Author: David S. Miller +Date: Tue Jan 31 18:32:29 2006 -0800 + + [SPARC64]: Kill {save,restore}_alternate_globals() + + No longer needed now that we no longer have hard-coded + alternate global register usage. + + Signed-off-by: David S. Miller + +commit b70c0fa1613c4f69b4a340a0e2bee387560ebbb1 +Author: David S. Miller +Date: Tue Jan 31 18:32:04 2006 -0800 + + [SPARC64]: Preload TSB entries from update_mmu_cache(). + + Signed-off-by: David S. Miller + +commit bd40791e1d289d807b8580abe1f117e9c62894e4 +Author: David S. Miller +Date: Tue Jan 31 18:31:38 2006 -0800 + + [SPARC64]: Dynamically grow TSB in response to RSS growth. + + As the RSS grows, grow the TSB in order to reduce the likelyhood + of hash collisions and thus poor hit rates in the TSB. + + This definitely needs some serious tuning. + + Signed-off-by: David S. Miller + +commit 98c5584cfc47932c4f3ccf5eee2e0bae1447b85e +Author: David S. Miller +Date: Tue Jan 31 18:31:20 2006 -0800 + + [SPARC64]: Add infrastructure for dynamic TSB sizing. + + This also cleans up tsb_context_switch(). The assembler + routine is now __tsb_context_switch() and the former is + an inline function that picks out the bits from the mm_struct + and passes it into the assembler code as arguments. + + setup_tsb_parms() computes the locked TLB entry to map the + TSB. Later when we support using the physical address quad + load instructions of Cheetah+ and later, we'll simply use + the physical address for the TSB register value and set + the map virtual and PTE both to zero. + + Signed-off-by: David S. Miller + +commit 09f94287f7260e03bbeab497e743691fafcc22c3 +Author: David S. Miller +Date: Tue Jan 31 18:31:06 2006 -0800 + + [SPARC64]: TSB refinements. + + Move {init_new,destroy}_context() out of line. + + Do not put huge pages into the TSB, only base page size translations. + There are some clever things we could do here, but for now let's be + correct instead of fancy. + + Signed-off-by: David S. Miller + +commit 56fb4df6da76c35dca22036174e2d1edef83ff1f +Author: David S. Miller +Date: Sun Feb 26 23:24:22 2006 -0800 + + [SPARC64]: Elminate all usage of hard-coded trap globals. + + UltraSPARC has special sets of global registers which are switched to + for certain trap types. There is one set for MMU related traps, one + set of Interrupt Vector processing, and another set (called the + Alternate globals) for all other trap types. + + For what seems like forever we've hard coded the values in some of + these trap registers. Some examples include: + + 1) Interrupt Vector global %g6 holds current processors interrupt + work struct where received interrupts are managed for IRQ handler + dispatch. + + 2) MMU global %g7 holds the base of the page tables of the currently + active address space. + + 3) Alternate global %g6 held the current_thread_info() value. + + Such hardcoding has resulted in some serious issues in many areas. + There are some code sequences where having another register available + would help clean up the implementation. Taking traps such as + cross-calls from the OBP firmware requires some trick code sequences + wherein we have to save away and restore all of the special sets of + global registers when we enter/exit OBP. + + We were also using the IMMU TSB register on SMP to hold the per-cpu + area base address, which doesn't work any longer now that we actually + use the TSB facility of the cpu. + + The implementation is pretty straight forward. One tricky bit is + getting the current processor ID as that is different on different cpu + variants. We use a stub with a fancy calling convention which we + patch at boot time. The calling convention is that the stub is + branched to and the (PC - 4) to return to is in register %g1. The cpu + number is left in %g6. This stub can be invoked by using the + __GET_CPUID macro. + + We use an array of per-cpu trap state to store the current thread and + physical address of the current address space's page tables. The + TRAP_LOAD_THREAD_REG loads %g6 with the current thread from this + table, it uses __GET_CPUID and also clobbers %g1. + + TRAP_LOAD_IRQ_WORK is used by the interrupt vector processing to load + the current processor's IRQ software state into %g6. It also uses + __GET_CPUID and clobbers %g1. + + Finally, TRAP_LOAD_PGD_PHYS loads the physical address base of the + current address space's page tables into %g7, it clobbers %g1 and uses + __GET_CPUID. + + Many refinements are possible, as well as some tuning, with this stuff + in place. + + Signed-off-by: David S. Miller + +commit 3c936465249f863f322154ff1aaa628b84ee5750 +Author: David S. Miller +Date: Tue Jan 31 18:30:27 2006 -0800 + + [SPARC64]: Kill pgtable quicklists and use SLAB. + + Taking a nod from the powerpc port. + + With the per-cpu caching of both the page allocator and SLAB, the + pgtable quicklist scheme becomes relatively silly and primitive. + + Signed-off-by: David S. Miller + +commit 05e28f9de65a38bb0c769080e91b6976e7e1e70c +Author: David S. Miller +Date: Tue Jan 31 18:30:13 2006 -0800 + + [SPARC64]: No need to D-cache color page tables any longer. + + Unlike the virtual page tables, the new TSB scheme does not + require this ugly hack. + + Signed-off-by: David S. Miller + +commit 74bf4312fff083ab25c3f357cc653ada7995e5f6 +Author: David S. Miller +Date: Tue Jan 31 18:29:18 2006 -0800 + + [SPARC64]: Move away from virtual page tables, part 1. + + We now use the TSB hardware assist features of the UltraSPARC + MMUs. + + SMP is currently knowingly broken, we need to find another place + to store the per-cpu base pointers. We hid them away in the TSB + base register, and that obviously will not work any more :-) + + Another known broken case is non-8KB base page size. + + Also noticed that flush_tlb_all() is not referenced anywhere, only + the internal __flush_tlb_all() (local cpu only) is used by the + sparc64 port, so we can get rid of flush_tlb_all(). + + The kernel gets it's own 8KB TSB (swapper_tsb) and each address space + gets it's own private 8K TSB. Later we can add code to dynamically + increase the size of per-process TSB as the RSS grows. An 8KB TSB is + good enough for up to about a 4MB RSS, after which the TSB starts to + incur many capacity and conflict misses. + + We even accumulate OBP translations into the kernel TSB. + + Another area for refinement is large page size support. We could use + a secondary address space TSB to handle those. + + Signed-off-by: David S. Miller + +commit 30d4d1ffed7098afe2641536d67eef150499da02 +Author: Eric Sesterhenn +Date: Fri Mar 10 02:55:20 2006 -0800 + + [SPARC]: BUG_ON() Conversion in arch/sparc/kernel/ioport.c + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: David S. Miller + +commit 94bbc1763b6b6d20d5cfa70c41cda23af27f8b55 +Author: Bernhard R Link +Date: Fri Mar 10 01:23:13 2006 -0800 + + [SPARC64]: fix sparc_floppy_irq's auxio_register reseting + + The patch "[SPARC64]: Get rid of fast IRQ feature" + moved the the code from arch/sparc64/kernel/entry.S: + lduba [%g7] ASI_PHYS_BYPASS_EC_E, %g5 + or %g5, AUXIO_AUX1_FTCNT, %g5 + stba %g5, [%g7] ASI_PHYS_BYPASS_EC_E + andn %g5, AUXIO_AUX1_FTCNT, %g5 + stba %g5, [%g7] ASI_PHYS_BYPASS_EC_E + to arch/sparc64/kernel/irq.c: + val = readb(auxio_register); + val |= AUXIO_AUX1_FTCNT; + writeb(val, auxio_register); + val &= AUXIO_AUX1_FTCNT; + writeb(val, auxio_register); + This looks like it it missing a bitwise not, which is reintroduced + by this patch. + + Due to lack of a floppy device, I could not test it, but it looks + evident. + + Signed-off-by: Bernhard R Link + Signed-off-by: David S. Miller + +commit 6e5fca53c72c95da92c092411c7ec81e926af632 +Author: Dave Airlie +Date: Mon Mar 20 18:34:29 2006 +1100 + + drm: read breadcrumb in IRQ handler + + From: Keith Whitwell + Signed-off-by: Dave Airlie + +commit 6cc8fef4cbeb0b65d225d7b599c75eb5b40a6534 +Author: Nathan Scott +Date: Mon Mar 20 13:25:48 2006 +1100 + + [XFS] Fix compiler warning from xfs_file_compat_invis_ioctl prototype. + + SGI-PV: 904196 + SGI-Modid: xfs-linux-melb:xfs-kern:25509a + + Signed-off-by: Andrew Morton + Signed-off-by: Nathan Scott + +commit 2f8600dff2b140096a7df781884e918a16aa90e0 +Author: James Bottomley +Date: Sat Mar 18 15:00:50 2006 -0600 + + [SCSI] eliminate rphy allocation in favour of expander/end device allocation + + This allows the removal of the contained flag and also does a bit of + class renaming (sas_rphy->sas_device). + + Signed-off-by: James Bottomley + +commit f013db3284376070fc4c196e58d204180b8ed62a +Author: James Bottomley +Date: Sat Mar 18 14:54:36 2006 -0600 + + [SCSI] convert mptsas over to end_device/expander allocations + + The conversion of mptsas should allow the elimination of the contained + flag in the sas transport class. + + Acked-by: "Moore, Eric" + Signed-off-by: James Bottomley + +commit 6bdaa1f17dd32ec62345c7b57842f53e6278a2fa +Author: James Bottomley +Date: Sat Mar 18 14:14:21 2006 -0600 + + [SCSI] allow displaying and setting of cache type via sysfs + + I think I promised to do this two years ago + + This patch adds a scsi_disk class with the cache type and FUA + parameters, so user land application can easily obtain them without + having to parse dmesg. It also allows setting the cache type (use with + care...) + + This patch is a bit dangerous because I've replaced the disk kref with a + class device reference ... + + Signed-off-by: James Bottomley + +commit 5baba830e93732e802dc7e0a362eb730e1917f58 +Author: James Bottomley +Date: Sat Mar 18 14:10:35 2006 -0600 + + [SCSI] add scsi_mode_select to scsi_lib.c + + This complements the scsi_mode_sense() function + + Signed-off-by: James Bottomley + +commit 75913d9bb8328c4eca54cad39a5fb665b48383eb +Author: adam radford +Date: Wed Mar 15 12:43:19 2006 -0800 + + [SCSI] 3ware 9000 add big endian support + + The attached patch updates the 3ware 9000 driver: + + - Fix 9550SX pchip reset timeout. + - Add big endian support. + + Signed-off-by: Adam Radford + Signed-off-by: James Bottomley + +commit e7f947b908921a661efcbc08ce42d7de67691b07 +Author: Dave Airlie +Date: Sun Mar 19 20:28:19 2006 +1100 + + drm: fixup i915 breadcrumb read/write + + Some minor issues in the i915 breadcrumb code. + + Signed-off-by: Dave Airlie + +commit 2fab58d1a18c752887c2b9f6ee7b6997ced4a77a +Author: Dave Airlie +Date: Sun Mar 19 20:15:41 2006 +1100 + + drm: remove pointless checks in radeon_state + + If these were valid checks, we'd have already oopsed several + lines above where we were already dereferencing them. + + DA: these used to be valid but other changes made them unnecessary. + + Coverity: 776,777,778 + Signed-off-by: Dave Jones + Signed-off-by: Dave Airlie + +commit f15e92d702bba47f451bd5f63e170252c6e1bba2 +Author: Dave Airlie +Date: Sun Mar 19 20:12:23 2006 +1100 + + drm: fixup improper cast. + + Signed-off-by: Dave Airlie + +commit dfab11542fbecd8539c092fe36155909b4812f73 +Author: Dave Airlie +Date: Sun Mar 19 20:01:37 2006 +1100 + + drm: rationalise some pci ids + + This is the start of some work from Roland Scheidegger to align + the X DDX pci ids and the drm ones, however we don't want to put + r300 ids in the kernel just yet, they destabilise a few machines. + + From: Roland Scheidegger (via DRM CVS) + Signed-off-by: Dave Airlie + +commit ee4621f011750a6eff9f56631e12ab7fd9503aaa +Author: Dave Airlie +Date: Sun Mar 19 19:45:26 2006 +1100 + + drm: Add general-purpose packet for manipulating scratch registers (r300) + + From: Aapo Tahkola (via DRM CVS) + Signed-off-by: Dave Airlie + +commit d5ea702f1e8e3edeea6b673a58281bf99f3dbec5 +Author: Dave Airlie +Date: Sun Mar 19 19:37:55 2006 +1100 + + drm: rework radeon memory map (radeon 1.23) + + This code reworks the radeon memory map so it works better + for newer r300 chips and for a lot of older PCI chips. + + It really requires a new X driver in order to take advantage of this code. + + From: Ben Herrenschmidt + Signed-off-by: Dave Airlie + +commit 45f17100bfd18c99d6479e94598f4e533bbe30d8 +Author: Dave Airlie +Date: Sun Mar 19 19:12:10 2006 +1100 + + drm: update r300 register names + + Update some of the DRM register names from DRM CVS + + Signed-off-by: Dave Airlie + +commit ddf19b973be5a96d77c8467f657fe5bd7d126e0f +Author: Dave Airlie +Date: Sun Mar 19 18:56:12 2006 +1100 + + drm: fixup PCI DMA support + + This patch makes the PCI support use the correct Linux interfaces finally. + Tested in DRM CVS on PCI MGA card. + + Signed-off-by: Dave Airlie + +commit e572ec7e4e432de7ecf7bd2e62117646fa64e518 +Author: Al Viro +Date: Sat Mar 18 22:27:18 2006 -0500 + + [PATCH] fix rmmod problems with elevator attributes, clean them up + +commit 3d1ab40f4c20767afbd361b258a531d73e3e6fc2 +Author: Al Viro +Date: Sat Mar 18 18:35:43 2006 -0500 + + [PATCH] elevator_t lifetime rules and sysfs fixes + +commit 1cc9be68ebcc1de9904bf225441613878da9c0d8 +Author: Al Viro +Date: Sat Mar 18 12:29:52 2006 -0500 + + [PATCH] noise removal: cfq-iosched.c + + Signed-off-by: Al Viro + +commit a90d742e4cbbc217c402265eb8b8bb0e0f9f8da2 +Author: Al Viro +Date: Sat Mar 18 12:05:37 2006 -0500 + + [PATCH] don't bother with refcounting for cfq_data + + Signed-off-by: Al Viro + +commit 483f4afc421435b7cfe5e88f74eea0b73a476d75 +Author: Al Viro +Date: Sat Mar 18 18:34:37 2006 -0500 + + [PATCH] fix sysfs interaction and lifetime rules handling for queues + +commit 1312f40e11c57edb5c3250f1b782cef8e3efea82 +Author: Al Viro +Date: Sun Mar 12 11:02:03 2006 -0500 + + [PATCH] regularize blk_cleanup_queue() use + + Signed-off-by: Al Viro + +commit 6f325a13442d4e4a6c93d06d8e6deff79b6540b1 +Author: Al Viro +Date: Sat Mar 18 14:58:37 2006 -0500 + + [PATCH] fix cfq_get_queue()/ioprio_set(2) races + + Signed-off-by: Al Viro + +commit 334e94de9bea353156abd6f2242d3cc4a24562b0 +Author: Al Viro +Date: Sat Mar 18 15:05:53 2006 -0500 + + [PATCH] deal with rmmod/put_io_context() races + + Signed-off-by: Al Viro + +commit e17a9489b4a686bb5e9615e1d375c67619cb99c5 +Author: Al Viro +Date: Sat Mar 18 13:21:20 2006 -0500 + + [PATCH] stop elv_unregister() from rogering other iosched's data, fix locking + + Signed-off-by: Al Viro + +commit 25975f863b0fd42c58109e253e7a4c65d9fdaf48 +Author: Al Viro +Date: Sun Mar 12 13:45:25 2006 -0500 + + [PATCH] stop cfq from pinning queue down + + Signed-off-by: Al Viro + +commit d9ff41879364cfca7c15abc20ae398e35de3f883 +Author: Al Viro +Date: Sat Mar 18 13:51:22 2006 -0500 + + [PATCH] make cfq_exit_queue() prune the cfq_io_context for that queue + + Signed-off-by: Al Viro + +commit a6a0763a60eef374d4f02f82a6ecb6a74f380fcb +Author: Al Viro +Date: Sat Mar 18 13:26:44 2006 -0500 + + [PATCH] fix the exclusion for ioprio_set() + + Signed-off-by: Al Viro + +commit 12a057321529df2fb650ac5f34dfd7abcca667df +Author: Al Viro +Date: Sat Mar 18 13:38:01 2006 -0500 + + [PATCH] keep sync and async cfq_queue separate + + Signed-off-by: Al Viro + +commit 478a82b0edeea1cc82a5f79880b3a15923a678de +Author: Al Viro +Date: Sat Mar 18 13:25:24 2006 -0500 + + [PATCH] switch to use of ->key to get cfq_data by cfq_io_context + + Signed-off-by: Al Viro + +commit 7670876d2d194b2aecb54f397704838eee7d72ee +Author: Al Viro +Date: Sat Mar 18 13:22:53 2006 -0500 + + [PATCH] stop leaking cfq_data in cfq_set_request() + + We don't need to pin ->key down; ->cfqq->cfqd will do that for us. + Incidentally, that stops the leak we had - that reference was never + dropped. + + Signed-off-by: Al Viro + +commit b0a6916bcc48f46996d54b8451591a2f2b7b2f64 +Author: Al Viro +Date: Tue Mar 14 15:32:50 2006 -0500 + + [PATCH] fix cfq hash lookups + + If somebody does a hash lookup for cfq_queue while ioprio of an async queue + is elevated, they shouldn't end up stuck with lowered ioprio when we go back. + Fix is to use ->org_ioprio{,class} in hash lookups. + + Signed-off-by: Al Viro + +commit c981ff9f893b9ab229a809f8ad287ae43fc17a64 +Author: Al Viro +Date: Sat Mar 18 13:51:29 2006 -0500 + + [PATCH] fix locking in queue_requests_store() + + Signed-off-by: Al Viro + +commit 8669aafdb5a46a57366dd1540fc475544071a9c9 +Author: Al Viro +Date: Sat Mar 18 13:50:00 2006 -0500 + + [PATCH] fix double-free in blk_init_queue_node() + + Signed-off-by: Al Viro + +commit afc847b7ddcf636e524cf5b0de644bd3a9419a8c +Author: Al Viro +Date: Tue Feb 28 12:51:55 2006 -0500 + + [PATCH] don't do exit_io_context() until we know we won't be doing any IO + + testcase: + + mount /dev/sdb10 /mnt + touch /mnt/tmp/b + umount /mnt + mount /dev/sdb10 /mnt + rm /mnt/tmp/b + +commit cc8279f68c34c3f32b3a85f3103b0ad755c57846 +Author: Zhu Yi +Date: Tue Feb 21 18:46:15 2006 +0800 + + [PATCH] ipw2100: Update version ipw2100 stamp to 1.2.2 + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 3234eeec18315356166cd89bd93fc4630192eece +Author: Zhu Yi +Date: Tue Feb 28 08:38:07 2006 +0800 + + [PATCH] ipw2100: move mutex.h include from ipw2100.c to ipw2100.h + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 752e377bfdad61482e39cafedb3a6bb1b5bb0289 +Author: Ingo Molnar +Date: Tue Feb 28 07:20:54 2006 +0800 + + [PATCH] ipw2100: semaphore to mutexes conversion + + semaphore to mutexes conversion. + + the conversion was generated via scripts, and the result was validated + automatically via a script as well. + + build-tested. + + Signed-off-by: Ingo Molnar + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit cae1629515cf6d166fa20657e68b75619d563280 +Author: Zhu Yi +Date: Tue Feb 21 18:41:14 2006 +0800 + + [PATCH] ipw2100: Fix radiotap code gcc warning + + Fix gcc warning: ipw2100.c:2460: ISO C90 forbids mixed declarations and code + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 15745a7dd1ac6bf1ef7959040f864c78a95aa35b +Author: Stefan Rompf +Date: Tue Feb 21 18:36:17 2006 +0800 + + [PATCH] ipw2100: add radiotap headers to packtes captured in monitor mode + + Signed-off-by: Stefan Rompf + Signed-off-by: Andrea Merello + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 171e7b2f1f50f112d3ce8a829a3e79c5739b3132 +Author: Zhu Yi +Date: Wed Feb 15 07:17:56 2006 +0800 + + [PATCH] ipw2x00: expend Copyright to 2006 + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 71e585fca25c9ccde82196fd1aef78e34312e899 +Author: Adrian Bunk +Date: Sat Mar 11 04:42:58 2006 +0100 + + [PATCH] drivers/net/wireless/ipw2200.c: fix an array overun + + This patch fixes a big array overun found by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit f44349f2217d05e4575f24edc3c0e0022f5d448f +Author: James Ketrenos +Date: Wed Mar 8 13:14:45 2006 -0600 + + [PATCH] ieee80211: Don't update network statistics from off-channel packets. + + This patch fixes a problem in the ieee80211 probe response and beacon + reception code that would use the packet statistics for a network even + if they were received on a channel other than that which the network + exists on. + + This causes a problem in overlapping channels where, for example, a + strong AP on channel 2 could have its beacons received on channels 1 and + 3, but at much lower signal levels. If scanning was done sequentially, + this means the beacon received on channel 3 would update the AP's signal + level as being much lower than it really is, which subsequently could + cause that AP to be passed over and an alternate AP selected. + + Signed-off-by: James Ketrenos + Signed-off-by: John W. Linville + +commit 7c567894480daef05bc13abdc4b9414541e245cb +Author: Zhu Yi +Date: Fri Feb 24 04:20:48 2006 +0800 + + [PATCH] ipw2200: Update ipw2200 version stamp to 1.1.1 + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 9006ea75cfaded82acbc34d03e9d4e86447f40a9 +Author: James Ketrenos +Date: Wed Mar 8 03:22:28 2006 +0800 + + [PATCH] ipw2200: switch to the new ipw2200-fw-3.0 image format + + This patch modifies the driver to support the ipw2200-fw-3.0 image format. + + The 3.0 fw image does not add any new capabilities, but as a result of + image format changes, it should fix two problems experienced by users: + + 1) Race conditions with the request_firmware interface and udev/hotplug + are improved as only a single request_firmware call is now required to + load the firmware and microcode (vs. 3 separate calls previously) + + 2) The monitor mode firmware (sniffer) is now packaged with the correct + boot image so it can now function without frequent restarts. + + Note: Once you apply this patch, you will also need to upgrade your + firmware image to the 3.0 version available from: + + http://ipw2200.sf.net/firmware.php + + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 651be26f2daf31e61faf4b55ada709cf39ec76a2 +Author: Olivier Hochreutiner +Date: Wed Mar 8 03:13:55 2006 +0800 + + [PATCH] ipw2200: wireless extension sensitivity threshold support + + The patch allows the user to set the handover threshold, i.e. the number + of consecutively missed beacons that will trigger a roaming attempt. The + disassociation threshold is set to 3 times the handover threshold. + + Signed-off-by: Olivier Hochreutiner + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 71de1f3dd14e3e39cef929506a9526779f5a447d +Author: Cahill, Ben M +Date: Wed Mar 8 03:02:27 2006 +0800 + + [PATCH] ipw2200: Enables the "slow diversity" algorithm + + This forces one antenna or the other, if the background noise is + significantly quieter in one than the other. It favors the quieter + antenna, and won't kick in unless the difference is significant. + + Signed-off-by: Cahill, Ben M + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 12977154e7cb4d72b1295f009a040c56a7e05d90 +Author: Cahill, Ben M +Date: Wed Mar 8 02:58:02 2006 +0800 + + [PATCH] ipw2200: Set a meaningful silence threshold value + + Set a meaningful silence threshold value (replacing our previous "0" + default), which gets rid of the gratuitous "Link deterioration" + notifications that we've been receiving from firmware. This + notification feature tells the driver information to help it determine + when to pre-emptively restart the firmware/ucode in anticipation of + firmware errors! But since setting this new threshold, I haven't seen + any such notifications. At least it keeps the logs a little less busy. + + Signed-off-by: Cahill, Ben M + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 3e1555bae145ab2d079a1823cbdd5c486503d147 +Author: Zhu Yi +Date: Mon Mar 6 05:48:37 2006 +0800 + + [PATCH] ipw2200: export `debug' module param only if CONFIG_IPW2200_DEBUG + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 1d1b09eb144e414ade1f44e21852fc60f2cf965b +Author: Zhu Yi +Date: Thu Mar 2 06:40:59 2006 +0800 + + [PATCH] ipw2200: Change debug level for firmware error logging + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit e815de422c1dc2fe787c6f3edba81f3cf0176e32 +Author: Zhu Yi +Date: Thu Mar 2 05:55:51 2006 +0800 + + [PATCH] ipw2200: Filter unsupported channels out in ad-hoc mode + + Currently iwlist ethX freq[uency]/channel lists all the channels the card + supported for the current region, which includes some channels can only + be used in infrastructure mode. This patch filters these channels out if + the card is currently in ad-hoc mode. + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit e8c69e27d14a5fb15df9967f8c8ec5978af33ba8 +Author: Zhu Yi +Date: Fri Feb 17 08:25:12 2006 +0800 + + [PATCH] ipw2200: Fix ipw_sw_reset() implementation inconsistent with comment + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit d6d5b5c13e5003c9d33dcdcfdf1febc6efd7d319 +Author: Zhu Yi +Date: Thu Feb 16 16:21:09 2006 +0800 + + [PATCH] ipw2200: Fix rf_kill is activated after mode change with 'disable=1' + + When loading the ipw2200 module with disabled=1, rf_kill is activated after + every mode change. This is caused by ipw_sw_reset() is called when a mode + is changed. The patch fixed the problem by distinguishing the purposes with + the 'option' paramenter. + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 8da374fc44a5e0fb71a485497cae38eb562d078c +Author: Zhu Yi +Date: Fri Feb 17 07:46:16 2006 +0800 + + [PATCH] ipw2200: remove the WPA card associates to non-WPA AP checking + + wpa_supplicant needs to set wpa_enabled unconditionally, with this check + it hasn't been possible to connect to non-WPA networks using wpa_supplicant. + So remove below check. + + if (priv->ieee->wpa_enabled && + network->wpa_ie_len == 0 && network->rsn_ie_len == 0) + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit b191608a451e75ed7f979cac268f5f423176feb3 +Author: Bill Moss +Date: Wed Feb 15 08:50:18 2006 +0800 + + [PATCH] ipw2200: Add signal level to iwlist scan output + + This patch does two things. It uses the parameter IW_QUAL_DBM which is new + in WE-19 to cause signal level and noise to be reported in dBm by the + wireless tools. It also defines the signal level as an unsigned integer + so that the signal level will be reported by iwlist iface scan. + + Signed-off-by: Bill Moss + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 9d0be03aeeadcd59bd8f57219817e876a5e88e88 +Author: Zhu Yi +Date: Wed Feb 15 06:18:19 2006 +0800 + + [PATCH] ipw2200: use generic ieee80211_get_hdrlen() to get packet length + + replace ipw2200 specific frame_hdr_len() with generic + ieee80211 routine ieee80211_get_hdrlen() + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 85149bace30eae1dc1f86d2c327329673123dd22 +Author: Zhu Yi +Date: Tue Feb 14 16:02:22 2006 +0800 + + [PATCH] ipw2200: fix a potential NULL pointer dereference + + Only on CONFIG_IPW2200_DEBUG is not defined + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit f697014af90c1db3c7b299327bf5a9548945b8bf +Author: James Ketrenos +Date: Tue Feb 14 09:10:51 2006 +0800 + + [PATCH] ipw2200: stop netdev queue if h/w doesn't have space for new packets + + The patch roll back the change we made to support for the ability to + start/stop independent Tx queues within a single net device in order to + support 802.11e QoS. We need to be able to indicate to the upper layers + that packets of a given priority can not be sent any more without halting + transmission of all packets, and without rescheduling high priority packets + down to the next priority level. + + So we return NETDEV_TX_BUSY in this case and rely on the stack would + take care of rescheduling... which it apparently does immediately and + consumes the CPU. This caused the ksoftirqd kernel thread consuming almost + all the CPU... + + To put the code back to the way it was before we made these changes we + put the call netif_queue_stop back in ipw_tx_skb. This effectively + disables multiple priority based transmit queues for 802.11e, but given + that its broken anyway... + + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 48a847709f821b5eecd45ae7660add1869f9cd37 +Author: Henrik Brix Andersen +Date: Tue Feb 14 09:09:52 2006 +0800 + + [PATCH] ipw2200: print geography code upon module load + + Given the amount of support requests for the meaning of the geography code + I've written a patch for printing this information on module load no matter + the debug level. + + I've also added a section to the README.ipw2200 file listing the geography + codes and their meaning. + + Signed-off-by: Henrik Brix Andersen + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 53d0bcf82a5f59c96f1ffb202c02d2541200bf58 +Author: Adrian Bunk +Date: Sat Mar 4 13:14:31 2006 +0100 + + [PATCH] drivers/net/wireless/ipw2200.c: make ipw_qos_current_mode() static + + This patch makes the needlessly global function ipw_qos_current_mode() + static. + + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit 1867b117d944ce333e79b9a61c9a048656bee14b +Author: Larry Finger +Date: Tue Feb 28 09:48:28 2006 -0600 + + [PATCH] Remove duplicated code from ipw2200.c + + As stated in a comment, the ipw2200 driver uses several routines that + were borrowed from ieee80211_geo.c. As ipw2200 requires ieee80211, + these routines are duplicated. The attached patch, which is sent + as an attachment to preserve whitespace, converts ipw2200.c to use + the ieee80211 versions, thereby reducing bloat in both the source + and binary. + + Signed-Off-By: Larry Finger + Signed-off-by: John W. Linville + +commit b2fc6ad01beb550f75457b7d811ff84dc81b210b +Author: Nathan Scott +Date: Fri Mar 17 17:30:01 2006 +1100 + + [XFS] remove bogus INT_GET for u8 variables in xfs_dir_leaf.c + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25506a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit fac80cce0ecc6b10ae165af5b6b9b03151083044 +Author: Nathan Scott +Date: Fri Mar 17 17:29:56 2006 +1100 + + [XFS] endianess annotations for xfs_da_node_hdr_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25505a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 403432dcb5daa03c1f1c961adb7d2a5daebea94b +Author: Nathan Scott +Date: Fri Mar 17 17:29:46 2006 +1100 + + [XFS] endianess annotations for xfs_da_node_entry_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25504a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit d7929ff670c802dc68d6149d3d0cc5667e18daec +Author: Nathan Scott +Date: Fri Mar 17 17:29:36 2006 +1100 + + [XFS] store xfs_attr_inactive_list_t in native endian + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25503a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 984a081a7c89ea7e1b6f47cbc0e5c8ef67ad6e09 +Author: Nathan Scott +Date: Fri Mar 17 17:29:31 2006 +1100 + + [XFS] store xfs_attr_sf_sort in native endian + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25502a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 3b244aa81ecb06859e0c16abf4c26404c1d86591 +Author: Nathan Scott +Date: Fri Mar 17 17:29:25 2006 +1100 + + [XFS] endianess annotations for xfs_attr_shortform_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25501a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit c0f054e7a44b4bbed8e16dd459f33df63dad98ef +Author: Nathan Scott +Date: Fri Mar 17 17:29:18 2006 +1100 + + [XFS] endianess annotations for xfs_attr_leaf_name_remote_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25500a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 053b5758cbc096a3f718858f4da9341afbc56b7d +Author: Nathan Scott +Date: Fri Mar 17 17:29:09 2006 +1100 + + [XFS] endianess annotations for xfs_attr_leaf_name_local_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25499a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 6b19f2d87da9908acf1e0f48b4e79cf8bc833811 +Author: Nathan Scott +Date: Fri Mar 17 17:29:02 2006 +1100 + + [XFS] endianess annotations for xfs_attr_leaf_entry_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25498a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 918ae424e18666249cf32f16ba2803061bf1ebb7 +Author: Nathan Scott +Date: Fri Mar 17 17:28:54 2006 +1100 + + [XFS] endianess annotations for xfs_attr_leaf_hdr_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25497a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 8f44e047a044df613bbc29837b9556e0c2e42e6b +Author: Nathan Scott +Date: Fri Mar 17 17:28:47 2006 +1100 + + [XFS] remove bogus INT_GET on u8 variables in xfs_dir2_block.c + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25496a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 89da054424a775b4b257556eda8a300be1134d7c +Author: Nathan Scott +Date: Fri Mar 17 17:28:40 2006 +1100 + + [XFS] endianess annotations for xfs_da_blkinfo_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25495a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 3d693c6ed7892d066e8fb3311c6b74f7699326f9 +Author: Nathan Scott +Date: Fri Mar 17 17:28:27 2006 +1100 + + [XFS] endianess annotations for XFS_DIR2_DATA_ENTRY_TAG_P + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25494a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 3c1f9c158050259cf3965cf900916ec49a288972 +Author: Nathan Scott +Date: Fri Mar 17 17:28:18 2006 +1100 + + [XFS] endianess annotations for xfs_dir2_leaf_entry_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25493a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit a818e5de7e21ddaa7352bb8c9fc785c7b4f3019f +Author: Nathan Scott +Date: Fri Mar 17 17:28:07 2006 +1100 + + [XFS] endianess annotations for xfs_dir2_leaf_hdr_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25492a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit e922fffa4188ef6207cd3afef7f4d33bf4a9ca64 +Author: Nathan Scott +Date: Fri Mar 17 17:27:56 2006 +1100 + + [XFS] endianess annotations for xfs_dir2_block_tail_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25491a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 1fba9f7fe2164553557e26583e6feb5299cf9f76 +Author: Nathan Scott +Date: Fri Mar 17 17:27:47 2006 +1100 + + [XFS] endianess annotations for XFS_DIR2_DATA_UNUSED_TAG_P + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25490a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit ad354eb34eb354eedc483d1e89e17710165bd2db +Author: Nathan Scott +Date: Fri Mar 17 17:27:37 2006 +1100 + + [XFS] endianess annotations for xfs_dir2_data_unused_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25489a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit afbcb3f91903bcd34d470efe64b3738257178667 +Author: Nathan Scott +Date: Fri Mar 17 17:27:28 2006 +1100 + + [XFS] endianess annotations for xfs_dir2_leaf_tail_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25487a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 68b3a1024a7cda4afaacb3d25e6ac234ddfc0834 +Author: Nathan Scott +Date: Fri Mar 17 17:27:19 2006 +1100 + + [XFS] endianess annotations for XFS_DIR2_LEAF_BESTS_P + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25486a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 0ba962ef7128d9276b8f95196382d5b9e2ad841d +Author: Nathan Scott +Date: Fri Mar 17 17:27:07 2006 +1100 + + [XFS] endianess annotations for xfs_dir2_free_hdr_t + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25485a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 70e73f59755867383edf563d5a5cbea614c0fd49 +Author: Nathan Scott +Date: Fri Mar 17 17:26:52 2006 +1100 + + [XFS] endianess annotations for xfs_dir2_data_hdr structure. + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25484a + + Signed-off-by: Nathan Scott + +commit 9cea236492ebabb9545564eb039aa0f477a05c96 +Author: Nathan Scott +Date: Fri Mar 17 17:26:41 2006 +1100 + + [XFS] Flush and invalidate dirty pages at the start of a direct read also, + else we can hit a delalloc-extents-via-direct-io BUG. + + SGI-PV: 949916 + SGI-Modid: xfs-linux-melb:xfs-kern:25483a + + Signed-off-by: Nathan Scott + +commit ce9d37c257ceba5b4d089c544e4673546f647565 +Author: Nathan Scott +Date: Fri Mar 17 17:26:34 2006 +1100 + + [XFS] Merge Yingpings fix for a vn_count assert failure during QA - + another ENOSPC condition. + + SGI-PV: 950784 + SGI-Modid: xfs-linux-melb:xfs-kern:25482a + + Signed-off-by: Nathan Scott + +commit 238f4c5468656e3e8b1d39d75c1e4fd73592c1ea +Author: Nathan Scott +Date: Fri Mar 17 17:26:25 2006 +1100 + + [XFS] Make couple names consitent, be more defensive on releasepage (and + prep for nobh, someday, maybe). + + SGI-PV: 904196 + SGI-Modid: xfs-linux-melb:xfs-kern:25481a + + Signed-off-by: Nathan Scott + +commit a13828b167532a2145c9e3f563a99f810500c7b4 +Author: Nathan Scott +Date: Fri Mar 17 17:26:14 2006 +1100 + + [XFS] Cleanup references to i_sem. + + SGI-PV: 904196 + SGI-Modid: xfs-linux-melb:xfs-kern:25480a + + Signed-off-by: Nathan Scott + +commit b12dd34298cf0cff9f337f667045335140873039 +Author: Nathan Scott +Date: Fri Mar 17 17:26:04 2006 +1100 + + [XFS] Fix an infinite loop issue in bulkstat when a corrupt inode is + detected. Thanks to Roger Willcocks. + + SGI-PV: 951054 + SGI-Modid: xfs-linux-melb:xfs-kern:25477a + + Signed-off-by: Nathan Scott + +commit 2ddd5928d01ca8eb49f55166411b64a5844a8959 +Author: Nathan Scott +Date: Fri Mar 17 17:25:46 2006 +1100 + + [XFS] Correct the dquot reservation component for the link transation. + + SGI-PV: 904196 + SGI-Modid: xfs-linux-melb:xfs-kern:25476a + + Signed-off-by: Nathan Scott + +commit ec86dc02fdc062d0d298814b1e78b482ab38caf7 +Author: Nathan Scott +Date: Fri Mar 17 17:25:36 2006 +1100 + + [XFS] Complete transition away from linvfs naming convention, finally. + + SGI-PV: 947038 + SGI-Modid: xfs-linux-melb:xfs-kern:25474a + + Signed-off-by: Nathan Scott + +commit 8867bc9bf0aed7181aa72c7c938c6ce830b75166 +Author: Mandy Kirkconnell +Date: Fri Mar 17 17:25:04 2006 +1100 + + [XFS] There are a few problems with the new + xfs_bmap_search_multi_extents() wrapper function that I introduced in mod + xfs-linux:xfs-kern:207393a. The function was added as a wrapper around + xfs_bmap_do_search_extents() to avoid breaking the top-of-tree CXFS + interface. The idea of the function was basically to extract the target + extent buffer (if muli- level extent allocation mode), then call + xfs_bmap_do_search_extents() with either a pointer to the first extent in + the target buffer or a pointer to the first extent in the file, depending + on which extent mode was being used. However, in addition to locating the + target extent record for block bno, xfs_bmap_do_search_extents() also sets + four parameters needed by the caller: *lastx, *eofp, *gotp, *prevp. + Passing only the target extent buffer to xfs_bmap_do_search_extents() + causes *eofp to be set incorrectly if the extent is at the end of the + target list but there are actually more extents in the next er_extbuf. + Likewise, if the extent is the first one in the buffer but NOT the first + in the file, *prevp is incorrectly set to NULL. Adding the needed + functionality to xfs_bmap_search_multi_extents() to re-set any incorrectly + set fields is redundant and makes the call to xfs_bmap_do_search_extents() + not make much sense when multi-level extent allocation mode is being used. + This mod basically extracts the two functional components from + xfs_bmap_do_search_extents(), with the intent of obsoleting/removing + xfs_bmap_do_search_extents() after the CXFS mult-level in-core extent + changes are checked in. The two components are: 1) The binary search to + locate the target extent record, and 2) Setting the four parameters needed + by the caller (*lastx, *eofp, *gotp, *prevp). Component 1: I created a + new function in xfs_inode.c called xfs_iext_bno_to_ext(), which executes + the binary search to find the target extent record. + xfs_bmap_search_multi_extents() has been modified to call + xfs_iext_bno_to_ext() rather than xfs_bmap_do_search_extents(). Component + 2: The parameter setting functionality has been added to + xfs_bmap_search_multi_extents(), eliminating the need for + xfs_bmap_do_search_extents(). These changes make the removal of + xfs_bmap_do_search_extents() trival once the CXFS changes are in place. + They also allow us to maintain the current XFS interface, using the new + search function introduced in mod xfs-linux:xfs-kern:207393a. + + SGI-PV: 928864 + SGI-Modid: xfs-linux-melb:xfs-kern:207866a + + Signed-off-by: Mandy Kirkconnell + Signed-off-by: Nathan Scott + +commit 2c276603c3e5ebf38155a9d1fbbda656d52d138e +Author: Michael Ellerman +Date: Thu Mar 16 14:47:20 2006 +1100 + + [PATCH] powerpc: Fix bug in bug fix for bug in lmb_alloc() + + My patch (d7a5b2ffa1352f0310630934a56aecbdfb617b72) to always panic if + lmb_alloc() fails is broken because it checks alloc < 0, but should be + checking alloc == 0. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 9b15879aefe6a4c2236297df68c46498af26143d +Author: Christoph Hellwig +Date: Wed Mar 15 11:30:44 2006 +0100 + + [PATCH] spidernet: select FW_LOADER + + The spidernet drivers uses request_firmware() and thus needs to select + FW_LOADER. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Paul Mackerras + +commit 898b1920a67048c1f38bb99777f4cff06380a59a +Author: Grant Likely +Date: Thu Mar 9 23:36:40 2006 -0700 + + [PATCH] Fix compile error for ML300/403 + + Needed due to changes in ppc_sys.c. + + Signed-off-by: Grant Likely + Signed-off-by: Paul Mackerras + +commit bbbe1212bd6f815290f782ba5b489467b54131dc +Author: Adrian Cox +Date: Wed Mar 8 22:10:20 2006 +0000 + + [PATCH] ppc: Fix platform_notify functions marked __init + + While adding USB support to an MV64360 based board this week, I + discovered that all MV64x60 boards in the kernel have platform_notify + functions marked with __init. This causes an oops if a device is added + after boot. + + The patch below removes the __init markers. I do not have all these + boards to test on, but the change seems very unlikely to break anything + else. + + Signed-off-by: Adrian Cox + Signed-off-by: Paul Mackerras + +commit 7e5b59384eebe35bff8429243f089931ce1cdf38 +Author: Olaf Hering +Date: Wed Mar 8 20:40:28 2006 +0100 + + [PATCH] powerpc: add a raw dump command to xmon + + Dump a stream of rawbytes with a new 'dr' command. + Produces less output and it is simpler to feed the output to scripts. + Also, dr has no dumpsize limits. + + Signed-off-by: Olaf Hering + Signed-off-by: Paul Mackerras + +commit e33852228f74b8ccbed8595083bb725b70902ed7 +Author: Christoph Hellwig +Date: Wed Mar 8 16:47:00 2006 +0100 + + [PATCH] powerpc: add for_each_node_by_foo helpers + + Typical use for of_find_node_by_name and of_find_node_by_type is to + iterate over all nodes of a given type/name. Add a helper macro to + do that (in spirit of the list_for_each* macros). + + Signed-off-by: Christoph Hellwig + Signed-off-by: Paul Mackerras + +commit d116fe5aeafd8226712d2de9c69428725ca74474 +Author: Eric Sesterhenn +Date: Mon Mar 6 21:13:32 2006 +0100 + + [PATCH] kzalloc() conversion in arch/ppc + + This converts arch/ppc to kzalloc usage. + Crosscompile tested with allyesconfig. + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Paul Mackerras + +commit 0f6be7b77ceaea01a35b37fab26f4ea3b01efe14 +Author: David Gibson +Date: Mon Mar 6 12:51:29 2006 +1100 + + [PATCH] powerpc: Better pmd_bad() and pud_bad() checks + + At present, the powerpc pmd_bad() and pud_bad() macros return false + unless the given pmd or pud is zero. This patch makes these tests + more thorough, checking if the given pmd or pud looks like a plausible + pte page or pmd page pointer respectively. This can result in helpful + error messages when messing with the pagetable code. + + Signed-off-by: David Gibson + Signed-off-by: Paul Mackerras + +commit c39f5ebe0a542caab30c88e60623709c7bc6fe30 +Author: Tejun Heo +Date: Mon Mar 13 19:51:19 2006 +0900 + + [PATCH] libata: move IDENTIFY info printing from ata_dev_read_id() to ata_dev_configure() + + Move IDENTIFY info printing from ata_dev_read_id() to + ata_dev_configure() and print only if @print_info is non-zero. This + kills duplicate IDENTIFY info printing during probing. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 1148c3a78aa9f1e84229cd17f94fd38a15ca65bd +Author: Tejun Heo +Date: Mon Mar 13 19:48:04 2006 +0900 + + [PATCH] libata: use local *id instead of dev->id in ata_dev_configure() + + dev->id is used many times in ata_dev_configure(). Use local variable + id instead for shorter notation. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 9e7714d08061a77d3d2ec9a6ef6fd571a534fc7f +Author: Catalin Marinas +Date: Thu Mar 16 14:10:20 2006 +0000 + + [ARM] 3367/1: CLCD mode no longer supported on the RealView boards + + Patch from Catalin Marinas + + Chosing of the CLCD RGB mode is no longer possible via the SYS_CLCD + register on the RealView boards. Instead, this configuration is done in the + CLCD primecell control register directly. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit 243f196d572822214bb86522f28b30e096d67414 +Author: Catalin Marinas +Date: Thu Mar 16 14:10:19 2006 +0000 + + [ARM] 3366/1: Allow the 16bpp mode configuration in the CLCD control register + + Patch from Catalin Marinas + + Starting with PL111, the 5551 or 565 modes can be configured in the + primecell's control register directly. This patch detects the required mode + and sets the correct value. + + Signed-off-by: Catalin Marinas + Signed-off-by: Russell King + +commit 55be062d2d6397e6f24f3b91608917e9e84206d7 +Author: Jesse Brandeburg +Date: Wed Mar 15 12:18:13 2006 -0800 + + e1000: update the readme with the latest text + + The text of the e1000.txt file is a little stale, lets freshen it up. + (update) removed some non-kernel specific text + + Signed-off-by: Jesse Brandeburg + +commit 823f8dd17778ba0993c56173505eea921b7859b4 +Author: Jesse Brandeburg +Date: Tue Mar 14 15:51:07 2006 -0800 + + e100: update e100.txt + + Signed-off-by: Jesse Brandeburg + +commit 95e6a856772413993f54916ca9bf21ccfa6a537e +Author: Andrew Vasquez +Date: Tue Mar 14 14:41:04 2006 -0800 + + [SCSI] qla2xxx: update MAINTAINERS + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit add18784390e68a43f2c81110654e86c29be5947 +Author: Jesse Brandeburg +Date: Tue Mar 14 14:52:13 2006 -0800 + + e100/e1000/ixgb: update MAINTAINERS to current developers + + Remove Ganesh, add Jeff and Jesse + + Signed-off-by: Jesse Brandeburg + +commit a50a5e3792a6c65f95dab547dba45608bd193404 +Author: Mike Anderson +Date: Tue Mar 14 11:18:46 2006 -0800 + + [SCSI] scsi: move target_destroy call + + This patch moves the calling of target_destroy next to the list_del. This + closed a race being seen while doing a device add on the aic7xxx. + + Signed-off-by: Mike Anderson + Signed-off-by: James Bottomley + +commit 9dec70e053613c31e8feab9e14607eaaed99d77c +Author: Moore, Eric +Date: Tue Mar 14 09:14:26 2006 -0700 + + [SCSI] fusion - bump version + + version bump + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit e6b2d76a49f0ee48527691867d8af2b8f9c10452 +Author: Moore, Eric +Date: Tue Mar 14 09:14:24 2006 -0700 + + [SCSI] fusion - expander hotplug suport in mptsas module + + This adds support for hot adding and removing + expanders, and its associated attached devices. + When there is a change in topology, + the fusion firmware sends the + MPI_EVENT_SAS_DISCOVERY event to the driver. + The driver will read firmware config pages + to determine what changes took place, and refresh + drivers view of the world stored in ioc->sas_topology. + + Here is the details of the action the driver does: + + (1) Expander Added : The mptsas_discovery_work + workqueue is called. Config pages read, and + ioc->sas_topology is refreshed. The sas_phy_add() + is called for each phy of the expander. The + expanders attached devices are added via + sas_rphy_add(). Added end devices are handled within + the MPT_ADD_DEVICE logic in mptsas_hotplug_work + workqueue. + + (2) Expander Delete : The sas_rphy_delete() will be + called for the top most compenent of the parent that the + expander is attached to. The sas_rphy_delete call + will delete all the children phys, rphys, and end devices. + This is handled from mptsas_discovery_work workqueue. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit f44e5461d919a344d44f7ca4f06cf8d169da8454 +Author: Moore, Eric +Date: Tue Mar 14 09:14:21 2006 -0700 + + [SCSI] fusion - exposing raid components in mptsas + + Suppport for exposing hidden raid components + for sg interface. The sdev->no_uld_attach flag + will set set accordingly. + + The sas module supports adding/removing raid + volumes using online storage management application + interface. + + This patch rely's on patch's provided to me + by Christoph Hellwig, that exports device_reprobe. + I will post those patch's on behalf of Christoph. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit db9c9174e42bdc8d52bc18df7c55823cf4546eda +Author: Moore, Eric +Date: Tue Mar 14 09:14:18 2006 -0700 + + [SCSI] fusion - memory leak, and initializing fields + + Changelog: + (1) fix memory leak: p->phy_info + (2) initialize device_info and port_info data fields + (3) initialize the hba firmware handle + (4) initialize phy_id for attached phy_info data fields + (5) initialize attached phy_info data fields + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 52435430fc8724f09ad0e917eddf677583cdd45c +Author: Moore, Eric +Date: Tue Mar 14 09:14:15 2006 -0700 + + [SCSI] fusion - exclosure misspelled + + exclosure should be enclosure + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 4b766471e388352f35a6171563dfc0d272f12b59 +Author: Moore, Eric +Date: Tue Mar 14 09:14:12 2006 -0700 + + [SCSI] fusion - cleanup mptsas event handling functions + + Cleanup of mptsas firmware event handlers. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 914c2d8e597798d62c2e0a3cba737bf6f611eecf +Author: Moore, Eric +Date: Tue Mar 14 09:19:36 2006 -0700 + + [SCSI] fusion - removing target_id/bus_id from the VirtDevice structure + + It makes no sense in keeping the target_id and bus_id + in the VirtDevice structure, when it can be obtained + from the VirtTarget structure. + + In addition, this patch fix's couple compilation bugs + in mptfc.c when MPT_DEBUG_FC is enabled. This + provided by Micheal Reed. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit c972c70fa03097be4235fc441658290a3b7af06f +Author: Moore, Eric +Date: Tue Mar 14 09:14:06 2006 -0700 + + [SCSI] fusion - static fix's + + Patch previously provided from Adrian Bunk , + moving some functions to static. This is already in + the -mm tree. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 3a892bef3f7e94c4d6c2c20b9a1b546f43679fd3 +Author: Moore, Eric +Date: Tue Mar 14 09:14:03 2006 -0700 + + [SCSI] fusion - move some debug firmware event debug msgs to verbose level + + Created a debug level MPT_DEBUG_VERBOSE_EVENTS. + Moving some of the more vebose debug messages + for firwmare events into new debug level. Also + added some more firmware events descriptions. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 5bf52c4fda97325976ffaf338d2e81b73b3db446 +Author: Moore, Eric +Date: Tue Mar 14 09:14:01 2006 -0700 + + [SCSI] fusion - loginfo header update + + This header is provided to better understand + loginfo codes returned by the mpt fusion firmware. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit e28482c5b24006e9e4a867f9995baf358cbc1059 +Author: James Bottomley +Date: Tue Mar 14 14:24:55 2006 -0600 + + [SCSI] add scsi_reprobe_device + + Original from Christoph Hellwig and Eric Moore. This version exports + the scsi_reprobe_device() function as an inline. + + Signed-off-by: James Bottomley + +commit e5b3a65fd7244e662691cf617145983ecde28cc9 +Author: Christoph Hellwig +Date: Fri Mar 10 17:08:57 2006 +0100 + + [SCSI] megaraid_sas: fix extended timeout handling + + Replace the eh_timed_out method usage with setting sdev->timeout in + slave_configure. Also only use the extended timeout for raid volumes, + physical devices shouldn't need it. + + Signed-off-by: Christoph Hellwig + Signed-off-by: James Bottomley + +commit e935d5da8e5d12fabe5b632736c50eae0427e8c8 +Author: Moore, Eric +Date: Tue Mar 14 09:18:18 2006 -0700 + + [SCSI] drivers/base/bus.c - export reprobe + + Adding support for exposing hidden raid components for sg + interface. The sdev->no_uld_attach flag will set set accordingly. + + The sas module supports adding/removing raid volumes using online + storage management application interface. + + This patch was provided to me by Christoph Hellwig. + + Signed-off-by: Eric Moore + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: James Bottomley + +commit 79cb1819e231f811211133a09a5382cb89d7ec67 +Author: James Bottomley +Date: Mon Mar 13 13:50:04 2006 -0600 + + [SCSI] add preliminary expander support to the sas transport class + + This patch makes expanders appear as labelled objects with properties in + the SAS tree. + + I've also modified the phy code to make expander phys appear labelled by + host number, expander number and phy index. + + So, for my current config, you see something like this in sysfs: + + /sys/class/scsi_host/host1/device/phy-1:4/expander-1:0/phy-1-0:12/rphy-1:0-12/target1:0:1 + + And the expander properties are: + + jejb@sparkweed> cd /sys/class/sas_expander/expander-1\:0/ + jejb@sparkweed> for f in *; do echo -n $f ": "; cat $f; done + component_id : 29024 + component_revision_id : 4 + component_vendor_id : VITESSE + device : cat: device: Is a directory + level : 0 + product_id : VSC7160 Eval Brd + product_rev : 4 + uevent : cat: uevent: Permission denied + vendor_id : VITESSE + + Signed-off-by: James Bottomley + +commit 642fde17dceceb56c7ba2762733ac688666ae657 +Author: Adrian Bunk +Date: Tue Mar 14 00:13:34 2006 -0500 + + Input: gameport - fix memory leak + + Signed-off-by: Adrian Bunk + Signed-off-by: Dmitry Torokhov + +commit 9d921116cc5e27c1950b7e7508fdefec04a69963 +Author: Adrian Bunk +Date: Tue Mar 14 00:13:29 2006 -0500 + + Input: serio - fix memory leak + + Signed-off-by: Adrian Bunk + Signed-off-by: Dmitry Torokhov + +commit 4872f7888855fa52182f3d69de1ff3746fd43c07 +Author: Richard Purdie +Date: Tue Mar 14 00:12:32 2006 -0500 + + Input: zaurus keyboard driver updates + + * Change the scan interval from 100ms to 50ms. This stops the key + repeat from triggering on double letter presses. + * Remove unneeded stale hinge code from corgikbd + * Change unneeded corgi GPIO pins to inputs when suspended + * Add support for the headphone jack switch for both corgi and spitz + (as switch SW_2) + + Signed-off-by: Richard Purdie + Signed-off-by: Dmitry Torokhov + +commit 2bfc3c6e9516ece6856ec7904319650a5d4d9871 +Author: Bjorn Helgaas +Date: Tue Mar 14 00:12:24 2006 -0500 + + Input: i8042 - fix logic around pnp_register_driver() + + Do not assume that pnp_register_driver() returns the number of + devices claimed. + + Signed-off-by: Bjorn Helgaas + Signed-off-by: Dmitry Torokhov + +commit dd55563f635751327eb06ae569d4761a0220f2e0 +Author: Bjorn Helgaas +Date: Tue Mar 14 00:12:08 2006 -0500 + + Input: ns558 - fix logic around pnp_register_driver() + + Do not assume that pnp_register_driver() returns the number of + devices claimed. + + Signed-off-by: Bjorn Helgaas + Signed-off-by: Dmitry Torokhov + +commit e5c6c8e457d16c7cbc12f849ad18d4d508950de2 +Author: Michael Neuling +Date: Tue Mar 14 00:11:50 2006 -0500 + + Input: pcspkr - separate device and driver registration + + The current pcspkr code combines the device and driver registration. + This patch splits these, putting the device registration in the arch + specific code. + + PowerPC and MIPS only have the pcspkr present sometimes. + + Signed-off-by: Michael Neuling + Signed-off-by: Ralf Baechle + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit aaef685d5726768d25cbdc672a59c284d820b82e +Author: Dmitry Torokhov +Date: Tue Mar 14 00:10:23 2006 -0500 + + Input: atkbd - allow disabling on X86_PC (if EMBEDDED) + + Allow disabling atkbd driver if CONFIG_EMBEDDED is enabled. Previously + it was impossible to disable atkbd on X86_PC. + + Signed-off-by: Dmitry Torokhov + +commit 380e19e2d8aa8fd4739503d890755a717ce20b4f +Author: Vojtech Pavlik +Date: Tue Mar 14 00:10:08 2006 -0500 + + Input: atkbd - disable softrepeat for dumb keyboards + + Do not activate softrepeat by default on dumb keyboards as it clashes + with their own hardware repeat (for example Dell DRAC3). Softrepeat + can still be activated manually via module parameter or sysfs. + + Signed-off-by: Dmitry Torokhov + +commit 9b104c12f12d6b9923e3b779a1f3e45efab7bae6 +Author: Vojtech Pavlik +Date: Tue Mar 14 00:09:52 2006 -0500 + + Input: atkbd - fix complaints about 'releasing unknown key 0x7f' + + Fix bat_xl and err_xl logic causing atkbd to complain about 'unknown + key 0x7f'. Noted by Ben LaHaise. + + Signed-off-by: Vojtech Pavlik + Signed-off-by: Dmitry Torokhov + +commit 50a598de407ea2e2f4e20bc34eeefe8bb5a8071e +Author: Micah F. Galizia +Date: Tue Mar 14 00:09:34 2006 -0500 + + Input: HID - fix duplicate key mapping for Logitech UltraX remote + + This patch makes the "cc/teletext" key emit "KEY_TEXT" event instead of + "KEY_SUBTITLE" which is already mapped to "subtitle" button. + + Signed-off-by: Vojtech Pavlik + Signed-off-by: Dmitry Torokhov + +commit b39787a972042ded183343b177d9c595b5704575 +Author: Eric Sesterhenn +Date: Tue Mar 14 00:09:16 2006 -0500 + + Input: use kzalloc() throughout the code + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Dmitry Torokhov + +commit 493a7e0d5614c30e1f3e56d59ab774300a2609f2 +Author: Dmitry Torokhov +Date: Tue Mar 14 00:09:05 2006 -0500 + + Input: fix input_free_device() implementation + + input_free_device can't just call kfree because if input_register_device + fails after successfully registering corresponding class device there + is a chance that someone could get a reference to it. We need to use + input_put_device() to make sure that we don't delete input device until + last reference to it was dropped. + + Signed-off-by: Dmitry Torokhov + +commit 524fbf5dd1b25acffe6f8a4ed5f3cce1023cfdb8 +Author: Nathan Scott +Date: Tue Mar 14 14:07:53 2006 +1100 + + [XFS] Revert kiocb and vattr stack changes, theory is the AIO rework will + help here and vattr may be small enough. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25423a + + Signed-off-by: Nathan Scott + +commit f30a1211119741d2c1063ad613bec8434fb9d099 +Author: Nathan Scott +Date: Tue Mar 14 14:07:36 2006 +1100 + + [XFS] Dynamically allocate the xfs_dinode_core_t structure to reduce our + stack footprint in xfs_ialloc_ag_alloc. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25420a + + Signed-off-by: Nathan Scott + +commit f020b67f3c0c071ed5b2281bfa717125c8a39ad6 +Author: Mandy Kirkconnell +Date: Tue Mar 14 14:07:24 2006 +1100 + + [XFS] Fix assert to check that in-core extents are inline only. + + SGI-PV: 950678 + SGI-Modid: xfs-linux-melb:xfs-kern:207634a + + Signed-off-by: Mandy Kirkconnell + Signed-off-by: Nathan Scott + +commit a50cd2692617cfb796140a62c0082bce0a7306c7 +Author: Nathan Scott +Date: Tue Mar 14 14:06:18 2006 +1100 + + [XFS] Switch over from linvfs names for sb/quotactl operations for + consistent naming. + + SGI-PV: 950556 + SGI-Modid: xfs-linux-melb:xfs-kern:25382a + + Signed-off-by: Nathan Scott + +commit 416c6d5bcfe8ac2c65a955be62bc42d8b8d5b014 +Author: Nathan Scott +Date: Tue Mar 14 14:00:51 2006 +1100 + + [XFS] Switch over from linvfs names for inode operations for consistent + naming. + + SGI-PV: 950556 + SGI-Modid: xfs-linux-melb:xfs-kern:25381a + + Signed-off-by: Nathan Scott + +commit 3562fd45658fbb696f4546479332d5249c3ad90f +Author: Nathan Scott +Date: Tue Mar 14 14:00:35 2006 +1100 + + [XFS] Switch over from linvfs names for file operations for consistent + naming. + + SGI-PV: 950556 + SGI-Modid: xfs-linux-melb:xfs-kern:25379a + + Signed-off-by: Nathan Scott + +commit e4c573bb6a8477a26b3d5471fd116d258760a13a +Author: Nathan Scott +Date: Tue Mar 14 13:54:26 2006 +1100 + + [XFS] Switch over from linvfs names for address space ops for consistent + naming. + + SGI-PV: 950556 + SGI-Modid: xfs-linux-melb:xfs-kern:25378a + + Signed-off-by: Nathan Scott + +commit b8b0f546569871b365a5e3b3cc3f667af658dd49 +Author: Nathan Scott +Date: Tue Mar 14 13:47:32 2006 +1100 + + [XFS] Remove a couple of no-longer-used macros/types from XFS. + + SGI-PV: 950556 + SGI-Modid: xfs-linux-melb:xfs-kern:25377a + + Signed-off-by: Nathan Scott + +commit a365bdd5e8fae9c592b9e4851d931016f9fdd868 +Author: Nathan Scott +Date: Tue Mar 14 13:34:16 2006 +1100 + + [XFS] Reduce stack usage within xfs_bmapi by rearranging some code, + splitting realtime/btree allocators apart. Based on Glens original + patches. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25372a + + Signed-off-by: Nathan Scott + +commit 39269e29d4aad04252e0debec4c9b01bac16a257 +Author: Nathan Scott +Date: Tue Mar 14 13:33:50 2006 +1100 + + [XFS] Reduce xfs_bmapi stack use by removing some local state variables, + and directly testing flags instead. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25370a + + Signed-off-by: Nathan Scott + +commit 220b5284139be6ecbc39b353fd76f0923eccc3d6 +Author: Nathan Scott +Date: Tue Mar 14 13:33:36 2006 +1100 + + [XFS] Dynamically allocate vattr in places it makes sense to do so, to + reduce stack use. Also re-use vattr in some places so that multiple + copies are not held on-stack. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25369a + + Signed-off-by: Nathan Scott + +commit 9b94c2eddf407ad8faa5672ffa691e2076167564 +Author: Nathan Scott +Date: Tue Mar 14 13:32:54 2006 +1100 + + [XFS] Take a dentry structure off the stack into the data segment. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25361a + + Signed-off-by: Nathan Scott + +commit 8f79405527b50fe27cffcb7081890b5c68439b4f +Author: Nathan Scott +Date: Tue Mar 14 13:32:41 2006 +1100 + + [XFS] Reduce complexity in xfs_trans_init by pushing complex macros out + into functions and hence reduce the stack footprint there. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25360a + + Signed-off-by: Nathan Scott + +commit f6d75cbed997dffb41e3d473bd4c0f899abc3776 +Author: Nathan Scott +Date: Tue Mar 14 13:32:24 2006 +1100 + + [XFS] Dynamically allocate xfs_dir2_put_args_t structure to reduce stack + pressure in xfs_dir2_leaf_getdents routine. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25359a + + Signed-off-by: Nathan Scott + +commit 1f6553f9f9b6e41375c605769a75bd1646685a1b +Author: Nathan Scott +Date: Tue Mar 14 13:30:48 2006 +1100 + + [XFS] Dynamically allocate local kiocb structures in readv/writev routines + to reduce stack footprint. + + SGI-PV: 947312 + SGI-Modid: xfs-linux-melb:xfs-kern:25358a + + Signed-off-by: Nathan Scott + +commit 0293ce3a9fd1b34c933a96577a8ba737b681cf75 +Author: Mandy Kirkconnell +Date: Tue Mar 14 13:30:23 2006 +1100 + + [XFS] 929045 567344 This mod introduces multi-level in-core file extent + functionality, building upon the new layout introduced in mod + xfs-linux:xfs-kern:207390a. The new multi-level extent allocations are + only required for heavily fragmented files, so the old-style linear extent + list is used on files until the extents reach a pre-determined size of 4k. + 4k buffers are used because this is the system page size on Linux i386 and + systems with larger page sizes don't seem to gain much, if anything, by + using their native page size as the extent buffer size. Also, using 4k + extent buffers everywhere provides a consistent interface for CXFS across + different platforms. The 4k extent buffers are managed by an indirection + array (xfs_ext_irec_t) which is basically just a pointer array with a bit + of extra information to keep track of the number of extents in each buffer + as well as the extent offset of each buffer. Major changes include: - + Add multi-level in-core file extent functionality to the xfs_iext_ + subroutines introduced in mod: xfs-linux:xfs-kern:207390a - Introduce 13 + new subroutines which add functionality for multi-level in-core file + extents: xfs_iext_add_indirect_multi() + xfs_iext_remove_indirect() xfs_iext_realloc_indirect() + xfs_iext_indirect_to_direct() xfs_iext_bno_to_irec() + xfs_iext_idx_to_irec() xfs_iext_irec_init() + xfs_iext_irec_new() xfs_iext_irec_remove() + xfs_iext_irec_compact() xfs_iext_irec_compact_pages() + xfs_iext_irec_compact_full() xfs_iext_irec_update_extoffs() + + SGI-PV: 928864 + SGI-Modid: xfs-linux-melb:xfs-kern:207393a + + Signed-off-by: Mandy Kirkconnell + Signed-off-by: Nathan Scott + +commit 4eea22f01bb4fdba1aab4430c33adbe88d9d4985 +Author: Mandy Kirkconnell +Date: Tue Mar 14 13:29:52 2006 +1100 + + [XFS] 929045 567344 This mod re-organizes some of the in-core file extent + code to prepare for an upcoming mod which will introduce multi-level + in-core extent allocations. Although the in-core extent management is + using a new code path in this mod, the functionality remains the same. + Major changes include: - Introduce 10 new subroutines which re-orgainze + the existing code but do NOT change functionality: + xfs_iext_get_ext() xfs_iext_insert() xfs_iext_add() + xfs_iext_remove() xfs_iext_remove_inline() + xfs_iext_remove_direct() xfs_iext_realloc_direct() + xfs_iext_direct_to_inline() xfs_iext_inline_to_direct() + xfs_iext_destroy() - Remove 2 subroutines (functionality moved to new + subroutines above): xfs_iext_realloc() -replaced by xfs_iext_add() + and xfs_iext_remove() xfs_bmap_insert_exlist() - replaced by + xfs_iext_insert() xfs_bmap_delete_exlist() - replaced by + xfs_iext_remove() - Replace all hard-coded (indexed) extent assignments + with a call to xfs_iext_get_ext() - Replace all extent record pointer + arithmetic (ep++, ep--, base + lastx,..) with calls to + xfs_iext_get_ext() - Update comments to remove the idea of a single + "extent list" and introduce "extent record" terminology instead + + SGI-PV: 928864 + SGI-Modid: xfs-linux-melb:xfs-kern:207390a + + Signed-off-by: Mandy Kirkconnell + Signed-off-by: Nathan Scott + +commit 9f989c9455aac417c34af9c505e6b169055251da +Author: Nathan Scott +Date: Tue Mar 14 13:29:32 2006 +1100 + + [XFS] Additional mount time superblock validation checks. + + SGI-PV: 950491 + SGI-Modid: xfs-linux-melb:xfs-kern:25354a + + Signed-off-by: Nathan Scott + +commit 01e1b69cfcdcfdd5b405165eaba29428f8b18a7c +Author: David Chinner +Date: Tue Mar 14 13:29:16 2006 +1100 + + [XFS] using a spinlock per cpu for superblock counter exclusion results in + a preÄ“mpt counter overflow at 256p and above. Change the exclusion + mechanism to use atomic bit operations and busy wait loops to emulate the + spin lock exclusion mechanism but without the preempt count issues. + + SGI-PV: 950027 + SGI-Modid: xfs-linux-melb:xfs-kern:25338a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit 87cbc49cd4b773a972bce56c5dd09c4717f3285b +Author: Nathan Scott +Date: Tue Mar 14 13:26:43 2006 +1100 + + [XFS] Add xfs_map_buffer helper, use it in a couple of places. + + SGI-PV: 950211 + SGI-Modid: xfs-linux-melb:xfs-kern:25312a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit f51623b21fe3068d12f0c5d39e02fd2549635a99 +Author: Nathan Scott +Date: Tue Mar 14 13:26:27 2006 +1100 + + [XFS] Move some code around to avoid prototypes and prep for future + writepages code. + + SGI-PV: 950211 + SGI-Modid: xfs-linux-melb:xfs-kern:25311a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit 02d7c92334c84897d7d2840fc25e5896535766f9 +Author: Nathan Scott +Date: Tue Mar 14 13:26:09 2006 +1100 + + [XFS] Use XFS_VFSTOM in more places instead of open coding it. + + SGI-PV: 947206 + SGI-Modid: xfs-linux-melb:xfs-kern:25310a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit fcce0f1f9ae8d49fd27d418428034a505816d395 +Author: Tim Shimmin +Date: Tue Mar 14 13:25:02 2006 +1100 + + [XFS] forgot a couple of calls to XLOG_VEC_SET_TYPE when porting from irix + to linux. + + SGI-PV: 931456 + SGI-Modid: xfs-linux-melb:xfs-kern:25238a + + Signed-off-by: Tim Shimmin + Signed-off-by: Nathan Scott + +commit a780143ea53d26362b7cfb6666c8d04fb989bb7a +Author: Nathan Scott +Date: Tue Mar 14 13:24:46 2006 +1100 + + [XFS] UUID endianess fix. uu_timelow is a 32bit field and needs to be + swapped with be32_to_cpu. + + SGI-PV: 943272 + SGI-Modid: xfs-linux-melb:xfs-kern:25232a + + Signed-off-by: Christoph Hellwig + Signed-off-by: Nathan Scott + +commit e8234a6871aa0de1ed0aeeecb5230ecf3ab414e2 +Author: David Chinner +Date: Tue Mar 14 13:23:52 2006 +1100 + + [XFS] Add support for hotplug CPUs to the per-CPU superblock counters by + registering a notifier callback that listens to CPU up/down events to + modify the counters appropriately. + + SGI-PV: 949726 + SGI-Modid: xfs-linux-melb:xfs-kern:25214a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit 2d0f864be3266eb0a8b4b48f36e2f777eace00b3 +Author: Nathan Scott +Date: Tue Mar 14 13:20:33 2006 +1100 + + [XFS] Make headers compile for more compiler variants; minor cleanup. + + SGI-PV: 949432 + SGI-Modid: xfs-linux-melb:xfs-kern:25184a + + Signed-off-by: Nathan Scott + +commit d2c32edf64a7e9bc8dfb5cb3a8f7bf7be94c93ae +Author: Nathan Scott +Date: Tue Mar 14 13:20:13 2006 +1100 + + [XFS] When compiling with gcc 4.0 and CONFIG_SMP unset, there are many + warnings along the lines: xfs_linux.h:103:5: warning: "CONFIG_SMP" is not + defined. + + SGI-PV: 946630 + SGI-Modid: xfs-linux-melb:xfs-kern:25171a + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Nathan Scott + +commit e0cc2325d151c3f4f3276b2deda734faf742146f +Author: Nathan Scott +Date: Tue Mar 14 13:19:55 2006 +1100 + + [XFS] Flag the XFS inode cache as in need of spreading also. + + SGI-PV: 949073 + SGI-Modid: xfs-linux-melb:xfs-kern:25170a + + Signed-off-by: Nathan Scott + +commit 20722a91921bd9e9d4ba5c8f801d143e72e58418 +Author: Nathan Scott +Date: Tue Mar 14 13:19:08 2006 +1100 + + [XFS] Fix a mutex_destroy diagnostic about a locked-mutex-on-destroy from + quota code. + + SGI-PV: 949149 + SGI-Modid: xfs-linux-melb:xfs-kern:25123a + + Signed-off-by: Nathan Scott + +commit 8758280fcc6129be89503efe93bb59eaf2f85d28 +Author: Nathan Scott +Date: Tue Mar 14 13:18:19 2006 +1100 + + [XFS] Cleanup the use of zones/slabs, more consistent and allows flags to + be passed. + + SGI-PV: 949073 + SGI-Modid: xfs-linux-melb:xfs-kern:25122a + + Signed-off-by: Nathan Scott + +commit 8d280b98cfe3c0b69c37d355218975c1c0279bb0 +Author: David Chinner +Date: Tue Mar 14 13:13:09 2006 +1100 + + [XFS] On machines with more than 8 cpus, when running parallel I/O + threads, the incore superblock lock becomes the limiting factor for + buffered write throughput. Make the contended fields in the incore + superblock use per-cpu counters so that there is no global lock to limit + scalability. + + SGI-PV: 946630 + SGI-Modid: xfs-linux-melb:xfs-kern:25106a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit 9f4cbecd7e5ee6390fecd6032dc04ca8c9805dc9 +Author: Nathan Scott +Date: Tue Mar 14 13:05:30 2006 +1100 + + [XFS] XFS propagates MS_NOATIME through two levels internally but doesn't + actually use it. Kill this dead code. Signed-off-by: Christoph Hellwig + + + SGI-PV: 904196 + SGI-Modid: xfs-linux-melb:xfs-kern:25086a + + Signed-off-by: Nathan Scott + +commit 0c9512d74635198d90f349acec19381e446ba2b4 +Author: David Chinner +Date: Tue Mar 14 13:02:13 2006 +1100 + + [XFS] find_exported_dentry(). XFS does not need to use this symbol as it + is provided by a vector through the superblock export operations when the + filesystem is exported by NFS. The fix is to call that vector instead of + using the exported symbol directly. + + SGI-PV: 948858 + SGI-Modid: xfs-linux-melb:xfs-kern:25062a + + Signed-off-by: David Chinner + Signed-off-by: Nathan Scott + +commit c829c394165f981d49f05a9be228404d7a9398d4 +Author: James Smart +Date: Mon Mar 13 08:28:57 2006 -0500 + + [SCSI] FC transport : Avoid device offline cases by stalling aborts until device unblocked + + This moves the eh_timed_out functionality from the scsi_host_template + to the transport_template. Given that this is now a transport function, + the EH_RESET_TIMER case no longer caps the timer reschedulings. The + transport guarantees that this is not an infinite condition. + + Signed-off-by: James Bottomley + +commit dc9a49a4af9cdbe3d79183eefb12372b4dbc09c2 +Author: Jan Beulich +Date: Thu Mar 9 14:47:46 2006 +0100 + + kconfig: fix time ordering of writes to .kconfig.d and include/linux/autoconf.h + + Since .kconfig.d is used as a make dependency of include/linux/autoconf.h, it + should be written earlier than the header file, to avoid a subsequent rebuild + to consider the header outdated. + + Signed-Off-By: Jan Beulich + Signed-off-by: Sam Ravnborg + +commit 8cab77a2f851363e35089b9720373b964f64550e +Author: Adrian Bunk +Date: Tue Mar 7 23:58:36 2006 -0800 + + Kconfig: remove the CONFIG_CC_ALIGN_* options + + I don't see any use case for the CONFIG_CC_ALIGN_* options: + - they are only available if EMBEDDED + - people using EMBEDDED will most likely also enable + CC_OPTIMIZE_FOR_SIZE + - the default for -Os is to disable alignment + + In case someone is doing performance comparisons and discovers that the + default settings gcc chooses aren't good, the only sane thing is to discuss + whether it makes sense to change this, not through offering options to change + this locally. + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Sam Ravnborg + +commit 7d1859835cd6c0afd1773d249300da82b1b868a5 +Author: Chuck Ebbert <76306.1226@compuserve.com> +Date: Tue Mar 7 23:58:33 2006 -0800 + + kbuild: add -fverbose-asm to i386 Makefile + + Add -fverbose-asm to i386 Makefile rule for building .s files. This makes + the assembler output much more readable for humans. + + Suggested by Der Herr Hofrat + + Signed-off-by: Chuck Ebbert <76306.1226@compuserve.com> + Signed-off-by: Andrew Morton + Signed-off-by: Sam Ravnborg + +commit ce560686947fd50b30eaf42045554797f53949dd +Author: Sam Ravnborg +Date: Sun Mar 12 23:26:29 2006 +0100 + + kbuild: clean-up genksyms + + o remove all inlines + o declare everything static which is only used by genksyms.c + o delete unused functions + o delete unused variables + o delete unused stuff in genksyms.h + o properly ident genksyms.h + + Signed-off-by: Sam Ravnborg + +commit 78c041530ac2e65c9290137bfe3004340e0840d2 +Author: Sam Ravnborg +Date: Sun Mar 12 22:59:36 2006 +0100 + + kbuild: Lindent genksyms.c + + No fix-ups applied yet. Just the raw Lindent output. + + Signed-off-by: Sam Ravnborg + +commit c79c7b0923ff353d12194e83628bcca5a8606564 +Author: Sam Ravnborg +Date: Sun Mar 12 22:54:34 2006 +0100 + + kbuild: fix genksyms build error + + genksyms needs to know when a symbol must have a "_" prefex as is + true for a few architectures. + Pass $(ARCH) as commandline argument and hardcode what architectures that + needs this info. + Previous attemt to take it from elfconfig.h was br0ken since elfconfig.h + is a generated file. + + Signed-off-by: Sam Ravnborg + +commit fb21f0d0ec7e31cc814165e1a9d2662d9c9dd980 +Author: Tejun Heo +Date: Sun Mar 12 12:34:35 2006 +0900 + + [PATCH] libata: check Word 88 validity in ata_id_xfer_mask() + + Check bit 2 of Word 53 for Word 88 validity before using Word 88 to + determine UDMA mask. Note that the original xfer mask implementation + using ata_get_mode_mask() didn't consider bit 2 of Word 53. This + patch introduces different (correct) behavior. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 2044470cccec1bfe6bb819027975df302ff43bf8 +Author: Tejun Heo +Date: Mon Mar 13 01:57:01 2006 +0900 + + [PATCH] libata: fix class handling in ata_bus_probe() + + ata_bus_probe() didn't set classes[] properly for port disabled case + of ->phy_reset() compatibility path. This patch moves classes[] + initialization and normalization out of ->probe_reset block such that + it applies to both ->probe_reset and ->phy_reset paths. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit ce313db240862d809c736c5b1dfc759817fc7ca9 +Author: James Bottomley +Date: Sun Mar 12 10:02:15 2006 -0600 + + [SCSI] mptscsih: remove unused page 1 setting function + + It was actually rendered unused by the move to the spi transport + class, but never taken out. + + Signed-off-by: James Bottomley + +commit 597705aa7fbf3e600283f4a870fb700385eacb13 +Author: James Bottomley +Date: Sun Mar 12 09:54:19 2006 -0600 + + [SCSI] fix minor problem in spi transport message functions + + The check for a one byte message should be msg[0] == 0x55 not msg == 0x55 + + Signed-off-by: James Bottomley + +commit a1d4f73a00958162f91311396d37080f5e9b9ef1 +Author: Adrian Bunk +Date: Fri Mar 10 23:25:00 2006 +0100 + + [SCSI] sim710: fix a NULL pointer dereference + + This patch fixes a NULL pointer dereference spotted by the Coverity + checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: James Bottomley + +commit a6becb084d4beb0b0c83651541f5b53f6da01e36 +Author: Adrian Bunk +Date: Fri Mar 10 23:24:47 2006 +0100 + + [SCSI] ibmmca: fix a NULL pointer dereference + + The variable was dereferenced only if it was NULL (sic)... + + Spotted by the Coverity checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: James Bottomley + +commit c3c026ba5a16867af47578ab2030ef51f9080084 +Author: Adrian Bunk +Date: Fri Mar 10 23:24:21 2006 +0100 + + [SCSI] dmx3191d: fix a NULL pointer dereference + + This patch fixes a NULL pointer dereference spotted by the Coverity + checker. + + Signed-off-by: Adrian Bunk + Signed-off-by: James Bottomley + +commit 8800727ae8a20146981a9531ac833cb889666247 +Author: Adrian Bunk +Date: Fri Mar 10 23:24:08 2006 +0100 + + [SCSI] NCR_D700: fix a NULL dereference + + The Coverity checker spotted this NULL dereference. + + Signed-off-by: Adrian Bunk + Signed-off-by: James Bottomley + +commit 72df0ebf95561694c06adca62e590e37ec549579 +Author: Matthew Wilcox +Date: Fri Mar 10 07:18:22 2006 -0700 + + [SCSI] Missing names from SPI3, SPI4 and SPI5 + + Add several missing messages from SPI3, SPI4 and SPI5: + - Terminate Process + - Continue Task + - Target Transfer Disable + - Clear ACA + - LUN Reset + - ACA + - QAS Request + Rename some older commands to their SPI5 names: + - Command Complete -> Task Complete + - Abort -> Abort Task Set + - Bus device Reset -> Target Reset + - Clear Queue -> Clear Task Set + + Change spi_print_msg() to always consume one byte, even if we don't + recognise it. That allows drivers to call it in a loop to print all + messages. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 1757b67809078439662d62a266db45eae3a3d214 +Author: Andrew Vasquez +Date: Thu Mar 9 14:32:04 2006 -0800 + + [SCSI] qla2xxx: Firmware updates. + + Resync with latest 23xx firmware -- 3.03.20. + Resync with latest 24xx firmware -- 4.00.18. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit d584486a1cc9714d5de8dc0a04c2b1f023fbb82a +Author: Andrew Vasquez +Date: Thu Mar 9 14:31:47 2006 -0800 + + [SCSI] qla2xxx: Remove legacy ISP6312 firmware loader. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 9a52a57cb9d247fc1cea018fd3f4421f8fd6642a +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:44 2006 -0800 + + [SCSI] qla2xxx: Correct FCAL login retry logic for ISP24xx. + + ISP24XX FW does not support Mbx 0x74 ie Login Local Port. + Added the equivalent code for ISP24XX ie to relogin in non + fabric case for ISP24XX use login iocb. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 4a59f71d7f0d6dd433fd509584352cdd7c62e877 +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:39 2006 -0800 + + [SCSI] qla2xxx: Further restrict ZIO mode support. + + Only support ZIO mode 6 on specific ISP types. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 6f6417905cf272337a9762e1f92a1fffa651fcd3 +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:34 2006 -0800 + + [SCSI] qla2xxx: Add VPD sysfs attribute. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit fdbc6833c53a1c2ec2b122cd53e69e6136dcc774 +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:29 2006 -0800 + + [SCSI] qla2xxx: Correct swing/emphasis settings on ISP24xx. + + Reserved-bit 15 must set when updating the swing/emphasis values. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 1328962eb4b00dd1cfd1ffb863b1612b08751768 +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:24 2006 -0800 + + [SCSI] qla2xxx: NVRAM id-list updates. + + Resync with latest NVRAM subsystem ID list. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 48c02fde949f15920c0018d33d285fd39730d24b +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:18 2006 -0800 + + [SCSI] qla2xxx: Consolidate ISP63xx handling. + + As new 23xx firmware will accomidate ISP63xx types. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 044cc6c8ec311c4ddeebfcc31c53dea282de70b7 +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:13 2006 -0800 + + [SCSI] qla2xxx: Add ISP54xx support. + + Chip is similar in form to our ISP24xx offering. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit ea5b6382fde00e0dbcd0de2e4aa2fd15705e5fc3 +Author: andrew.vasquez@qlogic.com +Date: Thu Mar 9 14:27:08 2006 -0800 + + [SCSI] qla2xxx: Convert IS_QLA*() defines to bit-operations. + + Signed-off-by: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 93f56089898a1b27fc0c89b5c1c748291353f679 +Author: Dave Jones +Date: Thu Mar 9 10:21:27 2006 -0500 + + [SCSI] fix two leaks in scsi_alloc_sdev failure paths + + If the scsi_alloc_queue or the slave_alloc calls in scsi_alloc_device fail, + we forget to release the locally allocated sdev on the failure path. + + Coverity #609 + + Signed-off-by: Dave Jones + Signed-off-by: James Bottomley + +commit a0b6b6e5308d6ef70febfc3cfd5488717809b3e4 +Author: Ralf Baechle +Date: Thu Mar 9 14:35:13 2006 +0000 + + [SCSI] Make sgiwd93_detect and sgiwd93_detect static. + + Nothing outside sgiwd93.c references them. + + Signed-off-by: Ralf Baechle + Signed-off-by: James Bottomley + +commit 5c1b85e209af41c7e99a2bfd21dc8fe840b342d8 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:37 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: don't use parenthesis with "return" + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 5c04a7b8981f2855869bf04c881553135445d701 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:35 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: Lindent + + It's much, much more readable now. + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 13e6851aa1e8f7db0e9f0cc8567394a9fe451357 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:34 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: untypedef struct SCCBcard + + * struct SCCBcard => struct sccb_card + * PSCCBcard => struct sccb_card * + * SCCBCARD => struct sccb_card + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 68d0c1ae66413ef553b1132269129003cea668ed +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:33 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: untypedef struct NVRAMInfo + + * struct NVRAMInfo => struct nvram_info + * PNVRamInfo => struct nvram_info * + * NVRAMINFO => struct nvram_info + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit f31dc0cde69761dca05687addfd233accd393d1c +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:31 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: untypedef struct SCCBMgr_tar_info + + * struct SCCBMgr_tar_info => struct sccb_mgr_tar_info + * PSCCBMgr_tar_info => struct sccb_mgr_tar_info * + * SCCBMGR_TAR_INFO => struct sccb_mgr_tar_info + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 7f101662dd55aa16852ff6228ac496f56a259f5e +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:30 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: untypedef struct SCCBMgr_info + + * struct SCCBMgr_info => struct sccb_mgr_info + * PSCCBMGR_INFO => struct sccb_mgr_info * + * SCCBMGR_INFO => struct sccb_mgr_info + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 69eb2ea47793366f59bfbc6e3c655b9c5047badd +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:29 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: untypedef struct _SCCB + + * struct _SCCB => struct sccb + * PSCCB => struct sccb * + * SCCB => struct sccb + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit ad0e1d9f0155073cffb74755fb21c0fb82b1b094 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:28 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: use standard fixed size types + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit fd1e29ed62cc307281d1a62f73ebac059ac6b6a1 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:27 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: remove ushort_ptr + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit d63a4cccf387a8e6210cfd818c1ea717beefc531 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:26 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: remove ULONG + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit ce793215b428ae7650b39d87702efa3d5b26ba28 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:26 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: remove UINT + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit c823feeb33161c09e83ee4e68c822d6b9ececbc4 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:25 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: remove USHORT + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit db038cf86fc63d336fc9d8e57712dee1d726e2e9 +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:24 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: remove UCHAR + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit d8b6b8bd8a99ee91843381d51e8e619463721aed +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:23 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: remove trivial wrappers + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 85ae97d816da3f8af9dcfbc4197a2950b55c3b0d +Author: Alexey Dobriyan +Date: Wed Mar 8 00:14:22 2006 -0800 + + [SCSI] drivers/scsi/FlashPoint.c: remove unused things + + * Remove unused #define's + * Remove unused typedefs. + * Remove prototypes for non-existing functions. + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit f018fa552c52642a6b9db2bda90477762e42163f +Author: Rene Herman +Date: Wed Mar 8 00:14:20 2006 -0800 + + [SCSI] MODULE_ALIAS_{BLOCK,CHAR}DEV_MAJOR for drivers/scsi + + Add device-major aliases in drivers/scsi, allowing kmod autoload: + + MODULE_ALIAS_CHARDEV_MAJOR(SCSI_CHANGER_MAJOR) + MODULE_ALIAS_CHARDEV_MAJOR(OSST_MAJOR) + MODULE_ALIAS_CHARDEV_MAJOR(SCSI_TAPE_MAJOR) + MODULE_ALIAS_BLOCKDEV_MAJOR(SCSI_CDROM_MAJOR) + MODULE_ALIAS_BLOCKDEV_MAJOR(SCSI_DISKN_MAJOR) + + Signed-off-by: Andrew Morton + Acked-by: Kai Makisara + Signed-off-by: James Bottomley + +commit 76744f429a178ad2df06b722e5e7bbbf1b5245ee +Author: Hannes Reinecke +Date: Wed Mar 8 13:00:07 2006 +0100 + + [SCSI] aic79xx: Avoid renegotiation on inquiry + + Because of some quirk in the SCSI spec the aic79xx driver chose to + force a renegotiation when sending an inquiry. This should better + be handled by the upper layers if required at all. + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 986a25f96accc8272059ae8b3eb63055f58cadb0 +Author: Hannes Reinecke +Date: Wed Mar 8 12:59:35 2006 +0100 + + [SCSI] aic79xx: use BIOS settings + + This patch fixes the aic79xx driver to properly respond to BIOS + settings. + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 9e691dfba56f7d7a38b09edc5252264bc1bab659 +Author: Hannes Reinecke +Date: Wed Mar 8 12:59:03 2006 +0100 + + [SCSI] aic79xx: Invalid Sequencer interrupt occured + + On certain systems the driver seems to hit upon some + "scsi0: Invalid Sequencer interrupt occurred." problem and dumps card state. + According to Adaptec engineers this message is harmless. So as not to + confuse user we can as well disable the internal card state dump and + just print out the message itself. + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 6902f41610d631f74cfca7c61eac7b0950dd8990 +Author: Hannes Reinecke +Date: Wed Mar 8 12:58:16 2006 +0100 + + [SCSI] aic79xx: Update error recovery + + This patch updates the error recovery. Routines for TARGET RESET + and ABORT COMMAND are split up as the logic is quite dissimilar. + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 1ede5f9fe59ea245ad0ba859cfb08ac5814f6269 +Author: Hannes Reinecke +Date: Wed Mar 8 12:57:28 2006 +0100 + + [SCSI] aic79xx: Remove dead code + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 0aa800db8f1927aefe6f0ba6ce9d70f044374aef +Author: Hannes Reinecke +Date: Wed Mar 8 12:56:56 2006 +0100 + + [SCSI] aic79xx: use tcq functions + + This patch converts aic79xx to use the midlayer-supplied tcq + functions. + + We also set the queuedepth to '1' if tcq is disabled; the + aic79xx driver gets confused otherwise. Will set it back to + '2' once I figure out how to queue requests in the driver. + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit 7b22da38b64a32df20fdb7272deb7546045fccec +Author: Hannes Reinecke +Date: Wed Mar 8 12:56:14 2006 +0100 + + [SCSI] aic79xx: remove qfrozen + + This patch removes the need for platform_data->qfrozen. + We're now using complete() instead of semaphores thus + simplifying ahd_freeze_simq() quite a lot. + This also fixes some deadlocks in the recovery code (again). + + Signed-off-by: Hannes Reinecke + Signed-off-by: James Bottomley + +commit a382dd7c13377c8ff98f6ec59f64355653fb507e +Author: James Smart +Date: Tue Mar 7 15:04:25 2006 -0500 + + [SCSI] lpfc 8.1.4 : Change version number to 8.1.4 + + Change version number to 8.1.4 + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit fc6c12bcc19bdff6b4bcb02f5bd6d9fa59a7e1af +Author: James Smart +Date: Tue Mar 7 15:04:19 2006 -0500 + + [SCSI] lpfc 8.1.4 : Two misc fixes + + Two misc fixes: + - Fix deadlock caused by return with host_lock held in lpfc_findnode_did + - Initialize all fields of the allocated mail box structure to zero. + Was causing some sysfs mailbox commands to fail immediately after load. + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 9290831f00879d4a66d3bffb609949d5ea5576fb +Author: James Smart +Date: Tue Mar 7 15:04:13 2006 -0500 + + [SCSI] lpfc 8.1.4 : Introduce lpfc_reset_barrier() function for resets on dual channel adapters + + Introduce lpfc_reset_barrier() function for resets on dual channel adapters + + Workaround for a hardware errata on dual channel asics. There is a + potential for the chip to lock up on a reset if a shared dma engine is in + use. The (ugly) work around requires a reset process which uses a mailbox + command to synchronize the independent channels prior to the reset to + avoid the issue. Unfortunately, the timing windows required to ensure this + workaround succeeds are very specific, meaning we can't release the cpu + during the barrier. + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 1a169689c2152ea599c94d622204f7bf5b7dc09f +Author: James Smart +Date: Tue Mar 7 15:04:06 2006 -0500 + + [SCSI] lpfc 8.1.4 : Fixed a timer panic due to timer firing after freeing ndlp + + Fixed a timer panic due to timer firing after freeing ndlp + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit fdcebe282fd8654381852260efec267eff8002fb +Author: James Smart +Date: Tue Mar 7 15:04:01 2006 -0500 + + [SCSI] lpfc 8.1.4 : Fixed RSCN handling when a PLOGI is in retry + + Fixed RSCN handling when a PLOGI is in retry. + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 488d1469b318e6bf2b907743d626008340bc4f6e +Author: James Smart +Date: Tue Mar 7 15:02:37 2006 -0500 + + [SCSI] lpfc 8.1.4 : Fix Discovery processing for NPorts that change their NPortId on the fly + + Fix Discovery processing for NPorts that change their NPortId on the fly + due to a cable swap. + + Signed-off-by: James Smart + Signed-off-by: James Bottomley + +commit 071a651e28bfc1a66a885dc285792e335427a097 +Author: Vasily Averin +Date: Sun Mar 5 23:18:14 2006 +0100 + + [SCSI] i2o: fix memory leak in i2o_exec_lct_modified + + i2o_exec_lct_modified() does not release memory allocated for work_struct. + + Signed-off-by: Vasily Averin + + Although your patch is the same, i've rewritten it a little bit for + naming consistency in the I2O driver. + + Acked-by: Markus Lidel + Signed-off-by: James Bottomley + +commit cf7f5b45fe0180a0f0e3491183c0ec95e4b96d44 +Author: Ralf Baechle +Date: Fri Mar 3 16:34:08 2006 +0000 + + [SCSI] wd33c93: Fix missing prototypes by including . + + Signed-off-by: Ralf Baechle + Signed-off-by: James Bottomley + +commit 30dcbf29cc6d92d70fa262e79e84011fe6913bed +Author: Adrian Bunk +Date: Sat Mar 11 17:51:39 2006 -0800 + + [PATCH] drivers/net/e1000/: proper prototypes + + This patch moves prototypes of global variables and functions to a header + file. + + Signed-off-by: Adrian Bunk + Acked-by: John Ronciak + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 4b10e559277de490bf5c257a1e3264a2bf51404b +Author: Tejun Heo +Date: Sun Mar 12 11:25:27 2006 +0900 + + [PATCH] ahci: enable prefetching for PACKET commands + + Turn on AHCI_CMD_PREFETCH for PACKET commands. This hints the + controller that it can prefetch the CDB and the PRD entries. This + patch is originally from Jeff Garzik. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 418dc1f5a805822fcf1118804ddc689a4156db4a +Author: Jeff Garzik +Date: Sat Mar 11 20:50:08 2006 -0500 + + libata: turn on ATAPI by default + +commit ded78e5e2cab0ec470cca7d34d7af742371bd476 +Author: Adrian Bunk +Date: Fri Mar 10 00:06:53 2006 +0100 + + [PATCH] chelsio/espi.c:tricn_init(): remove dead code + + The Coverity checker spotted these two unused variables. + + Please check whether this patch is correct or whether they should be + used. + + Signed-off-by: Adrian Bunk + Signed-off-by: Jeff Garzik + +commit a4d4d5181d043ea835c15da6c85a5bbecbaded6e +Author: Ralf Baechle +Date: Wed Mar 8 11:49:31 2006 +0000 + + [PATCH] Sparse: Cleanup sgiseeq sparse warnings. + + o Make sgiseeq_dump_rings static. + o Delete unused sgiseeq_my_reset. + o Move DEBUG define to beginning where it's easier to spot and will be + seen by as well. + o Use NULL for pointer initialization. + + Signed-off-by: Ralf Baechle + Signed-off-by: Jeff Garzik + +commit 60a89ff6d2681029b3d46b5d23dccf2903a254b4 +Author: Pekka Enberg +Date: Wed Mar 8 00:06:28 2006 -0800 + + [PATCH] 3c509: use proper suspend/resume API + + Convert 3c509 driver to use proper suspend/resume API instead of the + deprecated pm_register/pm_unregister. + + Signed-off-by: Pekka Enberg + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 827700866ad0996e8c0f5ce75d1c01ae9b034cd6 +Author: Adrian Bunk +Date: Wed Mar 8 00:06:30 2006 -0800 + + [PATCH] CONFIG_FORCEDETH updates + + This patch contains the following possible updates: + - let FORCEDETH no longer depend on EXPERIMENTAL + - remove the "Reverse Engineered" from the option text: + for the user it's important which hardware the driver supports, not + how it was developed + + Signed-off-by: Adrian Bunk + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit 8645984c357a0262a29b8a28353a576645e2c707 +Author: Tejun Heo +Date: Sat Mar 11 11:44:08 2006 +0900 + + [PATCH] sata_sil24: lengthen softreset timeout + + sil24 softreset timeout was > 100ms (100 loops with msleep(1)), which + turned out to be too short for some devices (ASI ARAID99 2000). This + patch converts sil24 softreset waiting loop to use proper timeout + condition and lengthen the timeout to ATA_TMOUT_BOOT secs and check + interval to 100ms. Chisato Yamauchi discovered the problem and + supplied initial patch. + + Signed-off-by: Tejun Heo + Cc: Chisato Yamauchi + Signed-off-by: Jeff Garzik + +commit 10d996ad1990ec2338c463042db6d5ef4f347187 +Author: Tejun Heo +Date: Sat Mar 11 11:42:34 2006 +0900 + + [PATCH] sata_sil24: exit early from softreset if SStatus reports no device + + sata_sil24 softreset routine used to check sata_dev_present() after + SRST is complete in the hope that SRST may do some good even when + SStatus reports no device. This is okay as long as SRST timeout is + short (> 100ms in the current code) but it seems that not all SATA + devices are happy with short SRST timeout. + + This patch makes softreset exit early without performing actual SRST + if SStatus reports no device in preparation for lengthening SRST + timeout. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 2061a47a9b9530a9523e51167c996307db951c31 +Author: Tejun Heo +Date: Sun Mar 12 00:57:39 2006 +0900 + + [PATCH] libata: fix missing classes[] initialization in ata_bus_probe() + + ata_bus_probe() didn't initialize classes[] properly with + ATA_DEV_UNKNOWN. As ->probe_reset() is allowed to leave @classes + alone when no device is present, this results in garbage class values. + ATM, the only affected driver is ata_piix. + + Signed-off-by: Tejun Heo + Cc: Jiri Slaby + Signed-off-by: Jeff Garzik + +commit 75f554bc139461a5a926fad6a6fa90433a00a117 +Author: Tejun Heo +Date: Mon Mar 6 04:31:57 2006 +0900 + + [PATCH] libata: kill unused xfer_mode functions + + Preceding xfer_mask changes make the following functions unused. + + ata_pio_modes(), base_from_shift(), ata_pr_blacklisted(), fgb() + + Kill them. Also, as xfer_mode_str[] is now only used by + ata_mode_string(), move it into the function. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit a6d5a51cf1bf5d83ddd2e06fd372a79b395fb393 +Author: Tejun Heo +Date: Mon Mar 6 04:31:57 2006 +0900 + + [PATCH] libata: reimplement ata_set_mode() using xfer_mask helpers + + Use xfer_mask helpers to determine transfer mode. This rewrite also + makes transfer mode determination done before any actual + configuration. This patch doesn't result in any functional changes. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 23e71c3d3e88b9f554ecd47d6f9aec76e89e2e6d +Author: Tejun Heo +Date: Mon Mar 6 04:31:57 2006 +0900 + + [PATCH] libata: use xfer_mask helpers in ata_dev_set_mode() + + Rewrite hardcoded xfer_mode string determination in ata_dev_set_mode() + using xfer_mask helpers. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit ff8854b2719b9d26f5d3e84db4f66eb7e35e4ed9 +Author: Tejun Heo +Date: Mon Mar 6 04:31:56 2006 +0900 + + [PATCH] libata: use ata_id_xfermask() in ata_dev_configure() + + Replace quick & dirty max transfer mode determination in + ata_dev_configure() with ata_id_xfermask(). While at it, rename + xfer_modes variable to xfer_mask and make it unsigned int for + consistency. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit cb95d562e40140572efbca809f372e608aff7326 +Author: Tejun Heo +Date: Mon Mar 6 04:31:56 2006 +0900 + + [PATCH] libata: add xfer_mask handling functions + + Add ata_pack_xfermask(), ata_xfer_mask2mode(), ata_xfer_mode2mask(), + ata_xfer_mode2shift() and ata_id_xfermask(). These functions will be + used by following patches to simplify xfer_mask handling. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 1da7b0d01b20bf21f3263d8d2f17fa49a214d773 +Author: Tejun Heo +Date: Mon Mar 6 04:31:56 2006 +0900 + + [PATCH] libata: improve xfer mask constants and update ata_mode_string() + + Add ATA_BITS_*, ATA_MASK_* macros and reorder xfer_mask fields such + that higher transfer mode is placed at higher order bit. As thie + reordering breaks ata_mode_string(), this patch also rewrites + ata_mode_string(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 2e755f68ee23b03484fde18d978f910cc5479cb8 +Author: Tejun Heo +Date: Sun Mar 5 15:29:09 2006 +0900 + + [PATCH] libata: rename ATA_FLAG_FLUSH_PIO_TASK to ATA_FLAG_FLUSH_PORT_TASK + + Rename ATA_FLAG_FLUSH_PIO_TASK to ATA_FLAG_FLUSH_PORT_TASK. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 507ceda00302c071029277652d9faa5a0a55419a +Author: Tejun Heo +Date: Sun Mar 5 15:29:09 2006 +0900 + + [PATCH] libata: kill unused pio_task and packet_task + + Kill unused pio_task and packet_task. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 8061f5f0a04cfd2bc7aa273596ad3fcd426f8eea +Author: Tejun Heo +Date: Sun Mar 5 15:29:09 2006 +0900 + + [PATCH] libata: convert pio_task and packet_task to port_task + + Make pio_task and atapi_packet_task use port_task. + atapi_packet_task() is moved upward such that it's right after + ata_pio_task(). This position is more natural and makes adding + prototype for ata_qc_issue_prot() unnecessary. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 86e45b6bd6900c4a0b3666fb18b46e215f775c4f +Author: Tejun Heo +Date: Sun Mar 5 15:29:09 2006 +0900 + + [PATCH] libata: implement port_task + + Implement port_task. LLDD's can schedule a function to be executed + with context after specified delay. libata core takes care of + synchronization against EH. This is generalized form of pio_task and + packet_task which are tied to PIO hsm implementation. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 84f0b1ef8c013b33dea9bbc2521094dd29110cf0 +Author: Dave Jones +Date: Sat Mar 11 16:13:56 2006 -0500 + + [CPUFREQ] kzalloc conversion for gx-suspmod + + Signed-off-by: Dave Jones + +commit 388d6c5180faf83ea06dc2614e8e89910ddef4f0 +Author: Dave Jones +Date: Sat Mar 11 16:04:53 2006 -0500 + + [CPUFREQ] Whitespace cleanup + + Signed-off-by: Dave Jones + +commit 5e8fb97163c7bf2b370290b4924babc361b05dde +Author: Dave Jones +Date: Sat Mar 11 16:03:16 2006 -0500 + + [CPUFREQ] Mark longhaul driver as broken. + This seems to work for a short period of time, but when + used in conjunction with a userspace governor that changes + the frequency regularly, it's only a matter of time before + everything just locks up. + + Signed-off-by: Dave Jones + +commit bb1a813d3c49e57814958d2d52b5bb299204032e +Author: Sam Ravnborg +Date: Sat Mar 11 19:22:53 2006 +0100 + + [PATCH] cpufreq: fix section mismatch warnings + + cpufreq are the only remaining bit to be solved for me to have a modpost + clean build for sparc64 - so I took one more look at it. + changelog entry: + + Fix section mismatch warnings in cpufreq: + WARNING: drivers/cpufreq/cpufreq_stats.o - Section mismatch: reference to .init.text: from .data between 'cpufreq_stat_cpu_notifier' (at offset 0xa8) and 'notifier_policy_block' + WARNING: drivers/cpufreq/cpufreq_stats.o - Section mismatch: reference to .init.text: from .exit.text after 'cleanup_module' (at offset 0x30) + + The culprint is the function: cpufreq_stat_cpu_callback + It is marked __cpuinit which get's redefined to __init in case + HOTPLUG_CPU is not enabled as per. init.h: + + #ifdef CONFIG_HOTPLUG_CPU + #define __cpuinit + #else + #define __cpuinit __init + #endif + + $> grep HOTPLUG .config + CONFIG_HOTPLUG=y + + But cpufreq_stat_cpu_callback() is used in: + __exit cpufreq_stats_exit() + static struct notifier_block cpufreq_stat_cpu_notifier + + cpufreq_stat_cpu_notifier is again used in: + __init cpufreq_stats_init() + __exit cpufreq_stats_exit() + + So in both cases used from both __init and __exit context. + Only solution seems to drop __cpuinit tag. + + Signed-off-by: Sam Ravnborg + Signed-off-by: Dave Jones + +commit 6d373ea012b2974e627b9ee830e75cf3bf3c4c24 +Author: Pallipadi, Venkatesh +Date: Thu Mar 9 20:07:44 2006 -0800 + + [CPUFREQ] Fix the p4-clockmod N60 errata workaround. + + Fix the code to disable freqs less than 2GHz in N60 errata. + + Signed-off-by: Venkatesh Pallipadi + Signed-off-by: Dave Jones + +commit db82f8410ed7546792358964aa5f8dafff1c70a2 +Author: James Bottomley +Date: Thu Mar 9 22:06:36 2006 -0500 + + [SCSI] add missing transport_container_unregister in sas class + + Signed-off-by: James Bottomley + +commit 172c3ae3e686f548a0eba950405e5cc321460005 +Author: Sam Ravnborg +Date: Fri Mar 10 00:23:32 2006 +0100 + + kbuild: in makefile.txt note that Makefile is preferred name for kbuild files + + As noted by Roland Dreier makefiles.txt told + one to use the name 'Kbuild' as preferred name for kbuild files. + This is not yet true so let makefiles.txt reflect reality. + + Signed-off-by: Sam Ravnborg + +commit 88274815f7477dc7550439413ab87c5ce4c5a623 +Author: Steve French +Date: Thu Mar 9 22:21:45 2006 +0000 + + [CIFS] Fix two remaining coverity scan tool warnings. + + Signed-off-by: Steve French + +commit 69eb66d7da7dba2696281981347698e1693c2340 +Author: Dave Kleikamp +Date: Thu Mar 9 13:59:30 2006 -0600 + + JFS: add uid, gid, and umask mount options + + OS/2 doesn't initialize the uid, gid, or unix-style permission bits. The + uid, gid, & umask mount options perform pretty much like those for the fat + file system, overriding what is stored on disk. This is useful for users + sharing the file system with OS/2. + + I implemented a little feature so that if you mask the execute bit, it + will be re-enabled on directories when the appropriate read bit is unmasked. + I didn't want to implement an fmask & dmask option. + + Signed-off-by: Dave Kleikamp + +commit cb764326dff0ee51aca0d450e1a292de65661055 +Author: Jeff Kirsher +Date: Wed Mar 8 17:24:12 2006 -0800 + + e1000: Fix mii-tool access to setting speed and duplex + + Paul Rolland reported that e1000 was having a hard time using mii-tool to set speed and duplex. This patch fixes the issue on both newer hardware as well as fixing the code issue that originally caused the problem. + + Signed-off-by: Jesse Brandeburg + Signed-off-by: Jeff Kirsher + +commit 0131705d589e2341dbc5e8946a60f83d8c1773dc +Author: Sam Ravnborg +Date: Wed Mar 8 18:39:05 2006 +0100 + + kbuild: replace PHONY with FORCE + + .PHONY: does not take patterns so use FORCE to achive same effect. + Thanks to "Paul D. Smith" for noticing this. + + Signed-off-by: Sam Ravnborg + +commit f7b05e64bdb2fcc4b2dc94a4bd9426adc70c9599 +Author: Luke Yang +Date: Thu Mar 2 18:35:31 2006 +0800 + + kbuild: Fix bug in crc symbol generating of kernel and modules + + The scripts/genksyms/genksyms.c uses hardcoded "__crc_" prefix for + crc symbols in kernel and modules. The prefix should be replaced by + "MODULE_SYMBOL_PREFIX##__crc_" otherwise there will be warnings when + MODULE_SYMBOL_PREFIX is not NULL. + + I am sorry my last patch for this issue is actually wrong. I revert + it in this patch. + + Signed-off-by: Luke Yang + Signed-off-by: Sam Ravnborg + +commit be0bf7da19135a7a0f8c275f20c819940be218d9 +Author: Dave Kleikamp +Date: Wed Mar 8 10:59:15 2006 -0600 + + JFS: Take logsync lock before testing mp->lsn + + This fixes a race where lsn could be cleared before taking the lock + + Signed-off-by: Dave Kleikamp + +commit 044f324f6ea5d55391db62fca6a295b2651cb946 +Author: Adrian Bunk +Date: Wed Mar 8 10:50:07 2006 -0300 + + V4L/DVB (3415): Msp3400-kthreads.c: make 3 functions static + + This patch makes three needlessly global functions static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Mauro Carvalho Chehab + +commit 793f225b0d77dd6a53614f5e312a28b754144d86 +Author: Adrian Bunk +Date: Wed Mar 8 10:50:06 2006 -0300 + + V4L/DVB (3414): Saa7134: document that there's also a 220RF from KWorld + + I have the same card with the same PCI id, but from KWorld. + The patch documents that this is the same card. + + Signed-off-by: Adrian Bunk + Signed-off-by: Mauro Carvalho Chehab + +commit be787ace0139bc7ef0229606819bad64bb5d84f4 +Author: Alexey Dobriyan +Date: Tue Mar 7 22:20:23 2006 -0300 + + V4L/DVB (3413): Typos grab bag of the month + + Typos grab bag of the month. + Eyeballed by jmc@ in OpenBSD. + + Signed-off-by: Alexey Dobriyan + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit 91ae3299d7d3493a25e5f26cbaceeb18e7760ef3 +Author: Michael Krufky +Date: Wed Mar 1 00:04:42 2006 -0300 + + V4L/DVB (3411): FE6600 is a Thomson tuner + + - The tuner used in DViCO FusionHDTV DVB-T hybrid is made by Thomson + - renamed tuner and dvb_pll structs accordingly + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 69b27e3dfebff8f59e979d57263e1cd83c4d8370 +Author: Chris Pascoe +Date: Tue Feb 28 20:23:11 2006 -0300 + + V4L/DVB (3410): Move DViCO hybrid initialisation data from stack. + + The init_data array is never changed and need not be on the stack. + Turn it into a static variable. + + Signed-off-by: Michael Krufky + Signed-off-by: Chris Pascoe + Signed-off-by: Mauro Carvalho Chehab + +commit 0785c87af1d1b6106b14c85f1267be8543f11d00 +Author: Michael Krufky +Date: Tue Feb 28 14:02:15 2006 -0300 + + V4L/DVB (3409): Kconfig: fix in-kernel build for cx88-dvb: zl10353 frontend + + - VIDEO_CX88_DVB_ALL_FRONTENDS should select DVB_ZL10353 + - created VIDEO_CX88_DVB_ZL10353, for selective zl10353 support in cx88-dvb. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 780dfef37e2c941985b708f67aa0074edc922bea +Author: Chris Pascoe +Date: Tue Feb 28 08:34:59 2006 -0300 + + V4L/DVB (3408): DViCO FusionHDTV DVB-T Hybrid and ZL10353-based FusionHDTV DVB-T Plus support + + Add support for the FE6600 tuner used on the DVB-T Hybrid board. + Add support for the Zarlink ZL10353 DVB-T demodulator, which supersedes the + MT352, used on the DViCO FusionHDTV DVB-T Hybrid and later model Plus boards. + + Signed-off-by: Chris Pascoe + Signed-off-by: Mauro Carvalho Chehab + +commit db5d91eb36e1cc9d46016d1d44874376cfabf274 +Author: Oliver Endriss +Date: Tue Feb 28 10:32:25 2006 -0300 + + V4L/DVB (3406): Use refactored LNBP21 and BSBE1 code + + Use refactored LNBP21/BSBE1 code for Technotrend/Hauppauge DVB-S rev 2.3. + As a side effect, FE_ENABLE_HIGH_LNB_VOLTAGE ioctl is supported now. + + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit 8cc2e377a0f20f58606d8a68a423ed2ea348869d +Author: Perceval Anichini +Date: Tue Feb 28 09:52:44 2006 -0300 + + V4L/DVB (3405): TechnoTrend S-1500 card handling moved from budget.c to budget-ci.c + + TechnoTrend S-1500 card handling moved from budget.c to budget-ci.c. + + Signed-off-by: Perceval Anichini + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit 2f27bdce972ceb97a2fd109a77546c37aa499fc9 +Author: Oliver Endriss +Date: Tue Feb 28 09:31:16 2006 -0300 + + V4L/DVB (3404): Refactored LNBP21 and BSBE1 support + + Moved duplicated code to separate files. + LNBP21 stuff rewritten from scratch, BSBE1 copied from av7110.c. + Modified budget driver to use the new routines. + + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit 9f3319b49cc793b9da06ca57cc8740e3a8e88d1d +Author: Marco Schluessler +Date: Fri Feb 24 18:53:00 2006 -0300 + + V4L/DVB (3403): Workaround to fix initialization for Nexus CA + + Workaround for Nexus CA: Debi test fails unless first debi write is repeated. + + Signed-off-by: Marco Schluessler + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit 2d6b5f6257a11d66d2f1e335180e8aca16704294 +Author: Hartmut Hackmann +Date: Mon Feb 27 21:14:36 2006 -0300 + + V4L/DVB (3401): Coding style fixes in saa7134-dvb.c + + deleted 2 semicolons at end of functions + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 293cdaba3f6663f630bcb85077206e55b581ed67 +Author: Hartmut Hackmann +Date: Mon Feb 27 21:08:07 2006 -0300 + + V4L/DVB (3400): Fixes for Lifeview Trio non fatal bugs + + - Init message was sent to wrong slave address + - Deleted outdated comment + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit e12f0a3dec17de3d847f533ba81ad6956c9da5fd +Author: James Bottomley +Date: Tue Mar 7 14:53:40 2006 -0600 + + [SCSI] sr: partial revert of 24669f75a3231fa37444977c92d1f4838bec1233 + + The patch + + [SCSI] SCSI core kmalloc2kzalloc + + Has an incorrect piece in sr_ioctl.c; it changes buffer from kmalloc + to kzalloc, but then removes the clearing of the stack variable struct + packet_command. This, in turn leaves rubbish in the sense pointer + which the sr_do_ioctl() command then happily writes to ... oops. + + Thanks to Mike Christie for spotting this. + + Signed-off-by: James Bottomley + +commit 5e6575c051f3313feb9fe1aad61263b3560df5cc +Author: Willem Riede +Date: Sat Feb 11 14:46:56 2006 -0500 + + [SCSI] osst: changes required to move forward to block request + + On 02/07/2006 04:12:55 AM, Christoph Hellwig wrote: + > On Mon, Feb 06, 2006 at 08:02:21PM -0500, Willem Riede wrote: + > + > > But I will certainly help retire scsi_request. And anything else that is + > > needed to keep up with proper kernel style. Let me know what those are, if + > > you would? I'll start looking at how st has changed, and will be back with + > > any questions I may have. + > + > right now the above is the most urgent bit. What would be nice but not + > required is a conversion to the sense handling helpers, similar to what + > st got (aka using the *normalize_sense functions and then dealing with the + > parsed sense buffer instead of the raw sense data) + + Ok, so here is my first take at satisfying this request. + Be warned, that beyond compiling, and checking that the new module + doesn't immediately blow up, there hasn't yet been a lot of testing. + + But this should allow you to comment on the changes, and move forward + with dropping scsi_request from the kernel code. + + Signed-off-by: Willem Riede + Signed-off-by: James Bottomley + +commit bb8047d3540affd6b8c2adac3fe792e07143be0f +Author: Anton Altaparmakov +Date: Tue Mar 7 11:53:46 2006 +0000 + + NTFS: Fix two compiler warnings on Alpha. Thanks to Andrew Morton for + reporting them. + + Signed-off-by: Anton Altaparmakov + +commit 286fc8f8ea7ef58b54f150fc900ce019af483e89 +Author: James Bottomley +Date: Mon Mar 6 10:20:56 2006 -0600 + + [SCSI] lpfc: minor syntax fixes + + Stop gcc complaining about undefined variables + + Signed-off-by: James Bottomley + +commit b2e977ca364764dabb091c360f329868b7e3f29b +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:15 2006 -0500 + + [PATCH] lpfc 8.1.3: Change version number to 8.1.3 + + Change version number to 8.1.3 + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit b808608bd7afdf1b0a2eb096ff2b5b93781fdbb6 +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:12 2006 -0500 + + [PATCH] lpfc 8.1.3: Fix polling mode panic + + Fix polling mode panic + + Cause: Race between interrupt driven and polling path in harvesting iocbs + from + the response ring. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 66a9ed66000d186933892ca5121e68a071d624ac +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:10 2006 -0500 + + [PATCH] lpfc 8.1.3: Protect NPL lists with host lock + + Protect NPL lists with host lock + + Symptoms: lpfc_findnode_rpi and lpfc_findnode_did can be called + outside of the discovery thread context. We have to iterate + through the NPL lists under the host lock and all add/del + operations on those lists have to be done under host lock. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 5fe9f5119378e75986ad90c783a7e085bf67703a +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:09 2006 -0500 + + [PATCH] lpfc 8.1.3: Fix deadlock in lpfc_fdmi_tmo_handler + + Fix deadlock in lpfc_fdmi_tmo_handler + + lpfc_fdmi_tmo_handler was calling lpfc_fdmi_cmd with the host_lock + held. lpfc_fdmi_cmd assumes the host_lock is released as it calls functions + that acquire the host_lock. lpfc_fdmi_tmo_handler acquired the host_lock to + protect access to work_hba_events. This was already checked in the worker + thread so we can remove that code completely and remove access to the + host_lock. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit cf5bf97e1d28651fd689be9c974b2318ac262f2d +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:08 2006 -0500 + + [PATCH] lpfc 8.1.3: Fix performance when using multiple SLI rings + + Fix performance when using multiple SLI rings + + Currently the driver allocates all of its SLI command and response ring + entries to one primary ring. Other rings get little, or no, resources. + + Allow more resources to be given to ring 1 + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 56178645c2686a7ef630e1b23b81d40dcfb553e6 +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:06 2006 -0500 + + [PATCH] lpfc 8.1.3: Remove unused MBhostaddr from lpfc_sli structure + + Remove unused MBhostaddr from lpfc_sli structure + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 719396b48ce6310ab43d7432b6d7f2a330a831b3 +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:05 2006 -0500 + + [PATCH] lpfc 8.1.3: PCI hrd_type should be obtained with pci_read_config_byte() macro + + PCI hrd_type should be obtained with pci_read_config_byte() macro + + Driver keys off of this field to report the proper adapter type. + The pci subsystem explicitly clears the multiport bit in the copy of + the field given the driver. Thus, to properly name the card, obtain it + from config space. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 74b72a59b8d42d31aa6ffac8f10ca7a784be392c +Author: Jamie Wellnitz +Date: Tue Feb 28 22:33:04 2006 -0500 + + [PATCH] lpfc 8.1.3: Derive supported speeds from LMT field in the READ_CONFIG + + Derive supported speeds from LMT field in the READ_CONFIG + + Driver was keying off internal cores. Use what the firmware reports instead. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 42ab03609cca4ef5079e248296f015650c626899 +Author: James Bottomley +Date: Sat Mar 4 09:10:18 2006 -0600 + + [PATCH] convert aic94xx over to using the sas transport end device + + Begin introducing the concept of sas remote devices that have an rphy + embedded. The first one (this) is a simple end device. All that an + end device really does is have port mode page parameters contained. + The next and more complex piece will be expander remote devices. + + Signed-off-by: James Bottomley + +commit 4f1933620f57145212cdbb1ac6ce099eeeb21c5a +Author: Paul Smith +Date: Sun Mar 5 17:14:10 2006 -0500 + + kbuild: change kbuild to not rely on incorrect GNU make behavior + + The kbuild system takes advantage of an incorrect behavior in GNU make. + Once this behavior is fixed, all files in the kernel rebuild every time, + even if nothing has changed. This patch ensures kbuild works with both + the incorrect and correct behaviors of GNU make. + + For more details on the incorrect behavior, see: + + http://lists.gnu.org/archive/html/bug-make/2006-03/msg00003.html + + Changes in this patch: + - Keep all targets that are to be marked .PHONY in a variable, PHONY. + - Add .PHONY: $(PHONY) to mark them properly. + - Remove any $(PHONY) files from the $? list when determining whether + targets are up-to-date or not. + + Signed-off-by: Paul Smith + Signed-off-by: Sam Ravnborg + +commit fbfda6e71bbdd3b4d41a56c3f20f31762c455a5e +Author: Tejun Heo +Date: Sun Mar 5 23:03:42 2006 +0900 + + [PATCH] sata_sil24: fix mwdma_mask setting + + mwdma_mask was not copied from port_info to probe_ent. Fix it. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 48a8a14ff1f13aa4dba3f6b4381b886727609db4 +Author: Tejun Heo +Date: Sun Mar 5 17:55:58 2006 +0900 + + [PATCH] libata: revalidate after transfer mode configuration + + Revalidate device after transfer mode configuration. This also makes + dev->id up-to-date. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 623a3128aa2b86caa8e06e762e9e444177e4fa47 +Author: Tejun Heo +Date: Sun Mar 5 17:55:58 2006 +0900 + + [PATCH] libata: implement ata_dev_revalidate() + + ata_dev_revalidate() re-reads IDENTIFY PAGE of the given device and + makes sure it's the same device as the configured one. Once it's + verified that it's the same device, @dev is configured according to + newly read IDENTIFY PAGE. Note that revalidation currently doesn't + invoke transfer mode reconfiguration. + + Criteria for 'same device' + + * same class (of course) + * same model string + * same serial string + * if ATA, same n_sectors (to catch geometry parameter changes) + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 4c2d721ab6413ee4ff33617ed1413458261f36ea +Author: Tejun Heo +Date: Sun Mar 5 17:55:58 2006 +0900 + + [PATCH] libata: add @print_info argument to ata_dev_configure() + + Add @print_info argument to ata_dev_configure(). Details of + configured device is printed only when @pinfo_info is non-zero. This + patch also reorganizes device info printing for LBA case to simplify + code (necessary as @print_info adds extra nesting around it). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 208a9933bc7d71e7ad194a9ffbfbcd7878c48dfe +Author: Tejun Heo +Date: Sun Mar 5 17:55:58 2006 +0900 + + [PATCH] libata: re-initialize parameters before configuring + + In ata_dev_configure(), reinitialize parameters before configuring. + This change is for revalidation and hotplug. As ata_dev_configure() + can be entered multiple times, parameters need to be reinitialized. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 7b75b13cda8bd21e8636ea985f76e1ce5bd1a470 +Author: Sam Ravnborg +Date: Sun Mar 5 13:48:58 2006 +0100 + + kbuild: when warning symbols exported twice now tell user this is the problem + + Warning now looks like this: + WARNING: vmlinux: 'strcpy' exported twice. Previous export was in vmlinux + + Which gives much better hint how to fix it. + + Signed-off-by: Sam Ravnborg + +commit f6ecebd6592ea70e9450ec70efb24220dd961ebc +Author: Sam Ravnborg +Date: Sun Mar 5 12:10:58 2006 +0100 + + kbuild: fix make dir/file.xx when asm symlink is missing + + Added a dependency so we do full preparation before trying to build single + file targets. This fixes a case where Andrew Morton did: + make kernel/sched.o + rm include/asm + make kernel/sched.o -> splat + + Signed-off-by: Sam Ravnborg + +commit 43c74d179596ba1f8eceb8c6a5c7e11afe233662 +Author: Sam Ravnborg +Date: Sun Mar 5 12:02:46 2006 +0100 + + kbuild: in the section mismatch check try harder to find symbols + + When searching for symbols the only check performed was if + offset equals st_value. Adding an additional check to see if st_name + points t a valid name made us sort out a few more false positives and + let us report more correct names in warnings. + + Signed-off-by: Sam Ravnborg + +commit e835a39c1c1f023ef443f735b0e98b08660ae0e4 +Author: Sam Ravnborg +Date: Sun Mar 5 11:34:15 2006 +0100 + + kbuild: fix section mismatch check for unwind on IA64 + + Parameters to strstr() was reversed. + + Signed-off-by: Sam Ravnborg + +commit 8ff69732d484ea9ccbf242cc49b4fe9538e64c71 +Author: Dave Jones +Date: Sun Mar 5 03:37:23 2006 -0500 + + [CPUFREQ] Fix handling for CPU hotplug + + This patch adds proper logic to cpufreq driver in order to handle + CPU Hotplug. + + When CPUs go on/offline, the affected CPUs data, cpufreq_policy->cpus, + is not updated properly. This causes sysfs directories and symlinks to + be in an incorrect state after few CPU on/offlines. + + Signed-off-by: Jacob Shin + Signed-off-by: Dave Jones + +commit 2a1c1c877ecb446dbdf1715248e151db8719a87b +Author: Dave Jones +Date: Sun Mar 5 03:35:00 2006 -0500 + + [CPUFREQ] powernow-k8: Let cpufreq driver handle affected CPUs + + powernow-k8: Let cpufreq driver handle affected CPUs + + Let the cpufreq driver manage AMD Dual-Core CPUs being tied together. + + Since cpufreq driver's affected CPUs data, cpufreq_policy->cpus, already + knows about which cores are tied together, powernow driver does not have + keep its internal data for every core. (even a pointer.. it will never + be called on) Telling cpufreq driver about cpu_core_map at init time is + sufficient. + + Signed-off-by: Jacob Shin + Signed-off-by: Dave Jones + +commit e653a1e6131d0a819288a2e2de654627233604e0 +Author: Tejun Heo +Date: Sun Mar 5 16:03:52 2006 +0900 + + [PATCH] sata_sil: cosmetic flag/constant changes + + Collect common host flags into SIL_DFL_HOST_FLAGS and add comments to + constants. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 48d4ef2a1df9867c67b515d66732ba028a73735d +Author: Tejun Heo +Date: Sun Mar 5 16:03:52 2006 +0900 + + [PATCH] sata_sil: replace register address constants with sil_port[] entry + + Kill SIL_FIFO_* and SIL_IDE2_BMDMA and replace them with proper + sil_port[] entry. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 9a5314432a07251c2a8d71bfc793adcf00f4122e +Author: Tejun Heo +Date: Sun Mar 5 16:03:52 2006 +0900 + + [PATCH] sata_sil: use kzalloc + + Use kzalloc instead of kmalloc/memset. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 81c2af3561db54a4d3b439c84c58d8c2a469ec9b +Author: Tejun Heo +Date: Sun Mar 5 16:03:52 2006 +0900 + + [PATCH] sata_sil: replace sil_3112_m15w board id with sil_3112 + + All 3112's have m15w. Replace sil_3112_m15w with sil_3112 and flag + sil_3112 with SIL_FLAG_MOD15WRITE. + + Signed-off-by: Tejun Heo + Cc: Carlos Pardo + Signed-off-by: Jeff Garzik + +commit 219e621443a1d0bba2a6d15cbc9a1181892c6d79 +Author: Tejun Heo +Date: Sun Mar 5 14:28:51 2006 +0900 + + [PATCH] ata_piix: rename PIIX_FLAG_IGN_PRESENT to PIIX_FLAG_IGNORE_PCS + + Rename PIIX_FLAG_IGN_PRESENT to PIIX_FLAG_IGNORE_PCS as Jeff + requested. + + Signed-off-by: Tejun Heo + Cc: Jeff Garzik + Signed-off-by: Jeff Garzik + +commit 9209aed0726c77ad13b8d83e73a3cf9f59a8c2b2 +Author: Sam Ravnborg +Date: Sun Mar 5 00:16:26 2006 +0100 + + kbuild: kill false positives from section mismatch warnings for powerpc + + Building an allmodconfig kernel for ppc64 revealed a number of false + positives - originally reported by Andrew Morton. + This patch removes most if not all false positives for ppc64: + + Section .opd + The .opd section contains function descriptors at least for ppc64. + So ignore it for .init.text (was ignored for .exit.text). + See description of function descriptors here: + http://www.linuxbase.org/spec/ELF/ppc64/PPC-elf64abi-1.7.html + + Section .toc1 + ppc64 places some static variables in .toc1 - ignore the. + + Section __bug_tabe + BUG() and friends uses __bug_table. Ignore warnings from that section. + + Module parameters are placed in .data.rel for ppc64, for adjust pattern to + match on section named .data* + + Tested with gcc: 3.4.0 and binutils 2.15.90.0.3 + + Signed-off-by: Sam Ravnborg + +commit e1fd263c772e89706dee28aa794399ac4bd6b9c1 +Author: Daniel Drake +Date: Sat Mar 4 15:36:21 2006 +0000 + + [PATCH] sata_promise: Support FastTrak TX4300/TX4310 + + This patch adds support for the Promise FastTrak TX4300/TX4310 4-port PCI SATA + controllers based on the PDC40719 chip. + + Signed-off-by: Daniel Drake + Signed-off-by: Jeff Garzik + +commit ad8c48ad3bbef078616ed4d2652d362dfd962f09 +Author: Catalin(ux aka Dino) BOIE +Date: Sat Mar 4 12:18:59 2006 -0500 + + Fix io ordering problems in e100 + + Checking e100.c code against Documentation/io_ordering.txt I found the + following problem: + + spin_lock_irq... + write + spin-unlock + e100_write_flush + + The attached patch fix the code like this: + + spin_lock_irq... + write + e100_write_flush + spin-unlock + + Signed-off-by: Catalin BOIE + Signed-off-by: Jeff Garzik + +commit e72fd96e8ee3ff4dd80757172a4fe49bd92fea9c +Author: Mark Brown +Date: Thu Feb 2 00:00:02 2006 +0000 + + [PATCH] natsemi: NAPI and a bugfix + + As documented in National application note 1287 the RX state machine on + the natsemi chip can lock up under some conditions (mostly related to + heavy load). When this happens a series of bogus packets are reported + by the chip including some oversized frames prior to the final lockup. + + This patch implements the fix from the application note: when an + oversized packet is reported it resets the RX state machine, dropping + any currently pending packets. + + Signed-off-by: Mark Brown + Signed-off-by: Jeff Garzik + +commit b27a16b7c4738ea16f6f0730caf382a3f57317bb +Author: Mark Brown +Date: Thu Feb 2 00:00:01 2006 +0000 + + [PATCH] natsemi: NAPI and a bugfix + + This patch converts the natsemi driver to use NAPI. It was originally + based on one written by Harald Welte, though it has since been modified + quite a bit, most extensively in order to remove the ability to disable + NAPI since none of the other drivers seem to provide that functionality + any more. + + Signed-off-by: Mark Brown + Signed-off-by: Jeff Garzik + +commit c3cf560e35509634d72cf809074834d5ea23ab66 +Author: Adrian Bunk +Date: Sat Mar 4 17:07:57 2006 +0100 + + [PATCH] remove obsolete sis900 documentation + + This documentation is mostly obsolete, and should therefore either be + updated or removed (this patch does the latter). + + Signed-off-by: Adrian Bunk + Signed-off-by: Jeff Garzik + +commit f71e130966ba429dbd24be08ddbcdf263df9a5ad +Author: Arjan van de Ven +Date: Fri Mar 3 21:33:57 2006 -0500 + + Massive net driver const-ification. + +commit f90fdc3cce3d8c8ed09615dc68cb789655078803 +Author: Ralf Baechle +Date: Wed Feb 8 23:23:26 2006 +0000 + + [PATCH] sb1250-mac: Add support for the BCM1480 + + This adds support for the 4th port and other new features of the + BCM1480 SOC. + + Signed-Off-By: Andy Isaacson + Signed-off-by: Ralf Baechle + Signed-off-by: Jeff Garzik + +commit c96a34ec3bad5ba37ee4da4a188ad534b2fa4321 +Author: Komuro +Date: Fri Mar 3 21:21:13 2006 -0500 + + pcnet_cs: add new id (Logitec LPM-LN100TE) + +commit 8f903c708fcc2b579ebf16542bf6109bad593a1d +Author: Jay Vosburgh +Date: Tue Feb 21 16:36:44 2006 -0800 + + [PATCH] bonding: suppress duplicate packets + + Originally submitted by Kenzo Iwami; his original description is: + + The current bonding driver receives duplicate packets when broadcast/ + multicast packets are sent by other devices or packets are flooded by the + switch. In this patch, new flags are added in priv_flags of net_device + structure to let the bonding driver discard duplicate packets in + dev.c:skb_bond(). + + Modified by Jay Vosburgh to change a define name, update some + comments, rearrange the new skb_bond() for clarity, clear all bonding + priv_flags on slave release, and update the driver version. + + Signed-off-by: Kenzo Iwami + Signed-off-by: Jay Vosburgh + Signed-off-by: Jeff Garzik + +commit beb84dc8186662b17d5ea510fabb85cb7e266d33 +Author: Steve French +Date: Fri Mar 3 23:36:34 2006 +0000 + + [CIFS] Set correct lock type on new posix unlock call + + Signed-off-by: Steve French + +commit 28ca5c57dc9f235f7cba609f2b541328de47beb2 +Author: Tejun Heo +Date: Wed Mar 1 16:09:36 2006 +0900 + + [PATCH] libata: reorganize ata_bus_probe() + + Now that reset and configure are converted such that they don't modify + or disable libata core data structures, reorganize ata_bus_probe() to + reflect this change. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 4b2f3ededc035525038a7a9247074243dac6b351 +Author: Tejun Heo +Date: Wed Mar 1 16:09:36 2006 +0900 + + [PATCH] libata: fold ata_dev_config() into ata_dev_configure() + + ata_dev_config() needs to be done everytime a device is configured. + Fold it into ata_dev_configure(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit ffeae418c12a304f6a9b6468043954d4e67a2b1e +Author: Tejun Heo +Date: Wed Mar 1 16:09:35 2006 +0900 + + [PATCH] libata: separate out ata_dev_configure() + + Separate out ata_dev_configure() from ata_dev_identify() such that + ata_dev_configure() only configures @dev according to passed in @id. + The function now does not disable device on failure, it just returns + appropirate error code. + + As this change leaves ata_dev_identify() with only reading ID, calling + configure and disabling devices according to the results, this patch + also kills ata_dev_identify() and inlines the logic into + ata_bus_probe(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit d9572b1d5e60b63e27e17f1f7771c5a26dd5d81e +Author: Tejun Heo +Date: Wed Mar 1 16:09:35 2006 +0900 + + [PATCH] libata: convert dev->id to pointer + + Convert dev->id from array to pointer. This is to accomodate + revalidation. During revalidation, both old and new IDENTIFY pages + should be accessible and single ->id array doesn't cut it. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit d133ecab8ff1233c2eb3ecb94f7956aa10002300 +Author: Tejun Heo +Date: Wed Mar 1 01:25:39 2006 +0900 + + [PATCH] ata_piix: reimplement piix_sata_probe() + + Reimplement piix_sata_probe() such that it turns on PCS enable bits on + all avaliable ports and check present bits after a while to determine + device presence. This should help broken BIOSes. After device + presence detection is complete, PCS enable bits of unoccupied bits are + turned off unless the controller supports AHCI (ICH6/7 docs mandate + all enables bits are always set on AHCI capable controllers). + + Note that PCS present bits are ignored on 6300ESB as described in the + datasheet. This should fix device detection problems reported with + the controller. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit d33f58b883a3f624b9362227bf73fc52a6cbd4b4 +Author: Tejun Heo +Date: Wed Mar 1 01:25:39 2006 +0900 + + [PATCH] ata_piix: implement proper port map + + Replace combined mode handling via PIIX_COMB/COMB_PATA_P0 with proper + port map. PIIX now prints port configuration during initialization. + ATA_FLAG_SLAVE_POSS is now turned on for SATA ports only when the + slave device is actually avaliable. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit d435804803befedbda9fdc1be088e7930b60982b +Author: Tejun Heo +Date: Wed Mar 1 01:25:39 2006 +0900 + + [PATCH] ata_piix: add a couple of flags + + Add PIIX_FLAG_IGN_PRESENT and SCR flags. Thi patch doesn't cause any + functional change. To be used by later init/scr updates. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 1d076e5b8d91babc018ffaefafd4f85a53c9a1b1 +Author: Tejun Heo +Date: Wed Mar 1 01:25:39 2006 +0900 + + [PATCH] ata_piix: finer-grained port_info + + Make port_info finer-grained. This patch doesn't cause any functional + change. Later init reimplementation will make use of it. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 597afd21401c85bdf9441830abf431c2be6fd45f +Author: Tejun Heo +Date: Wed Mar 1 01:25:38 2006 +0900 + + [PATCH] libata: seperate out ata_class_present() + + Seperate out ata_class_present() from ata_dev_present(). This is + useful because new reset mechanism deals with classes[] directly. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit ebe19a4ed78d4a11a7e01cdeda25f91b7f2fcb5a +Author: Dale Farnsworth +Date: Fri Mar 3 10:06:20 2006 -0700 + + [PATCH] mv643xx_eth: Remove BIT0-BIT31 #defines + + Now that the BIT0-BIT31 defines are no longer used by mv643xx_eth.c, + remove them from mv643xx_eth.h. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit f78fb4743dc06719084239c29dc178ad38ad2e2f +Author: Dale Farnsworth +Date: Fri Mar 3 10:05:26 2006 -0700 + + [PATCH] mv643xx_eth: Remove non-working feature: task level rx queue refill + + The task level rx queue refill feature hasn't ever worked + (at least in 2.6) and is of dubious value. Remove it. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 468d09f8946d40228c56de26fe4874b2f98067ed +Author: Dale Farnsworth +Date: Fri Mar 3 10:04:39 2006 -0700 + + [PATCH] mv643xx_eth: Clean up interrupt handling + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 7303fde88a149c4cee54dae7e46d1895fa7214b4 +Author: Dale Farnsworth +Date: Fri Mar 3 10:03:36 2006 -0700 + + [PATCH] mv643xx_eth: Move #defines of constants to mv643xx_eth.h + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit ff561eef9fb37c7180085e08418acfc009a9ada7 +Author: Dale Farnsworth +Date: Fri Mar 3 10:02:51 2006 -0700 + + [PATCH] mv643xx_eth: Refactor/clean up tx queue handling + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit c8aaea25e0b069e9572caa74f984e109899c1765 +Author: Dale Farnsworth +Date: Fri Mar 3 10:02:05 2006 -0700 + + [PATCH] mv643xx_eth: Refactor tx command queuing code + + Simplify and remove redundant code for filling transmit descriptors. + No changes in features; it's just a code reorganization/cleanup. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit cd6478c8aed9b2001dfff067fa66b7492a0a2ffa +Author: Dale Farnsworth +Date: Fri Mar 3 10:01:08 2006 -0700 + + [PATCH] mv643xx_eth: Select CONFIG_MII on CONFIG_MV643XX_ETH + + >From : Dale Farnsworth + + Recent patches for the mv643xx_eth driver now use the MII interface + library. Select MII so it gets built when that driver is selected. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 12a87c644ab1862232d0916656ff2ee42f3fb873 +Author: Dale Farnsworth +Date: Fri Mar 3 10:00:22 2006 -0700 + + [PATCH] mv643xx_eth: Rename "channels" to "queues" + + Use better terminology for HW queues. No functional changes. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit e38fd1a055cf4038c423bd841859b01aeb07d1b0 +Author: Dale Farnsworth +Date: Fri Mar 3 09:59:28 2006 -0700 + + [PATCH] mv643xx_eth: Fix misplaced parenthesis in mv643xx_eth_port_disable_rx + + This bug could result in a system hang. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit d5f9558a7778d3f7dc3c9e0d5cbe7318710532f8 +Author: Dale Farnsworth +Date: Fri Mar 3 09:58:29 2006 -0700 + + [PATCH] mv643xx_eth: Remove duplicate includes of linux/in.h and linux/ip.h + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 62070fa42c4ac23d1d71146a4c14702302b80245 +Author: Sam Ravnborg +Date: Fri Mar 3 16:46:04 2006 +0100 + + kbuild: kill trailing whitespace in modpost & friends + + Signed-off-by: Sam Ravnborg + +commit 8cbe84f33a8d420d8c8228599bc042cb31c569fa +Author: Adrian Bunk +Date: Tue Feb 28 04:40:51 2006 -0300 + + V4L/DVB (3399a): cpia2/cpia2_v4l.c cleanups + + - make 2 needlessly global functions static + + - remove cpia2_setup(): the driver already allows setting parameters + through module_param(), and there's no reason for having two different + ways for setting the same parameters + + Signed-off-by: Adrian Bunk + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit d15549acfedd70b2bd97a5876ecd59527fa97671 +Author: Ricardo Cerqueira +Date: Fri Mar 3 12:13:42 2006 -0300 + + V4L/DVB (3197a): IR keymaps are exported by the ir-common module now + + Moved keymaps to the ir-common module, and export them from there, instead + of #including them in each module + + Included missing files from V4L/DVB(3197). + + Signed-off-by: Ricardo Cerqueira + Signed-off-by: Mauro Carvalho Chehab + +commit 9a7871ba111862b1515719994df66eeda9debbd1 +Author: Michael Krufky +Date: Mon Feb 27 15:22:49 2006 -0300 + + V4L/DVB (3399): ELSA EX-VISION 500TV: fix incorrect PCI subsystem ID + + - ELSA EX-VISION 500TV was incorrectly programmed to have the same + subsystem ID as ELSA EX-VISION 300TV, (1048:226b) + - This changeset replaces the incorrect subsystem ID (1048:226b) + with the correct one (1048:226a) for the ELSA EX-VISION 500TV. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit ba52429cb4e9ccd2e6417205a3f7d1f78356e236 +Author: Michael Krufky +Date: Mon Feb 27 14:38:17 2006 -0300 + + V4L/DVB (3398): ELSA EX-VISION 700TV: fix incorrect PCI subsystem ID + + - Corrected autodetection for saa7130 card: + subsystem: 1048:226c, board: ELSA EX-VISION 700TV + + Signed-off-by: TAMUKI Shoichi + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 420f32fe4e3eed466a6563e15a89f4688134cc98 +Author: Nico Sabbi +Date: Fri Mar 3 12:11:28 2006 -0300 + + V4L/DVB (3396): Add DVB-T support for the LifeView DVB Trio PCI card + + This patch adds DVB-T support, no DVB-S yet + + Signed-off-by: Nico Sabbi + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit df8cf70683ba3109756e20c50e0fefe24736564f +Author: Hartmut Hackmann +Date: Fri Mar 3 12:09:26 2006 -0300 + + V4L/DVB (3395): Fixed Pinnacle 300i DVB-T support + + - fixed tda9886 port 2 setting + - turned remote control receiver off via saa7134 GPIO to avoid i2c hangs + - modified tda9886 client calls to direct i2c access to allow proper return + to analog mode + - allow mode change to V4L2_TUNER_DIGITAL_TV in tuner VIDIOC_S_FREQUENCY + client call + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit dd9fbb52134693f1394a928c05d5f3cd3fdaf6e0 +Author: James Bottomley +Date: Thu Mar 2 16:01:31 2006 -0600 + + [SCSI] make some sas class properties optional + + aic94xx doesn't have a use for the bay or enclosure identifiers. + Also, I think it's not going to need a get_linkerrors(), so wire up + all of these exported properties as conditional on the underlying + function support. + + Signed-off-by: James Bottomley + +commit 13298defe5323c7fdcac268f588d8d1090758fb8 +Author: Steve French +Date: Fri Mar 3 10:45:19 2006 +0000 + + [CIFS] Upate cifs change log + + Signed-off-by: Steve French + +commit d7c8c94d3e4c1cab7feedbb34297caa5babe1a7f +Author: Steve French +Date: Fri Mar 3 10:43:49 2006 +0000 + + [CIFS] Fix slow oplock break response when mounts to different + servers have same tid and we try to match oplock break to wrong tid. + + Signed-off-by: Steve French + +commit 083d3a2cff514c5301f3a043642940d4d5371b22 +Author: Steve French +Date: Fri Mar 3 09:53:36 2006 +0000 + + [CIFS] Workaround various server bugs found in testing at connectathon + - slow down negprot 1ms during mount when RFC1001 over port 139 + to give buggy servers time to clear sess_init + - remap some plausible but incorrect SMB return codes to the + right ones in truncate and hardlink paths + + Signed-off-by: Steve French + +commit 39a112403fd4c6cd2215b5a59ff079e42eb824a4 +Author: Christoph Hellwig +Date: Tue Feb 14 18:46:22 2006 +0100 + + [SCSI] qla2xxx: use kthread_ API + + Use the kthread_ API instead of opencoding lots of hairy code for kernel + thread creation and teardown. + + Also switch from semaphore-based thread wakeup to wake_up_process. + + Signed-off-by: Christoph Hellwig + Acked-By: Andrew Vasquez + Signed-off-by: James Bottomley + +commit 7e6dff62dad539cbd608bb3b8b833193d13f00ac +Author: James Bottomley +Date: Thu Mar 2 14:12:56 2006 -0600 + + [SCSI] add 6.0 Gbit phy definitions to the sas transport class + + I don't think these exist in silicon yet, but the aic94xx driver has a + register setting for them. + + Signed-off-by: James Bottomley + +commit 0f15a8fae8b8558f5a9b0fec770846c487c779f6 +Author: Jeff Kirsher +Date: Thu Mar 2 18:46:29 2006 -0800 + + e1000: Added driver comments and whitespace changes. Modified long lines of code to ensure they would not wrap beyond 80 characters. + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 30320be88fb9cae888eacf1f1eaae95a03720128 +Author: Jeff Kirsher +Date: Thu Mar 2 18:21:57 2006 -0800 + + e1000: Added a performance enhancement - prefetch + + - this implementation of prefetch was tested on new and old hardware + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit dc7c6add3493cdc71475a006b7afc3732e55abd8 +Author: Jeff Kirsher +Date: Thu Mar 2 18:21:40 2006 -0800 + + e1000: Add copybreak when using packet split + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 8704163987882f8b989e8143ad1f87c6b7229a13 +Author: Jeff Kirsher +Date: Thu Mar 2 18:21:24 2006 -0800 + + e1000: Fixed the following issues with ESB2 (requires ESB2 support): + + - Add restriction for ESB2 to MTU size <=9216 + - Removed FIFO errors which were not being used + - Fixed issues with loopback + - Power management change for saving state and config space + - WA to disable recieves and reset device on link loss. Reset needed to be done outside the interrupt context - modified existing tx_timeout_task + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 6418ecc68e1d9416451b6f78ebb2c0b077e0abf2 +Author: Jeff Kirsher +Date: Thu Mar 2 18:21:10 2006 -0800 + + e1000: Add support for new hardware (ESB2) + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 2a1af5d7dfd809b16fb69f3f0fc073d9b6b7c6ac +Author: Jeff Kirsher +Date: Thu Mar 2 18:20:43 2006 -0800 + + e1000: Add performance enahancement by balancing TX and RX + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 85b22eb632dc75887ba99edad49307a02c2ae7ec +Author: Jeff Kirsher +Date: Thu Mar 2 18:20:29 2006 -0800 + + e1000: Add enabled Jumbo frame support for 82573L + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 9f68788856b134f93d9d10b19aa902924c61fc02 +Author: Jeff Kirsher +Date: Thu Mar 2 18:20:17 2006 -0800 + + e1000: Add 82573 controller support to TSO fix + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 329bfd0b6d5ffec00b787f1d0e68eef63d8b1d56 +Author: Jeff Kirsher +Date: Thu Mar 2 18:20:02 2006 -0800 + + e1000: Fix filling skb descriptors while using packet split + + - Simplified by calling skb_fill_page_desc(), which is more efficient. + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 7e6c9861bbc2fcd2438da910c006781784968a7c +Author: Jeff Kirsher +Date: Thu Mar 2 18:19:30 2006 -0800 + + e1000: Fix network problems when forced at 100Mb/s and to fix TSO when forced at 100Mb/s + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 8491682986e04fe7b258e5ba1d22f9a0ea2d803e +Author: Jeff Kirsher +Date: Thu Mar 2 18:18:48 2006 -0800 + + e1000: Fix Quadport Wake on LAN + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 8df06e504e999ff729f1b2a2e573d96bf3690dbc +Author: Jeff Kirsher +Date: Thu Mar 2 18:18:32 2006 -0800 + + e1000: Fix RSS if enabled in mid-connection + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 497fce5e72a21f45929a786bf416ac03cbe09e2f +Author: Jeff Kirsher +Date: Thu Mar 2 18:18:20 2006 -0800 + + e1000: Fix 82543 issue when reading eeprom + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 20a44028f06030a71a1250ad8efb0a7fb556c3ea +Author: Jeff Kirsher +Date: Thu Mar 2 18:18:08 2006 -0800 + + e1000: Fix dhcp issue when the skb structure fields are not filled properly + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit c5f226fe97e8025440aa330aa2c8e1c66bfdc96b +Author: Jeff Kirsher +Date: Thu Mar 2 18:17:55 2006 -0800 + + e1000: Fix AMT losing connectivity when switching VLAN in passive mode + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 5b66ba0db8d04d99926445bc7d9f920bb5d744ed +Author: Jeff Kirsher +Date: Thu Mar 2 18:17:30 2006 -0800 + + e1000: Fix unecessary delay for 82573 controllers + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 0989aa431636ffb347314f0e2f367fdd16d7a57f +Author: Jeff Kirsher +Date: Thu Mar 2 18:17:16 2006 -0800 + + e1000: Fix lock up while setting ring parameters + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit 9f644d518f35903ecaff062d6e9e4f7080d80cfb +Author: Jeff Kirsher +Date: Thu Mar 2 18:16:59 2006 -0800 + + e1000: Fix dead counters + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit c1605eb37aa658b810a5a7080412d656ddce2f76 +Author: Jeff Kirsher +Date: Thu Mar 2 18:16:38 2006 -0800 + + e1000: Remove Multiqueue code until we have support for MSI-X in our hardware + + + Signed-off-by: Jeff Kirsher + Signed-off-by: Jesse Brandeburg + Signed-off-by: John Ronciak + +commit a4e85b5f620f59bd9308e29f833648f792d422f7 +Author: Steve French +Date: Thu Mar 2 03:53:17 2006 +0000 + + [CIFS] Allow fallback for setting file size to Procom SMB server when + returns error invalid level + + Signed-off-by: Steve French + +commit 82940a465829b0c757dea45889aa150c8083e3d9 +Author: Steve French +Date: Thu Mar 2 03:24:57 2006 +0000 + + [CIFS] Make POSIX CIFS Extensions SetFSInfo match exactly what we want + not just the posix path feature. + + Signed-off-by: Steve French + +commit 46c79a645a00e71dbbfd5f52abe0ea7cf2d5daa3 +Author: Steve French +Date: Thu Mar 2 00:07:08 2006 +0000 + + [CIFS] Move noisy debug message (triggerred by some older servers) from + error to informational unless frame is rejected. + + Signed-off-by: Steve French + +commit 348edc59a8f9b9a66700781d972c24a46a79ae86 +Author: Tejun Heo +Date: Wed Mar 1 19:07:27 2006 +0900 + + [PATCH] sata_sil: remove unneeded ATA_FLAG_SRST from 3512 port info + + Now unneeded ATA_FLAG_SRST sneaked into sil_3512 port info while + merging upstream-fixes. Kill it. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit a9d01d2b49f528ffcf3093a77c66f254d297d5c8 +Author: Tejun Heo +Date: Tue Feb 28 17:38:10 2006 +0900 + + [PATCH] libata: kill illegal kfree(id) + + Kill kfree(id) in failure path of ata_dev_read_id(). id is not + dynamically allocated yet. + + Signed-off-by: Tejun Heo + Cc: Randy Dunlap + Signed-off-by: Jeff Garzik + +commit 4b9d7e04a8daaf3e5afe775ec9cbbfda5e32dd5b +Author: Tejun Heo +Date: Thu Feb 23 10:46:47 2006 +0900 + + [PATCH] sata_sil24: add a new PCI ID for SiI 3124 + + Add a new PCI ID for SiI 3124. Reported by Silicon Image. + + Signed-off-by: Tejun Heo + Cc: Carlos Pardo + Signed-off-by: Jeff Garzik + +commit 9d1ef8a64e21e57109be45a7345b09cf913e4b0e +Author: Dave Jones +Date: Wed Mar 1 14:23:14 2006 -0500 + + [AGPGART] ATI RS350 support. + + From: Julien Tous + Signed-off-by: Dave Jones + +commit c92f222e1f14588171e63b550ca8c85fa9130061 +Author: James Bottomley +Date: Wed Mar 1 09:02:49 2006 -0600 + + [SCSI] mptspi: Add transport class Domain Validation + + This is the first half of a patch to add the generic domain validation + to mptspi. It also creates a secondary "virtual" channel for raid + component devices since these are now exported with no_uld_attach. + + What Eric and I would have really liked is to export all physical + components on channel 0 and all raid components on channel 1. + Unfortunately, this would result in device renumbering on platforms with + mixed RAID/Physical devices which was considered unacceptable for + userland stability reasons. + + Still to be done is to plug back the extra parameter setting and DV + pieces on reset and hotplug. + + Signed-off-by: James Bottomley + +commit f26282c9af43c1aff3f448af61429625174ddf06 +Author: Steve French +Date: Wed Mar 1 09:17:37 2006 +0000 + + [CIFS] Use correct pid on new cifs posix byte range lock call + + Signed-off-by: Steve French + +commit 3ef0b47ee498ea183bffd9b3b4a1eef757fef4ba +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:39 2006 -0500 + + [SCSI] lpfc 8.1.2: Change version number to 8.1.2 + + Change version number to 8.1.2 + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 50eba24f2e0576910a3e23dced769b7be7f3683e +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:38 2006 -0500 + + [SCSI] lpfc 8.1.2: Modify RSCN handling to unregister rpis on lost FCP_TARGETs immediately + + Modify RSCN handling to unregister rpis on lost FCP_TARGETs immediately + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 0c6ac8efa83a465b950fe4dca096cd7ff1937f67 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:36 2006 -0500 + + [SCSI] lpfc 8.1.2: Fix panic caused by HBA resets and target side cable pulls + + Fix panic caused by HBA resets and target side cable pulls + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 8189fd19ac5ee517f276982c5947ef7f565841ad +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:35 2006 -0500 + + [SCSI] lpfc 8.1.2: Fixed module parameter descriptions. + + Fixed module parameter descriptions. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 25594c6b84ff96e156d8cf8168d68f50e07e8318 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:34 2006 -0500 + + [SCSI] lpfc 8.1.2: Code cleanup of lpfc_mbx_cmpl_config_link + + Code cleanup of lpfc_mbx_cmpl_config_link + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 367c27134a94dce351080ae66ab87a1b296d1e64 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:32 2006 -0500 + + [SCSI] lpfc 8.1.2: Allow turning on internal loop-back mode + + Allow turning on internal loop-back mode + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 2fe165b65089925292122e9772321738627f325c +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:31 2006 -0500 + + [SCSI] lpfc 8.1.2: Code style changes for Discovery code + + Code style changes for Discovery code + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 082c02667d98d3060f63382e7a695d58d4c8c5e4 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:30 2006 -0500 + + [SCSI] lpfc 8.1.2: Make lpfc_els_rsp_rps_acc and lpfc_els_rsp_rpl_acc static + + Make lpfc_els_rsp_rps_acc and lpfc_els_rsp_rpl_acc static + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 5024ab179c13d763f95c8391f45f22309609f479 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:28 2006 -0500 + + [SCSI] lpfc 8.1.2: Added support for FAN + + Added support for FAN + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 41415862a23f422b80eccc92cf885935139e2415 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:27 2006 -0500 + + [SCSI] lpfc 8.1.2: Add ERROR and WARM_START modes for diagnostic purposes. + + Add ERROR and WARM_START modes for diagnostic purposes. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit d9d959c41f013439508e0fa1d31f5644d8d626ef +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:26 2006 -0500 + + [SCSI] lpfc 8.1.2: Remove hba_list from struct lpfc_hba + + Remove hba_list from struct lpfc_hba + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 7f0b5b1913ba20ae035adbaeca176e78a53fa7a8 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:24 2006 -0500 + + [SCSI] lpfc 8.1.2: Correct use of the hostdata field in scsi_host + + Correct use of the hostdata field in scsi_host + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit c9f8735beadfba403045c4423c91bbcf594b6ef2 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:23 2006 -0500 + + [SCSI] lpfc 8.1.2: Misc FC Discovery changes : + + Misc FC Discovery changes : + - Added FC_BYPASSED_MODE statistic + - Corrected some log message data + - Fix up Discovery infrastructure to support FAN: + Allow Fabric entities to flow thru DSM + Fix up linkup/linkdown unregister login processing for Fabric entities + Clean up Discovery code + Utilize nodev_tmo for Fabric entities + - Use of 3 * ratov for CT handling timeouts + - Fix up DSM to make more appropriate decisions and clean up code. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit b28485acb930f67c014024bc3b9c01129124e566 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:21 2006 -0500 + + [SCSI] lpfc 8.1.2: Add module parameter to limit number of outstanding commands per lpfc HBA + + Add module parameter to limit number of outstanding commands per lpfc HBA + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 406d6041ace581b63a7898f3c1ef036c58c74989 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:20 2006 -0500 + + [SCSI] lpfc 8.1.2: Fixed a double insertion of mail box object to the SLI mailbox list. + + Fixed a double insertion of mail box object to the SLI mailbox list. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 901a920f0759c6ea94255f3c2cd6ec324f7e4752 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:19 2006 -0500 + + [SCSI] lpfc 8.1.2: Fixed system panic in lpfc_sli_brdreset during dynamic add of LP11K + + Fixed system panic in lpfc_sli_brdreset during dynamic add of LP11K + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 7062c5281c68dfdb685ec9ba25cfc7b6a15bc0fe +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:17 2006 -0500 + + [SCSI] lpfc 8.1.2: Explicitly initialize the skip_post argument to lpfc_sli_send_reset + + Explicitly initialize the skip_post argument to lpfc_sli_send_reset + on a ERATT interrupt. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 6ad425356bba9664393b579d81df8135ca1510e6 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:16 2006 -0500 + + [SCSI] lpfc 8.1.2: Fixed a race condition in the PLOGI retry logic. + + Fixed a race condition in the PLOGI retry logic. + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 7bb3b137abf2b7073e683c14cfe062d811d35247 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:15 2006 -0500 + + [SCSI] lpfc 8.1.2: Handling of ELS commands RRQ, RPS, RPL and LIRR correctly + + Handling of ELS commands RRQ, RPS, RPL and LIRR correctly + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 0228aadd0fb1d8ca90efbe74291f3b5b753c2da2 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:13 2006 -0500 + + [SCSI] lpfc 8.1.2: Remove unused SLI_IOCB_HIGH_PRIORITY + + Remove unused SLI_IOCB_HIGH_PRIORITY + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 0c71fd9e433c032c08e85a955471bc03138afa80 +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:12 2006 -0500 + + [SCSI] lpfc 8.1.2: Remove unreferenced cfg_fcp_bind_method from struct lpfc_hba + + Remove unreferenced cfg_fcp_bind_method from struct lpfc_hba + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 3bbae37ab42d9d7d6c707e275ea944104a1f38ca +Author: Jamie Wellnitz +Date: Tue Feb 28 19:25:11 2006 -0500 + + [SCSI] lpfc 8.1.2: Remove unused prototypes from lpfc_crtn.h + + Remove unused prototypes from lpfc_crtn.h + + Signed-off-by: Jamie Wellnitz + Signed-off-by: James Bottomley + +commit 08547b036b8445e2318e14f1f03308105b01fc5b +Author: Steve French +Date: Tue Feb 28 22:39:25 2006 +0000 + + [CIFS] Add posix (advisory) byte range locking support to cifs client + + Samba (version 3) server support for this is also currently being + done. This client code is in an experimental path (requires enabling + /proc/fs/cifs/Experimental) while it is being tested. + + Signed-off-by: Steve French + +commit 6a92a4e0d201aea6d7c83f100d77310676b2e049 +Author: Dave Jones +Date: Tue Feb 28 00:54:25 2006 -0500 + + [AGPGART] Lots of CodingStyle/whitespace cleanups. + + Eliminate trailing whitespace. + s/if(/if (/ + s/for(/for (/ + + Signed-off-by: Dave Jones + +commit 32ee8c3e470d86588b51dc42ed01e85c5fa0f180 +Author: Dave Jones +Date: Tue Feb 28 00:43:23 2006 -0500 + + [CPUFREQ] Lots of whitespace & CodingStyle cleanup. + + Signed-off-by: Dave Jones + +commit 32f95792500794a0a7cce266b7dafb2bee323bf8 +Author: Brian King +Date: Wed Feb 22 14:28:24 2006 -0600 + + [SCSI] scsi: Handle device_add failure in scsi_alloc_target + + Fixes scsi to handle device_add failure in scsi_alloc_target. + Without this patch, if this call were to fail, we can oops + when we free the target. + + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit ffedb4522571ac170f941678d138a31bc0884ab4 +Author: James Bottomley +Date: Thu Feb 23 14:27:18 2006 -0600 + + [SCSI] fix scsi process problems and clean up the target reap issues + + In order to use the new execute_in_process_context() API, you have to + provide it with the work storage, which I do in SCSI in scsi_device and + scsi_target, but which also means that we can no longer queue up the + target reaps, so instead I moved the target to a state model which + allows target_alloc to detect if we've received a dying target and wait + for it to be gone. Hopefully, this should also solve the target + namespace race. + + Signed-off-by: James Bottomley + +commit 8ad5496d2359a19127ad9f2eda69485025c9917f +Author: Dave Jones +Date: Tue Feb 28 00:37:44 2006 -0500 + + [CPUFREQ] Remove duplicate cpuinfo struct + We already have one of these declared, so use it, instead + of declaring a second one for no good reason. + + Signed-off-by: Dave Jones + +commit 2c906ae67b5b2fc3585230b16406400a363b42e4 +Author: Dave Jones +Date: Tue Feb 28 00:36:32 2006 -0500 + + [CPUFREQ] Silence powernow-k8 warning on k7's. + + Signed-off-by: Dave Jones + +commit 1fa44ecad2b86475e038aed81b0bf333fa484f8b +Author: James Bottomley +Date: Thu Feb 23 12:43:43 2006 -0600 + + [SCSI] add execute_in_process_context() API + + We have several points in the SCSI stack (primarily for our device + functions) where we need to guarantee process context, but (given the + place where the last reference was released) we cannot guarantee this. + + This API gets around the issue by executing the function directly if + the caller has process context, but scheduling a workqueue to execute + in process context if the caller doesn't have it. + + Signed-off-by: James Bottomley + +commit ba3af0aff042caa1f41b5f7164cab37c717b8811 +Author: Mike Christie +Date: Wed Feb 22 02:11:59 2006 -0600 + + [SCSI] don't call ips_eh_reset in ips_queue to avoid deadlock + + When the locking was changed in the eh code ips_eh_reset was changed + so that it was a wraper around __ips_eh_reset and all ips_eh_reset + does is grab the host lock and then calls __ips_eh_reset. + + In the queuecommand, ips_queue is called with the host_lock held so if + it calls ips_eh_reset we will have a problem. This patch just has + ips_queue call __ips_eh_reset. + + Patch is only compile tested. I do not have the HW. + + Signed-off-by: Mike Christie + Acked-by: Hammer, Jack + Signed-off-by: James Bottomley + +commit 6d73c8514da241c6b1b8d710a6294786604d7142 +Author: Al Viro +Date: Thu Feb 23 02:03:16 2006 +0100 + + [SCSI] scsi_lib: fix recognition of cache type of Initio SBP-2 bridges + + Regardless what mode page was asked for, Initio INIC-14x0 and + INIC-2430 always return page 6 without mode page headers. Try to + recognise this as a special case in scsi_mode_sense and setting the + mode sense headers accordingly. + + Signed-off-by: Al Viro + Signed-off-by: James Bottomley + +commit fc25307d06f524d6c04b371b236dc9e62186058c +Author: Matthew Wilcox +Date: Sat Feb 18 20:52:31 2006 -0700 + + [SCSI] Improve message printing code + + Fix a bug where we would consume one byte too many in the message + printing code. + Add support for 256-byte long messages. + Add support for the Modify Bidirectional Data Pointer message. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 1bfc5d9d5eb8e1a2efacc306bc55c248ed259a8e +Author: Alan Stern +Date: Thu Feb 9 15:26:18 2006 -0500 + + [SCSI] Recognize missing LUNs for non-standard devices + + Some non-standard SCSI targets or protocols, such as USB UFI, report "no + LUN present" by setting the Peripheral Device Type to 0x1f and the + Peripheral Qualifier to 0 (not 3 as the standard requires) in the INQUIRY + response. This patch (as650b) adds a new target flag and code to + accomodate such targets. + + Signed-off-by: Alan Stern + Signed-off-by: James Bottomley + +commit 8cac814501677e9f6a824cf4d423122ac8d67fcb +Author: Christoph Hellwig +Date: Mon Feb 6 15:40:45 2006 +0100 + + [SCSI] aic7xxx: semaphore to completion conversion + + On Tue, Jan 31, 2006 at 06:20:18PM +0100, Christoph Hellwig wrote: + > switch eh_sem to a completion. due to wait_for_completion_timeout this + > also nicely simplifies the code. Unfortunately it's untested, so if + > someone with the hardware could give it a try that would be nice. Once + > it works the same thing can be applied to aic79xx. + + New version that switches to the common onstack completion and just a + pointer in the platform_data struct idiom. This gets rid of all the + flags fiddling. + + Signed-off-by: Christoph Hellwig + Signed-off-by: James Bottomley + +commit fe27381d16c6683c55e618360d0d11bd43647e43 +Author: Christoph Hellwig +Date: Tue Feb 14 18:45:06 2006 +0100 + + [SCSI] aacraid: use kthread_ API + + Use the kthread_ API instead of opencoding lots of hairy code for kernel + thread creation and teardown. + + Signed-off-by: Christoph Hellwig + Acked-by: Salyzyn, Mark + Signed-off-by: James Bottomley + +commit 38e14f895b212943995379dea824cc52b0c25991 +Author: James Bottomley +Date: Fri Feb 17 14:58:47 2006 -0800 + + [SCSI] Add EXPORT_SYMBOL for spi msg functions + + Signed-off-by: James Bottomley + +commit a012564136a665f8d63443c057ba368572b483df +Author: Christoph Hellwig +Date: Thu Feb 16 13:31:47 2006 +0100 + + [SCSI] sas: add support for enclosure and bad ID rphy attributes + + Signed-off-by: Christoph Hellwig + Signed-off-by: James Bottomley + +commit e3094447e013a59ccedcf60f6055f18225bd8465 +Author: Christoph Hellwig +Date: Thu Feb 16 13:25:36 2006 +0100 + + [SCSI] mptsas: add support for enclosure and bay identifier attributes + + Adds support to retrieve the enclosure and bay identifiers. This patch + is from Eric with minor modifications from me, rewritten from a buggy + patch of mine, based on the earlier CSMI implementation from Eric.. + + Signed-off-by: Christoph Hellwig + Signed-off-by: James Bottomley + +commit ae198df37775e4471fae0b023061667275b2f71b +Author: Ralf Baechle +Date: Thu Feb 9 11:16:27 2006 -0500 + + [SCSI] jazz_esp: Fix sparse warnings. + + Using plain integer as NULL pointer. + + Signed-off-by: Ralf Baechle + Signed-off-by: James Bottomley + +commit 0320503dce208c03f296a09d9a18a992ab88cbd5 +Author: Ralf Baechle +Date: Thu Feb 9 11:15:49 2006 -0500 + + [SCSI] jazz_esp: Delete useless prototype + + Signed-off-by: James Bottomley + +commit e24d873d250f9999ad3703f220e3759c1fb70998 +Author: Matthew Wilcox +Date: Tue Feb 7 08:05:26 2006 -0700 + + [SCSI] Make spi_print_msg more consistent + + Almost all the output from spi_print_msg() has a trailing space. + This patch fixes up the three cases that don't. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 6ea3c0b2dac0d6a857d6bc010e544f4c901fff78 +Author: Matthew Wilcox +Date: Tue Feb 7 07:54:46 2006 -0700 + + [SCSI] Add spi_populate_*_msg functions + + Introduce new helpers: + - spi_populate_width_msg() + - spi_populate_sync_msg() + - spi_populate_ppr_msg() + + and use them in drivers which already enable the SPI transport. + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit b0dc1db15225d5801bf3105966c9ce12c5142013 +Author: Matthew Wilcox +Date: Fri Feb 17 13:18:41 2006 -0700 + + [SCSI] ncr53c8xx update + + Delete unused NAME53C definition + Remove use of the M_* constants; use the common SCSI constants instead + Translate some remaining German + Add a missing changelog entry + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit ea697e456a278fb74a925a6c6befe04054520994 +Author: Matthew Wilcox +Date: Tue Feb 7 08:01:02 2006 -0700 + + [SCSI] unused show_spi_transport_period_helper parameter + + show_spi_transport_period_helper() doesn't need the class_device parameter + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit a97a83a06b44d4d1cb01191423caf9813a150b95 +Author: Matthew Wilcox +Date: Sun Feb 5 08:01:33 2006 -0700 + + [SCSI] fix uninitialized variable error + + in __scsi_add_device, sdev may be uninitialised if + scsi_host_scan_allowed() returns false. Fix by initialising at the + top of the routine. Also rely on the fact that + scsi_probe_and_add_lun() only actually fills in the sdev pointer if + the SCSI_SCAN_LUN_PRESENT case (so no need to check the return value). + + Signed-off-by: James Bottomley + +commit 1acc0b0ba409dcf4909890fb33e0829f7fd400be +Author: Andrew Morton +Date: Wed Jan 4 18:30:03 2006 -0800 + + [SCSI] cciss: kfree(NULL) is legal + + Signed-off-by: Andrew Morton + Signed-off-by: James Bottomley + +commit 03fbcbcd57e9d1bc5a4fe6a81c1845e7365ddabc +Author: Adrian Bunk +Date: Wed Jan 25 02:00:52 2006 +0100 + + [SCSI] drivers/message/fusion/mptfc.c: make 2 functions static + + This patch makes two needlessly global functions static. + + Signed-off-by: Adrian Bunk + Signed-off-by: James Bottomley + +commit f8a88b19b9d4f59bd625b4852c1b1138a5cf89f3 +Author: Linas Vepstas +Date: Fri Feb 3 16:52:42 2006 -0600 + + [SCSI] PCI Error Recovery: IPR SCSI device driver + + Various PCI bus errors can be signaled by newer PCI controllers. This + patch adds the PCI error recovery callbacks to the IPR SCSI device driver. + The patch has been tested, and appears to work well. + + Signed-off-by: Linas Vepstas + Signed-off-by: Brian King + Signed-off-by: James Bottomley + +commit 4f8d98abaf957691f9543b9b1b610d49aa0f662b +Author: Moore, Eric +Date: Thu Feb 2 17:20:05 2006 -0700 + + [SCSI] fusion - mptlan - remove wierd humor print + + Removes wierd humor, and bad language printk in mptlan. + + Signed-off-by: Eric Moore + Signed-off-by: James Bottomley + +commit 5e3c34c1e988a0dfe177c38cf324e8e321c55ef5 +Author: Greg KH +Date: Wed Jan 18 16:17:46 2006 -0800 + + [SCSI] Remove devfs support from the SCSI subsystem + + As devfs has been disabled from the kernel tree for a number of months + now (5 to be exact), here's a patch against 2.6.16-rc1-git1 that removes + support for it from the SCSI subsystem. + + The patch also removes the scsi_disk devfs_name field as it's no longer + needed. + + Signed-off-by: Greg Kroah-Hartman + Signed-off-by: James Bottomley + +commit c67a848c3587296fe9794c95d1be7109c4c85461 +Author: Matthew Wilcox +Date: Tue Jan 17 11:54:24 2006 -0700 + + [SCSI] Neaten comments in scsi_cmnd.h + + Wrap these two comments at 80 columns + + Signed-off-by: Matthew Wilcox + Signed-off-by: James Bottomley + +commit 24669f75a3231fa37444977c92d1f4838bec1233 +Author: Jes Sorensen +Date: Mon Jan 16 10:31:18 2006 -0500 + + [SCSI] SCSI core kmalloc2kzalloc + + Change the core SCSI code to use kzalloc rather than kmalloc+memset + where possible. + + Signed-off-by: Jes Sorensen + Signed-off-by: James Bottomley + +commit d47d7c1a850b867047fe17140fabd0376894e849 +Author: Steve French +Date: Tue Feb 28 03:45:48 2006 +0000 + + [CIFS] CIFS readdir perf optimizations part 1 + + Signed-off-by: Steve French + +commit 07981aa43f6aec32b875f360755ed3d14f9d5139 +Author: Pete Zaitcev +Date: Sun Feb 26 16:29:51 2006 -0800 + + [PATCH] ieee80211_geo.c: remove frivolous BUG_ON's + + I have come to consider BUG_ON generally harmful. The idea of an assert is + to prevent a program to execute past a point where its state is known + erroneous, thus preventing it from dealing more damage to the data + (or hiding the traces of malfunction). The problem is, in kernel this harm + has to be balanced against the harm of forced reboot. + + The last straw was our softmac tree, where "iwlist eth1 scan" causes + a lockup. It is absolutely frivolus and provides no advantages a normal + assert has to provide. In fact, doing this impedes debugging. + + Signed-off-by: Pete Zaitcev + Signed-off-by: John W. Linville + +commit a23f460dd0c7c9c58b03494c7819e126b2c72383 +Author: Dan Williams +Date: Mon Feb 27 16:28:36 2006 -0500 + + [PATCH] wireless/airo: Remove 'Setting transmit key' info messages + + These messages end up polluting logs when things like NetworkManager or + wpa_supplicant are controlling the driver. They aren't really that + useful, and no other drivers output messages like this when the user + fiddles with encryption keys. Users can use iwconfig and other + wireless-tools methods to determine and change the current transmit key + if they wish to do so manually. Therefore, remove the messages. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 7aa6ba41362a7f888ad11fdcfe51ca8d92226cd3 +Author: Jes Sorensen +Date: Fri Feb 17 05:18:43 2006 -0500 + + [IA64-SGI] SN2-XP reduce kmalloc wrapper inlining + + Take advantage of kzalloc() as well as reduce the size of code generated + for the error returns in xpc_setup_infrastructure(). + + Signed-off-by: Jes Sorensen + Acked-by: Dean Nelson + Signed-off-by: Tony Luck + +commit 2cf82c0256b198ae28c465f2c4d7c12c836ea5ea +Author: Paul Mackerras +Date: Mon Feb 27 15:41:47 2006 +1100 + + powerpc: Export variables used in conversions to/from cputime_t + + The inline cputime_to_foo and foo_to_cputime conversion functions in + include/asm-powerpc/cputime.h refer to 5 variables, which need to be + exported if those functions are to be usable from modules. + + Signed-off-by: Paul Mackerras + +commit e11f04962cee8f7fb0dc14983a7a461ade8f71c3 +Author: Jesper Juhl +Date: Sat Feb 25 21:52:50 2006 +0100 + + kbuild: small update of allnoconfig description + + 'allnoconfig' is described by 'make help' as a "minimal config", that's not + strictly correct. To be pedantic, a minimal config would be one where + EMBEDDED was set to Y and most things therein disabled etc. Simply + answering 'no' to all options does not give a minimal config. + A better description of allnoconfig is that it answers all options with 'no'. + + This patch updates the description. + + Signed-off-by: Jesper Juhl + Signed-off-by: Sam Ravnborg + +commit 3a25f0b19f2eefd158955ab809c8947ed8feadf1 +Author: Aaron Brooks +Date: Sun Feb 26 22:25:46 2006 -0500 + + kbuild: make namespace.pl CROSS_COMPILE happy + + Using the fixed path to /usr/bin/{nm,objdump} does not allow + CROSS_COMPILE environments to use namespace.pl. This patch causes + namespace.pl to use $NM and $OBJDUMP if defined or fall back to the nm + and objdump found in the path. + + Signed-off-by: Aaron Brooks + Signed-off-by: Sam Ravnborg + +commit 4a287cfeea7056dc71d2bc352ae490a2a5bcceb0 +Author: Duncan Sands +Date: Mon Feb 27 00:09:48 2006 -0300 + + V4L/DVB (3394): Bttv: correct bttv_risc_packed buffer size + + This patch fixes the strange crashes I was seeing after using + bttv card, caused by a buffer overflow in bttv_risc_packed. + The instruction buffer size calculation contains two errors: + (a) a non-zero padding value can push the start of the next bpl + section to just before a page border, leading to more scanline + splits and thus additional instructions. + (b) the first DMA region can be smaller than one page, so there can + be a scanline split even if bpl*lines is smaller than PAGE_SIZE. + For example, consider the case where offset is 0, bpl is 2, padding + is 4094, lines is smaller than 2048, the first DMA region has size 1 + and all others have size PAGE_SIZE, assumed to equal 4096. Then + all bpl regions cross page borders and the number of instructions + written is 2*lines+2, rather than lines+2 (the current estimate). + With this patch the number of instructions for this example is + estimated to be 2*lines+3. + Also, the BUG_ON that was supposed to catch buffer overflows contained + a thinko causing it fire only if the buffer was overrun by a factor of + 16 or more, so it fixes the the BUG_ON's (using sizeof rather than "4"). + + Signed-off-by: Duncan Sands + Signed-off-by: Mauro Carvalho Chehab + +commit 6457af5f7eac49ff8e072fdc98c986d4ac874b04 +Author: Ian Pickworth +Date: Mon Feb 27 00:09:45 2006 -0300 + + V4L/DVB (3393): Cx88: reduce excessive logging + + - fix temporary debug code by changing printk to dprintk at level 1. + - move CORE_IOCTL messages from level 1 to level 2. + - this should help with selective debugging, + while not filling people's logs up during normal use. + + Signed-off-by: Ian Pickworth + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit dadaff2db46aae917ccdbceb2cd2ecac75767435 +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:09:41 2006 -0300 + + V4L/DVB (3392a): XC3028 code removed from -git versions + + - Current xc3028 support is still experimental, requiring more work to be + sent to mainstream. It will be kept only at mercurial tree on + http://linuxtv.org/hg until fixed. + + Signed-off-by: Mauro Carvalho Chehab + +commit df5a4f4fd378367db1f48e92f46ce312814cf745 +Author: Manu Abraham +Date: Mon Feb 27 00:09:37 2006 -0300 + + V4L/DVB (3392): Do a RESYNC for all cards + + After a FIFO corruptions occurrs (generally due to buffer overflow), FIFO + contents needs to be discarted. + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 918c4563d9c0fafce0072ce0962a703ceba8f05d +Author: Uwe Bugla +Date: Mon Feb 27 00:09:34 2006 -0300 + + V4L/DVB (3391): Documentation update + + Signed-off-by: Uwe Bugla + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 6baad3f041eec7c31ad88b52eb44205987148eba +Author: Manu Abraham +Date: Mon Feb 27 00:09:32 2006 -0300 + + V4L/DVB (3390): Fix module parameters + + Now, root may change parameters while module is running. + Thanks to Edgar Toerning + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit e7ac46469c247a931f760354deaed9cf10b75fde +Author: Manu Abraham +Date: Mon Feb 27 00:09:29 2006 -0300 + + V4L/DVB (3389): Fix broken IF-OUT Relay handling + + Fixed broken IF-OUT on pinnacle sat board. + Thanks to Edgar Toernig + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 1e7eb89ba936fc1db54e247a336f3f55bdbc644d +Author: Manu Abraham +Date: Mon Feb 27 00:09:25 2006 -0300 + + V4L/DVB (3388): Ignore DiSEqC messages > 6 and < 3 + + Ignore invalid messages on cx24110 frontend. + Thanks to Edgar Toernig + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 3b81fec4328799e94789e8404e6e8b7218c096f6 +Author: Peter Beutner +Date: Mon Feb 27 00:09:23 2006 -0300 + + V4L/DVB (3386): Dvb-core: remove dead code + + The field "dvr" in struct dmxdev is competely unused. Remove + it and code which allocates, initializes and frees it. + + Signed-off-by: Peter Beutner + Signed-off-by: Johannes Stezenbach + Signed-off-by: Mauro Carvalho Chehab + +commit 1be11e367f25d3874276d56d1c4ffed5b3cc3bb9 +Author: Johannes Stezenbach +Date: Mon Feb 27 00:09:20 2006 -0300 + + V4L/DVB (3385): Dvb: fix __init/__exit section references in av7110 driver + + use __devinit/__devexit/__devexit_p() where appropriate + + Signed-off-by: Johannes Stezenbach + Signed-off-by: Mauro Carvalho Chehab + +commit 981a16f185bdf105f0d411d87f5c276d3da60e64 +Author: Mattias Nordstrom +Date: Mon Feb 27 00:09:17 2006 -0300 + + V4L/DVB (3382): Fix stv0297 for qam128 on tt c1500 (saa7146) + + I have a TT C1500 card (saa7146, STV0297) which had problems tuning + channels at QAM128 (like the ones in the Finnish HTV / Welho network). + A fix which seems to work perfectly so far is to change the delay for + QAM128 to the same values as for QAM256 in stv0297_set_frontend(), + + Signed-off-by: Mattias Nordstrom + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit b9ee9ad7cb91301aae0fc12e11f79ba119c133d9 +Author: Michael Krufky +Date: Mon Feb 27 00:09:14 2006 -0300 + + V4L/DVB (3380): TUV1236d: declare buffer as static const + + Make buffer a static const + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 44fd06fa9002c42b367c152594cc95b7632c081d +Author: Hartmut Hackmann +Date: Mon Feb 27 00:09:11 2006 -0300 + + V4L/DVB (3378): Restore power on defaults of tda9887 after tda8290 probe + + The probing code for tda8290 changes the state of the tda9887 GP ports. + The patch assumes that if probing for tda8290 failed, this must be a + tda9887 and restores its power on defaults. + This should solve the module load order issue with some pinnacle cards. + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 36f4f334a169e5d42721d74b5d92fda89f792b06 +Author: Thilo Berger +Date: Mon Feb 27 00:09:08 2006 -0300 + + V4L/DVB (3377): Support for Satelco EasyWatch DVB-S light + + Support for Satelco EasyWatch DVB-S light. + + Signed-off-by: Thilo Berger + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit ab33d5071de7a33616842882c11b5eb52a6c26a1 +Author: Alan Cox +Date: Mon Feb 27 00:09:05 2006 -0300 + + V4L/DVB (3376): Add cpia2 camera support + + There has been a CPIA2 driver out of kernel for a long time and it has + been pretty clean for some time too. This is an import of the + sourceforge driver which has been stripped of + - 2.4 back compatibility + - 2.4 old style MJPEG ioctls + A couple of functions have been made static and the docs have been + repackaged into Documentation/video4linux. The rvmalloc/free functions now + match the cpia driver again. Other than that this is the code as is. + Tested on x86-64 with a QX5 microscope. + + Signed-off-by: Alan Cox + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit f05cce863fa399dd79c5aa3896d608b8b86d8030 +Author: Andreas Oberritter +Date: Mon Feb 27 00:09:00 2006 -0300 + + V4L/DVB (3375): Add AUDIO_GET_PTS and VIDEO_GET_PTS ioctls + + Add two new ioctls to read the 33 bit presentation time stamp from audio + and video devices as defined in ITU T-REC-H.222.0 and ISO/IEC 13818-1. + Acked-by: Johannes Stezenbach + + Signed-off-by: Andreas Oberritter + Signed-off-by: Mauro Carvalho Chehab + +commit 2e0d447005d2ac05b15aa21b3846815f90bafbdb +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:08:58 2006 -0300 + + V4L/DVB (3374): Adds debuging v4l2_memory enum + + Some cleanup on printing enum names. + v4l2_memory now translated also to name. + + Signed-off-by: Mauro Carvalho Chehab + +commit 0bbb9c175211c2e114216978c9630d894c7760b3 +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:08:55 2006 -0300 + + V4L/DVB (3373): Debug messages for ioctl improved + + Adds field and type name to debug message. + Also prints now format for type=capture. + + Signed-off-by: Mauro Carvalho Chehab + +commit 3ed33c31a7253f2b29a3813b66bf87985d3396ac +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:08:52 2006 -0300 + + V4L/DVB (3372): Fix a small bug when constructing fps and line numbers + + Previously, only NTSC and PAL/M were associated to 30fps and + 525 lines, so, PAL/60 were not handled properly. + + Signed-off-by: Mauro Carvalho Chehab + +commit 41f38b43e0bfbb2ba1ef3c778f376dad8820b214 +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:08:49 2006 -0300 + + V4L/DVB (3371): Add debug to ioctl arguments. + + Added a new function that allows printing ioctl arguments. + This makes easier to include debug code under v4l ioctl + handling. + Also fixed some declarations on internal ioctl. + + Signed-off-by: Mauro Carvalho Chehab + +commit a8029170b907e7bfac5f6ea3fcd5d076e90beaf3 +Author: Rudo Thomas +Date: Mon Feb 27 00:08:46 2006 -0300 + + V4L/DVB (3369): LifeView FlyDVB-T Duo: add support for remote control + + The remote controller on the LifeView FlyDVB-T Duo card work flawlessly + with the same settings as the LifeView FlyDVB-T LR301 card. + + Signed-off-by: Rudo Thomas + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit f29edc22109840be0dd8e2d7d532cabac97d9c19 +Author: Michael Krufky +Date: Mon Feb 27 00:08:43 2006 -0300 + + V4L/DVB (3368): KWorld HardwareMpegTV XPert: update comments + + Standard video using the cx88 broadcast decoder is + working, but blackbird isn't working yet, audio is only + working correctly for television mode. S-Video and Composite + are working for video-only, so I have them disabled for now. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 20b5ee5d491238b8de7ba0c06945d8e3935d42e6 +Author: Curt Meyers +Date: Mon Feb 27 00:08:39 2006 -0300 + + V4L/DVB (3366): Kworld ATSC110: initialize the tuner for analog mode on module load + + - Enable the tuv1236 tuner on the Kworld-ATSC110 card so that the + tuner can be identified when tuners.ko loads. + - With this change it is no longer necessary to remove and reload + the tuner module in order to get the tuv1236 identified. + - This code was copied from the ATI HDTV Wonder init routine (in cx88-cards.c) + which also uses the TUV1236D. + + Signed-off-by: Curt Meyers + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit ccb1ef199162754e80c27e5b7d20817eb73a0eab +Author: Michael Krufky +Date: Mon Feb 27 00:08:36 2006 -0300 + + V4L/DVB (3365): Kworld ATSC110: cleanups + + - There is no radio with this tuner card... + Thanks-to: Dwaine Garden + - fixed capitalization in card name. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 6ba509d7c73f6cea795a71ceed6cdb7e302fc4b7 +Author: Curt Meyers +Date: Mon Feb 27 00:08:32 2006 -0300 + + V4L/DVB (3363): Kworld ATSC110: enable composite and svideo inputs + + - corrected composite input. + - verified s-video input. + + Signed-off-by: Curt Meyers + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit fbc81c072d832a0529bdb710404e7c9dc14f3043 +Author: Curt Meyers +Date: Mon Feb 27 00:08:27 2006 -0300 + + V4L/DVB (3362): KWorld ATSC110: implement set_pll_input + + - When tuning VSB, use ANT input + - When tuning QAM, use CABLE input + + Signed-off-by: Curt Meyers + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 3e1410adc7cc9e8511327179b5b86864be17b7f9 +Author: Andrew Burri +Date: Mon Feb 27 00:08:23 2006 -0300 + + V4L/DVB (3361): Add support for Kworld ATSC110 + + Signed-off-by: Andrew Burri + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit ecc0b94742014f21fd1ba331bb6815322800b6c8 +Author: Hans Verkuil +Date: Mon Feb 27 00:08:20 2006 -0300 + + V4L/DVB (3354): Fix maximum for the saturation and contrast controls. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit fddd632a8f3850b3981e21a477fcb83d227353ca +Author: Michael Krufky +Date: Mon Feb 27 00:08:17 2006 -0300 + + V4L/DVB (3352): Cxusb: fix lgdt3303 naming + + The following are specific to lgdt3303, and are being renamed to reflect this. + - cxusb_lgdt330x_config renamed to cxusb_lgdt3303_config. + - cxusb_lgdt330x_frontend_attach renamed to cxusb_lgdt3303_frontend_attach. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 4ab2b99b9f41a0a409030f1edb79a14ec2287e4b +Author: BoyZonder +Date: Mon Feb 27 00:08:15 2006 -0300 + + V4L/DVB (3349): Remote control codes for BTTV_BOARD_CONTVFMI + + The remote control interface for this board is the same as the one for + BTTV_BOARD_CONCEPTRONIC_CTVFMI2 + + Signed-off-by: Ricardo Cerqueira + Signed-off-by: Mauro Carvalho Chehab + +commit 8a9a5fbd33258b8e3e3b629a9f33254b6f1d883b +Author: Ricardo Cerqueira +Date: Mon Feb 27 00:08:11 2006 -0300 + + V4L/DVB (3348): Fixed saa7134 ALSA initialization with multiple cards + + When multiple cards were installed, only the first card would have + audio initialized, because only the first position in the array parameter + defaulted to "1" + To make things worse, the "enable" parameter wasn't enabled, so there + was no workaround. + + Signed-off-by: Ricardo Cerqueira + Signed-off-by: Mauro Carvalho Chehab + +commit cb46e3c28ef8055e82dfbc64ba64dda123833036 +Author: Karsten Suehring +Date: Mon Feb 27 00:08:08 2006 -0300 + + V4L/DVB (3347): Pinnacle PCTV 40i: add filtered Composite2 input + + This patch adds another composite input to the Pinnacle PCTV 100i + definition which filters the chrominace signal from the luma input. This + improves video quality for Composite signals on the S-Video connector of + the card. + In addition the name string of the card is changed to include PCTV 40i + and 50i since these cards are identical. + + Signed-off-by: Karsten Suehring + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit d0456d1d67044ff2987190d0d8148a88f1a775af +Author: Tamuki Shoichi +Date: Mon Feb 27 00:08:04 2006 -0300 + + V4L/DVB (3346): Add saa713x card: ELSA EX-VISION 700TV (saa7130) + + Add support for ELSA EX-VISION 700TV, which is the ELSA Japan's + flagship model of the software encoding TV capture card. + All inputs (Television, Composite1 and S-Video) have been tested. + + Signed-off-by: Tamuki Shoichi + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 24da4e4b8dbd443c205c4ec3b2a563421e6ca319 +Author: Michael Krufky +Date: Mon Feb 27 00:08:01 2006 -0300 + + V4L/DVB (3344): KWorld HardwareMpegTV XPert must set gpio2 + + - KWorld HardwareMpegTV XPert must set gpio2 + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit e2798212e3ce0057336bc0807beb3213de1dc5be +Author: Michael Krufky +Date: Mon Feb 27 00:07:58 2006 -0300 + + V4L/DVB (3343): KWorld HardwareMpegTV XPert: Add radio support + + - add radio support for KWorld HardwareMpegTV XPert + - fix GPIO settings for tv and radio + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 47a9e50eb7719dc1bf01ac8b60f4d8758146d00e +Author: Adrian Bunk +Date: Mon Feb 27 00:07:55 2006 -0300 + + V4L/DVB (3341): Upstream sync - make 2 structs static + + Signed-off-by: Adrian Bunk + Acked-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 36b36562c4159cca890f29a603e829030fea5788 +Author: Manu Abraham +Date: Mon Feb 27 00:07:52 2006 -0300 + + V4L/DVB (3340): Make a struct static + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 4592b3a08454bb018e482de230fd5f15757bba92 +Author: Adrian Bunk +Date: Mon Feb 27 00:07:49 2006 -0300 + + V4L/DVB (3337): Drivers/media/dvb/frontends/mt312.c: cleanups + + This patch contains the following possible cleanups: + - update the Kconfig help to mention the VP310 + - merge vp310_attach and mt312_attach into a new vp310_mt312_attach + to remove some code duplication + + Signed-off-by: Adrian Bunk + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit dccd7c703a1ca006fc01d9fe2f14d15d1d17cdc5 +Author: Michael Krufky +Date: Mon Feb 27 00:07:46 2006 -0300 + + V4L/DVB (3336): Bt8xx documentation authors fix + + - use one Author per line, which allows us to add more + authors later without creating a mess. + - Add Michael Krufky due to -git commit + 2cbeddc976645262dbe036d6ec0825f96af70da3 + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 176790f0681ad151c55068589092a813c689654c +Author: Michael Krufky +Date: Mon Feb 27 00:07:43 2006 -0300 + + V4L/DVB (3335): Fix in-kernel build + + - remove tuner.ko build dependency on xc3028.o , which will be added again later. + - fix the following build error when using the "make kernel-links" build method to + symlink the latest code from the v4l-dvb repository into the kernel source: + drivers/media/video/xc3028.c:31:20: em28xx.h: No such file or directory + drivers/media/video/xc3028.c: In function `xc3028_init': + drivers/media/video/xc3028.c:120: error: dereferencing pointer to incomplete type + drivers/media/video/xc3028.c:121: error: dereferencing pointer to incomplete type + drivers/media/video/xc3028.c:139: error: dereferencing pointer to incomplete type + drivers/media/video/xc3028.c:140: error: dereferencing pointer to incomplete type + make[3]: *** [drivers/media/video/xc3028.o] Error 1 + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 749eef857948a3de789b7d0e3b96d92199d723cf +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:07:40 2006 -0300 + + V4L/DVB (3334): Added ET61X251 fourcc type + + Signed-off-by: Mauro Carvalho Chehab + +commit cfcd718d492d401a7d8a7ee3a85e48164b56e2e2 +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:07:37 2006 -0300 + + V4L/DVB (3332): XC3028 code marked with an special define option + + - Current xc3028 support is still experimental, requiring more work to be + sent to mainstream. So, it was marked inside some defines, in order to be + removed by gentree.pl stript. Script also updated to remove it. + + Signed-off-by: Mauro Carvalho Chehab + +commit 9475fb1c717ee5ce3df767b8e3b9439d341f043d +Author: Markus Rechberger +Date: Mon Feb 27 00:07:34 2006 -0300 + + V4L/DVB (3293): Fixed amux hauppauge hvr900/terratec hybrid xs + + Fixed amux hauppauge hvr900/terratec hybrid xs + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit cce91e36d74be635abb99aa1dc74951e11be8aea +Author: Markus Rechberger +Date: Mon Feb 27 00:07:31 2006 -0300 + + V4L/DVB (3292): Fixed xc3028 firmware extractor, added terratec fw support + + Fixed xc3028 firmware extractor for terratec's emBDA.sys firmware + Fixed delay in firmwareupload, now terratec's firmware also works + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit 0004fd59d57a5875db8897966c414a88b5dad481 +Author: Markus Rechberger +Date: Mon Feb 27 00:07:27 2006 -0300 + + V4L/DVB (3291): Added support for xc3028 analogue tuner (Hauppauge HVR900, Terratec Hybrid XS) + + Added support for xc3028 to v4l which adds support for: + * Terratec Hybrid XS (analogue) + * Hauppauge HVR 900 (analogue) + + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit 1d519605f13dd2c51024060465a16ddd1abfb649 +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:07:24 2006 -0300 + + V4L/DVB (3300b): .gitignore should also ignore StGit generated dirs + + StGit genreates patches-* when you run stg export command. + It makes no sense to show such directories as changes on git status. + + Signed-off-by: Mauro Carvalho Chehab + +commit 0ac139d60fb6107950e250bbf8bd6c2c73dfafbd +Author: Mauro Carvalho Chehab +Date: Mon Feb 27 00:07:21 2006 -0300 + + V4L/DVB (3300a): Removing personal email from DVB maintainers + + Signed-off-by: Mauro Carvalho Chehab + +commit 4c8fbca5836aaafd165aa8732d92ab5d4f3a6841 +Author: Sam Ravnborg +Date: Sun Feb 26 22:18:11 2006 +0100 + + kbuild: whitelist false section mismatch warnings + + In several cases the section mismatch check triggered false warnings. + Following patch introduce a whitelist to 'false positives' are not warned of. + Two types of patterns are recognised: + 1) Typical case when a module parameter is _initdata + 2) When a function pointer is assigned to a driver structure + + In both patterns we rely on the actual name of the variable assigned + + Signed-off-by: Sam Ravnborg + +commit cc006288fb538005a14ca4297250abbf0beeb0b9 +Author: Sam Ravnborg +Date: Sun Feb 26 20:15:58 2006 +0100 + + kbuild: ignore all generated files for make allmodconfig (x86_64) + + With following patch we now ignore all generated files for + make allmodconfig for x86_64. + + Signed-off-by: Sam Ravnborg + +commit 382168f4791822de7d44d9c634fbfdf8bc08c91b +Author: Sam Ravnborg +Date: Sun Feb 26 20:11:17 2006 +0100 + + kbuild: Add copyright to modpost.c + + It seems popular to protect your work with copyright, so I decided to do + so for modpost which I patch a great deal atm. + + Signed-off-by: Sam Ravnborg + +commit 4b8f930ff83aaed39fd5f935aeacc25f2549a51e +Author: Steve French +Date: Sun Feb 26 16:41:18 2006 +0000 + + [CIFS] Free small buffers earlier so we exceed the cifs + small req buffer pool less often. + + Signed-off-by: Steve French + +commit 184ed2110ae6bfdb8dc91085149f04f2f4d2169e +Author: Steve French +Date: Fri Feb 24 06:15:11 2006 +0000 + + [CIFS] Fix large (ie over 64K for MaxCIFSBufSize) buffer case for wrapping + bcc on read response and for wrapping sessionsetup maxbufsize field + + Signed-off-by: Steve French + +commit f055affb89f587a03f3411c3fd49ef31295c3d48 +Author: Nick Piggin +Date: Mon Feb 20 10:41:40 2006 +0100 + + [PATCH] powerpc: native atomic_add_unless + + Do atomic_add_unless natively instead of using cmpxchg. + Improved register allocation idea from Joel Schopp. + + Signed-off-by: Nick Piggin + Signed-off-by: Paul Mackerras + +commit 4f629d7db32decbadaab2abfa4d021fee94990ef +Author: Nick Piggin +Date: Mon Feb 20 10:40:28 2006 +0100 + + [PATCH] powerpc: newline for ISYNC_ON_SMP + + Add a newline at the end of the ISYNC_ON_SMP string. + Needed for a subsequent patch. + + Signed-off-by: Nick Piggin + Signed-off-by: Paul Mackerras + +commit 20f4eb3e502d68b12224577ebcd2cd50cc6e14e4 +Author: David Gibson +Date: Mon Feb 20 14:05:56 2006 +1100 + + [PATCH] powerpc: Fixup for STRICT_MM_TYPECHECKS + + Currently ARCH=powerpc will not compile when STRICT_MM_TYPECHECKS is + turned on and CONFIG_64K_PAGES is turned off. This corrects the + problem. + + Signed-off-by: David Gibson + Signed-off-by: Paul Mackerras + +commit c6622f63db86fcbd41bf6fe05ddf2e00c1e51ced +Author: Paul Mackerras +Date: Fri Feb 24 10:06:59 2006 +1100 + + powerpc: Implement accurate task and CPU time accounting + + This implements accurate task and cpu time accounting for 64-bit + powerpc kernels. Instead of accounting a whole jiffy of time to a + task on a timer interrupt because that task happened to be running at + the time, we now account time in units of timebase ticks according to + the actual time spent by the task in user mode and kernel mode. We + also count the time spent processing hardware and software interrupts + accurately. This is conditional on CONFIG_VIRT_CPU_ACCOUNTING. If + that is not set, we do tick-based approximate accounting as before. + + To get this accurate information, we read either the PURR (processor + utilization of resources register) on POWER5 machines, or the timebase + on other machines on + + * each entry to the kernel from usermode + * each exit to usermode + * transitions between process context, hard irq context and soft irq + context in kernel mode + * context switches. + + On POWER5 systems with shared-processor logical partitioning we also + read both the PURR and the timebase at each timer interrupt and + context switch in order to determine how much time has been taken by + the hypervisor to run other partitions ("steal" time). Unfortunately, + since we need values of the PURR on both threads at the same time to + accurately calculate the steal time, and since we can only calculate + steal time on a per-core basis, the apportioning of the steal time + between idle time (time which we ceded to the hypervisor in the idle + loop) and actual stolen time is somewhat approximate at the moment. + + This is all based quite heavily on what s390 does, and it uses the + generic interfaces that were added by the s390 developers, + i.e. account_system_time(), account_user_time(), etc. + + This patch doesn't add any new interfaces between the kernel and + userspace, and doesn't change the units in which time is reported to + userspace by things such as /proc/stat, /proc//stat, getrusage(), + times(), etc. Internally the various task and cpu times are stored in + timebase units, but they are converted to USER_HZ units (1/100th of a + second) when reported to userspace. Some precision is therefore lost + but there should not be any accumulating error, since the internal + accumulation is at full precision. + + Signed-off-by: Paul Mackerras + +commit 5b3030e39049212c975665cdb3eeabcfaf7c94ca +Author: Eric Sesterhenn +Date: Thu Feb 23 09:47:13 2006 -0600 + + JFS: kzalloc conversion + + this converts fs/jfs to kzalloc() usage. + compile tested with make allyesconfig + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Dave Kleikamp + +commit c3f9da90b6e63c968070aa72057fe15356b3f7b5 +Author: Jan Beulich +Date: Wed Feb 22 13:29:04 2006 +0100 + + kbuild: version.h should depend on .kernelrelease + + Rebuilding a previously built tree while using make's -j options from time to + time results in the version.h check running at the same time as the updating + of .kernelrelease, resulting in UTS_RELEASE remaining an empty string (and as + a side effect causing the entire kernel to be rebuilt). + + Signed-Off-By: Jan Beulich + Signed-off-by: Sam Ravnborg + +commit 6e10133fa4b2366e8ef18bc2ce34afe727b1c4ba +Author: Sam Ravnborg +Date: Wed Feb 22 21:24:50 2006 +0100 + + kbuild: do not warn when unwind sections references .init/.exit sections + + Andrew Morton reported a number of false positives for ia64 - like these: + WARNING: drivers/acpi/button.o - Section mismatch: reference to .init.text: from .IA_64.unwind.init.text after '' (at offset 0x0) + WARNING: drivers/acpi/button.o - Section mismatch: reference to .exit.text: from .IA_64.unwind.exit.text after '' (at offset 0x0) + WARNING: drivers/acpi/processor.o - Section mismatch: reference to .init.text: from .IA_64.unwind after '' (at offset 0x1e8) + + They are all false positives - or at least the .c code looks OK. + It is not known why sometimes a section name is appended and sometimes not. + + Fix is to accept references from all sections that includes "unwind." in the name. + + Signed-off-by: Sam Ravnborg + +commit d9e902668e815f9f33ba5056089684b0704eeac6 +Author: Herbert Poetzl +Date: Wed Feb 22 14:14:58 2006 -0600 + + JFS: Add missing file from fa3241d24cf1182b0ffb6e4d412c3bc2a2ab7bf6 + + My mistake here. I failed to checkin fs/jfs/ioctl.c + + Signed-off-by: Dave Kleikamp + +commit fededcd2af6219de69b252b7d3ea4b4ec2f33c7a +Author: akpm@osdl.org +Date: Wed Feb 22 03:19:54 2006 -0800 + + kbuild: fix modpost compile with older gcc + + The kernel now requires that CC be 3.1.0 or higher. But we shouldn't place + that requirement upon HOSTCC unless we really need to. Fixes my ia64 problem. + + Signed-off-by: Andrew Morton + Signed-off-by: Sam Ravnborg + +commit 8080d5497146d5d27d9e8e78229d1adc7fe280cf +Author: Andy Fleming +Date: Fri Feb 10 17:01:06 2006 -0600 + + powerpc: Add PCI support for 8540 ADS to powerpc tree + + Add PCI support for setting PCI from flat device tree on 85xx specifically for + MPC8540 ADS. + + Signed-off-by: Andy Fleming + Signed-off-by: Kumar Gala + +commit ebcff3c773b42bce6182ec16485abca4e53fba97 +Author: Horst Kronstorfer +Date: Tue Feb 21 23:34:07 2006 -0600 + + ppc32: Fix BCSR_SIZE for MPC834x SYS + + According to the 'MPC8349E MDS Processor Board User Manual Rev. 1.6' + the size of the BCSR mapping is 32kb. + + Signed-off-by: Horst Kronstorfer + Signed-off-by: Kumar Gala + +commit a048d7a8704b35ff6372fdf5eedd4533f37b1885 +Author: Eric Sesterhenn +Date: Tue Feb 21 22:33:09 2006 +0000 + + [CIFS] Convert remaining places in fs/cifs from + kmalloc/memset to simpler kzalloc usage + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Steve French + +commit ba70d0614728892b86b2be2f7eae0c696b436461 +Author: Tejun Heo +Date: Tue Feb 21 02:12:11 2006 +0900 + + [PATCH] libata: kill ata_dev_reread_id() + + Kill now-unused ata_dev_reread_id(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 49016aca2e54c64f08c31d5512dfd8d35f934c58 +Author: Tejun Heo +Date: Tue Feb 21 02:12:11 2006 +0900 + + [PATCH] libata: separate out ata_dev_read_id() + + Separate out ata_dev_read_id() from ata_dev_identify(). This is the + first half of splitting ata_dev_identify(). ata_dev_read_id() will + also be used for revalidation. This patch does not make any behavior + change. + + ata_dev_read_id() doesn't modify any of libata-internal data + structures. It simply reads IDENTIFY page and returns error code on + failure. INIT_DEV_PARAMS and EDD wrong class code are also handled by + this function. + + Re-reading IDENTIFY after INIT_DEV_PARAMS is performed by jumping to + retry: instead of calling ata_dev_reread_id(). This is done because + 1. there's retry label anyway 2. ata_dev_reread_id() cannot be used + anywhere else so there's no reason to keep it. + + This function is probably the place to set transfer mode to PIO0 + before IDENTIFY. However, reset -> identify -> init_dev_params order + should be kept for pre-ATA4 devices so we cannot set transfer mode + before IDENTIFY for them. How do we know if a device is post-ATA4 + before IDENTIFY? + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit ccbe6d5ee0eb3182675ef1c84322810fd884586d +Author: Tejun Heo +Date: Wed Feb 15 15:01:42 2006 +0900 + + [PATCH] ata_piix: convert sata to new reset mechanism + + Convert ata_piix sata ->phy_reset to new reset mechanism. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 573db6b8f93b5e359abd9a05e620fd9a589b0209 +Author: Tejun Heo +Date: Wed Feb 15 15:01:42 2006 +0900 + + [PATCH] ata_piix: convert pata to new reset mechanism + + Convert ata_piix pata ->phy_reset to new reset mechanism. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 56497bd5f1340cb97d94cab953b050be6f729790 +Author: Tejun Heo +Date: Wed Feb 15 15:01:42 2006 +0900 + + [PATCH] libata: fix comment regarding setting cable type + + The comment above ata_std_postreset() specified that setting cable + type is the responsibility of postreset(), which isn't possible / + optimal depending on controller / driver. This patch kills the + comment. Setting cable type is responsibility of ->probe_reset. + libata doesn't care whether it's done in probeinit, reset or + postreset. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit d33a73c81241e3d9ab8da2d0558429bdd5b4ef9a +Author: Ayaz Abdulla +Date: Sat Feb 4 13:13:31 2006 -0500 + + [PATCH] forcedeth: Add support for MSI/MSIX + + This forcedeth patch adds support for MSI/MSIX interrupts. + + Signed-off-By: Ayaz Abdulla + + Signed-off-by: Jeff Garzik + +commit 0832b25a75d128e4f9724156380ba071c4f3f20d +Author: Ayaz Abdulla +Date: Sat Feb 4 13:13:26 2006 -0500 + + [PATCH] forcedeth: Add support for 64bit rings + + This forcedeth patch adds high dma support for tx/rx rings. + + Signed-off-By: Ayaz Abdulla + + Signed-off-by: Jeff Garzik + +commit ee407b02f3f1992bc746876c26f8175c8783562b +Author: Ayaz Abdulla +Date: Sat Feb 4 13:13:17 2006 -0500 + + [PATCH] forcedeth: Add vlan support + + This forcedeth patch adds support for vlan stripping/inserting in hardware. + + Signed-off-By: Ayaz Abdulla + + Signed-off-by: Jeff Garzik + +commit 6aff8f1f07a7fff48121d1ad4a550f3af24ccc81 +Author: Tejun Heo +Date: Wed Feb 15 18:24:09 2006 +0900 + + [PATCH] libata: update ata_dev_init_params() + + Update ata_dev_init_params() such that it doesn't disable port + directly but return with appropriate error mask on failure. This is + preparation for splitting ata_dev_identify(). Note that this patch + changes behavior of dev_init_params failure such that only failing + devices are taken offline not the whole port. This change is + intended. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 6a62a04d4705df4f9f9bee39e889b9e920eeca47 +Author: Tejun Heo +Date: Mon Feb 13 10:02:46 2006 +0900 + + [PATCH] libata: rename ata_dev_id_[c_]string() + + This patch renames ata_dev_id_[c_]string() to ata_id_[c_]string(). + All other functions which read data from ATA ID data start with ata_id + and those two function names were getting too long. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 0f558c333445a0181f33f9e6f996ce7cf008206a +Author: Mattia Dongili +Date: Sun Feb 19 13:50:37 2006 +0100 + + kbuild: fix a cscope bug (make cscope segfaults) + + Workaround a cscope bug where a trailing ':' in VPATH makes it segfault + and let it build the cross-reference succesfully. + + VPATH=/home/mattia/devel/kernel/git/linux-2.6: cscope -b + [1] 17555 segmentation fault VPATH=/home/mattia/devel/kernel/git/linux-2.6: cscope -b + + Signed-off-by: Mattia Dongili + Signed-off-by: Sam Ravnborg + +commit 93684d3b8062d1cebdeaed398ec6d1f354cb41a9 +Author: Sam Ravnborg +Date: Sun Feb 19 11:53:35 2006 +0100 + + kbuild: include symbol names in section mismatch warnings + + Try to look up the symbol that is referenced. Include the symbol + name in the warning message. + + Signed-off-by: Sam Ravnborg + +commit 8ea80ca4f583e377c902811d42626ccfce16913f +Author: Sam Ravnborg +Date: Sun Feb 19 09:56:18 2006 +0100 + + kbuild: fix segfault in modpost + + Do not try to look up section name until we know it is not a special + section. Otherwise we will address outside legal space and segfault. + + Signed-off-by: Sam Ravnborg + +commit 41370d3b5ec6401c5cf0df82297ed989c03a64bd +Author: Sam Ravnborg +Date: Sun Feb 19 00:49:37 2006 +0100 + + kbuild: do not segfault in modpost if MODVERDIR is not defined + + A combination of calling modpost with option -a and MODVERDIR undefined + caused segmentation fault. So provide a default value and accept the + error messages it generates instead. + + Signed-off-by: Sam Ravnborg + +commit 9d6e7a709cdb8f43d9a9ac5532b54a3e70415b9b +Author: Sam Ravnborg +Date: Sat Feb 18 10:03:40 2006 +0100 + + kbuild: fix comment in Kbuild.include + + Noted by Olaf Hering + + Signed-off-by: Sam Ravnborg + +commit 18a43ba26dcbe2a7a51011c9daae37adc7fc5c93 +Author: Brian Gerst +Date: Wed Feb 15 01:01:58 2006 -0500 + + kbuild: remove checkconfig.pl + + checkconfig.pl is no longer needed now that autoconf.h is automatically + included. Remove it and all references to it. + + Signed-off-by: Brian Gerst + Signed-off-by: Sam Ravnborg + +commit e63046630c8a73825896cef140fbf49af233fd2a +Author: Adrian Bunk +Date: Tue Feb 14 15:58:15 2006 +0100 + + kbuild: remove a tab from an empty line + + Emacs warns if an otherwise empty line starts with a tab. + + Signed-off-by: Adrian Bunk + Signed-off-by: Sam Ravnborg + +commit 96678281bfaa5f04752a98f9b93454041169fd3b +Author: Jan Beulich +Date: Mon Jan 30 10:05:09 2006 +0100 + + kbuild: fix mkmakefile + + With the current way of generating the Makefile in the output directory + for builds outside of the source tree, specifying real targets (rather + than phony ones) doesn't work in an already (partially) built tree, as + the stub Makefile doesn't have any dependency information available. + Thus, all targets where files may actually exist must be listed + explicitly and, due to what I'd call a make misbehavior, directory + targets must then also be special cased. + + Signed-Off-By: Jan Beulich + Signed-off-by: Sam Ravnborg + +commit 6176aa9ae4b83e1957d3031774f8a8e59ff97420 +Author: Jan Beulich +Date: Mon Jan 30 10:04:27 2006 +0100 + + kbuild: consolidate command line escaping + + While the recent change to also escape # symbols when storing C-file + compilation command lines was helpful, it should be in effect for all + command lines, as much as the dollar escaping should be in effect for + C-source compilation commands. Additionally, for better readability and + maintenance, consolidating all the escaping (single quotes, dollars, + and now sharps) was also desirable. + + Signed-Off-By: Jan Beulich + Signed-off-by: Sam Ravnborg + +commit 20a468b51325b3636785a8ca0047ae514b39cbd5 +Author: Sam Ravnborg +Date: Sun Jan 22 13:34:15 2006 +0100 + + kbuild: make cc-version available in kbuild files + + Move $(CC) support functions to Kbuild.include so they are available + in the kbuild files. + In addition the following was done: + o as-option documented in Documentation/kbuild/makefiles.txt + o Moved documentation to new section to match + new scope of functions + o added cc-ifversion used to conditionally select a text string + dependent on actual $(CC) version + o documented cc-ifversion + o change so Kbuild.include is read before the kbuild file + + Signed-off-by: Sam Ravnborg + +commit b39927cf4cc5a9123d2b157ffd396884cb8156eb +Author: Sam Ravnborg +Date: Fri Feb 17 22:42:02 2006 +0100 + + kbuild: check for section mismatch during modpost stage + + Section mismatch is identified as references to .init* + sections from non .init sections. And likewise references + to .exit.* sections outside .exit sections. + + .init.* sections are discarded after a module is initialized + and references to .init.* sections are oops candidates. + .exit.* sections are discarded when a module is built-in and + thus references to .exit are also oops candidates. + + The checks were possible to do using 'make buildcheck' which + called the two perl scripts: reference_discarded.pl and + reference_init.pl. This patch just moves the same functionality + inside modpost and the scripts are then obsoleted. + They will though be kept for a while so users can do double + checks - but note that some .o files are skipped by the perl scripts + so result is not 1:1. + All credit for the concept goes to Keith Owens who implemented + the original perl scrips - this patch just moves it to modpost. + + Compared to the perl script the implmentation in modpost will be run + for each kernel build - thus catching the error much sooner, but + the downside is that the individual .o file are not always identified. + + Signed-off-by: Sam Ravnborg + +commit a67dc21a38055ec2d8d85b2f64d98091748569b3 +Author: Sam Ravnborg +Date: Sat Jan 28 23:51:57 2006 +0100 + + kbuild: run depmod when installing external modules + + Following patch enables depmod support when installing external modules. + + Signed-off-by: Sam Ravnborg + +commit fb3cbd2e575f9ac0700bfa1e7cb9f4119fbd0abd +Author: Sam Ravnborg +Date: Sat Jan 28 23:08:40 2006 +0100 + + kbuild: avoid stale modules in $(MODVERDIR) for external modules + + To avoid stale modules located in $(MODVERDIR) aka .tmp_versions/ + always delete the directory when building an external module. + + Signed-off-by: Sam Ravnborg + +commit 8999257c292cb757828ae3def9f5e9d894a24741 +Author: Martin Michlmayr +Date: Sat Jan 28 18:38:15 2006 +0000 + + kbuild: Accept various mips sub-types in SUBARCH + + uname -m on MIPS can give a number of results, such as mips64. We + need to add another substitution to the sed call for SUBARCH in the + main Makefile. + + Signed-off-by: Martin Michlmayr + Signed-off-by: Sam Ravnborg + +commit 379b5441aeb895fe55b877a8a9c187e8728f774c +Author: Zach Brown +Date: Fri Jan 27 14:02:47 2006 -0800 + + x86: align per-cpu section to configured cache bytes + + This matches the fix for a bug seen on x86-64. Test booted on old hardware + that had 32 byte cachelines to begin with. + + Signed-off-by: Zach Brown + Signed-off-by: Sam Ravnborg + +commit 8e70c45887a6bbe40393342ea5b426b0dd836dff +Author: Sam Ravnborg +Date: Sat Jan 28 22:22:33 2006 +0100 + + kbuild: warn about duplicate exported symbols + + In modpost introduce a check for symbols exported twice. + This check caught only one victim (inet_bind_bucket_create) for + which a patch is already sent to netdev. + + Signed-off-by: Sam Ravnborg + +commit 040fcc819a2e7783a570f4bdcdd1f2a7f5f06837 +Author: Sam Ravnborg +Date: Sat Jan 28 22:15:55 2006 +0100 + + kbuild: improved modversioning support for external modules + + With following patch a second option is enabled to obtain + symbol information from a second external module when a + external module is build. + The recommended approach is to use a common kbuild file but + that may be impractical in certain cases. + With this patch one can copy over a Module.symvers from one + external module to make symbols (and symbol versions) available + for another external module. + + Updated documentation in Documentation/kbuild/modules.txt + + Signed-off-by: Sam Ravnborg + +commit 5c3ead8c72788d36d34c9f1689fb529d1339b405 +Author: Sam Ravnborg +Date: Sat Jan 28 17:19:35 2006 +0100 + + kbuild: apply CodingStyle to modpost.c + + Just some light CodingStyle updates - no functional changes. + + Signed-off-by: Sam Ravnborg + +commit cb80514d9c517cc1d101ef304529a0e9b76b4468 +Author: Sam Ravnborg +Date: Sat Jan 28 16:57:26 2006 +0100 + + kbuild: use warn()/fatal() consistent in modpost + + modpost.c provides warn() and fatal() - so use them all over the place. + + Signed-off-by: Sam Ravnborg + +commit 06300b21f4c79fd1578f4b7ca4b314fbab61a383 +Author: Sam Ravnborg +Date: Wed Jan 25 07:13:18 2006 +0100 + + kbuild: support building individual files for external modules + + Support building individual files when dealing with separate modules. + So say you have a module named "foo" which consist of two .o files bar.o + and fun.o. + + You can then do: + make -C $KERNELSRC M=`pwd` bar.o + make -C $KERNELSRC M=`pwd` bar.lst + make -C $KERNELSRC M=`pwd` bar.i + make -C $KERNELSRC M=`pwd` / <= will build all .o files + and link foo.o + make -C $KERNELSRC M=`pwd` foo.ko <= will build the module + and do the modpost step + to create foo.ko + + The above will also work if the external module is placed in a + subdirectory using a hirachy of kbuild files. + Thanks to Andreas Gruenbacher for initial feature + request / bug report. + + Signed-off-by: Sam Ravnborg + +commit 51c38f9bce274a1e8a90aa457fb433be738f7458 +Author: Dmitry Torokhov +Date: Sun Feb 19 00:22:51 2006 -0500 + + Input: initialize serio and gameport at subsystem level + + Serio and gameport cores do not depend on other drivers and are + used by code living outside of drivers/input/{gameport|serio}. + Registering them at subsystem level guarantees that they are + fully initialized before anyone tries to use them. + + Signed-off-by: Dmitry Torokhov + +commit 221979aad6ab4792617f2e58973aa6fc349d4036 +Author: Dmitry Torokhov +Date: Sun Feb 19 00:22:36 2006 -0500 + + Input: uinput - semaphore to mutex conversion + + Signed-off-by: Dmitry Torokhov + +commit 72ba9f0ce09c5508ec4b0cf30e88899872a83f75 +Author: Ingo Molnar +Date: Sun Feb 19 00:22:30 2006 -0500 + + Input: joysticks - semaphore to mutex conversion + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Amijoy conversion was done by Arjan van de Ven. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit 33d3f07ae17c0060dc01f26180c94cf0a39efdf1 +Author: Ingo Molnar +Date: Sun Feb 19 00:22:18 2006 -0500 + + Input: atkbd - semaphore to mutex conversion + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit c14471dc2e014f9508ea1ac48394e5437ee970d7 +Author: Ingo Molnar +Date: Sun Feb 19 00:22:11 2006 -0500 + + Input: psmouse - semaphore to mutex conversion + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit 286295eb936e76347173639c218134e6342440f9 +Author: Arjan van de Ven +Date: Sun Feb 19 00:22:03 2006 -0500 + + Input: gameport - semaphore to mutex conversion + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit c4e32e9faaaa83340dbbc00e07c48d38f032b7dc +Author: Arjan van de Ven +Date: Sun Feb 19 00:21:55 2006 -0500 + + Input: serio - semaphore to mutex conversion + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Arjan van de Ven + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit e676c232e670e27d8b3783e1167f34288e17c83f +Author: Jes Sorensen +Date: Sun Feb 19 00:21:46 2006 -0500 + + Input: input core - semaphore to mutex conversion + + Signed-off-by: Jes Sorensen + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Dmitry Torokhov + +commit b7cffb028abbffff3ba0b87268ecb775ed354049 +Author: Johannes Berg +Date: Wed Jan 4 20:58:10 2006 +0100 + + [PATCH] ieee80211: fix sparse warning about missing "static" + + This patch adds a missing "static" on a variable (sparse complaint) + + Signed-off-by: John W. Linville + +commit 22d8846e5ce329436628da71a4239ccc2745869f +Author: Dan Williams +Date: Sun Feb 5 18:00:30 2006 -0500 + + [PATCH] wireless/airo: fix setting TX key index plus key in ENCODEEXT + + The previous patch that added ENCODEEXT and AUTH support to the airo + driver contained a slight error which would cause setting the TX + key index ignore a valid key-set request at the same time. This patch + allows any combination of setting the TX key index and setting an + encryption key. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 1ba61e05e254a587b7a6be9484a8bcd973551be1 +Author: Zhu Yi +Date: Wed Feb 15 13:00:55 2006 +0800 + + [PATCH] ipw2200: Fix software crypto shared WEP authentication problem + + We didn't set the WEP key to hardware when we are using software based + crypto. Hardware needs the key to do WEP authentication even for + software based encryption. + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 47c51431fcc5fce3108e8e549cc9d243acd462ed +Author: Jon Mason +Date: Sun Feb 12 11:53:04 2006 -0600 + + [PATCH] trivial: fix spelling errors in Kconfigs + + This patch corrects a few spelling and grammar errors found in + drivers/net + + Signed-off-by: Jon Mason + Signed-off-by: John W. Linville + +commit 23afaec4441baf0579fa115b626242d4d23704dd +Author: Stefan Rompf +Date: Tue Feb 7 03:42:23 2006 +0800 + + [PATCH] ipw2200: Fix WPA network selection problem + + Do not avoid APs with wpa_ie or rsn_ie if !ieee->wpa_enabled + There are broken APs out there that fill these elements even + though encryption is disnabled. Also, this breaks legit WEP to + WPA migration scenarious. + + We add a checking to prohibite WPA configured STA trying to + associate with non-WPA supported APs. + + Signed-off-by: Stefan Rompf + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 471680828330e6b2aac295cf7ac9d8e5820df2eb +Author: Zhu Yi +Date: Mon Feb 13 13:37:03 2006 +0800 + + [PATCH] ieee80211: Use IWEVGENIE to set WPA IE + + It replaces returning WPA/RSN IEs as custom events with returning them + as IWEVGENIE events. I have tested that it returns proper information + with both Xsupplicant, and the latest development version of the Linux + wireless tools. + + Signed-off-by: Chris Hessing + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 2c0f63166a5998102ddc7697706af83cbff49317 +Author: Andreas Happe +Date: Thu Jan 5 19:40:07 2006 +0100 + + [PATCH] ipw2200: add monitor and qos entries to Kconfig + + I have made a stupid copy&paste error: QoS option is named IPW_QOS not + IPW2200_MONITOR. Spotted by Daniel Paschka, thanks. + + Add the following config entries for the ipw2200 driver to + drivers/net/wireless/Kconfig + * IPW2200_MONITOR + enables Monitor mode + * IPW_QOS + enables QoS feature - this is under development right now, so it depends + upon EXPERIMENTAL + + Signed-off-by: Andreas Happe + Signed-off-by: John W. Linville + +commit 4861dd79c1724f37e36d66cc4b3454803aec3f93 +Author: Dan Williams +Date: Sun Feb 5 17:57:36 2006 -0500 + + [PATCH] wireless/atmel: convert constants to ieee80211 layer equivalents + + This patch converts the Atmel driver-only IEEE 802.11 constants to their + equivalents from the kernel's ieee80211 layer headers. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 4ddc1651cee0143eeddbe043ccd66bb87072e279 +Author: Jan Niehusmann +Date: Sun Feb 5 16:13:22 2006 +0100 + + [PATCH] let IPW2{1,2}00 select IEEE80211 + + This patch makes the IPW2100 and IPW2200 options available in + the configuration menu even if IEEE80211 has not been selected before. + This behaviour is more intuitive for people which are not familiar with + the driver internals. + The suggestion for this change was made by Alejandro Bonilla Beeche. + + Signed-off-by: Jan Niehusmann + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit 8b0d5514a96daab7825f481d8cd5e88a0376d659 +Author: Kumar Gala +Date: Thu Feb 16 14:32:08 2006 -0600 + + powerpc: Fix mpc83xx restart bug + + We need to write the correct value to the RCR to get a HW reset. + + Signed-off-by: Kumar Gala + +commit 91dbb4deb30e817efc8d6bed89b1190a489ca776 +Author: Christoph Hellwig +Date: Wed Feb 15 12:49:04 2006 -0600 + + JFS: Use the kthread_ API + + Use the kthread_ API instead of opencoding lots of hairy code for kernel + thread creation and teardown. + + Signed-off-by: Christoph Hellwig + Signed-off-by: Dave Kleikamp + +commit 5815449d1bfcb22f74b0e36a8b0631d6584cb7fc +Author: Steve French +Date: Tue Feb 14 01:36:20 2006 +0000 + + [CIFS] SessionSetup cleanup part 2 + + The cifs session setup code has three cases, and a fourth for backlevel + LANMAN2 style session setup needed to be added. This new session setup + implmentation will eventually replace the other three and should be + easier to read while fixing a few minor problems (not setting + the LARGE READ/WRITEX flags when NTLMSSP was negotiated for example) and + adding support for NTLMv2 (which will be added with the next patch. In the + meantime, this code is marked in an CONFIG_CIFS_EXPERIMENTAL block and will + not be turned on by default until it is tested against more server types. + + Signed-off-by: Steve French + +commit 49430f97dd952eda60848bf6bf161b4917ba103d +Author: Tejun Heo +Date: Sun Feb 12 23:32:59 2006 +0900 + + [PATCH] libata: kill sht->max_sectors + + The previous dev->max_sectors patch made sht->max_sectors meaningless. + Kill all initializations of sht->max_sectors. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit b00eec1d58ee71131375bfeb86e64bceec3f5618 +Author: Tejun Heo +Date: Sun Feb 12 23:32:59 2006 +0900 + + [PATCH] libata: add per-device max_sectors + + If a low level driver wants to control max_sectors, it had to adjust + ap->host->max_sectors and set ATA_DFLAG_LOCK_SECTORS to tell + ata_scsi_slave_config not to override the limit. This is not only + cumbersome but also incorrect for hosts which support more than one + devices per port. + + This patch adds per-device ->max_sectors. If the field is unset + (zero), libata core layer will adjust ->max_sectors according to + default rules. If the field is set, libata honors the setting. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 6e7846e9c548443c86cfbad9e4defb4bdcfc538b +Author: Tejun Heo +Date: Sun Feb 12 23:32:58 2006 +0900 + + [PATCH] libata: move cdb_len for host to device + + cdb_len is per-device property. Sharing cdb_len on ap results in + inaccurate configuration on revalidation and hotplugging. This patch + makes cdb_len per-device. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 8eabd02c246b808e0e27c3ee9ea17d0349efb06d +Author: Tejun Heo +Date: Sun Feb 12 23:32:58 2006 +0900 + + [PATCH] libata: make ata_dev_knobble() per-device + + ata_dev_knobble() unconditionally used the first device of the port to + determine whether a device is bridged or not. This causes bridge + limit to be incorrectly applied or unapplied for hosts with slave + devices (e.g. ata_piix). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 61eb066affc02e16c548aef8b876c49c84113f40 +Author: Tejun Heo +Date: Sun Feb 12 23:22:37 2006 +0900 + + [PATCH] libata: don't do EDD handling if ->probe_reset is used + + EDD is never used with ->probe_reset. Don't handle EDD special case + in ata_dev_identify if ->probe_reset is in use. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 0bd3300ac9158b6ceef38fab6fb473765a40e77e +Author: Tejun Heo +Date: Sun Feb 12 22:47:05 2006 +0900 + + [PATCH] libata: make ata_dump_id() take @id instead of @dev + + Make ata_dump_id() take @id instead of @dev. This is preparation for + splitting ata_dev_identify(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 3d2ca91095f8ab6dc0cb925374eec62fa5336764 +Author: Tejun Heo +Date: Sun Feb 12 22:47:04 2006 +0900 + + [PATCH] libata: separate out ata_id_major_version() + + Separate out ATA major version calculation from ata_dev_identify() + into ata_id_major_version(). It's preparation for splitting + ata_dev_identify(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 2940740bcaa5948967d261dfceec04f40b2d2fa1 +Author: Tejun Heo +Date: Sun Feb 12 22:47:04 2006 +0900 + + [PATCH] libata: separate out ata_id_n_sectors() + + Separate out n_sectors calculation into ata_id_n_sectors() from + ata_dev_identify(). This will be used by revalidation. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 2e02671daa2cd69d93c828c40579bbe953f17210 +Author: Tejun Heo +Date: Sun Feb 12 22:47:04 2006 +0900 + + [PATCH] libata: use ata_dev_id_c_string() + + Use ata_dev_id_c_string() + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 0e949ff304a7ca07db38c17fbbf3ead1085d7bbf +Author: Tejun Heo +Date: Sun Feb 12 22:47:04 2006 +0900 + + [PATCH] libata: implement ata_dev_id_c_string() + + ata_dev_id_c_string() reads ATA string from the specified offset of + the given IDENTIFY PAGE and puts it in the specified buffer in trimmed + and NULL-terminated form. The caller must supply a buffer which is + one byte larger than the maximum size of the target ID string. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 48f80e12abbc1e9034e54614c30e7c304209ce99 +Author: Tejun Heo +Date: Sun Feb 12 19:05:07 2006 +0900 + + [PATCH] ata_piix: kill spurious assignment in piix_sata_probe() + + In piix_sata_probe(), mask gets assigned unnecessarily at the + beginning of the function. Kill the assignment. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 06ab78222bd119a0a3d8a1f89997ce902a219703 +Author: Tejun Heo +Date: Sun Feb 12 15:01:49 2006 +0900 + + [PATCH] libata: allow ->probe_reset to return ATA_DEV_UNKNOWN + + This patch makes ata_bus_probe() normalize classes[] returned by + ->probe_reset such that ->probe_reset can return ATA_DEV_UNKNOWN. + This eases implementation of ->probe_reset's which don't directly use + ata_drive_probe_reset(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit bef4a456b8dc8b3638f4d49a25a89e1467da9483 +Author: Tejun Heo +Date: Sat Feb 11 19:11:13 2006 +0900 + + [PATCH] libata: kill assert() macro + + libata assert() now has no user left. Kill it. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit beec7dbc6ff003bbc94de62b3323519c878fb2ac +Author: Tejun Heo +Date: Sat Feb 11 19:11:13 2006 +0900 + + [PATCH] libata: convert assert(xxx)'s in low-level drivers to WARN_ON(!xxx)'s + + This patch converts all assert(xxx)'s in low-level drivers to + WARN_ON(!xxx)'s. After this patch, there is no in-kernel user of the + libata assert() macro. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit a46314744d8fadb91451bf2e5d2fd949c4a752d8 +Author: Tejun Heo +Date: Sat Feb 11 19:11:13 2006 +0900 + + [PATCH] libata: convert assert(X)'s in libata core layer to WARN_ON(!X)'s + + In an effort to kill libata-specific assert() and use generic + WARN_ON(), this patch converts all assert(X)'s in libata core layer to + WARN_ON(!X)'s. Most conversions are straight-forward logical negation + exception for the followings. + + * In libata-core.c:ata_fill_sg(), + assert(qc->n_elem > 0) is converted to WARN_ON(qc->n_elem == 0) because + qc->n_elem is unsigned and unsigned <= 0 is weird. + + * In libata-scsi.c:ata_gen_ata_desc/fixed_sense(), + assert(NULL != qc->ap->ops->tf_read) is converted to + WARN_ON(qc->ap->ops->tf_read == NULL), as there are no other users of + 'constant cond var' style in libata. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 4bd00f6a201897af4cd50250a761e6bc4b2221ec +Author: Tejun Heo +Date: Sat Feb 11 16:26:02 2006 +0900 + + [PATCH] ahci: convert to new reset mechanism + + Convert ahci ->phy_reset to new reset mechanism. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit a42fc659ba4e4026b2397344180458bebb79e1d2 +Author: Tejun Heo +Date: Sat Feb 11 16:26:02 2006 +0900 + + [PATCH] ahci: make ahci_fill_cmd_slot() take *pp instead of *ap + + Make ahci_fill_cmd_slot() take struct ahci_port_priv *pp instead of + struct ata_port *ap as suggested by Jeff Garzik. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 76014427e60f7ecfdc689dfbcb48e9760e1da4fb +Author: Tejun Heo +Date: Sat Feb 11 15:13:49 2006 +0900 + + [PATCH] libata: inline ata_qc_complete() + + This patch inlines ata_qc_complete() and uninlines __ata_qc_complete() + as suggested by Jeff Garzik. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 489ff4c7d167be954f715128790bd80d3c888322 +Author: Tejun Heo +Date: Fri Feb 10 23:58:48 2006 +0900 + + [PATCH] sata_sil24: add hardreset + + Now that libata is smart enough to handle both soft and hard resets, + add hardreset method. Note that sil24 hardreset doesn't supply + signature; still, the new reset mechanism can make good use of it. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 07b734702a96efbc260bf50c2ce57e34167f431b +Author: Tejun Heo +Date: Fri Feb 10 23:58:48 2006 +0900 + + [PATCH] sata_sil24: convert to new reset mechanism + + Convert sata_sil24 ->phy_reset to new reset mechanism. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 531db7aa0db09f188b71108c35f334af35968291 +Author: Tejun Heo +Date: Fri Feb 10 23:58:48 2006 +0900 + + [PATCH] sata_sil: convert to new reset mechanism + + Convert sata_sil to use new reset mechanism. sata_sil is fairly + generic and can directly use std routine. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit ac7c6d596e2177857ffc35b8d453ee313a874d8d +Author: Tejun Heo +Date: Fri Feb 10 23:58:48 2006 +0900 + + [PATCH] libata: kill SError clearing in sata_std_hardreset(). + + Don't clear SError in sata_std_hardreset(). This makes hardreset act + identically to ->phy_reset register-wise. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 3a39746a5290445ea4238f21ac260e42106c1454 +Author: Tejun Heo +Date: Fri Feb 10 23:58:48 2006 +0900 + + [PATCH] libata: make new reset act identical to ->phy_reset register-wise + + This patch makes std component operations act identical to ->phy_reset + register-wise except for SError clearing on sata_std_hardreset. + + Note that if a driver only implements/uses hardreset, it should not + use ata_std_probeinit() to avoid extra sata_phy_resume() and + ata_busy_sleep() compared to ->phy_reset. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 4837c672fd4d43c519d6b53308ee68d45b91b872 +Author: Dave Kleikamp +Date: Fri Feb 10 08:11:53 2006 -0600 + + JFS: Fix regression. fsck complains if symlinks do not have INLINEEA attribute + + Signed-off-by: Dave Kleikamp + +commit cc9278ed5e992122a654a3f762561ee5e013810f +Author: Tejun Heo +Date: Fri Feb 10 17:25:47 2006 +0900 + + [PATCH] ahci: separate out ahci_fill_cmd_slot() + + Separate out ahci_fill_cmd_slot() from ahci_qc_prep(). + ahci_fill_cmd_slot() can later be used to issue non-standard commands. + (e.g. softreset) + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit f63790201521ccadb63673ff121dac46ab300cf0 +Author: Tejun Heo +Date: Fri Feb 10 15:10:48 2006 +0900 + + [PATCH] libata: kill NULL qc handling from ->eng_timeout callbacks + + ->eng_timeout cannot be invoked with NULL qc anymore. Add an + assertion in ata_scsi_error() and kill NULL qc handling from all + ->eng_timeout callbacks. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 35daeb8f9b41fd13180e8a6f8bec9fc5268938f9 +Author: Tejun Heo +Date: Fri Feb 10 15:10:48 2006 +0900 + + [PATCH] libata: use ata_scsi_timed_out() + + Make all libata low level drivers use ata_scsi_timed_out(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit f29841e08fa20a7f2c8bc1b70306975299c66ee7 +Author: Tejun Heo +Date: Fri Feb 10 15:10:48 2006 +0900 + + [PATCH] libata: implement ata_scsi_timed_out() + + Implement ata_scsi_timed_out(), to be used as + scsi_host_template->eh_timed_out callback for all libata drivers. + Without this function, the following race exists. + + If a qc completes after SCSI timer expires but before libata EH kicks + in, the qc gets completed but the scsicmd still gets passed to libata + EH resulting in ->eng_timeout invocation with NULL qc, which none is + handling properly. + + This patch makes sure that scmd and qc share the same lifetime. + Original idea from Jeff Garzik . + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 341963b909a01d2f38d86f5db8dd1f8c80bd6dbf +Author: Tejun Heo +Date: Fri Feb 10 15:10:48 2006 +0900 + + [PATCH] libata: add ATA_QCFLAG_EH_SCHEDULED + + Add ATA_QCFLAG_EH_SCHEDULED. If this flag is set, the qc is owned by + EH and normal completion path is not allowed to finish it. This patch + doesn't actually use this flag. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 774fee58c465ea1c7e9775e347ec307bcf2deeb3 +Author: Geoff Levand +Date: Thu Feb 2 15:41:48 2006 -0800 + + [PATCH] powerpc: Add missing vmlinux.bin target + + With this patch 'make vmlinux.bin' works. This is needed by + some embedded platforms. Kumar already added the routines + to actually build the image in arch/powerpc/boot/Makefile. + + Signed-off-by: Geoff Levand + Signed-off-by: Paul Mackerras + +commit 2ef9481e666b4654159ac9f847e6963809e3c470 +Author: Jon Mason +Date: Mon Jan 23 10:58:20 2006 -0600 + + [PATCH] powerpc: trivial: modify comments to refer to new location of files + + This patch removes all self references and fixes references to files + in the now defunct arch/ppc64 tree. I think this accomplises + everything wanted, though there might be a few references I missed. + + Signed-off-by: Jon Mason + Signed-off-by: Paul Mackerras + +commit 04fdabe17c4840a4cd84c3589f20f5d4689b1ec5 +Author: Steve French +Date: Fri Feb 10 05:52:50 2006 +0000 + + [CIFS] fix compile error (typo) and warning in cifssmb.c + + Signed-off-by: Steve French + +commit 75288c78c69020a574d93770c3a941b785f3d93d +Author: Vitaly Bordug +Date: Fri Jan 20 22:22:34 2006 +0300 + + [PATCH] ppc32: Make platform devices being able to assign functions + + Implemented by modification of the .name field of the platform device, + when PDs with the + same names are to be used within different drivers, as + -> : + Corresponding drivers should change the .name in struct device_driver to + reflect upper of course. + + Added ppc_sys_device_disable/enable function set, making it easier to + disable all the inexistent/not utilized platform device way pdevs. By the + check of the "disabled" bit in the config field of ppc_sys_specs, disabled + platform devices will be either added/removed from the bus, or simply not + registered on it, depending on the time when disable/enable call asserted. + + The default behaviour when nothing is disabled/enabled will be "all devices + are enabled", which is the same as before. + + Also helper platform_notify_map function added, making assignment of + board-specific platform_info more consistent and generic. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Marcelo Tosatti + Signed-off-by: Paul Mackerras + +commit 1965746bce49ddf001af52c7985e16343c768021 +Author: Michael Ellerman +Date: Fri Feb 10 15:47:36 2006 +1100 + + [PATCH] powerpc: Move pSeries firmware feature setup into platforms/pseries + + Currently we have some stuff in firmware.h and kernel/firmware.c that is + #ifdef CONFIG_PPC_PSERIES. Move it all into platforms/pseries. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 0941d57aa7034ef7010bd523752c2e3bee569ef1 +Author: Michael Ellerman +Date: Fri Feb 10 15:47:32 2006 +1100 + + [PATCH] powerpc: Clean up pSeries firmware feature initialisation + + Clean up fw_feature_init in platforms/pseries/setup.c. Clean up white space + and replace the while loop with a for loop - which seems clearer to me. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit a7cb03375d794d3494561bbad90aeab13ff7e4d0 +Author: Becky Bruce +Date: Wed Feb 8 16:41:26 2006 -0600 + + [PATCH] powerpc/ppc: Add missing isyncs in head_fsl_booke.S + + The e500 core reference manual indicates that isync is required + after mtmsr(DE bit) and mtspr DBCR0. Add isyncs to make the code + conform to the spec. + + Signed-off-by: Becky Bruce + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit fbc94e7c3d78d53c7fa671e02e5bb6fbb3254f85 +Author: Becky Bruce +Date: Tue Feb 7 21:29:42 2006 -0600 + + [PATCH] powerpc: lindent 85xx platform code + + Ran arch/powerpc/platforms/85xx through Lindent + + Signed-off-by: Becky Bruce + Signed-off-by: Paul Mackerras + +commit e19217d42e3d12d74d9eca40827721a3ef1b251c +Author: Becky Bruce +Date: Tue Feb 7 21:27:34 2006 -0600 + + [PATCH] powerpc: rename mpc85xx.c to misc.c + + Rename mpc85xx.c to misc.c to match the pattern established by the + 8349 port - consistency is a good thing. Also run Lindent on the + file to clean it up. + + Signed-off-by: Becky Bruce + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit 46ed55f647371008c33e06e61459192f96cc24ca +Author: Becky Bruce +Date: Tue Feb 7 21:22:52 2006 -0600 + + [PATCH] powerpc: mpc85xx_ads.c include file cleanup + + Cut-and-paste from the old platform code in arch/ppc resulted in + arch/powerpc/platforms/85xx/mpc85xx_ads.c having way too many + header files included. Clean this up. + + Signed-off-by: Becky Bruce + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit 66f2d025e234d44e35ae5bcec328078c35b8a8fb +Author: Becky Bruce +Date: Tue Jan 31 17:52:59 2006 -0600 + + [PATCH] powerpc: Fix Kernel FP unavail exception for BookE + + Updated FP unavailable exception to refer to the correct + function in traps.c. head_booke.h was using the old name, KernelFP, + instead of kernel_fp_unavailable_exception. + + Signed-off-by: Becky Bruce + Acked-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit 12b3b8ffb5fd591df41f658d6068b76f7a58e710 +Author: Steve French +Date: Thu Feb 9 21:12:47 2006 +0000 + + [CIFS] Cleanup NTLMSSP session setup handling + + Fix to hash NTLMv2 properly will follow. + + Signed-off-by: Steve French + +commit fa3241d24cf1182b0ffb6e4d412c3bc2a2ab7bf6 +Author: Herbert Poetzl +Date: Thu Feb 9 09:09:16 2006 -0600 + + JFS: ext2 inode attributes for jfs + + ext2 inode attributes with relevance for jfs: + + 'a' EXT2_APPEND_FL -> append only + 'i' EXT2_IMMUTABLE_FL -> immutable file + 's' EXT2_SECRM_FL -> zero file + 'u' EXT2_UNRM_FL -> allow for unrm + 'A' EXT2_NOATIME_FL -> no access time + 'D' EXT2_DIRSYNC_FL -> dirsync + 'S' EXT2_SYNC_FL -> sync + + overview of jfs flags (partially for OS/2) + + value (OS/2) Linux ext2 attrs + ------------------------------------------------ + 0x00010000 IFJOURNAL - + 0x00020000 ISPARSE used + 0x00040000 INLINEEA used + 0x00080000 - - JFS_NOATIME_FL + + 0x00100000 - - JFS_DIRSYNC_FL + 0x00200000 - - JFS_SYNC_FL + 0x00400000 - - JFS_SECRM_FL + 0x00800000 ISWAPFILE - JFS_UNRM_FL + + 0x01000000 - - JFS_APPEND_FL + 0x02000000 IREADONLY - JFS_IMMUTABLE_FL + 0x04000000 IHIDDEN - - + 0x08000000 ISYSTEM - - + + 0x10000000 - - + 0x20000000 IDIRECTORY used + 0x40000000 IARCHIVE - + 0x80000000 INEWNAME - + + the implementation is straight forward, except + for the fact that the attributes have to be mapped + to match with the ext2 ones to avoid a separate + tool for manipulating them (this could be avoided + when using a separate flag field in the on-disk + representation, but the overhead is minimal) + + a special jfs_ioctl is added to allow for the new + JFS_IOC_GETFLAGS and JFS_IOC_SETFLAGS calls. + + a helper function jfs_set_inode_flags() to transfer + the flags from the on-disk version to the inode + + minor changes to allow flag inheritance on inode + creation, as well as a cleanup of the on-disk + flags (including the new ones) + + beforementioned helper to map between ext2 and jfs + versions of the new flags ... + + the JFS_SECRM_FL and JFS_UNRM_FL are not done yet + and I'm not 100% sure they are worth the effort, + the rest seems to work out of the box ... + + Signed-off-by: Herbert Poetzl + Signed-off-by: Dave Kleikamp + +commit 1fdffbce0332b3e00993d741e76935e7f4f0d40f +Author: Jeff Garzik +Date: Thu Feb 9 05:15:27 2006 -0500 + + [libata] Move PCI IDE BMDMA-related code to new file libata-bmdma.c. + +commit 8a19ac89edbe9b702c10fd2039b8cb2db4644a5f +Author: Tejun Heo +Date: Thu Feb 2 18:20:00 2006 +0900 + + [PATCH] libata: implement ata_std_probeinit() + + This patch implements the off-the-shelf probeinit component operation. + Currently, all it does is waking up the PHY if it's a SATA port. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 7944ea9522ce0ea32d57894b3dc2540b0bdca66e +Author: Tejun Heo +Date: Thu Feb 2 18:20:00 2006 +0900 + + [PATCH] libata: add probeinit component operation to ata_drive_probe_reset() + + This patch adds probeinit component operation to + ata_drive_probe_reset(). If present, this new operation is called + before performing any reset. The operations's roll is to prepare @ap + for following probe-reset operations. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 5140788f77d71b4f05fde217adbfb0c92f28f20c +Author: Jeff Garzik +Date: Thu Feb 9 01:56:05 2006 -0500 + + [libata scsi] build fix for ATA_FLAG_IN_EH change + +commit 7a7921e8661a6b9fb99400983ee67df7e125853b +Author: Tejun Heo +Date: Thu Feb 2 18:20:00 2006 +0900 + + [PATCH] libata: separate out sata_phy_resume() from sata_std_hardreset() + + This patch separates out sata_phy_resume() from sata_std_hardreset(). + The function will later be used by probeinit callback. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit b911fc3ae0121ff0b72a52e58823c3f8ac3094d0 +Author: Tejun Heo +Date: Thu Feb 2 18:20:00 2006 +0900 + + [PATCH] libata: fix ata_std_probe_reset() SATA detection + + ap->cbl is initialized during postreset and thus unknown on entry to + ata_std_probe_reset(). This patch makes ata_std_probe_reset() use + ATA_FLAG_SATA flag instead of ap->cbl to detect SATA port. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit c18d06f89fd09ee0059c4899e615c471d59af66a +Author: Tejun Heo +Date: Thu Feb 2 00:56:10 2006 +0900 + + [PATCH] libata: EH / pio tasks synchronization + + This patch makes sure that pio tasks are flushed before proceeding + with EH. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit dde44589bf9fac0168c6ce6d097c99c33b18074f +Author: Tejun Heo +Date: Thu Feb 2 00:56:10 2006 +0900 + + [PATCH] libata: implement ATA_FLAG_IN_EH port flag + + ATA_FLAG_IN_EH flag is set on entry to EH and cleared on completion. + This patch just sets and clears the flag. Following patches will + build normal qc execution / EH synchronization aroung this flag. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 2730c9295a9a797a22b800d3befd6a64fdc56b02 +Author: Keith Owens +Date: Wed Feb 8 13:41:10 2006 +1100 + + [IA64] MCA: remove obsolete ifdef + + No platform in the community tree uses PLATFORM_MCA_HANDLERS, remove + the references. + + Signed-off-by: Keith Owens + Signed-off-by: Tony Luck + +commit e9ac054daaecf8a11f2113b60f2b6ce381c4f131 +Author: Keith Owens +Date: Wed Feb 8 13:41:04 2006 +1100 + + [IA64] MCA: update MCA comm field for user space tasks + + Update the comm field on the MCA handler for user tasks as well as for + verified kernel tasks. This helps to identify the task that was + running when the MCA occurred. + + Signed-off-by: Keith Owens + Signed-off-by: Tony Luck + +commit 9336b0836bf789136b51caf9ddd49dcbf1726cf4 +Author: Keith Owens +Date: Wed Feb 8 13:40:59 2006 +1100 + + [IA64] MCA: print messages in MCA handler + + Print a message identifying the monarch MCA handler. Print a summary + of the status of the slave MCA cpus. + + Signed-off-by: Keith Owens + Signed-off-by: Tony Luck + +commit dcc1dd2366a7c355fd8b6543c52685b864a2044f +Author: Jack Steiner +Date: Tue Feb 7 09:24:14 2006 -0800 + + [IA64-SGI] - Eliminate SN pio_phys_xxx macros. Move to assembly + + Rewrite the SN pio_phys_xxx macros in assembly language. This + avoids issues with the Intel icc compiler. Function call + overhead is not an issue - the functions reference PIOs + and take 100's nsec to complete. + + In addition, the functions should likely be in assembly + language anyway - they reference memory using physical + addressing mode. One function executes with psr.ic disabled. + + Signed-off-by: Jack Steiner + Signed-off-by: Tony Luck + +commit 412e6a378260608bf28f29d4fa8a9241e0240a2d +Author: Chen, Kenneth W +Date: Thu Jan 26 17:19:46 2006 -0800 + + [IA64] use icc defined constant + + Use icc defined constant instead of magic number. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 9df79decc395b2f9484ff93a1383ba705ff34b10 +Author: Chen, Kenneth W +Date: Thu Jan 26 17:12:02 2006 -0800 + + [IA64] add __builtin_trap definition for icc build + + Map __builtin_trap function to break 0 instruction. + + Signed-off-by: HJ Lu + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit c583f66dc41cfa4055b6ac8f50cc1ebf362298f7 +Author: Chen, Kenneth W +Date: Thu Jan 26 17:08:47 2006 -0800 + + [IA64] clean up asm/intel_intrin.h + + Include intrinsic header file from icc compiler. Remove + duplicate definition from kernel source. + + Signed-off-by: HJ Lu + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 4bf64e72bd499d2bf3509c2dc60d09c39f72c782 +Author: Chen, Kenneth W +Date: Thu Jan 26 16:58:52 2006 -0800 + + [IA64] map ia64_hint definition to intel compiler intrinsic + + Map ia64_hint() to internal intel compiler intrinsic. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit e060e084e7d9e1c62d02cb6b8d3fe07db5317eaa +Author: Kumar Gala +Date: Thu Feb 2 13:51:10 2006 -0600 + + [PATCH] powerpc: Lindent platforms/83xx + + Ran arch/powerpc/platforms/83xx through Lindent + + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit 30f5933657d17fbbc743ce9522543ba50ce2e834 +Author: Kumar Gala +Date: Thu Feb 2 13:50:44 2006 -0600 + + [PATCH] powerpc: Cleanup MPC83xx platform support + + Moved some code around so its usable by more systems than just + the MPC834x SYS. + + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit 4b10cfd40e3fa1c1663b9c9fa22260d41e669c6f +Author: Kumar Gala +Date: Thu Feb 2 12:31:00 2006 -0600 + + [PATCH] powerpc: Add platform support for MPC834x USB controllers + + Setup the platform devices needed by the Freescale EHCI USB + host controllers based on a flat device tree + + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit 158daa4cc827bda9f7206279a1dc55de2cb9c902 +Author: Olaf Hering +Date: Mon Jan 30 14:28:03 2006 +0100 + + [PATCH] powerpc: remove check for ELF offset in powerpc bootimage + + Do not check for offset, it is always set. + + Signed-off-by: Olaf Hering + Signed-off-by: Paul Mackerras + +commit 155da5ff5798c46d941a836e0775f83ed888e73e +Author: Domen Puncer +Date: Thu Jan 26 13:50:01 2006 +0300 + + [PATCH] powerpc: Remove arch/ppc/syslib/ppc4xx_pm.c + + Remove nowhere referenced file ("grep ppc4xx_pm -r ." didn't find anything). + + Signed-off-by: Domen Puncer + Signed-off-by: Alexey Dobriyan + Signed-off-by: Paul Mackerras + +commit 56b5c9737cdd8814a10f3022fc0cef8af9ea9ba5 +Author: Michael Ellerman +Date: Wed Jan 25 21:31:36 2006 +1300 + + [PATCH] powerpc: Put parameter names in lmb.h prototypes + + Prototypes aren't so useful without parameter names, add them to lmb.h based + on the names in lmb.c + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 3b9331dac16555e8788ae21723f2146c3f994ebb +Author: Michael Ellerman +Date: Wed Jan 25 21:31:30 2006 +1300 + + [PATCH] powerpc: Move LMB_ALLOC_ANYWHERE out of lmb.h + + LMB_ALLOC_ANYWHERE doesn't need to be part of the API, it's only used in + lmb.c - so move it out of the header file. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit d7a5b2ffa1352f0310630934a56aecbdfb617b72 +Author: Michael Ellerman +Date: Wed Jan 25 21:31:28 2006 +1300 + + [PATCH] powerpc: Always panic if lmb_alloc() fails + + Currently most callers of lmb_alloc() don't check if it worked or not, if it + ever does weird bad things will probably happen. The few callers who do check + just panic or BUG_ON. + + So make lmb_alloc() panic internally, to catch bugs at the source. The few + callers who did check the result no longer need to. + + The only caller that did anything interesting with the return result was + careful_allocation(). For it we create __lmb_alloc_base() which _doesn't_ panic + automatically, a little messy, but passable. + + Signed-off-by: Michael Ellerman + Signed-off-by: Paul Mackerras + +commit 2fb07d776b3c4473275eb225b6bf2a83755c9bfe +Author: Kumar Gala +Date: Mon Jan 23 16:58:04 2006 -0600 + + [PATCH] powerpc: cleaned up fsl_soc.c + + Cleaned up fsl_soc.c based on comments from Olof Johansson. Ran through + Lindent, and split gfar_mdio init into its own function. + + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit d2515c806ea2b602e99b9aa19448577c7f0318fb +Author: Olaf Hering +Date: Sun Jan 22 22:19:02 2006 +0100 + + [PATCH] powerpc: cleanup pmac_newworld variable usage + + remove extern declarations of pmac_newworld + move pmac_newworld to bss + if there is any "interrupt-controller" device, then it is newworld. + + Signed-off-by: Olaf Hering + Signed-off-by: Paul Mackerras + +commit 42dc75c4b97922d3d7707ac0b097fbeeca20b108 +Author: Vitaly Bordug +Date: Fri Jan 20 22:22:36 2006 +0300 + + [PATCH] ppc32: MPC885ADS, MPC866ADS and MPC8272ADS-specific platform stuff for fs_enet + + Added proper ppc_sys identification and fs_platform_info's for MPC 885ADS, + 866ADS and 8272ADS, utilizing function assignment to remove/do not use + platform devices which conflict with PD-incompatible drivers. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit b92891751600a1677c2b7f611f8b1e58d53388dc +Author: Grant C. Likely +Date: Thu Jan 19 01:13:45 2006 -0700 + + [PATCH] powerpc: Add ML403 defconfig + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit 909aeca664dd1fe55111dc4ec25c1bebe91674a2 +Author: Grant C. Likely +Date: Thu Jan 19 01:13:37 2006 -0700 + + [PATCH] powerpc: Add support for Xilinx ML403 reference design + + Includes fix for Xilinx silicon errata 213 + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit b58b5aa51c78079fa4f652cd42e7b496a1d5411a +Author: Grant C. Likely +Date: Thu Jan 19 01:13:28 2006 -0700 + + [PATCH] powerpc: Add xparameters file for Xilinx ML403 reference design + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit 72646c7f69acad3595cc69f82a6e664a23b05542 +Author: Grant C. Likely +Date: Thu Jan 19 01:13:20 2006 -0700 + + [PATCH] powerpc: Add Virtex-4 FX to cpu table + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit 5eb446cb72f67fdb87b2a1dd16262b75edbe30bc +Author: Grant C. Likely +Date: Thu Jan 19 01:13:12 2006 -0700 + + [PATCH] powerpc: Add ML300 defconfig + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit e27db622b850e6426b69ef42e5678ba068c7f8e0 +Author: Grant C. Likely +Date: Thu Jan 19 01:13:03 2006 -0700 + + [PATCH] powerpc: Migrate ML300 reference design to the platform bus + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit 1a42e53d175074f340a3f85042ed64cfc51be216 +Author: Grant C. Likely +Date: Thu Jan 19 01:12:48 2006 -0700 + + [PATCH] powerpc: Migrate Xilinx Vertex support from the OCP bus to the platfom bus. + + This patch only deals with the serial port definitions as there is no + support for any other xilinx IP cores in the kernel tree at the moment. + + Board specific configuration moved out of virtex.[ch] and into the + xparameters.h wrapper. + + This also prepares for the transition to the flattened device tree model. + When the bootloader provides a device tree generated from an xparameters.h + files, the kernel will no longer need xparameters/*. The platform bus will + get populated with data from the device tree, and the device drivers will + be automatically connected to the devices. Only the bootloader (or + ppcboot) will need xparameters directly. + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit 562e7370a4d59d7ee8988fb0e13707d1f01a046a +Author: Grant C. Likely +Date: Thu Jan 19 01:12:40 2006 -0700 + + [PATCH] powerpc: Make Virtex-II Pro support generic for all Virtex devices + + The PPC405 hard core is used in both the Virtex-II Pro and Virtex 4 FX + FPGAs. This patch cleans up the Virtex naming convention to reflect more + than just the Virtex-II Pro. + + Rename files virtex-ii_pro.[ch] to virtex.[ch] + Rename config value VIRTEX_II_PRO to XILINX_VIRTEX + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit b4367e7451f19a3ae8b453e8b7ac0a1fdd9bca04 +Author: Grant C. Likely +Date: Thu Jan 19 01:12:32 2006 -0700 + + [PATCH] powerpc: Move xparameters.h into xilinx virtex device specific path + + xparameters should not be needed by anything but virtex platform code. + Move it from include/asm-ppc/ to platforms/4xx/xparameters/ + + This is preparing for work to remove xparameters from the dependancy tree + for most c files. xparam changes should not cause a recompile of the world. + Instead, drivers should get device info from the platform bus (populated + by the boot code) + + Signed-off-by: Grant C. Likely + Signed-off-by: Paul Mackerras + +commit 282b7cb3e03d9ada4067083e61919d74197a1e5a +Author: Markus Rechberger +Date: Tue Feb 7 06:14:16 2006 +0100 + + V4L/DVB (3326): Adding support for Terratec Prodigy XS + + Adding support for Terratec Prodigy XS + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit f1e5ee45b4a0216ac4f0a9c41e488032391e8575 +Author: Markus Rechberger +Date: Tue Feb 7 04:01:19 2006 +0100 + + V4L/DVB (3325): Disabled debug on by default in tvp5150 + + disabled debug on by default in tvp5150 + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit df821f758c37dce41fbef0d20932909332619f04 +Author: Hans Verkuil +Date: Mon Feb 6 23:52:24 2006 +0200 + + V4L/DVB (3324): Fix Samsung tuner frequency ranges + + Forgot to take the NTSC frequency offset into account. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 2d77645a0e8228d3473008ec736e89b7105eafff +Author: Adrian Bunk +Date: Tue Feb 7 06:49:15 2006 -0200 + + V4L/DVB (3318e): DVB: remove the at76c651/tda80xx frontends + + The at76c651 and tda80xx frontends are currently completely unused, IOW + their only effect is making the kernel larger for people accitentially + enabling them. + + The current in-kernel drivers differ from the drivers at cvs.tuxbox.org, + and re-adding them when parts of the dbox2 project get merged should be + trivial. + + + Signed-off-by: Adrian Bunk + + Signed-off-by: Mauro Carvalho Chehab + +commit 922f77de3e26af512ae12d2a0ddb1e1efdf8d81c +Author: Dave Jones +Date: Tue Feb 7 06:49:15 2006 -0200 + + V4L/DVB (3318c): fix saa7146 kobject register failure + + Whoops. + + kobject_register failed for hexium HV-PCI6/Orion (-13) + [] kobject_register+0x31/0x47 + [] bus_add_driver+0x4a/0xfd + [] __pci_register_driver+0x82/0xa4 + [] hexium_init_module+0xa/0x47 [hexium_orion] + [] sys_init_module+0x167b/0x1822 + [] do_sync_read+0xb8/0xf3 + [] autoremove_wake_function+0x0/0x2d + [] audit_syscall_entry+0x118/0x13f + [] do_syscall_trace+0x104/0x14a + [] syscall_call+0x7/0xb + + slashes in kobject names aren't allowed. + + Signed-off-by: Dave Jones + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 3593cab5d62c4c7abced1076710f9bc2d8847433 +Author: Ingo Molnar +Date: Tue Feb 7 06:49:14 2006 -0200 + + V4L/DVB (3318b): sem2mutex: drivers/media/, #2 + + Semaphore to mutex conversion. + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 538f9630afbbe429ecbcdcf92536200293a8e4b3 +Author: Mauro Carvalho Chehab +Date: Tue Feb 7 06:49:14 2006 -0200 + + V4L/DVB (3318a): Makes Some symbols static. + + Some symbols at cx88-alsa were global. Making those static. + + Signed-off-by: Mauro Carvalho Chehab + +commit 44256de13ecc72291b616fda5f2c7ca8b110feec +Author: Michael Krufky +Date: Tue Feb 7 06:49:14 2006 -0200 + + V4L/DVB (3316): Add initial support for KWorld HardwareMpegTV XPert + + - Add initial support for KWorld HardwareMpegTV XPert. + - uses silicon tuner: tda8290 + tda8275 + - standard video using cx88 broadcast decoder is working. + - blackbird mpeg encoder support (cx23416) not yet working. + - FM radio untested. + - audio is only working correctly in television mode, + all other modes disabled. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 3dfb729f4513184d06a0c618179489ac7bb277e0 +Author: Peter Hartshorn +Date: Tue Feb 7 06:49:13 2006 -0200 + + V4L/DVB (3315): Added support for the Tevion DVB-T 220RF card + + This is an analog / digital hybrid card. + + Signed-off-by: Peter Hartshorn + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit e5d4a56d5d824e4dfe7d065d0fedb02e63952710 +Author: Markus Rechberger +Date: Tue Feb 7 06:49:13 2006 -0200 + + V4L/DVB (3314): Fixed em28xx based system lockup + + Fixed em28xx based system lockup, device needs to be initialized + before starting the isoc transfer otherwise the system will completly lock up. + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit 21d06544a745a09cc1e9ce5376a61b074bfce379 +Author: Patrick Boettcher +Date: Tue Feb 7 06:49:12 2006 -0200 + + V4L/DVB (3313): FIX: Check if FW was downloaded or not + new firmware file + + - When a firmware was downloaded dvb_usb_device_init returns NULL for the + dvb_usb_device, then nothing should be done with that pointer and device, + because it will re-enumerate. + - A new firmware should be used with digitv devices. + - It should make "slave"-devices work and others, too. + + Signed-off-by: Patrick Boettcher + Signed-off-by: Mauro Carvalho Chehab + +commit 123aab28608ac81938865b31db188c985aeb4424 +Author: Patrick Boettcher +Date: Tue Feb 7 06:49:12 2006 -0200 + + V4L/DVB (3312): FIX: Multiple usage of VP7045-based devices + + Reassigning function pointers in a static led to infinite loops when using + multiple VP7045-based device at the same time on one system. Using kmalloc'd + copies for reassignments is better. + + Signed-off-by: Patrick Boettcher + Signed-off-by: Mauro Carvalho Chehab + +commit fb51fd2d345021d0cc34848319f4efa75c9e1daa +Author: Michael Krufky +Date: Tue Feb 7 06:49:12 2006 -0200 + + V4L/DVB (3310): Use MT352 parallel transport function for all Bluebird FusionHDTV DVB-T boxes. + + Use the parallel transport function of the MT352 demodulator in + TH7579 and LGZ201 -based FusionHDTV Bluebird usb boxes. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit d9ed881c66525ac0d95fbf76a46187a5de43be2d +Author: Chris Pascoe +Date: Tue Feb 7 06:49:11 2006 -0200 + + V4L/DVB (3308): Use parallel transport for FusionHDTV Dual Digital USB + + Use the parallel transport function of the MT352 in USB demodulator of the + Dual Digital board. + + Signed-off-by: Chris Pascoe + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 8bd6301c2a33271b629ac1ef2088e110624d5665 +Author: Oliver Endriss +Date: Tue Feb 7 06:49:11 2006 -0200 + + V4L/DVB (3307): Support for Galaxis DVB-S rev1.3 + + support for Galaxis DVB-S rev1.3 (subsystem 13c2:0004) + + Signed-off-by: Oliver Endriss + Signed-off-by: Mauro Carvalho Chehab + +commit e8e41da46dca6b33e990b48ee379503d25b4da65 +Author: Markus Rechberger +Date: Tue Feb 7 06:49:11 2006 -0200 + + V4L/DVB (3306): Fixed i2c return value, conversion mdelay to msleep + + fixed i2c return value, conversion mdelay to msleep + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit df42eaf2b2f2c43969d879dbcafa698c666fe8a9 +Author: Hartmut Hackmann +Date: Tue Feb 7 06:49:10 2006 -0200 + + V4L/DVB (3305): Added support for the ADS Instant TV DUO Cardbus PTV331 + + Analog and DVB-T are working, Remote not yet. + This card is based on the new LifeView design, there should be many variants. + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 0eb3de20a1cec67547951cebc4fcddc701e7428b +Author: Hartmut Hackmann +Date: Tue Feb 7 06:49:10 2006 -0200 + + V4L/DVB (3304): TDA10046 Driver update + + - Set outputs to tristate in sleep mode + - Reduce dangerously high firmware download speed with 16MHz xtal + - added tda827x configuration with GPIOs low + - added comments to stupid looking IIC reads that work around bugs in + the tda10046. + - some minor updates + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 0157a9cc727dec90a7d60ad254eb899a775685a9 +Author: Hartmut Hackmann +Date: Tue Feb 7 06:49:09 2006 -0200 + + V4L/DVB (3303): TDA8290 update + + This patch + - works around a bug in the I2C bridge that makes the initialization + of the TDA10046 fail on recent LifeView cards + - puts the AGC output to tristate in sleep mode. This is necessary for + recent hybrid cards that switch the AGC via tristateing. + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 3d8466ece44c70555a101da73845955c443f4d18 +Author: Giampiero Giancipoli +Date: Tue Feb 7 06:49:09 2006 -0200 + + V4L/DVB (3302): Added support for the LifeView FlyDVB-T LR301 card + + Additionally to the card support, this changeset adds the option + tda10046lifeview to get_dvb_firmware to download tda10046 firmware + from LifeView's site. + + Signed-off-by: Giampiero Giancipoli + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit d97a11e091a0bf40f1cfb0bbf443ddd7b455b133 +Author: Hans Verkuil +Date: Tue Feb 7 06:48:40 2006 -0200 + + V4L/DVB (3300): Add standard for South Korean NTSC-M using A2 audio. + + South Korea uses NTSC-M but with A2 audio instead of BTSC. Several audio + chips need this information in order to set the correct audio processing + registers. + + Acked-by: Mauro Carvalho Chehab + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 8a8832a8eb5a824261a63c22befb4a8c193d4d02 +Author: Michael Krufky +Date: Tue Feb 7 06:45:33 2006 -0200 + + V4L/DVB (3299): Kconfig: DVB_USB_CXUSB depends on DVB_LGDT330X and DVB_MT352 + + - rename DVB_USB_CXUSB one-liner description to: + Conexant USB2.0 hybrid reference design support. + - with the addition of bluebird support to dvb-usb-cxusb, + it now depends on lgdt330x and mt352 modules. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 28ecc4490100488663f1a978846632800ab198d5 +Author: Marco Manenti +Date: Tue Feb 7 06:45:33 2006 -0200 + + V4L/DVB (3297): Add IR support to KWorld DVB-T (cx22702-based) + + add IR support to KWorld DVB-T (cx22702-based) + + Signed-off-by: Marco Manenti + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 6a5b28f9b7688638eed23b891d6bf5d9aaca94d3 +Author: Manu Abraham +Date: Tue Feb 7 06:45:30 2006 -0200 + + V4L/DVB (3294): Fix [Bug 5895] to correct snd_87x autodetect + + With DVB drivers enabled snd_87x (ALSA) don't detect. + + + Signed-off-by: Manu Abraham + Signed-off-by: Mauro Carvalho Chehab + +commit 19d7509c0531b0e08f52ab93070569e0aba54cdf +Author: Markus Rechberger +Date: Tue Feb 7 06:38:24 2006 -0200 + + V4L/DVB (3281): Added signal detection support to tvp5150 + + - added signal detection support to tvp5150 + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit 33ccaa3feb2a6e09942b6f0af6fbb0451a2e1537 +Author: Markus Rechberger +Date: Tue Feb 7 06:25:41 2006 -0200 + + V4L/DVB (3280): Changed description of KWorld PVR TV 2800RF + + Changed description of KWorld PVR TV 2800RF + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit 15207b2e73afb3aa6cd96a1b8c0b5016bcf90128 +Author: Michael Krufky +Date: Tue Feb 7 06:25:40 2006 -0200 + + V4L/DVB (3278): Show debug for tuners trying to use unsupported video standards + + With tuner_debug enabled, if a tuner tries to use a video standard that doesn't + have a matching tuner_params defined, the IFPCoff value and tuner number will + be displayed, and the default tuner_params entry will be used. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 8f1a58d0fccacb5d61aed8a63c3920c8acc155e7 +Author: Michael Krufky +Date: Tue Feb 7 06:25:39 2006 -0200 + + V4L/DVB (3277): Use default tuner_params if desired_type not available + + If a given tuner definition contains more than one tuner_params array members, + it will try to select the appropriate tuner_params based on the video standard + in use. If there is no tuner_params defined for the current video standard, it + will select the default, tuner_params[0] + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 4d17d0834a2e6a5cba096ea09592a4a096183300 +Author: Markus Rechberger +Date: Tue Feb 7 06:25:39 2006 -0200 + + V4L/DVB (3276): Added terratec hybrid xs and kworld 2800rf support + + - Added terratec hybrid xs product/vendorid + - Added gpio audio initialization for kworld pvr 2800rf + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit f7d66e82c6df37043ddd41ec9ec893844d3a18be +Author: Hartmut Hackmann +Date: Tue Feb 7 06:25:37 2006 -0200 + + V4L/DVB (3275): Allow SAA7134 to fall back to AM sound when there is NICAM-L + + This patch allows to select AM sound even if NICAM is detected. + Proposed by Alain Frappin + + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 99d33d5012c31c6c2b7ad5658654d7c5f0d606d1 +Author: Michael Krufky +Date: Tue Feb 7 06:25:36 2006 -0200 + + V4L/DVB (3271): Update tuner comments + + Right now, all tuners are using the first tuner_params[] + array element for analog mode. We are now ready to begin merging + similar tuner definitions together, such that each tuner definition + will have a tuner_params struct for each available video standard. + The tuner_params[] array element will be chosen based on the video + standard in use. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit bd0d0f59ca56c7ef063d714e9b602fcaa5c11072 +Author: Michael Krufky +Date: Tue Feb 7 06:25:35 2006 -0200 + + V4L/DVB (3270): Tuner_dbg will show tuner param and range selected + + - tuner_dbg will show tuner param and range selected + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 476d63d061a082bcb833009e15a3632459a3caad +Author: Michael Krufky +Date: Tue Feb 7 06:25:34 2006 -0200 + + V4L/DVB (3269): Allow multiple tuner params in each tuner definition + + - allow multiple tuner params in each tuner definition. + - the correct tuner_params element will be chosen based on + current video standard. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 5f5941872c0035cb4624efe8c5a1dfbb89d199e7 +Author: Michael Krufky +Date: Tue Feb 7 06:25:33 2006 -0200 + + V4L/DVB (3268): Move video std detection to top of set_tv_freq function + + - move video std detection to top of set_tv_freq function + - we must detect video std first, so that we can choose the correct + tuner_params + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit a78d0bfabda67dd40a5a97ba4c24265e1820e7ea +Author: Jose Alberto Reguero +Date: Tue Feb 7 06:25:14 2006 -0200 + + V4L/DVB (3267): Add support for the Avermedia 777 DVB-T card + + Signed-off-by: Jose Alberto Reguero + Signed-off-by: Hartmut Hackmann + Signed-off-by: Mauro Carvalho Chehab + +commit 79dc190147f8a87718fe72928d5ceb58e09acdb9 +Author: Andrew Morton +Date: Fri Feb 3 01:45:13 2006 -0800 + + [PATCH] s2io c99 warning fix + + drivers/net/s2io.c: In function `verify_l3_l4_lro_capable': + drivers/net/s2io.c:6638: warning: ISO C90 forbids mixed declarations and code + + Cc: Ravinandan Arakali + Cc: Ananda Raju + Cc: Adrian Bunk + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit fe9313956d67367cc91c5a6989bafc4315801402 +Author: Andrew Morton +Date: Fri Feb 3 01:45:12 2006 -0800 + + [PATCH] git-netdev-all: s2io fixes + + Fix this: + + drivers/built-in.o(.text+0x89469): In function `s2io_get_ethtool_stats': + drivers/net/s2io.c:5209: undefined reference to `__udivdi3' + + Cc: Ravinandan Arakali + Cc: Ananda Raju + Cc: Adrian Bunk + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit c0d3c0c0ce94d3db893577ae98e64414d92e49d8 +Author: Bunk +Date: Tue Feb 7 01:43:31 2006 -0500 + + [netdrvr] schedule eepro100 for removal + +commit 17801f5fa2e31b60f26aadd7ba41395dd1b1093e +Author: Marcin Rudowski +Date: Mon Feb 6 09:15:14 2006 -0200 + + V4L/DVB (3266): Fix NICAM buzz on analog sound + + Apparently, having the number of lines fixed at 4 reduces (or even kills) + the buzz found in NICAM stereo with analog sound. + + Signed-off-by: Marcin Rudowski + Signed-off-by: Ricardo Cerqueira + Signed-off-by: Mauro Carvalho Chehab + +commit bbab6fd81f26b210f0815d79064a3387c3a1ade3 +Author: Michael Krufky +Date: Mon Feb 6 09:15:11 2006 -0200 + + V4L/DVB (3265): Add count to tunertype struct + + The tuner_params element is an array of undefined length, + with each array member being a set of parameters for each + video standard type. + The number of members in the tuner_params array + will be stored in tuners[]->count + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit e4e7b89280d1d666e2c09e5ad36cf071796c4c7e +Author: Jeff Garzik +Date: Tue Jan 31 12:18:41 2006 -0500 + + [libata sata_mv] add 6042 support, fix 60xx/50xx EDMA configuration + +commit 2f633db5e9c57e07a971b65e9a72f090f59fd5f6 +Author: Larry Finger +Date: Mon Jan 30 23:25:10 2006 -0600 + + [PATCH] Add two management functions to ieee80211_rx.c + + On my system, I get unhandled management functions corresponding + to IEEE80211_STYPE_REASSOC_REQ and IEEE80211_STYPE_ASSOC_REQ. The + attached patch adds the logic to pass these requests off to a user + stack. The patches to implement these requests in softmac have already + been sent to Johannes Berg. + + Signed-Off-By: Larry Finger + + Signed-off-by: John W. Linville + +commit f1b50863aa6a96c61a57e3b3a5e76e67b38c5c3e +Author: Dan Williams +Date: Mon Jan 30 13:58:56 2006 -0500 + + [PATCH] wireless/ipw2200: support WE-18 WPA enc_capa + + This patch allows ipw2100 driver to advertise the WPA-related encryption + options that it does really support. It's necessary to work correctly + with NetworkManager and other programs that actually check driver & card + capabilities. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit 4be757dd4c00ddabff2d6faf639466bb5d76bc79 +Author: Dan Williams +Date: Mon Jan 30 11:58:00 2006 -0500 + + [PATCH] wireless/airo: add IWENCODEEXT and IWAUTH support + + This patch adds IWENCODEEXT and IWAUTH support to the airo driver for + WEP and unencrypted operation. No WPA though. It allows the driver to + operate more willingly with wpa_supplicant and NetworkManager. + + Signed-off-by: Dan Williams + Signed-off-by: John W. Linville + +commit dd5eeb461ea572f82d34e1f2c4b88037df5afedb +Author: Larry Finger +Date: Mon Jan 30 13:12:50 2006 +0100 + + [PATCH] ieee80211: common wx auth code + + This patch creates two functions ieee80211_wx_set_auth and + ieee80211_wx_get_auth that can be used by drivers for the wireless + extension handlers instead of writing their own, if the implementation + should be software only. + + These patches enable using bcm43xx devices with WPA and this seems (as + far as I can tell) to be the only difference between the stock ieee80211 + and softmac's ieee80211 left. + + Signed-Off-By: Johannes Berg + + Signed-off-by: John W. Linville + +commit bde37d037715bef4a67d58d00fecbe4c71836cab +Author: Zhu Yi +Date: Tue Jan 24 16:38:08 2006 +0800 + + [PATCH] ipw2200: Disable hwcrypto by default + + After looking at the mailing list (and experiencing permanent driver lockups + while using hwcrypto=1) I think that disabling this option by default would + be better than otherwise. + + Signed-off-by: Andreas Happe + Signed-off-by: John W. Linville + +commit 4644151b7208bec9522cad928a7105e0fc04a2b2 +Author: Zhu Yi +Date: Tue Jan 24 16:37:59 2006 +0800 + + [PATCH] ipw2200: Semaphore to mutexes conversion + + The conversion was generated via scripts, and the result was validated + automatically via a script as well. + + Signed-off-by: Ingo Molnar + Cc: Ronald Bultje + Cc: "David S. Miller" + Cc: Jeff Garzik + Cc: Yi Zhu + Cc: James Ketrenos + Signed-off-by: Andrew Morton + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 2638bc394195f27801d1c184c4358ce25599146b +Author: Zhu Yi +Date: Tue Jan 24 16:37:52 2006 +0800 + + [PATCH] ipw2200: remove white space and better format the code + + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 7c97eb3f1dd09548fe7167e684da4fc94580aceb +Author: Zhu Yi +Date: Tue Jan 24 16:37:47 2006 +0800 + + [PATCH] ipw2200: increase ipw2200 driver version + + increase ipw2200 driver version to git-1.0.10 + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 4e22699fa264b88084210ceaa63747b8352bd517 +Author: Zhu Yi +Date: Tue Jan 24 16:37:36 2006 +0800 + + [PATCH] ipw2200: Fix qos_cmd param switch bug + + The patch fixes a couple of errors regarding QoS, which results in + compile warnings and malfunction of the driver. + + Signed-off-by: Henrik Brix Andersen + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 0a7bcf261ea584c87a9cee4523023fa74168de4a +Author: Zhu Yi +Date: Tue Jan 24 16:37:28 2006 +0800 + + [PATCH] ipw2200: stack reduction + + Checking the stack usage of my kernel, showed that ipw2200 had a few bad + offenders. This is on i386 32-bit: + + 0x00002876 ipw_send_associate: 544 + 0x000028ee ipw_send_associate: 544 + 0x000027dc ipw_send_scan_request_ext: 520 + 0x00002864 ipw_set_sensitivity: 520 + 0x00005eac ipw_set_rsn_capa: 520 + + The reason is the host_cmd structure is large (500 bytes). All other + functions currently using ipw_send_cmd() suffer from the same problem. + This patch introduces ipw_send_cmd_simple() for commands with no data + transfer, and ipw_send_cmd_pdu() for commands with a data payload and + makes the payload a pointer to the buffer passed in from the caller. + + As an added bonus, the diffstat looks like this: + + ipw2200.c | 260 +++++++++++++++++++++----------------------------------------- + ipw2200.h | 2 + 2 files changed, 92 insertions(+), 170 deletions(-) + + and it shrinks the module a lot as well: + + Before: + + text data bss dec hex filename + 75177 2472 44 77693 12f7d drivers/net/wireless/ipw2200.ko + + After: + + text data bss dec hex filename + 61363 2488 44 63895 f997 drivers/net/wireless/ipw2200.ko + + So about a ~18% reduction in module size. + + Signed-off-by: Jens Axboe + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 397ae121ee0116d3b4125d621f0ef528d1d52580 +Author: Zhu Yi +Date: Tue Jan 24 16:37:22 2006 +0800 + + [PATCH] ipw2200: Scale firmware loading watchdog with the firmware size + + I can't really help with why restarts happen, but the following patch + greatly increases the likelihood that a firmware reload will succeed + afterward on my thinkpad. It addresses two issues. First, sysfs module + loading and hotplug are asynchronous, and as such file operations on the + "loading" and "data" files are racy when you load 2 firmwares in quick + succession. Second, the timeout for DMAing the firmware needs to scale + with the size of the firmware being loaded. That is, the watchdog needs + to be on throughput, not on time alone. + + I no longer get the firmware load errors, though this is at best a hacky + workaround for a racy interface. (Obviously, this does nothing to address + the fatal errors in firmware which cause reloads; it just causes the + initial loading and the reloads to work more often.) + + Signed-off-by: Peter Jones + Signed-off-by: Ben M Cahill + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 4bfdb91dcff0dd4b70922de263ccffffb8fb1d16 +Author: Zhu Yi +Date: Tue Jan 24 16:37:16 2006 +0800 + + [PATCH] ipw2200: add module parameter to enable/disable roaming + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit ede6111cae6a83fbb0b6b621b4333d1a3983c089 +Author: Zhu Yi +Date: Tue Jan 24 16:37:10 2006 +0800 + + [PATCH] ipw2200: Make LED blinking frequency independent of HZ + + Signed-off-by: Clemens Buchacher . + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit c7b6a6744c3eb878e08ef992d57cd01eed457810 +Author: Zhu Yi +Date: Tue Jan 24 16:37:05 2006 +0800 + + [PATCH] ipw2200: use jiffies_to_msec() wherever possible + + This substitutes Linux jiffies_to_msec() wherever there is a + computation for determining milliseconds from jiffies, + following lead from ieee80211 code. And it does a little cleanup. + "it's" == "it is" ... "its" == possessive "it". Indulge me. ;-) + + Signed-off-by: Cahill, Ben M + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 810dabd466fe70869b66ab64dd326b6153cef645 +Author: Zhu Yi +Date: Tue Jan 24 16:36:59 2006 +0800 + + [PATCH] ipw2200: Bluetooth coexistence support + + I've added a new module param "bt_coexist" which defaults to OFF. + + This does not seem to fix the firmware restarts, but it does do "the + right thing" and disables something that we were enabling by default: + signaling the Bluetooth h/w which channel we're on (whether or not the + BT h/w was out there). + + Signed-off-by: Ben M Cahill + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 3e234b4e5768b4f783fc45f20be8c6515b875f17 +Author: Zhu Yi +Date: Tue Jan 24 16:36:52 2006 +0800 + + [PATCH] ipw2200: Add LEAP authentication algorithm support + + Signed-off-by: Hong Liu + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit f516dbcd7df76d468be98c343bc22e86ab7207fc +Author: Zhu Yi +Date: Tue Jan 24 16:36:44 2006 +0800 + + [PATCH] ipw2200: Mask out the WEP_KEY command dump from debug log for security reason + + Signed-off-by: Nick Kralevich + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit c8fe6679086a983c4c95a441f3246c7aaecab80a +Author: Zhu Yi +Date: Tue Jan 24 16:36:36 2006 +0800 + + [PATCH] ipw2200: Fix indirect SRAM/register 8/16-bit write routines + + The indirect SRAM/register 8/16-bit write routines are broken for + non-dword-aligned destination addresses. + + Fortunately, these routines are, so far, not used for non-dword-aligned + destinations, but here's a patch that fixes them, anyway. + + The attached patch also adds comments for all direct/indirect I/O routine + variations. + + Signed-off-by: Ben M Cahill + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 71aa122d8a510b79338e28e2d56326574642d000 +Author: Zhu Yi +Date: Tue Jan 24 16:08:55 2006 +0800 + + [PATCH] increase ipw2100 driver version to git-1.1.4 + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 8ed55a482e2f044bfb044295ee86ecd5744c9911 +Author: Zhu Yi +Date: Tue Jan 24 13:49:20 2006 +0800 + + [PATCH] ipw2100: remove white space and better format the code + + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit be6b3b15b511aededd89d1ebbc7b25d0edd1ccd3 +Author: Zhu Yi +Date: Tue Jan 24 13:49:08 2006 +0800 + + [PATCH] ipw2100: Add generic geo information + + This patch fixes a BUG_ON for the latest ieee80211 change. + + Signed-off-by: Hong Liu + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 3173ca0b76879be1fb7af826ae4ce7ee733159ce +Author: Zhu Yi +Date: Tue Jan 24 13:49:01 2006 +0800 + + [PATCH] ipw2100: Make iwconfig txpower setting consistent with user input + + Signed-off-by: Hong Liu + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit cbbdd03fadeddd02efec05ccfd4e6870ed913762 +Author: Zhu Yi +Date: Tue Jan 24 13:48:53 2006 +0800 + + [PATCH] ipw2100: Add LEAP authentication algorithm support + + Signed-off-by: Hong Liu + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 9eafe76b8a5e1420cd6105bc11830914d90bddb4 +Author: Denis Vlasenko +Date: Sun Jan 22 13:57:10 2006 +0200 + + [PATCH] ieee80211: trivial fix for misplaced ()'s + + Patch fixes misplaced (). Diffed against wireless-2.6.git + + Signed-off-by: Denis Vlasenko + Signed-off-by: John W. Linville + +commit a73e22b286bd162d10526521b34f2d6f37aac635 +Author: Adrian Bunk +Date: Sat Jan 21 01:39:42 2006 +0100 + + [PATCH] drivers/net/wireless/ipw2200: possible cleanups + + This patch contains the following possible cleanups: + - make needlessly global functions static + - "extern inline" -> "static inline" + - #if 0 the unused global function ipw_led_activity_on() + + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit 3c398b8612b210a159ec7ba5e5c3c341fb0d5eab +Author: Adrian Bunk +Date: Sat Jan 21 01:36:36 2006 +0100 + + [PATCH] drivers/net/wireless/ipw2100.c: make ipw2100_wpa_assoc_frame() static + + This patch makes the needlessly global ipw2100_wpa_assoc_frame() static. + + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit a39d3e796cd2df8576c0418faa2c3833153bb3a9 +Author: Adrian Bunk +Date: Sat Jan 21 01:35:15 2006 +0100 + + [PATCH] AIRO{,_CS} <-> CRYPTO fixes + + CRYPTO is a helper variable, and to make it easier for users, it should + therefore select'ed and not be listed in the dependencies. + + drivers/net/wireless/airo.c requires CONFIG_CRYPTO for compilations. + + Therefore, AIRO_CS also has to CRYPTO. + + Additionally, this patch removes the #ifdef's for the non-compiling + CRYPTO=n case from drivers/net/wireless/airo.c. + + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit d86b5e0e6bf5980d3136ab4a855522143f2dcb5d +Author: Adrian Bunk +Date: Sat Jan 21 00:46:55 2006 +0100 + + [PATCH] net/: fix the WIRELESS_EXT abuse + + This patch contains the following changes: + - add a CONFIG_WIRELESS_EXT select'ed by NET_RADIO for conditional + code + - remove the now no longer required #ifdef CONFIG_NET_RADIO from some + #include's + + Based on a patch by Jean Tourrilhes . + + Signed-off-by: Adrian Bunk + Signed-off-by: John W. Linville + +commit 450d86dff3fc4780fd5c2d1654402ab7ffec9c38 +Author: Al Viro +Date: Thu Dec 22 14:52:52 2005 -0500 + + [PATCH] dead code removed in hp100 + + for mode 2 (memory-mapped) we always set ->mem_ptr_virt; dead code removed. + + Signed-off-by: Al Viro + +commit 0018dfa48e171315ce7f0ea689e34b67af926e19 +Author: Al Viro +Date: Thu Dec 1 06:53:59 2005 -0500 + + [PATCH] wrong ifdefs in 82596.c + + ifdefs around variable declaration would better match those around its uses... + + Signed-off-by: Al Viro + +commit 3c13958620f08c8082a2694e51dec32592438388 +Author: Al Viro +Date: Thu Dec 1 06:44:55 2005 -0500 + + [PATCH] bogus include of linux/irq.h in 7990.c + + Signed-off-by: Al Viro + +commit 82729971e0f8ccf1f15567cc4f2c5389e0659eb2 +Author: Al Viro +Date: Tue Dec 6 05:53:04 2005 -0500 + + [PATCH] missing include of asm/irq.h in drivers/net + + Signed-off-by: Al Viro + +commit ded5ca1f3b9ffa464fe5d4744fd09bba753ff4b7 +Author: Al Viro +Date: Sun Dec 4 02:28:40 2005 -0500 + + [PATCH] macsonic.c: missed s/driver_unregister/platform_driver_unregister/ + + Signed-off-by: Al Viro + +commit 976345cc0fb34d677233b5b22d4819dc7ac92ef1 +Author: Al Viro +Date: Tue Dec 6 06:02:45 2005 -0500 + + [PATCH] appletalk/cops.h: missing const in struct ltfirmware + + Signed-off-by: Al Viro + +commit b43de2d8db7655d1c520bf6eac7071d8f6d0b864 +Author: Al Viro +Date: Thu Dec 1 10:15:21 2005 -0500 + + [PATCH] ibm_emac sparse annotations + + Signed-off-by: Al Viro + +commit d0f6ecad39266f87913539c52dc624f75cc4b914 +Author: Al Viro +Date: Fri Dec 2 03:54:44 2005 -0500 + + [PATCH] arcnet probing cleanups and fixes + + make arcnet probing do request_mem_region() for all iomem it's going to + access, clean the code up. + + Signed-off-by: Al Viro + +commit c893a3ae49279a4ab6aa6cf594a2ec6d286e1187 +Author: Randy Dunlap +Date: Sat Jan 28 13:15:32 2006 -0500 + + Various libata documentation updates. + + This is a merger of libata docs + cleanups from + Martin Waitz and me. + + From: Randy Dunlap + From: Martin Waitz + + Fix libata kernel-doc comments to match code. + Add some function parameters to kernel-doc. + Fix some typos/spellos. + Put comments in <= 80 columns. + Make one DPRINTK string unique. + Fix sparse cast warnings. + + Signed-off-by: Randy Dunlap + Signed-off-by: Jeff Garzik + +commit 6340f019695a08e3b2e317e307014801fc86b178 +Author: Luke Kosewski +Date: Sat Jan 28 12:39:29 2006 -0500 + + [libata sata_promise] add correct read/write of hotplug registers for SATAII devices + + This patch adds support for correctly masking out and knowing about + hotplug events on Promise SATAII150 Tx4/Tx2 Plus controllers. + + Also, a kmalloc->kzalloc cleanup. + + Signed-off-by: Luke Kosewski + Signed-off-by: Jeff Garzik + +commit b376bc1f6b4258112d714fb4ee8e5d57b53625f2 +Author: Jeff Garzik +Date: Sat Jan 28 12:26:23 2006 -0500 + + [libata ata_piix] Fix ICH6/7 map value interpretation + + The previous change failed to properly mask out unrelated bits, which + resulted in a failure to detect devices. + +commit c2bd58047b9b5c91a3b0a851de66a877f2eb7ae3 +Author: Tejun Heo +Date: Tue Jan 24 17:05:22 2006 +0900 + + [PATCH] libata: implement standard reset component operations and ->probe_reset + + Implement SRST, COMRESET and standard postreset component operations + for ata_drive_probe_reset(), and use these three functions to + implement ata_std_probe_reset. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit a62c0fc526c344d8163f7a9e45e68cc63826ffd3 +Author: Tejun Heo +Date: Tue Jan 24 17:05:22 2006 +0900 + + [PATCH] libata: implement ata_drive_probe_reset() + + Most low level drivers share supported reset/classify actions and + sequence. This patch implements ata_drive_probe_reset() which helps + constructing ->probe_reset from three component operations - + softreset, hardreset and postreset. This minimizes duplicate code and + yet allows flexibility if needed. The three component operations can + also be shared by EH later. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit d1b46b0fba8c1049135ee5d60910b04463dccc95 +Author: Zhu Yi +Date: Thu Jan 19 16:22:15 2006 +0800 + + [PATCH] ieee80211: Add 802.11h information element parsing + + Added default handlers for various 802.11h DFS and TPC information + elements. Moved all information elements into single location (called + from two places). Added debug message with information on unparsed IEs + if debug_level set. Added code to reset network IBSS DFS information + when appropriate. Added code to invoke driver callback for 802.11h + ACTION STYPE. Changed a few printk's to IEEE80211_DEBUG_MGMT. + + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 15f385982e3a4782fe8ed71a9a6beb64a2160c30 +Author: Zhu Yi +Date: Thu Jan 19 16:21:35 2006 +0800 + + [PATCH] ieee80211: Add helpers for IBSS DFS handling + + To support IEEE 802.11h in IBSS, an ibss_dfs field is added to struct + ieee80211_network. In IBSS, if one STA sends a beacon with DFS info + (for radar detection), all the other STAs should receive and store + this DFS. All STAs should send the DFS as one of the information + element in the beacon they are scheduled to send (if possible) in + the future. + + Since the ibss_dfs has variable length, it must be allocated + dynamically. ieee80211_network_reset() is added to clear the ibss_dfs + field. ieee80211_network_free() is also updated to free the ibss_dfs + field if it is not NULL. + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit b79e20b60997e427b701055a2c69fb0c1d507aa9 +Author: Zhu Yi +Date: Thu Jan 19 16:21:27 2006 +0800 + + [PATCH] ieee80211: Add 802.11h data type and structures + + Add 802.11h data types and structure definitions to ieee80211.h. + + Signed-off-by: Hong Liu + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 9184d9348a7a0e60d70d5f4c23de79fdbc72b9a3 +Author: Zhu Yi +Date: Thu Jan 19 16:22:32 2006 +0800 + + [PATCH] ieee80211: Add TKIP crypt->build_iv + + This patch adds ieee80211 TKIP build_iv() method to support hardwares + that can do TKIP encryption but relies on ieee80211 layer to build + the IV. It also changes the build_iv() interface to return the key + if possible after the IV is built (this is required by TKIP). + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 41a25c616b3140c388ff6009a1cb0b6b06a10f29 +Author: Zhu Yi +Date: Thu Jan 19 16:22:23 2006 +0800 + + [PATCH] ieee80211: TIM information element parsing + + Added partial support of TIM information element parsing + + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 8aa914b747b650fc1735f3a3171753ac15ed93ab +Author: Zhu Yi +Date: Thu Jan 19 16:22:07 2006 +0800 + + [PATCH] ieee80211: kmalloc+memset -> kzalloc cleanups + + kmalloc+memset -> kzalloc cleanups in ieee80211_crypt_tkip + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 7bd64366044565d6861783613db191c8aaec691e +Author: Zhu Yi +Date: Thu Jan 19 16:21:54 2006 +0800 + + [PATCH] ieee80211: Add spectrum management information + + Add spectrum management information and use stat.signal to provide + signal level information. + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit d128f6c176bff9c4929476e13132804321a6d5c5 +Author: Zhu Yi +Date: Thu Jan 19 16:21:45 2006 +0800 + + [PATCH] ieee80211: add flags for all geo channels + + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 24056bec086aaa99923b21c0e1a0e993bb1c7e2a +Author: Zhu Yi +Date: Thu Jan 19 16:21:09 2006 +0800 + + [PATCH] ieee80211: Add LEAP authentication type + + Signed-off-by: Hong Liu + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit d65292375154085feb7217ed8fccc8edf163c6b2 +Author: Zhu Yi +Date: Thu Jan 19 16:20:49 2006 +0800 + + [PATCH] ieee80211: Log if netif_rx() drops the packet + + Log to wireless network stats if netif_rx() drops the packet. + + (also trailing whitespace and Lindent cleanups as part of patch-apply + process) + + Signed-off-by: James Ketrenos + Signed-off-by: Zhu Yi + Signed-off-by: John W. Linville + +commit 44d7a8cfbdc1112fd80546591fd6f5c831ea0363 +Author: Denis Vlasenko +Date: Wed Jan 18 12:02:33 2006 +0200 + + [PATCH] WEP fields are incorrectly shown to be INSIDE snap in the doc + + >If encryption is enabled, each fragment payload size is reduced by enough space + >to add the prefix and postfix (IV and ICV totalling 8 bytes in the case of WEP) + >So if you have 1500 bytes of payload with ieee->fts set to 500 without + >encryption it will take 3 frames. With WEP it will take 4 frames as the + >payload of each frame is reduced to 492 bytes. + + Text is correct, but in picture (IV,payload,ICV) sits inside SNAP. + Patch corrects this. + + Signed-Off-By: Denis Vlasenko + Acked-By: Johannes Berg + Signed-off-by: John W. Linville + +commit b31c544aedc802688e32240f1398a4321433bfae +Author: Mauro Carvalho Chehab +Date: Fri Jan 27 16:32:02 2006 -0200 + + V4L/DVB (3453a): Alters MAINTAINERS file to point to newer v4l-dvb email + + - V4L/DVB Maintainers list changed. This patch alters the email to the + new address. + + Signed-off-by: Mauro Carvalho Chehab + Acked-By: Johannes Stezenbach + +commit 01999873a455fe9104e91820c72849e608239928 +Author: Dale Farnsworth +Date: Fri Jan 27 01:18:01 2006 -0700 + + [PATCH] mv643xx_eth: Clean up platform_data configuration + + We shouldn't expose the hardware register contents in platform_data. + The only things we allow the user to configure are autoneg, speed, and + duplex. Add specific platform_data fields for these values and remove + the registers configs. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit d0412d967032b9e147bcbacc9ff0c0342636cf2d +Author: James Chapman +Date: Fri Jan 27 01:15:30 2006 -0700 + + [PATCH] mv643xx_eth: use MII library for ethtool functions + + Use the common ethtool support functions of the MII library. + Add generic MII ioctl handler. + Add PHY parameter speed/duplex/negotiation initialization and modification. + + Signed-off-by: James Chapman + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit c28a4f8947f1b08996502967e348dc88363749a7 +Author: James Chapman +Date: Fri Jan 27 01:13:15 2006 -0700 + + [PATCH] mv643xx_eth: use MII library for PHY management + + Modify link up/down handling to use the functions from the MII + library. Note that I track link state using the MII PHY registers + rather than the mv643xx chip's link state registers because I think + it's cleaner to use the MII library code rather than writing local + driver support code. It is also useful to make the actual MII + registers available to the user with maskable kernel printk messages + so the MII registers are being read anyway + + Signed-off-by: James Chapman + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 9f8dd319459bb5ab9efcc1c345bed7895cc41768 +Author: Dale Farnsworth +Date: Fri Jan 27 01:10:47 2006 -0700 + + [PATCH] mv643xx_eth: Make port queue enable/disable code consistent + + Add and use the following functions: + mv643xx_eth_port_enable_tx() + mv643xx_eth_port_enable_rx() + mv643xx_eth_port_disable_tx() + mv643xx_eth_port_disable_rx() + + so that ports are enabled/disabled consistently. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit f98e36f1f7903a319f7f87f96490e88f691ea106 +Author: Dale Farnsworth +Date: Fri Jan 27 01:09:18 2006 -0700 + + [PATCH] mv643xx_eth: Rename mp->tx_ring_skbs to mp->tx_desc_count + + tx_ring_skbs is actually a count of tx descriptors currently in use. + Since there may be multiple descriptors per skb, it is not the + same as the number of skbs in the ring. + + Also change rx_ring_skbs to rx_desc_count to be consistent. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit cf4086c7725dc251551243c28325d446d9b1bf06 +Author: Dale Farnsworth +Date: Fri Jan 27 01:07:48 2006 -0700 + + [PATCH] mv643xx_eth: Merge unicast and multicast address filtering code + + Remove duplicated code by having unicast and multicast code use + a common filter table function: eth_port_set_filter_table_entry(). + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit ed9b5d457668392182659747a734b38e86820adb +Author: Dale Farnsworth +Date: Fri Jan 27 01:06:38 2006 -0700 + + [PATCH] mv643xx_eth: Remove needless mp->port_mac_addr + + mp->port_mac_addr is just a redundant copy of dev->dev_addr, so remove it. + + Signed-off-by: Dale Farnsworth + Signed-off-by: Jeff Garzik + +commit 7d3d0439f574a4857c97b3ad2e63b082b7382d7e +Author: Ravinandan Arakali +Date: Wed Jan 25 14:53:07 2006 -0500 + + [PATCH] S2io: Large Receive Offload (LRO) feature(v2) for Neterion (s2io) 10GbE Xframe PCI-X and PCI-E NICs + + Hi, + Below is a patch for the Large Receive Offload feature. + Please review and let us know your comments. + + LRO algorithm was described in an OLS 2005 presentation, located at + ftp.s2io.com + user: linuxdocs + password: HALdocs + + The same ftp site has Programming Manual for Xframe-I ASIC. + LRO feature is supported on Neterion Xframe-I, Xframe-II and + Xframe-Express 10GbE NICs. + + Brief description: + The Large Receive Offload(LRO) feature is a stateless offload + that is complementary to TSO feature but on the receive path. + The idea is to combine and collapse(upto 64K maximum) in the + driver, in-sequence TCP packets belonging to the same session. + It is mainly designed to improve 1500 mtu receive performance, + since Jumbo frame performance is already close to 10GbE line + rate. Some performance numbers are attached below. + + Implementation details: + 1. Handle packet chains from multiple sessions(current default + MAX_LRO_SESSSIONS=32). + 2. Examine each packet for eligiblity to aggregate. A packet is + considered eligible if it meets all the below criteria. + a. It is a TCP/IP packet and L2 type is not LLC or SNAP. + b. The packet has no checksum errors(L3 and L4). + c. There are no IP options. The only TCP option supported is timestamps. + d. Search and locate the LRO object corresponding to this + socket and ensure packet is in TCP sequence. + e. It's not a special packet(SYN, FIN, RST, URG, PSH etc. flags are not set). + f. TCP payload is non-zero(It's not a pure ACK). + g. It's not an IP-fragmented packet. + 3. If a packet is found eligible, the LRO object is updated with + information such as next sequence number expected, current length + of aggregated packet and so on. If not eligible or max packets + reached, update IP and TCP headers of first packet in the chain + and pass it up to stack. + 4. The frag_list in skb structure is used to chain packets into one + large packet. + + Kernel changes required: None + + Performance results: + Main focus of the initial testing was on 1500 mtu receiver, since this + is a bottleneck not covered by the existing stateless offloads. + + There are couple disclaimers about the performance results below: + 1. Your mileage will vary!!!! We initially concentrated on couple pci-x + 2.0 platforms that are powerful enough to push 10 GbE NIC and do not + have bottlenecks other than cpu%; testing on other platforms is still + in progress. On some lower end systems we are seeing lower gains. + + 2. Current LRO implementation is still (for the most part) software based, + and therefore performance potential of the feature is far from being realized. + Full hw implementation of LRO is expected in the next version of Xframe ASIC. + + Performance delta(with MTU=1500) going from LRO disabled to enabled: + IBM 2-way Xeon (x366) : 3.5 to 7.1 Gbps + 2-way Opteron : 4.5 to 6.1 Gbps + + Signed-off-by: Ravinandan Arakali + Signed-off-by: Jeff Garzik + +commit cca4aa83c79bcd571b06c83c50ea63cb75f1c2bb +Author: Eric Sesterhenn / snakebyte +Date: Thu Jan 26 22:02:49 2006 +0100 + + [PATCH] BUG_ON() Conversion in net/tulip/winbond-840.c + + hi, + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Jeff Garzik + +commit 7e0b58f32fb5e9c958078a6d722a7d0b230346a7 +Author: Eric Sesterhenn / snakebyte +Date: Thu Jan 26 22:02:43 2006 +0100 + + [PATCH] BUG_ON() Conversion in net/tulip/de2104x.c + + hi, + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + One of the if()s contains a call to de_is_running(), + which seems to be safe to replace, but someone with more + knownledge of the code might want to verify this... + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Jeff Garzik + +commit a707cd6e2d0a8c21dd8aeef8e4a0c0ccf8774fa9 +Author: Eric Sesterhenn / snakebyte +Date: Thu Jan 26 22:02:51 2006 +0100 + + [PATCH] BUG_ON() Conversion in net/tulip/xircom_cb.c + + hi, + + this changes if() BUG(); constructs to BUG_ON() which is + cleaner and can better optimized away + + Signed-off-by: Eric Sesterhenn + Signed-off-by: Jeff Garzik + +commit c19ba8af4f104cca28d548cac55c128b28dd31fb +Author: Tejun Heo +Date: Tue Jan 24 17:05:22 2006 +0900 + + [PATCH] libata: new ->probe_reset operation + + Add new ->probe_reset operation to ata_port_operations obsoleting + ->phy_reset. The main difference from ->phy_reset is that the new + operation is not allowed to manipulate libata internals directly. + It's not allowed to configure or disable the port or devices. It can + only succeed or fail and classify attached devices into passed + @classes. + + This change gives more control to higher level and eases sharing reset + methods with EH. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit b4dc7623c1bb258b66418261dab40f0e4cfc6d42 +Author: Tejun Heo +Date: Tue Jan 24 17:05:22 2006 +0900 + + [PATCH] libata: modify ata_dev_try_classify + + Make ata_dev_try_classify take @r_err to store tf error register value + on completion and return device class instead of directly manipulating + dev->class. This is preparation for new reset mechanism. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 6f8b99589524f3e759e44721376abcdf88ed8915 +Author: Tejun Heo +Date: Tue Jan 24 17:05:21 2006 +0900 + + [PATCH] libata: export ata_busy_sleep + + Export ata_busy_sleep(), to be used by low level driver reset functions. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 22b49985f526796471c074c0e56bcebfd633a6ff +Author: Tejun Heo +Date: Mon Jan 23 21:38:44 2006 +0900 + + [PATCH] ahci: add constants for SRST + + Add constants needed to perform SRST. This is preparation for adding + softreset method. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit e0bfd149973d22a4330dd6665b54d1dcca07174a +Author: Tejun Heo +Date: Mon Jan 23 16:31:53 2006 +0900 + + [PATCH] ahci: stop engine during hard reset + + AHCI spec mandates engine to be stopped during hard resets. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 9506437921504df18c6601f7d09bb23d72d2f6ba +Author: Tejun Heo +Date: Mon Jan 23 13:09:37 2006 +0900 + + [PATCH] libata: create pio/atapi task queueing wrappers + + Wrap pio/atapi task queueing in correspondingly named functions. This + change doesn't change anything. It's preparation for follow-up + pio-task/eh sync patch. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit a72ec4ce6d3ae92e76baf5b2c65cc26e5e775e83 +Author: Tejun Heo +Date: Mon Jan 23 13:09:37 2006 +0900 + + [PATCH] libata: implement and apply ata_eh_qc_complete/retry() + + Implement ata_eh_qc_complete/retry() using scsi_eh_finish_cmd() and + scsi_eh_flush_done_q(). This removes all eh scsicmd finish hacks from + low level drivers. + + This change was first suggested by Jeff Garzik. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 041c5fc33cb7ed4fe5322585a611fb6e29a05d3a +Author: Tejun Heo +Date: Mon Jan 23 13:09:36 2006 +0900 + + [PATCH] SCSI: export scsi_eh_finish_cmd() and scsi_eh_flush_done_q() + + Export two SCSI EH command handling functions. To be used by libata EH. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 9a3d9eb0177eb10500d49cd283b35576082a522d +Author: Tejun Heo +Date: Mon Jan 23 13:09:36 2006 +0900 + + [PATCH] libata: return AC_ERR_* from issue functions + + Return AC_ERR_* mask from issue fuctions instead of 0/-1. This + enables things like failing a qc with AC_ERR_HSM when the device + doesn't set DRDY when the qc is about to be issued. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 11a56d2439259892319df81cf1582687d7e7fde5 +Author: Tejun Heo +Date: Mon Jan 23 13:09:36 2006 +0900 + + [PATCH] libata: add detailed AC_ERR_* flags + + Add detailed AC_ERR_* flags and use them. Long-term goal is to + describe all errors with err_mask and tf combination (tf for failed + sector information, etc...). After proper error diagnosis is + implemented, sense data should also be generated from err_mask instead + of directly from hardware tf registers as it is currently. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 284b6481cc7112ca6a9e60b7a9b650fba3bf0492 +Author: Tejun Heo +Date: Mon Jan 23 13:09:36 2006 +0900 + + [PATCH] ahci: fix err_mask setting in ahci_host_intr + + In ahci_host_intr err_mask is determined from IRQ status but never + used. This patch sets qc->err_mask to the determined err_mask. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 8e436af9326f5cc2e07d76505154ffddfb04b485 +Author: Tejun Heo +Date: Mon Jan 23 13:09:36 2006 +0900 + + [PATCH] libata: fix ata_qc_issue() error handling + + When ata_qc_issue() fails, the qc might have been dma mapped or not. + So, performing only ata_qc_free() results in dma map leak. This patch + makes ata_qc_issue() mark dma map flags correctly on failure and calls + ata_qc_complete() after ata_qc_issue() fails. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 77853bf2b48e34449e826a9ef4df5ea0dbe947f4 +Author: Tejun Heo +Date: Mon Jan 23 13:09:36 2006 +0900 + + [PATCH] libata: make the owner of a qc responsible for freeing it + + qc used to be freed automatically on command completion. However, as + a qc can carry information about its completion status, it can be + useful to its owner/issuer after command completion. This patch makes + freeing qc responsibility of its owner. This simplifies + ata_exec_internal() and makes command turn-around for atapi request + sensing less hackish. + + This change was originally suggested by Jeff Garzik. + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 4ba946e9d8e10fada7bbce527f6ea05842592e06 +Author: Tejun Heo +Date: Mon Jan 23 13:09:36 2006 +0900 + + [PATCH] libata: fold __ata_qc_complete() into ata_qc_free() + + All ata_qc_free() does is calling __ata_qc_complete() which isn't used + anywhere else. Fold __ata_qc_complete() into ata_qc_free(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 0d615ec2bb1cb8c38087bb24f6d2876dec3a9751 +Author: Arnaldo Carvalho de Melo +Date: Thu Jan 26 22:01:38 2006 -0500 + + sundance: Really read addr 0 + + Make phy 0 actually be read, as it is not being right now as we have: + + int mii_status = mdio_read(dev, phy, MII_BMSR); + int phyx = phy & 0x1f; + + When we should have instead: + + int phyx = phy & 0x1f; + int mii_status = mdio_read(dev, phyx, MII_BMSR); + + so that when phy, in the end of the (phy = 1; phy <= 32...) loop gets + to 32 phyx gets to 0, i.e. we were reading at 32, when the intended + read was for 0. + + Signed-off-by: Arnaldo Carvalho de Melo + Signed-off-by: Jeff Garzik + +commit ff0fc1467f8189c8e2340b91161c97138a75e484 +Author: Tejun Heo +Date: Sun Dec 18 17:17:07 2005 +0900 + + [PATCH] ata_piix: fix MAP VALUE interpretation for for ICH6/7 + + Unlike their older siblings, ICH6 and 7 use different scheme for MAP + VALUE. This patch makes ata_piix interpret MV properly on ICH6/7. + + Pre-ICH6/7 + + The value of these bits indicate the address range the SATA port + responds to, and whether or not the SATA and IDE functions are + combined. + + 000 = Non-combined. P0 is primary master. P1 is secondary master. + 001 = Non-combined. P0 is secondary master. P1 is primary master. + 100 = Combined. P0 is primary master. P1 is primary slave. P-ATA is + 2:0 Map Value secondary. + 101 = Combined. P0 is primary slave. P1 is primary master. P-ATA is + secondary. + 110 = Combined. P-ATA is primary. P0 is secondary master. P1 is + secondary slave. + 111 = Combined. P-ATA is primary. P0 is secondary slave. P1 is + secondary master. + + ICH6/7 + + Map Value - R/W. Map Value (MV): The value in the bits below indicate + the address range the SATA ports responds to, and whether or not the + PATA and SATA functions are combined. When in combined mode, the AHCI + memory space is not available and AHCI may not be used. + + 00 = Non-combined. P0 is primary master, P2 is the primary slave. P1 + is secondary master, P3 is the 1:0 secondary slave (desktop + only). P0 is primary master, P2 is the primary slave (mobile + only). + 01 = Combined. IDE is primary. P1 is secondary master, P3 is the + secondary slave. (desktop only) + 10 = Combined. P0 is primary master. P2 is primary slave. IDE is secondary + 11 = Reserved + + Signed-off-by: Tejun Heo + + -- + + Jeff, without this patch, ata_piix misdetects my ICH7's combined mode, + ending up not applying bridge limits to PX-710SA and configuring IDE + drive on 40-c cable to UDMA/66. + + Thanks. + Signed-off-by: Jeff Garzik + +commit e08e6c521355cd33e647b2f739885bc3050eead6 +Author: Brent Casavant +Date: Thu Jan 26 15:55:52 2006 -0800 + + [IA64] hooks to wait for mmio writes to drain when migrating processes + + On SN2, MMIO writes which are issued from separate processors are not + guaranteed to arrive in any particular order at the IO hardware. When + performing such writes from the kernel this is not a problem, as a + kernel thread will not migrate to another CPU during execution, and + mmiowb() calls can guarantee write ordering when control of the IO + resource is allowed to move between threads. + + However, when MMIO writes can be performed from user space (e.g. DRM) + there are no such guarantees and mechanisms, as the process may + context-switch at any time, and may migrate to a different CPU as part + of the switch. For such programs/hardware to operate correctly, it is + required that the MMIO writes from the old CPU be accepted by the IO + hardware before subsequent writes from the new CPU can be issued. + + The following patch implements this behavior on SN2 by waiting for a + Shub register to indicate that these writes have been accepted. This + is placed in the context switch-in path, and only performs the wait + when the newly scheduled task changes CPUs. + + Signed-off-by: Prarit Bhargava + Signed-off-by: Brent Casavant + +commit 13938ca7a1ad9a4788cf73309f187d99c97ddfde +Author: Mark Maule +Date: Thu Jan 26 14:46:39 2006 -0600 + + [IA64-SGI] driver bugfixes and hardware workarounds for CE1.0 asic + + Various bugfixes and hardware bug workarounds necessary for the rev 1.0 version + of the altix TIO CE asic. + + Signed-off-by: Mark Maule + Signed-off-by: Tony Luck + +commit 28ff6b9b2fc01d2c2746c72ce8af1729344fae27 +Author: Aaron Young +Date: Mon Jan 23 09:00:51 2006 -0800 + + [IA64-SGI] Handle SC env. powerdown events + + Handle system controller power down pending events + on SN systems. This allows the system to gracefully shutdown + before the system controller removes power due to + an adverse environmental condition. + + Signed-off-by: Aaron Young + Signed-off-by: Tony Luck + +commit b0a06623dc4caf6dfb6a84419507643471676d20 +Author: Keith Owens +Date: Sun Jan 22 10:55:25 2006 +1100 + + [IA64] Delete MCA/INIT sigdelayed code + + The only user of the MCA/INIT sigdelayed code (SGI's I/O probing) has + moved from the kernel into SAL. Delete the MCA/INIT sigdelayed code. + + Signed-off-by: Keith Owens + Signed-off-by: Tony Luck + +commit 6e586f32931d6c98431d54cd0430d4366195b0ba +Author: Jes Sorensen +Date: Tue Jan 17 12:24:39 2006 -0500 + + [IA64-SGI] sem2mutex ioc4.c + + Convert to use a single mutex instead of two rwsems as this isn't + performance critical. + + Signed-off-by: Jes Sorensen + Signed-off-by: Brent Casavant + Signed-off-by: Tony Luck + +commit a454c2f3d1fd1cab7073b53c6c14d6d4b61f4e09 +Author: Chen, Kenneth W +Date: Wed Jan 11 17:11:09 2006 -0800 + + [IA64] implement ia64 specific mutex primitives + + Implement ia64 optimized mutex primitives. It properly uses + acquire/release memory ordering semantics in lock/unlock path. + 2nd version making them all static inline functions. + + Signed-off-by: Ken Chen + Signed-off-by: Tony Luck + +commit 739dbef022e1600cfd3ba989246b3eecf04f2bb5 +Author: Michael Krufky +Date: Thu Jan 26 04:37:19 2006 -0200 + + V4L/DVB (3442): Allow tristate build for cx88-vp3054-i2c + + + - allow tristate build for cx88-vp3054-i2c + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit c37844f4a8c9524dbe9187397e75caa7a79ae83a +Author: Jiri Slaby +Date: Tue Jan 24 13:15:06 2006 -0800 + + V4L/DVB (3439a): media video stradis memory fix + + memset clears once set structure, there is actually no need for memset, + because configure function do it for us. Next, vfree(NULL) is legal, so + avoid useless labels. + + Thanks Dave Jones for reporting this. + + Signed-off-by: Jiri Slaby + Signed-off-by: Andrew Morton + Signed-off-by: Mauro Carvalho Chehab + +commit 1de87444f8f91009b726108c9a56600645ee8751 +Author: Ingo Molnar +Date: Tue Jan 24 15:22:50 2006 -0600 + + JFS: semaphore to mutex conversion. + + the conversion was generated via scripts, and the result was validated + automatically via a script as well. + + build and boot tested. + + Signed-off-by: Ingo Molnar + Signed-off-by: Dave Kleikamp + +commit cc925bbed017b12d46436e8ab788e0de8656d08c +Author: Michael Krufky +Date: Mon Jan 23 17:11:11 2006 -0200 + + V4L/DVB (3439): removed duplicated tuner_ranges + + - removed duplicated tuner_ranges + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 3fc46d35b30cfae018c4903228a270c9543f4d7a +Author: Michael Krufky +Date: Mon Jan 23 17:11:11 2006 -0200 + + V4L/DVB (3436): move config byte from tuner_params to tuner_range struct. + + - Move config byte from tuner_params to tuner_range struct. + - dvb tuners must be able to set different config byte for each range. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit ab66b22f0c4e5786d59fa23569ac37a4a21ab4fb +Author: Michael Krufky +Date: Mon Jan 23 17:11:11 2006 -0200 + + V4L/DVB (3435): rename cb variable names in tuner structures for global consistency + + - rename cb variable names in tuner structures for global consistency + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 257c645d3dc90ee8b7c0640da8d9ea1b2cbe95c4 +Author: Markus Rechberger +Date: Mon Jan 23 17:11:11 2006 -0200 + + V4L/DVB (3434): changed comment in tuner-core.c + + - changed comment in tuner-core.c + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit 9df8e9456d74c7ac749a1ebfb54a3cc36e46a602 +Author: Randy Dunlap +Date: Mon Jan 23 17:11:10 2006 -0200 + + V4L/DVB (3433): Fix printk type warning + + - Fix printk type warning: + drivers/media/dvb/b2c2/flexcop-pci.c:164: warning: + format '%08x' expects type 'unsigned int', but argument 4 has type 'dma_addr_t' + + Signed-off-by: Randy Dunlap + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit a94e95b443811c127734ef10f3b7d2220532c1d2 +Author: Markus Rechberger +Date: Mon Jan 23 17:11:10 2006 -0200 + + V4L/DVB (3432): Hauppauge HVR 900 Composite support + + - Hauppauge HVR 900 Composite support + + Signed-off-by: Markus Rechberger + Signed-off-by: Mauro Carvalho Chehab + +commit cbcf749382a7bbf70b1bbf6eeb3234d1682c9f17 +Author: Michael Krufky +Date: Mon Jan 23 17:11:10 2006 -0200 + + V4L/DVB (3431): fixed spelling error, exectuted --> executed. + + - fixed spelling error, exectuted --> executed. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 757d250518c4905c5d13c8974446e08a2e3cf244 +Author: Hans Verkuil +Date: Mon Jan 23 17:11:10 2006 -0200 + + V4L/DVB (3430): Add new internal VIDIOC_INT commands + + - Add new internal VIDIOC_INT commands for setting the tuner mode, + for putting a chip into standby mode and to set/get the routing + of inputs/outputs of audio or video of a chip. These new commands + will replace older commands that are no longer up to the task. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit ac272ed7f1ae15084c64bdc4d3b4578ec2a0830b +Author: Markus Rechberger +Date: Mon Jan 23 17:11:09 2006 -0200 + + V4L/DVB (3429): Missing break statement on tuner-core + + - default_tuner_init was called twice due to a missing break statement. + + Signed-off-by: Markus Rechberger + Acked-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 703cb2cbf4250215e67f4a04081e4ea9d9f34bc9 +Author: Adrian Bunk +Date: Mon Jan 23 17:11:09 2006 -0200 + + V4L/DVB (3428): drivers/media/dvb/ possible cleanups + + - Make needlessly global code static + - #if 0 the following unused global functions: + - b2c2/flexcop-dma.c: flexcop_dma_control_packet_irq() + - b2c2/flexcop-dma.c: flexcop_dma_config_packet_count() + + Signed-off-by: Adrian Bunk + Signed-off-by: Patrick Boettcher + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 8a4b275f9c192921797f45c2d4b5e4bc3875500a +Author: Hans Verkuil +Date: Mon Jan 23 17:11:09 2006 -0200 + + V4L/DVB (3427): audmode and rxsubchans fixes (VIDIOC_G/S_TUNER) + + + - Audmode and rxsubchans fixes in msp3400, tuner, tvaudio and cx25840. + - msp3400 cleanups + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 9aeb4b051b65c0248ea6589096950413c4da9d63 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:09 2006 -0200 + + V4L/DVB (3423): CodingStyle fixes. + + - CodingStyle fixes. + + Signed-off-by: Mauro Carvalho Chehab + +commit 2d50f847c62acbafa25dc690d0fe65b8b908a326 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:08 2006 -0200 + + V4L/DVB (3422): Implemented VIDIOC_G_FMT/S_FMT for sliced VBI + + - Implemented VIDIOC_G_FMT/S_FMT for sliced VBI + - VIDIOC_S_FMT now calls a function + + Signed-off-by: Mauro Carvalho Chehab + +commit e5589befc472ca50882f37c4fb32333fc93a65b7 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:08 2006 -0200 + + V4L/DVB (3421): Several fixes to prepare for VBI + + - Fixed VBI compilation. + - Included capacity to specify vbi and video number. + - Added a better control for using more than one em28xx device. + - VIDIOC_G_FMT now calls a function. + + Signed-off-by: Mauro Carvalho Chehab + +commit 12db56071b473a59c550d0aa70db6972a49d73af +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:08 2006 -0200 + + V4L/DVB (3420): Added iocls to configure VBI on tvp5150 + + - Added iocls to configure VBI on tvp5150 + + Signed-off-by: Mauro Carvalho Chehab + +commit 4d0dddb10723cee2b3048bd2389673703bc228e4 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:07 2006 -0200 + + V4L/DVB (3419): added some VBI macros and moved minor definitions to header file + + - Moved some hardcoded minor numbers to videodev2.h + - Included more comments for sliced VBI standards + - Included some VBI macros to group similar standards + + Signed-off-by: Mauro Carvalho Chehab + +commit c835ac24e2e3d5de7fff0620949b61228048e27b +Author: Mike Isely +Date: Mon Jan 23 17:11:07 2006 -0200 + + V4L/DVB (3418): Cause tda9887 to use I2C_DRIVERID_TDA9887 + + - The tda9887 has an I2C id reserved for it, but it hasn't been using + it. Probably an oversight. Fixed with this patch. + + Signed-off-by: Mike Isely + Signed-off-by: Mauro Carvalho Chehab + +commit bff75d248f27c10d4bf1aaf8d5c81b00623861b9 +Author: Michael Krufky +Date: Mon Jan 23 17:11:07 2006 -0200 + + V4L/DVB (3417): make VP-3054 Secondary I2C Bus Support a Kconfig option. + + - make VP-3054 Secondary I2C Bus Support a Kconfig option. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 42d2b6ef40fcf9094d4d55a1a4c8d1c80318271c +Author: Ian Pickworth +Date: Mon Jan 23 17:11:07 2006 -0200 + + V4L/DVB (3416): Recognise Hauppauge card #34519 + + - Recognise Hauppauge card #34519 + + Signed-off-by: Ian Pickworth + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 28f3d4b37db26a30b8990e039b6881b43de815f9 +Author: Michael Krufky +Date: Mon Jan 23 17:11:07 2006 -0200 + + V4L/DVB (3414): rename dvb_pll_tbmv30111in to dvb_pll_samsung_tbmv + + - rename dvb_pll_tbmv30111in to dvb_pll_samsung_tbmv + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit d76a617903fa6dc466907531056cc33100560ea4 +Author: Michael Krufky +Date: Mon Jan 23 17:11:06 2006 -0200 + + V4L/DVB (3413): Kill nxt2002 in favor of the nxt200x module + + - Kill nxt2002 module in favor of nxt200x. + - Repair broken nxt2002 support in the nxt200x module. + - Make the flexcop driver use nxt200x instead of the nxt2002 module for the + Air2PC 2nd generation PCI card. + - Remove the nxt2002 module from cvs and kernel build. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 2af3557748c18239b0aa2c77dd9c8392f6c1c7e1 +Author: Michael Krufky +Date: Mon Jan 23 17:11:06 2006 -0200 + + V4L/DVB (3411): group dvb-bt8xx Subsystem ID's together, in order. + + - group dvb-bt8xx Subsystem ID's together, in order. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 2701dacb5ae5e7ecab4131605bdbcedd92bbaf82 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:06 2006 -0200 + + V4L/DVB (3410): Implemented sliced VBI set on VIDIOC_S_FMT + + - Implemented sliced VBI set on VIDIOC_S_FMT + + Signed-off-by: Mauro Carvalho Chehab + +commit 10b7a903072eb066b17cc9049d6ea55dd044f4c3 +Author: Peter Missel +Date: Mon Jan 23 17:11:06 2006 -0200 + + V4L/DVB (3409): Mark Typhoon cards as Lifeview OEM's + + - Mark Typhoon cards as OEM of Lifeview. + + Signed-off-by: Peter Missel + Signed-off-by: Nickolay V. Shmyrev + Signed-off-by: Mauro Carvalho Chehab + +commit 6ac48b458769059ee6147dd8bf2767e820407292 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:05 2006 -0200 + + V4L/DVB (3408): Included new sliced VBI types to videodev2.h and tvp5150 + + - Added other sliced VBI types to videodev2.h + - tvp5150 now uses standard V4L2 API codes from videodev2.h + - Implemented VIDIOC_G_SLICED_VBI_CAP for tvp5150. This is + dynamically filled based on defined VDP C-RAM values filled + by the driver. + + Signed-off-by: Mauro Carvalho Chehab + +commit 3ad96835cedec7704b1b5a211b39262bb794adaf +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:11:05 2006 -0200 + + V4L/DVB (3407): added some code for VBI processing and cleanup debug dump + + - Renamed some registers and improved register debug message + - Some cleanups at register dump + - Added code to set VBI processor (VDP) + - VBI code still incomplete + + Signed-off-by: Mauro Carvalho Chehab + +commit 439090d7d82a333a21987dcbccb90961f27fd2e9 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 17:10:54 2006 -0200 + + V4L/DVB (3406): Added credits for em28xx-video.c + + - Added credits for sn9c102 kernel module and his author as + some parts of em28xx-video were based. + + Acked-by: Luca Risolia + Acked-by: Markus Rechberger + Acked-by: Ludovico Cavedon + Acked-by: Sascha Sommer + Signed-off-by: Mauro Carvalho Chehab + +commit e36eaa71c99eb1edb52eb21ab4e8c9e09b943f21 +Author: Mauro Carvalho Chehab +Date: Mon Jan 23 09:48:34 2006 -0200 + + V4L/DVB (3405): Fixes tvp5150a/am1 detection. + + - Tvp5150 type were determined by a secondary register instead of + using ROM code. + - tvp5150am1 have ROM=4.0, while tvp5150a have ROM=3.33 (decimal). + All other ROM versions are reported as unknown tvp5150. + - Except for reporting, current code doesn't enable any special feature + for tvp5150am1 or tvp5150a. Code should work for both models (but were + tested only for tvp5150am1). + + Signed-off-by: Mauro Carvalho Chehab + +commit 337208d007d94749cc965742eede1611a94c06ce +Author: Adrian Bunk +Date: Mon Jan 23 09:48:02 2006 -0200 + + VIDEO_CX88_ALSA must select SND_PCM + + - VIDEO_CX88_ALSA must select SND_PCM + + Signed-off-by: Adrian Bunk + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 94f9e56e2b32e9d0efa1321afc3fa164563b2c55 +Author: Hans Verkuil +Date: Mon Jan 23 09:47:40 2006 -0200 + + V4L/DVB (3403): Add probe check for the tda9840. + + - Add probe check for the tda9840 to prevent misdetection of a Micronas + dpl3518a as a tda9840. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit 53a7240416adabb84e32334a9f118b7f05392ba2 +Author: Hans Verkuil +Date: Mon Jan 23 09:46:02 2006 -0200 + + V4L/DVB (3402): Fix handling of VIDIOC_G_TUNER audmode in msp3400 + + - Fix handling of VIDIOC_G_TUNER audmode in msp3400: audmode + is only changed by the user with S_TUNER, never by the driver. + + Signed-off-by: Hans Verkuil + Signed-off-by: Mauro Carvalho Chehab + +commit b639f9d286f2216795492eac2a39b8ed6b4d555c +Author: Nickolay V. Shmyrev +Date: Mon Jan 23 09:44:10 2006 -0200 + + V4L/DVB (3400): Remove duplicated keymaps and add keymap for KWorld LTV883IR. + + - Remove duplicated keymaps and add keymap for KWorld LTV883IR. + Thanks to Jon Ferguson . + + Signed-off-by: Nickolay V. Shmyrev + Signed-off-by: Mauro Carvalho Chehab + +commit 4c0f631e14b849782259519c749414b1f1ddbfa8 +Author: Ricardo Cerqueira +Date: Mon Jan 23 09:42:06 2006 -0200 + + V4L/DVB (3393): Move all IR keymaps to ir-common module + + - All the keymaps have the same structure, and can be shared between different + chips, so it makes no sense having them scattered between the input files. + This aggregates them all at ir-common module. + - Added new Hauppauge remote (Hauppauge grey), contributed by J.O. Aho + (with some small changes) + Changed KEY_KPx (keypad numerals) references to KEY_x, to avoid problems + when NumLock is off (suggested by Peter Missel ) + - Some cleanups at IR code + + Signed-off-by: Ricardo Cerqueira + Signed-off-by: Mauro Carvalho Chehab + +commit bf47e4e43e4dcf88fef61b1b4139ce2da20e1f73 +Author: J.O. Aho +Date: Mon Jan 23 09:34:06 2006 -0200 + + V4L/DVB (3395): Hauppauge Grey Remote support + + - For the Hauppauge PVR cards there are at least two different remotes, one + completly black and one that is Grey and black, they keys differ in values + eg Black remotes 'mute' has the same value as Grey remotes 'menu'. + - This enables the user to select which keymapping to use by using the + hauppauge parm. Unlike to the black remote keys, all keys are + mapped for the grey remote and the ATi usb remote mappings has been + followed. + + Signed-off-by: Ricardo Cerqueira + Signed-off-by: Mauro Carvalho Chehab + +commit f74a6b395a6dea5028a1604e721dfb2b5c18fc86 +Author: Michael Krufky +Date: Tue Jan 17 03:50:23 2006 -0200 + + V4L/DVB (3392): Add PCI ID for DigitalNow DVB-T Dual, rebranded DViCO FusionHDTV DVB-T Dual. + + - Add PCI ID for DigitalNow DVB-T Dual, + rebranded DViCO FusionHDTV DVB-T Dual. + + Signed-off-by: Michael Krufky + Signed-off-by: Mauro Carvalho Chehab + +commit 076d022c566fddde41fd4a858dd24bacad8304d7 +Author: Vitaly Bordug +Date: Tue Jan 17 22:22:27 2006 +0300 + + [PATCH] PPC32 8xx: support for the physmapped flash on m8xx + + Implemented more correct way to support physmapped flash on m8xx + than map in mtd. + + The areas intended to contain bootloader are protected readonly. + Note that CFI and JEDEC stuff should be configured properly in order + this to work, e.g. for 885/86x CFI should support 4-chip flash interleave. + Also fixed compilation warning. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Paul Mackerras + +commit 0ec57e53c945fe962b190953f61e1ffd127e68d3 +Author: Marcelo Tosatti +Date: Tue Jan 17 00:24:42 2006 -0200 + + [PATCH] powerpc: generalize PPC44x_PIN_SIZE + + The following patch generalizes PPC44x_PIN_SIZE by changing it to + PPC_PIN_SIZE, which can be defined by any sub-arch to automatically adjust + VMALLOC_START. + + Define PPC_PIN_SIZE on 8xx, avoiding potential conflicts with the + pinned space. + + Signed-off-by: Marcelo Tosatti + Signed-off-by: Paul Mackerras + +commit f4fc4a5b74cff2a487222f05704a2bd01953d250 +Author: Kumar Gala +Date: Mon Jan 16 10:53:22 2006 -0600 + + [PATCH] powerpc: Add CONFIG_DEFAULT_UIMAGE to build a uImage by default for a board + + Embedded boards that u-boot require a kernel image in the uImage format. + This allows a given board to specify it wants a uImage built by default. + + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit 0ce928e1b2ad4309fae6c4324b9e9e433fbf62a2 +Author: Vitaly Bordug +Date: Sun Jan 15 17:30:29 2006 +0300 + + [PATCH] ppc32 8xx: Added setbitsXX/clrbitsXX macro for read-modify-write operations + + This adds setbitsXX/clrbitsXX macro for read-modify-write operations + and converts the 8xx core and drivers to use them. + + Signed-off-by: Vitaly Bordug + Signed-off-by: Marcelo Tosatti + Signed-off-by: Paul Mackerras + +commit 63dafe5728e7354bc3f15bd49f13f1f9a433e8fb +Author: Becky Bruce +Date: Sat Jan 14 16:57:39 2006 -0600 + + [PATCH] powerpc: Updated Initial MPC8540 ADS port with OF Flat Dev + + Updated patch for support for mpc8540_ads in arch/powerpc with a + flat OF device tree. This patch does not yet support PCI or I2C. + + Signed-off-by: Becky Bruce + Signed-off-by: Jon Loeliger + Signed-off-by: Kumar Gala + Signed-off-by: Paul Mackerras + +commit b88e926584bf100bc23f5e76b7b674d4257edcb0 +Author: Ashok Raj +Date: Thu Jan 19 16:18:47 2006 -0800 + + [IA64] Fix UP build with BSP removal support. + + Causes undefined force_cpei_retarget defined in arch/ia64/kernel/smpboot.c + Push the unneeded code inside #ifdef CONFIG_HOTPLUG_CPU. + + Signed-off-by: Ashok Raj + Signed-off-by: Tony Luck + +commit 9c4b562abc9005e4b413de02c85d3d29da707cba +Author: Adrian Bunk +Date: Thu Jan 19 18:07:10 2006 +0100 + + Move ip2.c and ip2main.c to drivers/char/ip2/ where the other files + used by this driver reside. + + Renamed ip2.c to ip2base.c to allow ip2.o to be built from multiple + objects. + + Signed-off-by: Adrian Bunk + Acked-by: Michael H. Warfield + +commit 422b75956cd11f9d9214e6e2a99d6e52d98812d4 +Author: Tejun Heo +Date: Mon Dec 19 22:37:17 2005 +0900 + + [PATCH] ahci: separate out ahci_dev_classify + + Separate out ahci_dev_classify(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 7c76d1e83961a4e355c3ebd53191bc6072c238bd +Author: Tejun Heo +Date: Mon Dec 19 22:36:34 2005 +0900 + + [PATCH] ahci: separate out ahci_stop/start_engine + + Separate out ahci_stop/start_engine(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit 3be680b7329e65b9165d6d8dc81baa1e9e89dfc7 +Author: Tejun Heo +Date: Mon Dec 19 22:35:02 2005 +0900 + + [PATCH] libata: separate out ata_sata_print_link_status + + Separate out sata_print_link_status() from __sata_phy_reset(). + + Signed-off-by: Tejun Heo + Signed-off-by: Jeff Garzik + +commit bfd6057959ecd3ff779a373a4d07cda2c2d0eec1 +Author: Randy Dunlap +Date: Tue Jan 17 19:34:42 2006 -0500 + + From: Borislav Petkov + + libata new debugging macro definitions + + Signed-off-by: Borislav Petkov + Signed-off-by: Randy Dunlap + +commit d4fbeabbc9e68c80738fe59135d201c3ed5fe40f +Author: Stefan Rompf +Date: Tue Jan 17 22:52:51 2006 +0100 + + [PATCH] starfire: Implement suspend/resume + + This patch implements suspend and resume methods for the starfire driver. It + allows me to put my desktop PC with a starfire dual board into S4. + + Signed-Off-By: Stefan Rompf + + Signed-off-by: Jeff Garzik + +commit 26df54bffd90977fbc6fe8284f2beaed19fea44f +Author: Adrian Bunk +Date: Sat Jan 14 03:09:40 2006 +0100 + + [PATCH] drivers/net/s2io.c: make code static + + This patch makes some needlessly global code static. + + Signed-off-by: Adrian Bunk + Signed-off-by: Jeff Garzik + +commit f03aa2d89ad600a1ed21a223f196776f217cfe00 +Author: Adrian Bunk +Date: Sat Jan 14 03:10:22 2006 +0100 + + [PATCH] drivers/net/arcnet/: possible cleanups + + This patch contains the following possible cleanups: + - make needlessly global code static + - arcnet.c: remove the unneeded EXPORT_SYMBOL(arc_proto_null) + - arcnet.c: remove the unneeded EXPORT_SYMBOL(arcnet_dump_packet) + + To make Jeff happy, arcnet.c still prints + arcnet: v3.93 BETA 2000/04/29 - by Avery Pennarun et al. + + Signed-off-by: Adrian Bunk + Signed-off-by: Jeff Garzik + +commit ff5688ae1cedfb175b5ed0f319d03ad2e5ee005d +Author: Marcelo Feitoza Parisi +Date: Mon Jan 9 18:37:15 2006 -0800 + + [PATCH] drivers/net/*: use time_after() and friends + + They deal with wrapping correctly and are nicer to read. Also make + jiffies-holding variables unsigned long. + + Signed-off-by: Marcelo Feitoza Parisi + Signed-off-by: Alexey Dobriyan + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit e03d72b99e4027504ada134bf1804d6ea792b206 +Author: Adrian Bunk +Date: Mon Jan 9 18:34:08 2006 -0800 + + [PATCH] drivers/net/sk98lin/: possible cleanups + + This patch contains the following possible cleanups: + - make needlessly global functions static + - remove unused code + + Signed-off-by: Adrian Bunk + Cc: Stephen Hemminger + Cc: Jeff Garzik + Signed-off-by: Andrew Morton + Signed-off-by: Jeff Garzik + +commit ff741906ad3cf4b8ca1a958acb013a97a6381ca2 +Author: Ashok Raj +Date: Fri Nov 11 14:32:40 2005 -0800 + + [IA64] support for cpu0 removal + + here is the BSP removal support for IA64. Its pretty much the same thing that + was released a while back, but has your feedback incorporated. + + - Removed CONFIG_BSP_REMOVE_WORKAROUND and associated cmdline param + - Fixed compile issue with sn2/zx1 due to a undefined fix_b0_for_bsp + - some formatting nits (whitespace etc) + + This has been tested on tiger and long back by alex on hp systems as well. + + Signed-off-by: Ashok Raj + Signed-off-by: Tony Luck + +commit 4d5dbd0945d9e0833dd7964a3d6ee33157f7cc7a +Author: Arjan van de Ven +Date: Tue Nov 29 08:28:58 2005 -0600 + + JFS: make buddy table static + + Idea is to reduce false cacheline sharing and stuff + + Signed-off-by: Dave Kleikamp + +commit dd8a306ac0c918268bd2ae89da2dea627f6e352d +Author: Dave Kleikamp +Date: Thu Nov 10 07:50:03 2005 -0600 + + JFS: Add back directory i_size calculations for legacy partitions + + Linux-formatted jfs partitions have a different idea about what i_size + represents than partitions formatted on OS/2. The i_size calculation is + now based on the size of the directory index. For legacy partitions, which + have no directory index, the i_size is never being updated. + + This patch adds back the original i_size calculations for legacy partitions. + + Signed-off-by: Dave Kleikamp + +commit c6a33e2464edd87f8c12cc2d11369a5b44c65b77 +Author: Albert Lee +Date: Wed Oct 12 15:12:26 2005 +0800 + + [PATCH] libata CHS: LBA28/LBA48 optimization (revise #6) + + - add lba_28_ok() and lba_48_ok() to ata.h. + - check ending block number instead of staring block number. + - use lba_28_ok() for CHS range check + - LBA28/LBA48 optimization + + Suggested by Mark Lord and Alan Cox. + + Signed-off-by: Albert Lee + + ===== + Signed-off-by: Jeff Garzik + --- linux-source-2.6.17-2.6.17.1.orig/debian/abi-install +++ linux-source-2.6.17-2.6.17.1/debian/abi-install @@ -0,0 +1,6 @@ +#!/bin/bash -ex + +BOOT="${IMAGE_TOP}/boot/" + +install -d -m755 "$BOOT" +install -m644 debian/abi-* "$BOOT" --- linux-source-2.6.17-2.6.17.1.orig/debian/README.Ubuntu-External-Drivers +++ linux-source-2.6.17-2.6.17.1/debian/README.Ubuntu-External-Drivers @@ -0,0 +1,130 @@ + EXTERNAL DRIVER: rhcluster + Description:: RedHat clustering system + + EXTERNAL DRIVER: acpi-sbs + Description: Smart Battery support + + EXTERNAL DRIVER: rtl8187 + Description: Realtek 8187 USB wireless driver + + EXTERNAL DRIVER: rtl8180 + Description: Realtek 8180 wireless driver + + EXTERNAL DRIVER: ndiswrapper + Description: Windows NDIS driver wrapper + + EXTERNAL DRIVER: unionfs + Description: Stackable unification file system + + EXTERNAL DRIVER: mrv8k + Description: Marvell wifi + + EXTERNAL DRIVER: sdhci + Description: Secure Digital MMC Driver + + EXTERNAL DRIVER: acerhk + Description: Acer Travelmate support for special keys + + Name: spca5xx + Description: SPCA5xx Family of Webcams + + EXTERNAL DRIVER: bcm43xx + Description: Description: Broadcom BCM43XX chipset driver + + EXTERNAL DRIVER: ieee80211softmac + Description: IEEE 802.11 Softmac driver + + EXTERNAL DRIVER: realtime-lsm + Description: Linux Security Module Realtime Driver + + EXTERNAL DRIVER: unionfs + Description: Stackable unification file system + + EXTERNAL DRIVER: linux-wlan-ng + Description: Linux WLAN-ng support (includes prism2 drivers) + + EXTERNAL DRIVER: misdn + Description: Modular ISDN Drivers + + EXTERNAL DRIVER: ipg + Description: ICPlus 1000A Gigabit Ethernet Driver + + EXTERNAL DRIVER: acx + Description: TI ACX 100/111 Wireless Driver + + EXTERNAL DRIVER: podxtpro + Description: Line6 PODxt Pro USB Driver + + EXTERNAL DRIVER: ov511 + Description: Driver for USB OV511/OV518 Cameras + + EXTERNAL DRIVER: rt2570 + Description: Realtek 2570 USB wireless driver + + EXTERNAL DRIVER: rt2400 + Description: Realtek 2400 wireless driver + + EXTERNAL DRIVER: rt2500 + Description: Realtek 2500 wireless driver + + EXTERNAL DRIVER:atmel_usb + Description: Driver for Atmel USB Wireless adaptors + + Name: OCFS2 + + Name: zd1211 + Description: USB ZD1211 based wireless device support + + Name: acerhk + Description: Acer Travelmate support for special keys + + Name: acx100 + Description: TI ACX100 Wireless chipset support (PCI/USB) + + Name: btsco + Description: Bluetooth SCO sound driver + + Name: pwc + Description: Updated PWC (Webcam) driver + + Name: at76c50x + Description: Atmel At76c 503/505 USB network driver + + Name: squashfs + Description: A squashed read-only filesystem + + Name: rfswitch + Description: Radio kill switch + + Name: quickcam + Description: Logitech Quickcam Support + + Name: sony_acpi + Description: Sony Laptop Support + + Name: cloop + Description: Compressed Loop Support + + Name: tc1100 + Description: IBM TC1100 WMI driver + + Name: wacom_acpi + Description: Enable Wacom tablet on IBM TC1100 + + Name: em8300 + Description: EM8300 MPEG-2 decoder device driver + + Name: cpad + Description: Synaptics cPad support + + Name: mppe + Description: Add Microsoft PPP compression/encryption support. + + Name: asfs + Description: Support for the Amiga SmartFilesystem + + Name: eagle-usb + Description: Eagle USB ADSL modem support + + Name: fsam7400 + Description: Amilo M7400 radio support for IPW2100 cards --- linux-source-2.6.17-2.6.17.1.orig/debian/control +++ linux-source-2.6.17-2.6.17.1/debian/control @@ -0,0 +1,773 @@ +Source: linux-source-2.6.17 +Section: devel +Priority: optional +Maintainer: Ben Collins +Standards-Version: 3.6.1 +Build-Depends: debhelper (>= 3), kernel-package (>= 10.049ubuntu2), module-init-tools, kernel-wedge (>= 2.24ubuntu1), gcc-3.4-hppa64 [hppa], binutils-hppa64 [hppa], gcc-3.4 [hppa], m4, unifdef +Build-Depends-Indep: xmlto, docbook-utils, gs, transfig, bzip2, sharutils + +Package: linux-kernel-devel +Architecture: all +Section: devel +Priority: optional +Depends: build-essential, git-core, gitk, rsync, curl, openssh-client, debhelper, kernel-package, kernel-wedge +Description: Linux kernel hacking dependencies + This is a dummy package that will install all possible packages + required to hack comfortably on the kernel. + +Package: linux-source-2.6.17 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-2.6 +Depends: binutils, bzip2, coreutils | fileutils (>= 4.0) +Recommends: libc-dev, gcc, make +Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev +Description: Linux kernel source for version 2.6.17 with Ubuntu patches + This package provides the source code for the Linux kernel version 2.6.17. + . + You may configure the kernel to your setup by typing "make config" and + following instructions, but you could get ncursesX.X-dev and try "make + menuconfig" for a jazzier, and easier to use interface. There are options + to use QT or GNOME based configuration interfaces, but they need + additional packages to be installed. Also, please read the detailed + documentation in the file + /usr/share/doc/linux-source-2.6.17/README.headers.gz. + . + If you wish to use this package to create a custom Linux kernel, then it + is suggested that you investigate the package kernel-package, which has + been designed to ease the task of creating kernel image packages. + . + If you are simply trying to build third-party modules for your kernel, + you do not want this package. Install the appropriate linux-headers + package instead. + +Package: linux-doc-2.6.17 +Architecture: all +Section: doc +Priority: optional +Provides: linux-doc-2.6 +Conflicts: linux-doc-2.6 +Replaces: linux-doc-2.6 +Depends: coreutils | fileutils (>= 4.0) +Description: Linux kernel specific documentation for version 2.6.17 + This package provides the various readme's in the 2.6.17 kernel + Documentation/ subdirectory: these typically contain kernel-specific + installation notes for some drivers for example. See + /usr/share/doc/linux-doc-2.6.17/Documentation/00-INDEX for a list of what + is contained in each file. Please read the Changes file, as it contains + information about the problems, which may result by upgrading your + kernel. + +Package: linux-headers-2.6.17-50 +Architecture: amd64 i386 powerpc sparc ia64 hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0) +Provides: linux-headers, linux-headers-2.6 +Description: Header files related to Linux kernel version 2.6.17 + This package provides kernel header files for version 2.6.17, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details + +Package: linux-libc-dev +Architecture: amd64 i386 powerpc sparc ia64 hppa +Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1) +Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6) +Provides: linux-kernel-headers +Conflicts: linux-kernel-headers +Replaces: linux-kernel-headers +Description: Linux Kernel Headers for development + This package provides headers from the Linux kernel. These headers + are used by the installed headers for GNU glibc and other system + libraries. + +Package: linux-image-kdump +Architecture: i386 +Depends: kexec-tools (>= 1.101-2ubuntu1) +Description: Linux Kernel Crash Dump Image. + This package provides a kernel suitable for use as a crash dump kernel. + It's main purpose is to be booted after the main kernel has crashed, in + order to capture crash information. + . + Kernel Crash Dump is only available on i386, x86_64(amd64) and PowerPC64 + systems. + . + Please read the information in /usr/share/doc/linux-image-kdump/ + for how to setup this kernel. + +Package: linux-image-2.6.17-50-hppa32 +Architecture: hppa +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 32-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.17 on + 32-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa32 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-hppa32 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 32-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.17 on + 32-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-hppa32 +Architecture: hppa +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 32-bit HP PA-RISC SMP + This package provides a kernel debug image for version 2.6.17 on + 32-bit HP PA-RISC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-hppa64 +Architecture: hppa +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: palo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit HP PA-RISC SMP + This package contains the Linux kernel image for version 2.6.17 on + 64-bit HP PA-RISC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit HP PA-RISC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-hppa64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-hppa64 +Architecture: hppa +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit HP PA-RISC SMP + This package provides kernel header files for version 2.6.17 on + 64-bit HP PA-RISC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-hppa64 +Architecture: hppa +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit HP PA-RISC SMP + This package provides a kernel debug image for version 2.6.17 on + 64-bit HP PA-RISC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-386 +Architecture: i386 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on i386 + This package contains the Linux kernel image for version 2.6.17 on + i386. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Alternate x86 (486 and better) processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-386 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-386 +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on i386 + This package provides kernel header files for version 2.6.17 on + i386. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-386 +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on i386 + This package provides a kernel debug image for version 2.6.17 on + i386. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-server-bigiron +Architecture: i386 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on BigIron Server Equipment + This package contains the Linux kernel image for version 2.6.17 on + BigIron Server Equipment. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports high end x86 processors. + . + Geared toward large server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server-bigiron meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-server-bigiron +Architecture: i386 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on BigIron Server Equipment + This package provides kernel header files for version 2.6.17 on + BigIron Server Equipment. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-server-bigiron +Architecture: i386 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on BigIron Server Equipment + This package provides a kernel debug image for version 2.6.17 on + BigIron Server Equipment. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-itanium +Architecture: ia64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on Itanium SMP + This package contains the Linux kernel image for version 2.6.17 on + Itanium SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-itanium meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-itanium +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on Itanium SMP + This package provides kernel header files for version 2.6.17 on + Itanium SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-itanium +Architecture: ia64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on Itanium SMP + This package provides a kernel debug image for version 2.6.17 on + Itanium SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-mckinley +Architecture: ia64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: elilo (>= 3.6-1) +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on Itanium II SMP + This package contains the Linux kernel image for version 2.6.17 on + Itanium II SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Itanium II SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-mckinley meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-mckinley +Architecture: ia64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on Itanium II SMP + This package provides kernel header files for version 2.6.17 on + Itanium II SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-mckinley +Architecture: ia64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on Itanium II SMP + This package provides a kernel debug image for version 2.6.17 on + Itanium II SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-powerpc +Architecture: powerpc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 32-bit PowerPC + This package contains the Linux kernel image for version 2.6.17 on + 32-bit PowerPC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 32-bit PowerPC + This package provides kernel header files for version 2.6.17 on + 32-bit PowerPC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-powerpc +Architecture: powerpc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 32-bit PowerPC + This package provides a kernel debug image for version 2.6.17 on + 32-bit PowerPC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-powerpc-smp +Architecture: powerpc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 32-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.17 on + 32-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 32-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 32-bit PowerPC SMP + This package provides kernel header files for version 2.6.17 on + 32-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-powerpc-smp +Architecture: powerpc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 32-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.17 on + 32-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-powerpc64-smp +Architecture: powerpc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: yaboot +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit PowerPC SMP + This package contains the Linux kernel image for version 2.6.17 on + 64-bit PowerPC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit PowerPC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-powerpc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit PowerPC SMP + This package provides kernel header files for version 2.6.17 on + 64-bit PowerPC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-powerpc64-smp +Architecture: powerpc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit PowerPC SMP + This package provides a kernel debug image for version 2.6.17 on + 64-bit PowerPC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-sparc64 +Architecture: sparc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit UltraSPARC + This package contains the Linux kernel image for version 2.6.17 on + 64-bit UltraSPARC. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64 meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-sparc64 +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit UltraSPARC + This package provides kernel header files for version 2.6.17 on + 64-bit UltraSPARC. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-sparc64 +Architecture: sparc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit UltraSPARC + This package provides a kernel debug image for version 2.6.17 on + 64-bit UltraSPARC. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-sparc64-smp +Architecture: sparc +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: silo +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on 64-bit UltraSPARC SMP + This package contains the Linux kernel image for version 2.6.17 on + 64-bit UltraSPARC SMP. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports 64-bit UltraSPARC SMP processors. + . + Geared toward desktop or server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-sparc64-smp meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-sparc64-smp +Architecture: sparc +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on 64-bit UltraSPARC SMP + This package provides kernel header files for version 2.6.17 on + 64-bit UltraSPARC SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-sparc64-smp +Architecture: sparc +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on 64-bit UltraSPARC SMP + This package provides a kernel debug image for version 2.6.17 on + 64-bit UltraSPARC SMP. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-generic +Architecture: i386 amd64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.17 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Generic processors. + . + Geared toward desktop systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on x86/x86_64 + This package provides kernel header files for version 2.6.17 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-generic +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on x86/x86_64 + This package provides a kernel debug image for version 2.6.17 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. + +Package: linux-image-2.6.17-50-server +Architecture: i386 amd64 +Section: base +Priority: optional +Provides: linux-image, linux-image-2.6, fuse-module, rhcs-modules2-1, ndiswrapper-modules-1.22 +Depends: initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.2.1-0ubuntu1) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: lilo (>= 19.1) | grub +Suggests: fdutils, linux-doc-2.6.17 | linux-source-2.6.17 +Description: Linux kernel image for version 2.6.17 on x86/x86_64 + This package contains the Linux kernel image for version 2.6.17 on + x86/x86_64. + . + Also includes the corresponding System.map file, the modules built by the + packager, and scripts that try to ensure that the system is not left in an + unbootable state after an update. + . + Supports Server processors. + . + Geared toward server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-server meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-2.6.17-50-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Depends: coreutils | fileutils (>= 4.0), linux-headers-2.6.17-50, ${shlibs:Depends} +Provides: linux-headers, linux-headers-2.6 +Description: Linux kernel headers for version 2.6.17 on x86/x86_64 + This package provides kernel header files for version 2.6.17 on + x86/x86_64. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-2.6.17-50/debian.README.gz for details. + +Package: linux-image-debug-2.6.17-50-server +Architecture: i386 amd64 +Section: devel +Priority: optional +Provides: linux-debug +Description: Linux kernel debug image for version 2.6.17 on x86/x86_64 + This package provides a kernel debug image for version 2.6.17 on + x86/x86_64. + . + This is for sites that wish to debug the kernel. + . + The kernel image contained in this package is NOT meant to boot from. It + is uncompressed, and unstripped. --- linux-source-2.6.17-2.6.17.1.orig/debian/header-install +++ linux-source-2.6.17-2.6.17.1/debian/header-install @@ -0,0 +1,38 @@ +#!/bin/sh + +set -e + +stem=${DEBIAN_STEM:-kernel} +version=${DEBIAN_UPSTREAM_VERSION} +pkg=$stem-headers-$version$debnum + +arch=$DEB_HOST_ARCH +case $arch in +amd64) + arch=x86_64 + ;; +hppa) + arch=parisc + ;; +esac + +cd "$DEBIAN_SRCTOP" +home="$OLDPWD" +{ + find . \ + -path './Documentation/*' -prune -o \ + -path './debian/*' -prune -o \ + -type f \( \ + -name 'Makefile*' -o -name 'Kconfig*' \ + \) -print + echo arch/$arch/kernel/asm-offsets.s +} | cpio -pd --preserve-modification-time "$home" +cd "$home" +> scripts/Makefile + +find scripts -type f | xargs touch -t 9511212200 + +cd "$DEBIAN_SRCTOP" +dh_strip --package=$pkg --tmpdir=$home +find "$home/scripts" -type f | xargs touch -t 9511212200 +dh_fixperms --package=$pkg --tmpdir=$home --- linux-source-2.6.17-2.6.17.1.orig/usr/.gitignore +++ linux-source-2.6.17-2.6.17.1/usr/.gitignore @@ -0,0 +1,7 @@ +# +# Generated files +# +gen_init_cpio +initramfs_data.cpio +initramfs_data.cpio.gz +initramfs_list --- linux-source-2.6.17-2.6.17.1.orig/Documentation/DocBook/.gitignore +++ linux-source-2.6.17-2.6.17.1/Documentation/DocBook/.gitignore @@ -0,0 +1,6 @@ +*.xml +*.ps +*.pdf +*.html +*.9.gz +*.9 --- linux-source-2.6.17-2.6.17.1.orig/Documentation/video4linux/CARDLIST.cx88 +++ linux-source-2.6.17-2.6.17.1/Documentation/video4linux/CARDLIST.cx88 @@ -45,3 +45,4 @@ 44 -> DViCO FusionHDTV DVB-T Dual Digital [18ac:db50,18ac:db54] 45 -> KWorld HardwareMpegTV XPert [17de:0840] 46 -> DViCO FusionHDTV DVB-T Hybrid [18ac:db40,18ac:db44] + 47 -> pcHDTV HD5500 HDTV [7063:5500] --- linux-source-2.6.17-2.6.17.1.orig/Documentation/i2c/busses/i2c-nforce2 +++ linux-source-2.6.17-2.6.17.1/Documentation/i2c/busses/i2c-nforce2 @@ -7,6 +7,8 @@ * nForce3 250Gb MCP 10de:00E4 * nForce4 MCP 10de:0052 * nForce4 MCP-04 10de:0034 + * nForce4 MCP51 10de:0264 + * nForce4 MCP55 10de:0368 Datasheet: not publically available, but seems to be similar to the AMD-8111 SMBus 2.0 adapter. --- linux-source-2.6.17-2.6.17.1.orig/include/sound/ymfpci.h +++ linux-source-2.6.17-2.6.17.1/include/sound/ymfpci.h @@ -345,7 +345,6 @@ struct snd_kcontrol *spdif_pcm_ctl; int mode_dup4ch; int rear_opened; - int rear_swap; int spdif_opened; struct { u16 left; @@ -378,7 +377,7 @@ int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); -int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rear_swap); +int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch); int snd_ymfpci_timer(struct snd_ymfpci *chip, int device); #endif /* __SOUND_YMFPCI_H */ --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfs_fs_sb.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfs_fs_sb.h @@ -35,7 +35,6 @@ char * hostname; /* remote hostname */ struct nfs_fh fh; struct sockaddr_in addr; - struct nfs_fsid fsid; unsigned long mount_time; /* when this fs was mounted */ #ifdef CONFIG_NFS_V4 /* Our own IP address, as a null-terminated string. --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfs_page.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfs_page.h @@ -13,6 +13,7 @@ #include #include #include +#include #include #include @@ -62,8 +63,8 @@ extern int nfs_scan_lock_dirty(struct nfs_inode *nfsi, struct list_head *dst, unsigned long idx_start, unsigned int npages); -extern int nfs_scan_list(struct nfs_inode *nfsi, struct list_head *head, struct list_head *dst, - unsigned long idx_start, unsigned int npages); +extern int nfs_scan_list(struct list_head *, struct list_head *, + unsigned long, unsigned int); extern int nfs_coalesce_requests(struct list_head *, struct list_head *, unsigned int); extern int nfs_wait_on_request(struct nfs_page *); --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfs_fs.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfs_fs.h @@ -41,7 +41,6 @@ #define FLUSH_LOWPRI 8 /* low priority background flush */ #define FLUSH_HIGHPRI 16 /* high priority memory reclaim flush */ #define FLUSH_NOCOMMIT 32 /* Don't send the NFSv3/v4 COMMIT */ -#define FLUSH_INVALIDATE 64 /* Invalidate the page cache */ #ifdef __KERNEL__ #include @@ -50,6 +49,8 @@ #include #include +#include + #include #include #include @@ -59,9 +60,6 @@ #include #include #include - -#include - #include #include @@ -235,12 +233,8 @@ static inline void nfs_mark_for_revalidate(struct inode *inode) { - struct nfs_inode *nfsi = NFS_I(inode); - spin_lock(&inode->i_lock); - nfsi->cache_validity |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS; - if (S_ISDIR(inode->i_mode)) - nfsi->cache_validity |= NFS_INO_REVAL_PAGECACHE|NFS_INO_INVALID_DATA; + NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATTR | NFS_INO_INVALID_ACCESS; spin_unlock(&inode->i_lock); } @@ -302,7 +296,7 @@ extern int nfs_attribute_timeout(struct inode *inode); extern int nfs_revalidate_inode(struct nfs_server *server, struct inode *inode); extern int __nfs_revalidate_inode(struct nfs_server *, struct inode *); -extern int nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); +extern void nfs_revalidate_mapping(struct inode *inode, struct address_space *mapping); extern int nfs_setattr(struct dentry *, struct iattr *); extern void nfs_setattr_update_inode(struct inode *inode, struct iattr *attr); extern void nfs_begin_attr_update(struct inode *); @@ -312,12 +306,6 @@ extern struct nfs_open_context *get_nfs_open_context(struct nfs_open_context *ctx); extern void put_nfs_open_context(struct nfs_open_context *ctx); extern struct nfs_open_context *nfs_find_open_context(struct inode *inode, struct rpc_cred *cred, int mode); -extern struct vfsmount *nfs_do_submount(const struct vfsmount *mnt_parent, - const struct dentry *dentry, - struct nfs_fh *fh, - struct nfs_fattr *fattr); -extern struct vfsmount *nfs_do_refmount(const struct vfsmount *mnt_parent, - struct dentry *dentry); /* linux/net/ipv4/ipconfig.c: trims ip addr off front of name, too. */ extern u32 root_nfs_parse_addr(char *name); /*__init*/ @@ -404,15 +392,6 @@ #endif /* - * linux/fs/nfs/namespace.c - */ -extern struct list_head nfs_automount_list; -extern struct inode_operations nfs_mountpoint_inode_operations; -extern struct inode_operations nfs_referral_inode_operations; -extern int nfs_mountpoint_expiry_timeout; -extern void nfs_release_automount_timer(void); - -/* * linux/fs/nfs/unlink.c */ extern int nfs_async_unlink(struct dentry *); --- linux-source-2.6.17-2.6.17.1.orig/include/linux/sunrpc/gss_spkm3.h +++ linux-source-2.6.17-2.6.17.1/include/linux/sunrpc/gss_spkm3.h @@ -12,27 +12,27 @@ #include struct spkm3_ctx { - struct xdr_netobj ctx_id; /* per message context id */ - int endtime; /* endtime of the context */ + struct xdr_netobj ctx_id; /* per message context id */ + int qop; /* negotiated qop */ struct xdr_netobj mech_used; unsigned int ret_flags ; - struct xdr_netobj conf_alg; - struct xdr_netobj derived_conf_key; - struct xdr_netobj intg_alg; - struct xdr_netobj derived_integ_key; + unsigned int req_flags ; + struct xdr_netobj share_key; + int conf_alg; + struct crypto_tfm* derived_conf_key; + int intg_alg; + struct crypto_tfm* derived_integ_key; + int keyestb_alg; /* alg used to get share_key */ + int owf_alg; /* one way function */ }; -/* OIDs declarations for K-ALG, I-ALG, C-ALG, and OWF-ALG */ -static const struct xdr_netobj dh_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x03\x01"}; -static const struct xdr_netobj hmac_md5_oid = { 8, "\x2B\x06\x01\x05\x05\x08\x01\x01"}; -static const struct xdr_netobj null_mac_oid = { 6, "\x2B\x06\x01\x05\x03\x03"}; -static const struct xdr_netobj md5_rsa_encryption_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x04"}; -static const struct xdr_netobj sha1_rsa_encryption_oid = {9, "\x2A\x86\x48\x86\xF7\x0D\x01\x01\x05"}; - -static const struct xdr_netobj cast5_cbc_oid = {9, "\x2A\x86\x48\x86\xF6\x7D\x07\x42\x0A"}; -static const struct xdr_netobj des_cbc_oid = {5, "\x2B\x0E\x03\x02\x07"}; - -static const struct xdr_netobj sha1_oid = {5, "\x2B\x0E\x03\x02\x1A"}; +/* from openssl/objects.h */ +/* XXX need SEAL_ALG_NONE */ +#define NID_md5 4 +#define NID_dhKeyAgreement 28 +#define NID_des_cbc 31 +#define NID_sha1 64 +#define NID_cast5_cbc 108 /* SPKM InnerContext Token types */ @@ -46,12 +46,11 @@ u32 spkm3_read_token(struct spkm3_ctx *ctx, struct xdr_netobj *read_token, struct xdr_buf *message_buffer, int toktype); #define CKSUMTYPE_RSA_MD5 0x0007 -#define CKSUMTYPE_HMAC_MD5 0x0008 -s32 make_spkm3_checksum(s32 cksumtype, struct xdr_netobj *key, char *header, int hdrlen, struct xdr_buf *body, +s32 make_checksum(s32 cksumtype, char *header, int hdrlen, struct xdr_buf *body, int body_offset, struct xdr_netobj *cksum); void asn1_bitstring_len(struct xdr_netobj *in, int *enclen, int *zerobits); -int decode_asn1_bitstring(struct xdr_netobj *out, char *in, int enclen, +int decode_asn1_bitstring(struct xdr_netobj *out, char *in, int enclen, int explen); void spkm3_mic_header(unsigned char **hdrbuf, unsigned int *hdrlen, unsigned char *ctxhdr, int elen, int zbit); --- linux-source-2.6.17-2.6.17.1.orig/include/linux/sunrpc/svc.h +++ linux-source-2.6.17-2.6.17.1/include/linux/sunrpc/svc.h @@ -159,9 +159,7 @@ * determine what device number * to report (real or virtual) */ - int rq_sendfile_ok; /* turned off in gss privacy - * to prevent encrypting page - * cache pages */ + wait_queue_head_t rq_wait; /* synchronization */ }; --- linux-source-2.6.17-2.6.17.1.orig/include/linux/sunrpc/xdr.h +++ linux-source-2.6.17-2.6.17.1/include/linux/sunrpc/xdr.h @@ -194,7 +194,6 @@ extern void xdr_init_decode(struct xdr_stream *xdr, struct xdr_buf *buf, uint32_t *p); extern uint32_t *xdr_inline_decode(struct xdr_stream *xdr, size_t nbytes); extern void xdr_read_pages(struct xdr_stream *xdr, unsigned int len); -extern void xdr_enter_page(struct xdr_stream *xdr, unsigned int len); #endif /* __KERNEL__ */ --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfs_xdr.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfs_xdr.h @@ -14,19 +14,11 @@ #define NFS_DEF_FILE_IO_SIZE (4096U) #define NFS_MIN_FILE_IO_SIZE (1024U) -struct nfs_fsid { - uint64_t major; - uint64_t minor; +struct nfs4_fsid { + __u64 major; + __u64 minor; }; -/* - * Helper for checking equality between 2 fsids. - */ -static inline int nfs_fsid_equal(const struct nfs_fsid *a, const struct nfs_fsid *b) -{ - return a->major == b->major && a->minor == b->minor; -} - struct nfs_fattr { unsigned short valid; /* which fields are valid */ __u64 pre_size; /* pre_op_attr.size */ @@ -48,7 +40,10 @@ } nfs3; } du; dev_t rdev; - struct nfs_fsid fsid; + union { + __u64 nfs3; /* also nfs2 */ + struct nfs4_fsid nfs4; + } fsid_u; __u64 fileid; struct timespec atime; struct timespec mtime; @@ -62,8 +57,8 @@ #define NFS_ATTR_WCC 0x0001 /* pre-op WCC data */ #define NFS_ATTR_FATTR 0x0002 /* post-op attributes */ #define NFS_ATTR_FATTR_V3 0x0004 /* NFSv3 attributes */ -#define NFS_ATTR_FATTR_V4 0x0008 /* NFSv4 change attribute */ -#define NFS_ATTR_FATTR_V4_REFERRAL 0x0010 /* NFSv4 referral */ +#define NFS_ATTR_FATTR_V4 0x0008 +#define NFS_ATTR_PRE_CHANGE 0x0010 /* * Info on the file system @@ -659,7 +654,7 @@ struct nfs4_setclientid { const nfs4_verifier * sc_verifier; /* request */ unsigned int sc_name_len; - char sc_name[48]; /* request */ + char sc_name[32]; /* request */ u32 sc_prog; /* request */ unsigned int sc_netid_len; char sc_netid[4]; /* request */ @@ -680,40 +675,6 @@ u32 has_symlinks; }; -struct nfs4_string { - unsigned int len; - char *data; -}; - -#define NFS4_PATHNAME_MAXCOMPONENTS 512 -struct nfs4_pathname { - unsigned int ncomponents; - struct nfs4_string components[NFS4_PATHNAME_MAXCOMPONENTS]; -}; - -#define NFS4_FS_LOCATION_MAXSERVERS 10 -struct nfs4_fs_location { - unsigned int nservers; - struct nfs4_string servers[NFS4_FS_LOCATION_MAXSERVERS]; - struct nfs4_pathname rootpath; -}; - -#define NFS4_FS_LOCATIONS_MAXENTRIES 10 -struct nfs4_fs_locations { - struct nfs_fattr fattr; - const struct nfs_server *server; - struct nfs4_pathname fs_path; - int nlocations; - struct nfs4_fs_location locations[NFS4_FS_LOCATIONS_MAXENTRIES]; -}; - -struct nfs4_fs_locations_arg { - const struct nfs_fh *dir_fh; - const struct qstr *name; - struct page *page; - const u32 *bitmask; -}; - #endif /* CONFIG_NFS_V4 */ struct nfs_page; @@ -734,7 +695,7 @@ #ifdef CONFIG_NFS_V4 unsigned long timestamp; /* For lease renewal */ #endif - struct page *page_array[NFS_PAGEVEC_SIZE]; + struct page *page_array[NFS_PAGEVEC_SIZE + 1]; }; struct nfs_write_data { @@ -752,7 +713,7 @@ #ifdef CONFIG_NFS_V4 unsigned long timestamp; /* For lease renewal */ #endif - struct page *page_array[NFS_PAGEVEC_SIZE]; + struct page *page_array[NFS_PAGEVEC_SIZE + 1]; }; struct nfs_access_entry; --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfs4.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfs4.h @@ -384,7 +384,6 @@ NFSPROC4_CLNT_DELEGRETURN, NFSPROC4_CLNT_GETACL, NFSPROC4_CLNT_SETACL, - NFSPROC4_CLNT_FS_LOCATIONS, }; #endif --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfsd/const.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfsd/const.h @@ -20,9 +20,9 @@ #define NFSSVC_MAXVERS 3 /* - * Maximum blocksize supported by daemon currently at 64K + * Maximum blocksize supported by daemon currently at 32K */ -#define NFSSVC_MAXBLKSIZE (64*1024) +#define NFSSVC_MAXBLKSIZE (32*1024) #ifdef __KERNEL__ --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfsd/export.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfsd/export.h @@ -45,33 +45,15 @@ #ifdef __KERNEL__ -/* - * FS Locations - */ -struct nfsd4_fs_location { - char *hosts; /* colon separated list of hosts */ - char *path; /* slash separated list of path components */ -}; - -struct nfsd4_fs_locations { - uint32_t locations_count; - struct nfsd4_fs_location *locations; -/* If we're not actually serving this data ourselves (only providing a - * list of replicas that do serve it) then we set "migrated": */ - int migrated; -}; - struct svc_export { struct cache_head h; struct auth_domain * ex_client; int ex_flags; struct vfsmount * ex_mnt; struct dentry * ex_dentry; - char * ex_path; uid_t ex_anon_uid; gid_t ex_anon_gid; int ex_fsid; - struct nfsd4_fs_locations ex_fslocs; }; /* an "export key" (expkey) maps a filehandlefragement to an --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfsd/stats.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfsd/stats.h @@ -9,8 +9,6 @@ #ifndef LINUX_NFSD_STATS_H #define LINUX_NFSD_STATS_H -#define NFS4_NUMOPS 37 - struct nfsd_stats { unsigned int rchits; /* repcache hits */ unsigned int rcmisses; /* repcache hits */ @@ -29,9 +27,6 @@ unsigned int ra_size; /* size of ra cache */ unsigned int ra_depth[11]; /* number of times ra entry was found that deep * in the cache (10percentiles). [10] = not found */ -#ifdef CONFIG_NFSD_V4 - unsigned int nfs4_opcount[NFS4_NUMOPS]; /* count of individual nfsv4 operations */ -#endif }; /* thread usage wraps very million seconds (approx one fortnight) */ --- linux-source-2.6.17-2.6.17.1.orig/include/linux/nfsd/nfsd.h +++ linux-source-2.6.17-2.6.17.1/include/linux/nfsd/nfsd.h @@ -210,7 +210,6 @@ #define nfserr_clid_inuse __constant_htonl(NFSERR_CLID_INUSE) #define nfserr_stale_clientid __constant_htonl(NFSERR_STALE_CLIENTID) #define nfserr_resource __constant_htonl(NFSERR_RESOURCE) -#define nfserr_moved __constant_htonl(NFSERR_MOVED) #define nfserr_nofilehandle __constant_htonl(NFSERR_NOFILEHANDLE) #define nfserr_minor_vers_mismatch __constant_htonl(NFSERR_MINOR_VERS_MISMATCH) #define nfserr_share_denied __constant_htonl(NFSERR_SHARE_DENIED) @@ -287,6 +286,7 @@ /* * The following attributes are currently not supported by the NFSv4 server: * ARCHIVE (deprecated anyway) + * FS_LOCATIONS (will be supported eventually) * HIDDEN (unlikely to be supported any time soon) * MIMETYPE (unlikely to be supported any time soon) * QUOTA_* (will be supported in a forthcoming patch) @@ -302,7 +302,7 @@ | FATTR4_WORD0_ACLSUPPORT | FATTR4_WORD0_CANSETTIME | FATTR4_WORD0_CASE_INSENSITIVE \ | FATTR4_WORD0_CASE_PRESERVING | FATTR4_WORD0_CHOWN_RESTRICTED \ | FATTR4_WORD0_FILEHANDLE | FATTR4_WORD0_FILEID | FATTR4_WORD0_FILES_AVAIL \ - | FATTR4_WORD0_FILES_FREE | FATTR4_WORD0_FILES_TOTAL | FATTR4_WORD0_FS_LOCATIONS | FATTR4_WORD0_HOMOGENEOUS \ + | FATTR4_WORD0_FILES_FREE | FATTR4_WORD0_FILES_TOTAL | FATTR4_WORD0_HOMOGENEOUS \ | FATTR4_WORD0_MAXFILESIZE | FATTR4_WORD0_MAXLINK | FATTR4_WORD0_MAXNAME \ | FATTR4_WORD0_MAXREAD | FATTR4_WORD0_MAXWRITE | FATTR4_WORD0_ACL) --- linux-source-2.6.17-2.6.17.1.orig/include/linux/lockd/lockd.h +++ linux-source-2.6.17-2.6.17.1/include/linux/lockd/lockd.h @@ -49,12 +49,11 @@ h_killed : 1, h_monitored : 1; wait_queue_head_t h_gracewait; /* wait while reclaiming */ - struct rw_semaphore h_rwsem; /* Reboot recovery lock */ u32 h_state; /* pseudo-state counter */ u32 h_nsmstate; /* true remote NSM state */ u32 h_pidcount; /* Pseudopids */ atomic_t h_count; /* reference count */ - struct mutex h_mutex; /* mutex for pmap binding */ + struct semaphore h_sema; /* mutex for pmap binding */ unsigned long h_nextrebind; /* next portmap call */ unsigned long h_expires; /* eligible for GC */ struct list_head h_lockowners; /* Lockowners for the client */ @@ -220,7 +219,6 @@ nlm_compare_locks(const struct file_lock *fl1, const struct file_lock *fl2) { return fl1->fl_pid == fl2->fl_pid - && fl1->fl_owner == fl2->fl_owner && fl1->fl_start == fl2->fl_start && fl1->fl_end == fl2->fl_end &&(fl1->fl_type == fl2->fl_type || fl2->fl_type == F_UNLCK); --- linux-source-2.6.17-2.6.17.1.orig/include/linux/pci_ids.h +++ linux-source-2.6.17-2.6.17.1/include/linux/pci_ids.h @@ -1128,9 +1128,11 @@ #define PCI_DEVICE_ID_NVIDIA_QUADRO4_900XGL 0x0258 #define PCI_DEVICE_ID_NVIDIA_QUADRO4_750XGL 0x0259 #define PCI_DEVICE_ID_NVIDIA_QUADRO4_700XGL 0x025B +#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SMBUS 0x0264 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_IDE 0x0265 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA 0x0266 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SATA2 0x0267 +#define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SMBUS 0x0368 #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_IDE 0x036E #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA 0x037E #define PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SATA2 0x037F --- linux-source-2.6.17-2.6.17.1.orig/arch/sparc64/boot/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/sparc64/boot/.gitignore @@ -0,0 +1,4 @@ +image +tftpboot.img +vmlinux.aout +piggyback --- linux-source-2.6.17-2.6.17.1.orig/arch/mips/boot/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/mips/boot/.gitignore @@ -0,0 +1,4 @@ +mkboot +elf2ecoff +zImage +zImage.tmp --- linux-source-2.6.17-2.6.17.1.orig/arch/i386/kernel/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/i386/kernel/.gitignore @@ -0,0 +1 @@ +vsyscall.lds --- linux-source-2.6.17-2.6.17.1.orig/arch/i386/boot/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/i386/boot/.gitignore @@ -0,0 +1,3 @@ +bootsect +bzImage +setup --- linux-source-2.6.17-2.6.17.1.orig/arch/i386/boot/tools/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/i386/boot/tools/.gitignore @@ -0,0 +1 @@ +build --- linux-source-2.6.17-2.6.17.1.orig/arch/powerpc/kernel/vdso64/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/powerpc/kernel/vdso64/.gitignore @@ -0,0 +1 @@ +vdso64.lds --- linux-source-2.6.17-2.6.17.1.orig/arch/powerpc/kernel/vdso32/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/powerpc/kernel/vdso32/.gitignore @@ -0,0 +1 @@ +vdso32.lds --- linux-source-2.6.17-2.6.17.1.orig/arch/powerpc/boot/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/powerpc/boot/.gitignore @@ -0,0 +1,20 @@ +addnote +infblock.c +infblock.h +infcodes.c +infcodes.h +inffast.c +inffast.h +inflate.c +inftrees.c +inftrees.h +infutil.c +infutil.h +kernel-vmlinux.strip.c +kernel-vmlinux.strip.gz +uImage +zImage +zImage.vmode +zconf.h +zlib.h +zutil.h --- linux-source-2.6.17-2.6.17.1.orig/arch/x86_64/boot/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/x86_64/boot/.gitignore @@ -0,0 +1,3 @@ +bootsect +bzImage +setup --- linux-source-2.6.17-2.6.17.1.orig/arch/x86_64/boot/tools/.gitignore +++ linux-source-2.6.17-2.6.17.1/arch/x86_64/boot/tools/.gitignore @@ -0,0 +1 @@ +build --- linux-source-2.6.17-2.6.17.1.orig/drivers/ieee1394/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/ieee1394/.gitignore @@ -0,0 +1 @@ +oui.c --- linux-source-2.6.17-2.6.17.1.orig/drivers/eisa/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/eisa/.gitignore @@ -0,0 +1 @@ +devlist.h --- linux-source-2.6.17-2.6.17.1.orig/drivers/usb/net/rt2570/rt2570sw.h +++ linux-source-2.6.17-2.6.17.1/drivers/usb/net/rt2570/rt2570sw.h @@ -133,6 +133,7 @@ { USB_DEVICE(0x14b2, 0x3c02)}, /* Conceptronic */ \ { USB_DEVICE(0x14f8, 0x2570)}, /* Eminent */ \ { USB_DEVICE(0x2001, 0x3c00)}, /* D-LINK */ \ + { USB_DEVICE(0x0eb0, 0x9020)}, /* Novatech NV-902W */ \ {0,} \ } --- linux-source-2.6.17-2.6.17.1.orig/drivers/usb/net/atmel/at76c503.c +++ linux-source-2.6.17-2.6.17.1/drivers/usb/net/atmel/at76c503.c @@ -2833,6 +2833,7 @@ goto end_startibss; } + netif_carrier_on(dev->netdev); netif_start_queue(dev->netdev); } end_startibss: @@ -2884,6 +2885,7 @@ memcpy(dev->bssid, bptr->bssid, ETH_ALEN); dev->channel = bptr->channel; iwevent_bss_connect(dev->netdev,bptr->bssid); + netif_carrier_on(dev->netdev); netif_start_queue(dev->netdev); /* just to be sure */ del_timer_sync(&dev->mgmt_timer); --- linux-source-2.6.17-2.6.17.1.orig/drivers/usb/input/hid-input.c +++ linux-source-2.6.17-2.6.17.1/drivers/usb/input/hid-input.c @@ -567,16 +567,14 @@ break; } - set_bit(usage->type, input->evbit); - - while (usage->code <= max && test_and_set_bit(usage->code, bit)) - usage->code = find_next_zero_bit(bit, max + 1, usage->code); - - if (usage->code > max) - goto ignore; - - if (((device->quirks & (HID_QUIRK_2WHEEL_POWERMOUSE)) && (usage->hid == 0x00010032))) - map_rel(REL_HWHEEL); + if (device->quirks & HID_QUIRK_MIGHTYMOUSE) { + if (usage->hid == HID_GD_Z) + map_rel(REL_HWHEEL); + else if (usage->code == BTN_1) + map_key(BTN_2); + else if (usage->code == BTN_2) + map_key(BTN_1); + } if ((device->quirks & (HID_QUIRK_2WHEEL_MOUSE_HACK_7 | HID_QUIRK_2WHEEL_MOUSE_HACK_5)) && (usage->type == EV_REL) && (usage->code == REL_WHEEL)) @@ -586,6 +584,15 @@ || ((device->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_7) && (usage->hid == 0x00090007))) goto ignore; + set_bit(usage->type, input->evbit); + + while (usage->code <= max && test_and_set_bit(usage->code, bit)) + usage->code = find_next_zero_bit(bit, max + 1, usage->code); + + if (usage->code > max) + goto ignore; + + if (usage->type == EV_ABS) { int a = field->logical_minimum; @@ -647,6 +654,11 @@ return; } + if ((hid->quirks & HID_QUIRK_INVERT_HWHEEL) && (usage->code == REL_HWHEEL)) { + input_event(input, usage->type, usage->code, -value); + return; + } + if ((hid->quirks & HID_QUIRK_2WHEEL_MOUSE_HACK_ON) && (usage->code == REL_WHEEL)) { input_event(input, usage->type, REL_HWHEEL, value); return; --- linux-source-2.6.17-2.6.17.1.orig/drivers/usb/input/hid-core.c +++ linux-source-2.6.17-2.6.17.1/drivers/usb/input/hid-core.c @@ -1567,7 +1567,7 @@ #define USB_DEVICE_ID_LD_MACHINETEST 0x2040 #define USB_VENDOR_ID_APPLE 0x05ac -#define USB_DEVICE_ID_APPLE_POWERMOUSE 0x0304 +#define USB_DEVICE_ID_APPLE_MIGHTYMOUSE 0x0304 #define USB_VENDOR_ID_CHERRY 0x046a #define USB_DEVICE_ID_CHERRY_CYMOTION 0x0023 @@ -1708,7 +1708,7 @@ { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_SILVERCREST, USB_DEVICE_ID_SILVERCREST_KB, HID_QUIRK_NOGET }, - { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_POWERMOUSE, HID_QUIRK_2WHEEL_POWERMOUSE }, + { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE, HID_QUIRK_MIGHTYMOUSE | HID_QUIRK_INVERT_HWHEEL }, { USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU, HID_QUIRK_2WHEEL_MOUSE_HACK_7 }, { USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_MOUSE, HID_QUIRK_2WHEEL_MOUSE_HACK_5 }, --- linux-source-2.6.17-2.6.17.1.orig/drivers/usb/input/hid.h +++ linux-source-2.6.17-2.6.17.1/drivers/usb/input/hid.h @@ -254,11 +254,12 @@ #define HID_QUIRK_2WHEEL_MOUSE_HACK_7 0x00000080 #define HID_QUIRK_2WHEEL_MOUSE_HACK_5 0x00000100 #define HID_QUIRK_2WHEEL_MOUSE_HACK_ON 0x00000200 -#define HID_QUIRK_2WHEEL_POWERMOUSE 0x00000400 +#define HID_QUIRK_MIGHTYMOUSE 0x00000400 #define HID_QUIRK_CYMOTION 0x00000800 #define HID_QUIRK_POWERBOOK_HAS_FN 0x00001000 #define HID_QUIRK_POWERBOOK_FN_ON 0x00002000 #define HID_QUIRK_NO_CLEAR_HALT 0x00004000 +#define HID_QUIRK_INVERT_HWHEEL 0x00004000 /* * This is the global environment of the parser. This information is --- linux-source-2.6.17-2.6.17.1.orig/drivers/usb/storage/unusual_devs.h +++ linux-source-2.6.17-2.6.17.1/drivers/usb/storage/unusual_devs.h @@ -140,6 +140,13 @@ US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_SINGLE_LUN ), +/* Reported by Jiri Slaby */ +UNUSUAL_DEV( 0x0421, 0x0446, 0x0100, 0x0100, + "Nokia", + "N80", + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), + #ifdef CONFIG_USB_STORAGE_DPCM UNUSUAL_DEV( 0x0436, 0x0005, 0x0100, 0x0100, "Microtech", @@ -1199,6 +1206,12 @@ US_SC_DEVICE, US_PR_DEVICE, NULL, US_FL_NO_WP_DETECT ), +UNUSUAL_DEV( 0x0fce, 0xe030, 0x0000, 0x0000, + "Sony Ericsson", + "P990i", + US_SC_DEVICE, US_PR_DEVICE, NULL, + US_FL_FIX_CAPACITY ), + /* Reported by Kevin Cernekee * Tested on hardware version 1.10. * Entry is needed only for the initializer function override. --- linux-source-2.6.17-2.6.17.1.orig/drivers/tc/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/tc/.gitignore @@ -0,0 +1 @@ +lk201-map.c --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/forcedeth.c +++ linux-source-2.6.17-2.6.17.1/drivers/net/forcedeth.c @@ -107,6 +107,11 @@ * 0.52: 20 Jan 2006: Add MSI/MSIX support. * 0.53: 19 Mar 2006: Fix init from low power mode and add hw reset. * 0.54: 21 Mar 2006: Fix spin locks for multi irqs and cleanup. + * 0.55: 22 Mar 2006: Add flow control (pause frame). + * 0.56: 22 Mar 2006: Additional ethtool config and moduleparam support. + * 0.57: 14 May 2006: Mac address set in probe/remove and order corrections. + * 0.58: 30 Oct 2006: Added support for sideband management unit. + * 0.59: 30 Oct 2006: Added support for recoverable error. * * Known bugs: * We suspect that on some hardware no TX done interrupts are generated. @@ -118,7 +123,12 @@ * DEV_NEED_TIMERIRQ will not harm you on sane hardware, only generating a few * superfluous timer interrupts from the nic. */ -#define FORCEDETH_VERSION "0.54" +#ifdef CONFIG_FORCEDETH_NAPI +#define DRIVERNAPI "-NAPI" +#else +#define DRIVERNAPI +#endif +#define FORCEDETH_VERSION "0.59" #define DRV_NAME "forcedeth" #include @@ -143,6 +153,8 @@ #include #include +#include "netdriver_compat.h" + #if 0 #define dprintk printk #else @@ -163,11 +175,15 @@ #define DEV_HAS_MSI 0x0040 /* device supports MSI */ #define DEV_HAS_MSI_X 0x0080 /* device supports MSI-X */ #define DEV_HAS_POWER_CNTRL 0x0100 /* device supports power savings */ +#define DEV_HAS_PAUSEFRAME_TX 0x0200 /* device supports tx pause frames */ +#define DEV_HAS_STATISTICS 0x0400 /* device supports hw statistics */ +#define DEV_HAS_TEST_EXTENDED 0x0800 /* device supports extended diagnostic test */ +#define DEV_HAS_MGMT_UNIT 0x1000 /* device supports management unit */ enum { NvRegIrqStatus = 0x000, #define NVREG_IRQSTAT_MIIEVENT 0x040 -#define NVREG_IRQSTAT_MASK 0x1ff +#define NVREG_IRQSTAT_MASK 0x81ff NvRegIrqMask = 0x004, #define NVREG_IRQ_RX_ERROR 0x0001 #define NVREG_IRQ_RX 0x0002 @@ -178,15 +194,16 @@ #define NVREG_IRQ_LINK 0x0040 #define NVREG_IRQ_RX_FORCED 0x0080 #define NVREG_IRQ_TX_FORCED 0x0100 +#define NVREG_IRQ_RECOVER_ERROR 0x8000 #define NVREG_IRQMASK_THROUGHPUT 0x00df #define NVREG_IRQMASK_CPU 0x0040 #define NVREG_IRQ_TX_ALL (NVREG_IRQ_TX_ERR|NVREG_IRQ_TX_OK|NVREG_IRQ_TX_FORCED) #define NVREG_IRQ_RX_ALL (NVREG_IRQ_RX_ERROR|NVREG_IRQ_RX|NVREG_IRQ_RX_NOBUF|NVREG_IRQ_RX_FORCED) -#define NVREG_IRQ_OTHER (NVREG_IRQ_TIMER|NVREG_IRQ_LINK) +#define NVREG_IRQ_OTHER (NVREG_IRQ_TIMER|NVREG_IRQ_LINK|NVREG_IRQ_RECOVER_ERROR) #define NVREG_IRQ_UNKNOWN (~(NVREG_IRQ_RX_ERROR|NVREG_IRQ_RX|NVREG_IRQ_RX_NOBUF|NVREG_IRQ_TX_ERR| \ NVREG_IRQ_TX_OK|NVREG_IRQ_TIMER|NVREG_IRQ_LINK|NVREG_IRQ_RX_FORCED| \ - NVREG_IRQ_TX_FORCED)) + NVREG_IRQ_TX_FORCED|NVREG_IRQ_RECOVER_ERROR)) NvRegUnknownSetupReg6 = 0x008, #define NVREG_UNKSETUP6_VAL 3 @@ -203,6 +220,7 @@ NvRegMSIIrqMask = 0x030, #define NVREG_MSI_VECTOR_0_ENABLED 0x01 NvRegMisc1 = 0x080, +#define NVREG_MISC1_PAUSE_TX 0x01 #define NVREG_MISC1_HD 0x02 #define NVREG_MISC1_FORCE 0x3b0f3c @@ -210,13 +228,24 @@ #define NVREG_MAC_RESET_ASSERT 0x0F3 NvRegTransmitterControl = 0x084, #define NVREG_XMITCTL_START 0x01 +#define NVREG_XMITCTL_MGMT_ST 0x40000000 +#define NVREG_XMITCTL_SYNC_MASK 0x000f0000 +#define NVREG_XMITCTL_SYNC_NOT_READY 0x0 +#define NVREG_XMITCTL_SYNC_PHY_INIT 0x00040000 +#define NVREG_XMITCTL_MGMT_SEMA_MASK 0x00000f00 +#define NVREG_XMITCTL_MGMT_SEMA_FREE 0x0 +#define NVREG_XMITCTL_HOST_SEMA_MASK 0x0000f000 +#define NVREG_XMITCTL_HOST_SEMA_ACQ 0x0000f000 +#define NVREG_XMITCTL_HOST_LOADED 0x00004000 NvRegTransmitterStatus = 0x088, #define NVREG_XMITSTAT_BUSY 0x01 NvRegPacketFilterFlags = 0x8c, -#define NVREG_PFF_ALWAYS 0x7F0008 +#define NVREG_PFF_PAUSE_RX 0x08 +#define NVREG_PFF_ALWAYS 0x7F0000 #define NVREG_PFF_PROMISC 0x80 #define NVREG_PFF_MYADDR 0x20 +#define NVREG_PFF_LOOPBACK 0x10 NvRegOffloadConfig = 0x90, #define NVREG_OFFLOAD_HOMEPHY 0x601 @@ -232,10 +261,12 @@ #define NVREG_RNDSEED_FORCE2 0x2d00 #define NVREG_RNDSEED_FORCE3 0x7400 - NvRegUnknownSetupReg1 = 0xA0, -#define NVREG_UNKSETUP1_VAL 0x16070f - NvRegUnknownSetupReg2 = 0xA4, -#define NVREG_UNKSETUP2_VAL 0x16 + NvRegTxDeferral = 0xA0, +#define NVREG_TX_DEFERRAL_DEFAULT 0x15050f +#define NVREG_TX_DEFERRAL_RGMII_10_100 0x16070f +#define NVREG_TX_DEFERRAL_RGMII_1000 0x14050f + NvRegRxDeferral = 0xA4, +#define NVREG_RX_DEFERRAL_DEFAULT 0x16 NvRegMacAddrA = 0xA8, NvRegMacAddrB = 0xAC, NvRegMulticastAddrA = 0xB0, @@ -252,7 +283,8 @@ NvRegRingSizes = 0x108, #define NVREG_RINGSZ_TXSHIFT 0 #define NVREG_RINGSZ_RXSHIFT 16 - NvRegUnknownTransmitterReg = 0x10c, + NvRegTransmitPoll = 0x10c, +#define NVREG_TRANSMITPOLL_MAC_ADDR_REV 0x00008000 NvRegLinkSpeed = 0x110, #define NVREG_LINKSPEED_FORCE 0x10000 #define NVREG_LINKSPEED_10 1000 @@ -261,8 +293,10 @@ #define NVREG_LINKSPEED_MASK (0xFFF) NvRegUnknownSetupReg5 = 0x130, #define NVREG_UNKSETUP5_BIT31 (1<<31) - NvRegUnknownSetupReg3 = 0x13c, -#define NVREG_UNKSETUP3_VAL1 0x200010 + NvRegTxWatermark = 0x13c, +#define NVREG_TX_WM_DESC1_DEFAULT 0x0200010 +#define NVREG_TX_WM_DESC2_3_DEFAULT 0x1e08000 +#define NVREG_TX_WM_DESC2_3_1000 0xfe08000 NvRegTxRxControl = 0x144, #define NVREG_TXRXCTL_KICK 0x0001 #define NVREG_TXRXCTL_BIT1 0x0002 @@ -277,13 +311,16 @@ #define NVREG_TXRXCTL_VLANINS 0x00080 NvRegTxRingPhysAddrHigh = 0x148, NvRegRxRingPhysAddrHigh = 0x14C, + NvRegTxPauseFrame = 0x170, +#define NVREG_TX_PAUSEFRAME_DISABLE 0x1ff0080 +#define NVREG_TX_PAUSEFRAME_ENABLE 0x0c00030 NvRegMIIStatus = 0x180, #define NVREG_MIISTAT_ERROR 0x0001 #define NVREG_MIISTAT_LINKCHANGE 0x0008 #define NVREG_MIISTAT_MASK 0x000f #define NVREG_MIISTAT_MASK2 0x000f - NvRegUnknownSetupReg4 = 0x184, -#define NVREG_UNKSETUP4_VAL 8 + NvRegMIIMask = 0x184, +#define NVREG_MII_LINKCHANGE 0x0008 NvRegAdapterControl = 0x188, #define NVREG_ADAPTCTL_START 0x02 @@ -326,6 +363,33 @@ #define NVREG_POWERSTATE_D1 0x0001 #define NVREG_POWERSTATE_D2 0x0002 #define NVREG_POWERSTATE_D3 0x0003 + NvRegTxCnt = 0x280, + NvRegTxZeroReXmt = 0x284, + NvRegTxOneReXmt = 0x288, + NvRegTxManyReXmt = 0x28c, + NvRegTxLateCol = 0x290, + NvRegTxUnderflow = 0x294, + NvRegTxLossCarrier = 0x298, + NvRegTxExcessDef = 0x29c, + NvRegTxRetryErr = 0x2a0, + NvRegRxFrameErr = 0x2a4, + NvRegRxExtraByte = 0x2a8, + NvRegRxLateCol = 0x2ac, + NvRegRxRunt = 0x2b0, + NvRegRxFrameTooLong = 0x2b4, + NvRegRxOverflow = 0x2b8, + NvRegRxFCSErr = 0x2bc, + NvRegRxFrameAlignErr = 0x2c0, + NvRegRxLenErr = 0x2c4, + NvRegRxUnicast = 0x2c8, + NvRegRxMulticast = 0x2cc, + NvRegRxBroadcast = 0x2d0, + NvRegTxDef = 0x2d4, + NvRegTxFrame = 0x2d8, + NvRegRxCnt = 0x2dc, + NvRegTxPause = 0x2e0, + NvRegRxPause = 0x2e4, + NvRegRxDropFrame = 0x2e8, NvRegVlanControl = 0x300, #define NVREG_VLANCONTROL_ENABLE 0x2000 NvRegMSIXMap0 = 0x3e0, @@ -339,21 +403,21 @@ /* Big endian: should work, but is untested */ struct ring_desc { - u32 PacketBuffer; - u32 FlagLen; + __le32 buf; + __le32 flaglen; }; struct ring_desc_ex { - u32 PacketBufferHigh; - u32 PacketBufferLow; - u32 TxVlan; - u32 FlagLen; + __le32 bufhigh; + __le32 buflow; + __le32 txvlan; + __le32 flaglen; }; -typedef union _ring_type { +union ring_type { struct ring_desc* orig; struct ring_desc_ex* ex; -} ring_type; +}; #define FLAG_MASK_V1 0xffff0000 #define FLAG_MASK_V2 0xffffc000 @@ -449,16 +513,18 @@ /* General driver defaults */ #define NV_WATCHDOG_TIMEO (5*HZ) -#define RX_RING 128 -#define TX_RING 256 -/* - * If your nic mysteriously hangs then try to reduce the limits - * to 1/0: It might be required to set NV_TX_LASTPACKET in the - * last valid ring entry. But this would be impossible to - * implement - probably a disassembly error. +#define RX_RING_DEFAULT 128 +#define TX_RING_DEFAULT 256 +#define RX_RING_MIN 128 +#define TX_RING_MIN 64 +#define RING_MAX_DESC_VER_1 1024 +#define RING_MAX_DESC_VER_2_3 16384 +/* + * Difference between the get and put pointers for the tx ring. + * This is used to throttle the amount of data outstanding in the + * tx ring. */ -#define TX_LIMIT_STOP 255 -#define TX_LIMIT_START 254 +#define TX_LIMIT_DIFFERENCE 1 /* rx/tx mac addr + type + vlan + align + slack*/ #define NV_RX_HEADERS (64) @@ -472,8 +538,9 @@ #define OOM_REFILL (1+HZ/20) #define POLL_WAIT (1+HZ/100) #define LINK_TIMEOUT (3*HZ) +#define STATS_INTERVAL (10*HZ) -/* +/* * desc_ver values: * The nic supports three different descriptor types: * - DESC_VER_1: Original @@ -491,6 +558,9 @@ #define PHYID1_OUI_SHFT 6 #define PHYID2_OUI_MASK 0xfc00 #define PHYID2_OUI_SHFT 10 +#define PHYID2_MODEL_MASK 0x03f0 +#define PHY_MODEL_MARVELL_E3016 0x220 +#define PHY_MARVELL_E3016_INITMASK 0x0300 #define PHY_INIT1 0x0f000 #define PHY_INIT2 0x0e00 #define PHY_INIT3 0x01000 @@ -506,13 +576,13 @@ #define PHY_1000 0x2 #define PHY_HALF 0x100 -/* FIXME: MII defines that should be added to */ -#define MII_1000BT_CR 0x09 -#define MII_1000BT_SR 0x0a -#define ADVERTISE_1000FULL 0x0200 -#define ADVERTISE_1000HALF 0x0100 -#define LPA_1000FULL 0x0800 -#define LPA_1000HALF 0x0400 +#define NV_PAUSEFRAME_RX_CAPABLE 0x0001 +#define NV_PAUSEFRAME_TX_CAPABLE 0x0002 +#define NV_PAUSEFRAME_RX_ENABLE 0x0004 +#define NV_PAUSEFRAME_TX_ENABLE 0x0008 +#define NV_PAUSEFRAME_RX_REQ 0x0010 +#define NV_PAUSEFRAME_TX_REQ 0x0020 +#define NV_PAUSEFRAME_AUTONEG 0x0040 /* MSI/MSI-X defines */ #define NV_MSI_X_MAX_VECTORS 8 @@ -527,15 +597,110 @@ #define NV_MSI_X_VECTOR_TX 0x1 #define NV_MSI_X_VECTOR_OTHER 0x2 +/* statistics */ +struct nv_ethtool_str { + char name[ETH_GSTRING_LEN]; +}; + +static const struct nv_ethtool_str nv_estats_str[] = { + { "tx_bytes" }, + { "tx_zero_rexmt" }, + { "tx_one_rexmt" }, + { "tx_many_rexmt" }, + { "tx_late_collision" }, + { "tx_fifo_errors" }, + { "tx_carrier_errors" }, + { "tx_excess_deferral" }, + { "tx_retry_error" }, + { "tx_deferral" }, + { "tx_packets" }, + { "tx_pause" }, + { "rx_frame_error" }, + { "rx_extra_byte" }, + { "rx_late_collision" }, + { "rx_runt" }, + { "rx_frame_too_long" }, + { "rx_over_errors" }, + { "rx_crc_errors" }, + { "rx_frame_align_error" }, + { "rx_length_error" }, + { "rx_unicast" }, + { "rx_multicast" }, + { "rx_broadcast" }, + { "rx_bytes" }, + { "rx_pause" }, + { "rx_drop_frame" }, + { "rx_packets" }, + { "rx_errors_total" } +}; + +struct nv_ethtool_stats { + u64 tx_bytes; + u64 tx_zero_rexmt; + u64 tx_one_rexmt; + u64 tx_many_rexmt; + u64 tx_late_collision; + u64 tx_fifo_errors; + u64 tx_carrier_errors; + u64 tx_excess_deferral; + u64 tx_retry_error; + u64 tx_deferral; + u64 tx_packets; + u64 tx_pause; + u64 rx_frame_error; + u64 rx_extra_byte; + u64 rx_late_collision; + u64 rx_runt; + u64 rx_frame_too_long; + u64 rx_over_errors; + u64 rx_crc_errors; + u64 rx_frame_align_error; + u64 rx_length_error; + u64 rx_unicast; + u64 rx_multicast; + u64 rx_broadcast; + u64 rx_bytes; + u64 rx_pause; + u64 rx_drop_frame; + u64 rx_packets; + u64 rx_errors_total; +}; + +/* diagnostics */ +#define NV_TEST_COUNT_BASE 3 +#define NV_TEST_COUNT_EXTENDED 4 + +static const struct nv_ethtool_str nv_etests_str[] = { + { "link (online/offline)" }, + { "register (offline) " }, + { "interrupt (offline) " }, + { "loopback (offline) " } +}; + +struct register_test { + __le32 reg; + __le32 mask; +}; + +static const struct register_test nv_registers_test[] = { + { NvRegUnknownSetupReg6, 0x01 }, + { NvRegMisc1, 0x03c }, + { NvRegOffloadConfig, 0x03ff }, + { NvRegMulticastAddrA, 0xffffffff }, + { NvRegTxWatermark, 0x0ff }, + { NvRegWakeUpFlags, 0x07777 }, + { 0,0 } +}; + /* * SMP locking: * All hardware access under dev->priv->lock, except the performance * critical parts: * - rx is (pseudo-) lockless: it relies on the single-threading provided * by the arch code for interrupts. - * - tx setup is lockless: it relies on dev->xmit_lock. Actual submission + * - tx setup is lockless: it relies on netif_tx_lock. Actual submission * needs dev->priv->lock :-( - * - set_multicast_list: preparation lockless, relies on dev->xmit_lock. + * - set_multicast_list: preparation lockless, relies on netif_tx_lock. */ /* in dev: base, irq */ @@ -545,6 +710,7 @@ /* General data: * Locking: spin_lock(&np->lock); */ struct net_device_stats stats; + struct nv_ethtool_stats estats; int in_shutdown; u32 linkspeed; int duplex; @@ -553,7 +719,10 @@ int phyaddr; int wolenabled; unsigned int phy_oui; + unsigned int phy_model; u16 gigabit; + int intr_test; + int recover_error; /* General data: RO fields */ dma_addr_t ring_addr; @@ -565,21 +734,25 @@ u32 vlanctl_bits; u32 driver_data; u32 register_size; + int rx_csum; + u32 mac_in_use; void __iomem *base; /* rx specific fields. * Locking: Within irq hander or disable_irq+spin_lock(&np->lock); */ - ring_type rx_ring; + union ring_type rx_ring; unsigned int cur_rx, refill_rx; - struct sk_buff *rx_skbuff[RX_RING]; - dma_addr_t rx_dma[RX_RING]; + struct sk_buff **rx_skbuff; + dma_addr_t *rx_dma; unsigned int rx_buf_sz; unsigned int pkt_limit; struct timer_list oom_kick; struct timer_list nic_poll; + struct timer_list stats_poll; u32 nic_poll_irq; + int rx_ring_size; /* media detection workaround. * Locking: Within irq hander or disable_irq+spin_lock(&np->lock); @@ -589,12 +762,15 @@ /* * tx specific fields. */ - ring_type tx_ring; + union ring_type tx_ring; unsigned int next_tx, nic_tx; - struct sk_buff *tx_skbuff[TX_RING]; - dma_addr_t tx_dma[TX_RING]; - unsigned int tx_dma_len[TX_RING]; + struct sk_buff **tx_skbuff; + dma_addr_t *tx_dma; + unsigned int *tx_dma_len; u32 tx_flags; + int tx_ring_size; + int tx_limit_start; + int tx_limit_stop; /* vlan fields */ struct vlan_group *vlangrp; @@ -602,6 +778,9 @@ /* msi/msi-x fields */ u32 msi_flags; struct msix_entry msi_x_entry[NV_MSI_X_MAX_VECTORS]; + + /* flow control */ + u32 pause_flags; }; /* @@ -612,12 +791,14 @@ /* * Optimization can be either throuput mode or cpu mode - * + * * Throughput Mode: Every tx and rx packet will generate an interrupt. * CPU Mode: Interrupts are controlled by a timer. */ -#define NV_OPTIMIZATION_MODE_THROUGHPUT 0 -#define NV_OPTIMIZATION_MODE_CPU 1 +enum { + NV_OPTIMIZATION_MODE_THROUGHPUT, + NV_OPTIMIZATION_MODE_CPU +}; static int optimization_mode = NV_OPTIMIZATION_MODE_THROUGHPUT; /* @@ -630,14 +811,31 @@ static int poll_interval = -1; /* - * Disable MSI interrupts + * MSI interrupts + */ +enum { + NV_MSI_INT_DISABLED, + NV_MSI_INT_ENABLED +}; +static int msi = NV_MSI_INT_ENABLED; + +/* + * MSIX interrupts */ -static int disable_msi = 0; +enum { + NV_MSIX_INT_DISABLED, + NV_MSIX_INT_ENABLED +}; +static int msix = NV_MSIX_INT_ENABLED; /* - * Disable MSIX interrupts + * DMA 64bit */ -static int disable_msix = 0; +enum { + NV_DMA_64BIT_DISABLED, + NV_DMA_64BIT_ENABLED +}; +static int dma_64bit = NV_DMA_64BIT_ENABLED; static inline struct fe_priv *get_nvpriv(struct net_device *dev) { @@ -657,13 +855,13 @@ static inline u32 nv_descr_getlength(struct ring_desc *prd, u32 v) { - return le32_to_cpu(prd->FlagLen) + return le32_to_cpu(prd->flaglen) & ((v == DESC_VER_1) ? LEN_MASK_V1 : LEN_MASK_V2); } static inline u32 nv_descr_getlength_ex(struct ring_desc_ex *prd, u32 v) { - return le32_to_cpu(prd->FlagLen) & LEN_MASK_V2; + return le32_to_cpu(prd->flaglen) & LEN_MASK_V2; } static int reg_delay(struct net_device *dev, int offset, u32 mask, u32 target, @@ -697,7 +895,7 @@ writel((u32) cpu_to_le64(np->ring_addr), base + NvRegRxRingPhysAddr); } if (rxtx_flags & NV_SETUP_TX_RING) { - writel((u32) cpu_to_le64(np->ring_addr + RX_RING*sizeof(struct ring_desc)), base + NvRegTxRingPhysAddr); + writel((u32) cpu_to_le64(np->ring_addr + np->rx_ring_size*sizeof(struct ring_desc)), base + NvRegTxRingPhysAddr); } } else { if (rxtx_flags & NV_SETUP_RX_RING) { @@ -705,12 +903,37 @@ writel((u32) (cpu_to_le64(np->ring_addr) >> 32), base + NvRegRxRingPhysAddrHigh); } if (rxtx_flags & NV_SETUP_TX_RING) { - writel((u32) cpu_to_le64(np->ring_addr + RX_RING*sizeof(struct ring_desc_ex)), base + NvRegTxRingPhysAddr); - writel((u32) (cpu_to_le64(np->ring_addr + RX_RING*sizeof(struct ring_desc_ex)) >> 32), base + NvRegTxRingPhysAddrHigh); + writel((u32) cpu_to_le64(np->ring_addr + np->rx_ring_size*sizeof(struct ring_desc_ex)), base + NvRegTxRingPhysAddr); + writel((u32) (cpu_to_le64(np->ring_addr + np->rx_ring_size*sizeof(struct ring_desc_ex)) >> 32), base + NvRegTxRingPhysAddrHigh); } } } +static void free_rings(struct net_device *dev) +{ + struct fe_priv *np = get_nvpriv(dev); + + if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { + if (np->rx_ring.orig) + pci_free_consistent(np->pci_dev, sizeof(struct ring_desc) * (np->rx_ring_size + np->tx_ring_size), + np->rx_ring.orig, np->ring_addr); + } else { + if (np->rx_ring.ex) + pci_free_consistent(np->pci_dev, sizeof(struct ring_desc_ex) * (np->rx_ring_size + np->tx_ring_size), + np->rx_ring.ex, np->ring_addr); + } + if (np->rx_skbuff) + kfree(np->rx_skbuff); + if (np->rx_dma) + kfree(np->rx_dma); + if (np->tx_skbuff) + kfree(np->tx_skbuff); + if (np->tx_dma) + kfree(np->tx_dma); + if (np->tx_dma_len) + kfree(np->tx_dma_len); +} + static int using_multi_irqs(struct net_device *dev) { struct fe_priv *np = get_nvpriv(dev); @@ -826,14 +1049,13 @@ return retval; } -static int phy_reset(struct net_device *dev) +static int phy_reset(struct net_device *dev, u32 bmcr_setup) { struct fe_priv *np = netdev_priv(dev); u32 miicontrol; unsigned int tries = 0; - miicontrol = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); - miicontrol |= BMCR_RESET; + miicontrol = BMCR_RESET | bmcr_setup; if (mii_rw(dev, np->phyaddr, MII_BMCR, miicontrol)) { return -1; } @@ -858,9 +1080,19 @@ u8 __iomem *base = get_hwbase(dev); u32 phyinterface, phy_reserved, mii_status, mii_control, mii_control_1000,reg; + /* phy errata for E3016 phy */ + if (np->phy_model == PHY_MODEL_MARVELL_E3016) { + reg = mii_rw(dev, np->phyaddr, MII_NCONFIG, MII_READ); + reg &= ~PHY_MARVELL_E3016_INITMASK; + if (mii_rw(dev, np->phyaddr, MII_NCONFIG, reg)) { + printk(KERN_INFO "%s: phy write to errata reg failed.\n", pci_name(np->pci_dev)); + return PHY_ERROR; + } + } + /* set advertise register */ reg = mii_rw(dev, np->phyaddr, MII_ADVERTISE, MII_READ); - reg |= (ADVERTISE_10HALF|ADVERTISE_10FULL|ADVERTISE_100HALF|ADVERTISE_100FULL|0x800|0x400); + reg |= (ADVERTISE_10HALF|ADVERTISE_10FULL|ADVERTISE_100HALF|ADVERTISE_100FULL|ADVERTISE_PAUSE_ASYM|ADVERTISE_PAUSE_CAP); if (mii_rw(dev, np->phyaddr, MII_ADVERTISE, reg)) { printk(KERN_INFO "%s: phy write to advertise failed.\n", pci_name(np->pci_dev)); return PHY_ERROR; @@ -873,14 +1105,14 @@ mii_status = mii_rw(dev, np->phyaddr, MII_BMSR, MII_READ); if (mii_status & PHY_GIGABIT) { np->gigabit = PHY_GIGABIT; - mii_control_1000 = mii_rw(dev, np->phyaddr, MII_1000BT_CR, MII_READ); + mii_control_1000 = mii_rw(dev, np->phyaddr, MII_CTRL1000, MII_READ); mii_control_1000 &= ~ADVERTISE_1000HALF; if (phyinterface & PHY_RGMII) mii_control_1000 |= ADVERTISE_1000FULL; else mii_control_1000 &= ~ADVERTISE_1000FULL; - if (mii_rw(dev, np->phyaddr, MII_1000BT_CR, mii_control_1000)) { + if (mii_rw(dev, np->phyaddr, MII_CTRL1000, mii_control_1000)) { printk(KERN_INFO "%s: phy init failed.\n", pci_name(np->pci_dev)); return PHY_ERROR; } @@ -888,8 +1120,13 @@ else np->gigabit = 0; - /* reset the phy */ - if (phy_reset(dev)) { + mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); + mii_control |= BMCR_ANENABLE; + + /* reset the phy + * (certain phys need bmcr to be setup with reset) + */ + if (phy_reset(dev, mii_control)) { printk(KERN_INFO "%s: phy reset failed\n", pci_name(np->pci_dev)); return PHY_ERROR; } @@ -918,6 +1155,8 @@ return PHY_ERROR; } } + /* some phys clear out pause advertisment on reset, set it back */ + mii_rw(dev, np->phyaddr, MII_ADVERTISE, reg); /* restart auto negotiation */ mii_control = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); @@ -982,7 +1221,7 @@ KERN_INFO "nv_stop_tx: TransmitterStatus remained busy"); udelay(NV_TXSTOP_DELAY2); - writel(0, base + NvRegUnknownTransmitterReg); + writel(readl(base + NvRegTransmitPoll) & NVREG_TRANSMITPOLL_MAC_ADDR_REV, base + NvRegTransmitPoll); } static void nv_txrx_reset(struct net_device *dev) @@ -1047,7 +1286,7 @@ while (np->cur_rx != refill_rx) { struct sk_buff *skb; - nr = refill_rx % RX_RING; + nr = refill_rx % np->rx_ring_size; if (np->rx_skbuff[nr] == NULL) { skb = dev_alloc_skb(np->rx_buf_sz + NV_RX_ALLOC_PAD); @@ -1062,25 +1301,35 @@ np->rx_dma[nr] = pci_map_single(np->pci_dev, skb->data, skb->end-skb->data, PCI_DMA_FROMDEVICE); if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { - np->rx_ring.orig[nr].PacketBuffer = cpu_to_le32(np->rx_dma[nr]); + np->rx_ring.orig[nr].buf = cpu_to_le32(np->rx_dma[nr]); wmb(); - np->rx_ring.orig[nr].FlagLen = cpu_to_le32(np->rx_buf_sz | NV_RX_AVAIL); + np->rx_ring.orig[nr].flaglen = cpu_to_le32(np->rx_buf_sz | NV_RX_AVAIL); } else { - np->rx_ring.ex[nr].PacketBufferHigh = cpu_to_le64(np->rx_dma[nr]) >> 32; - np->rx_ring.ex[nr].PacketBufferLow = cpu_to_le64(np->rx_dma[nr]) & 0x0FFFFFFFF; + np->rx_ring.ex[nr].bufhigh = cpu_to_le64(np->rx_dma[nr]) >> 32; + np->rx_ring.ex[nr].buflow = cpu_to_le64(np->rx_dma[nr]) & 0x0FFFFFFFF; wmb(); - np->rx_ring.ex[nr].FlagLen = cpu_to_le32(np->rx_buf_sz | NV_RX2_AVAIL); + np->rx_ring.ex[nr].flaglen = cpu_to_le32(np->rx_buf_sz | NV_RX2_AVAIL); } dprintk(KERN_DEBUG "%s: nv_alloc_rx: Packet %d marked as Available\n", dev->name, refill_rx); refill_rx++; } np->refill_rx = refill_rx; - if (np->cur_rx - refill_rx == RX_RING) + if (np->cur_rx - refill_rx == np->rx_ring_size) return 1; return 0; } +/* If rx bufs are exhausted called after 50ms to attempt to refresh */ +#ifdef CONFIG_FORCEDETH_NAPI +static void nv_do_rx_refill(unsigned long data) +{ + struct net_device *dev = (struct net_device *) data; + + /* Just reschedule NAPI rx processing */ + netif_rx_schedule(dev); +} +#else static void nv_do_rx_refill(unsigned long data) { struct net_device *dev = (struct net_device *) data; @@ -1109,19 +1358,20 @@ enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); } } +#endif -static void nv_init_rx(struct net_device *dev) +static void nv_init_rx(struct net_device *dev) { struct fe_priv *np = netdev_priv(dev); int i; - np->cur_rx = RX_RING; + np->cur_rx = np->rx_ring_size; np->refill_rx = 0; - for (i = 0; i < RX_RING; i++) + for (i = 0; i < np->rx_ring_size; i++) if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) - np->rx_ring.orig[i].FlagLen = 0; + np->rx_ring.orig[i].flaglen = 0; else - np->rx_ring.ex[i].FlagLen = 0; + np->rx_ring.ex[i].flaglen = 0; } static void nv_init_tx(struct net_device *dev) @@ -1130,11 +1380,11 @@ int i; np->next_tx = np->nic_tx = 0; - for (i = 0; i < TX_RING; i++) { + for (i = 0; i < np->tx_ring_size; i++) { if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) - np->tx_ring.orig[i].FlagLen = 0; + np->tx_ring.orig[i].flaglen = 0; else - np->tx_ring.ex[i].FlagLen = 0; + np->tx_ring.ex[i].flaglen = 0; np->tx_skbuff[i] = NULL; np->tx_dma[i] = 0; } @@ -1174,12 +1424,12 @@ { struct fe_priv *np = netdev_priv(dev); unsigned int i; - - for (i = 0; i < TX_RING; i++) { + + for (i = 0; i < np->tx_ring_size; i++) { if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) - np->tx_ring.orig[i].FlagLen = 0; + np->tx_ring.orig[i].flaglen = 0; else - np->tx_ring.ex[i].FlagLen = 0; + np->tx_ring.ex[i].flaglen = 0; if (nv_release_txskb(dev, i)) np->stats.tx_dropped++; } @@ -1189,11 +1439,11 @@ { struct fe_priv *np = netdev_priv(dev); int i; - for (i = 0; i < RX_RING; i++) { + for (i = 0; i < np->rx_ring_size; i++) { if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) - np->rx_ring.orig[i].FlagLen = 0; + np->rx_ring.orig[i].flaglen = 0; else - np->rx_ring.ex[i].FlagLen = 0; + np->rx_ring.ex[i].flaglen = 0; wmb(); if (np->rx_skbuff[i]) { pci_unmap_single(np->pci_dev, np->rx_dma[i], @@ -1213,7 +1463,7 @@ /* * nv_start_xmit: dev->hard_start_xmit function - * Called with dev->xmit_lock held. + * Called with netif_tx_lock held. */ static int nv_start_xmit(struct sk_buff *skb, struct net_device *dev) { @@ -1221,8 +1471,8 @@ u32 tx_flags = 0; u32 tx_flags_extra = (np->desc_ver == DESC_VER_1 ? NV_TX_LASTPACKET : NV_TX2_LASTPACKET); unsigned int fragments = skb_shinfo(skb)->nr_frags; - unsigned int nr = (np->next_tx - 1) % TX_RING; - unsigned int start_nr = np->next_tx % TX_RING; + unsigned int nr = (np->next_tx - 1) % np->tx_ring_size; + unsigned int start_nr = np->next_tx % np->tx_ring_size; unsigned int i; u32 offset = 0; u32 bcnt; @@ -1238,7 +1488,7 @@ spin_lock_irq(&np->lock); - if ((np->next_tx - np->nic_tx + entries - 1) > TX_LIMIT_STOP) { + if ((np->next_tx - np->nic_tx + entries - 1) > np->tx_limit_stop) { spin_unlock_irq(&np->lock); netif_stop_queue(dev); return NETDEV_TX_BUSY; @@ -1247,24 +1497,24 @@ /* setup the header buffer */ do { bcnt = (size > NV_TX2_TSO_MAX_SIZE) ? NV_TX2_TSO_MAX_SIZE : size; - nr = (nr + 1) % TX_RING; + nr = (nr + 1) % np->tx_ring_size; np->tx_dma[nr] = pci_map_single(np->pci_dev, skb->data + offset, bcnt, PCI_DMA_TODEVICE); np->tx_dma_len[nr] = bcnt; if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { - np->tx_ring.orig[nr].PacketBuffer = cpu_to_le32(np->tx_dma[nr]); - np->tx_ring.orig[nr].FlagLen = cpu_to_le32((bcnt-1) | tx_flags); + np->tx_ring.orig[nr].buf = cpu_to_le32(np->tx_dma[nr]); + np->tx_ring.orig[nr].flaglen = cpu_to_le32((bcnt-1) | tx_flags); } else { - np->tx_ring.ex[nr].PacketBufferHigh = cpu_to_le64(np->tx_dma[nr]) >> 32; - np->tx_ring.ex[nr].PacketBufferLow = cpu_to_le64(np->tx_dma[nr]) & 0x0FFFFFFFF; - np->tx_ring.ex[nr].FlagLen = cpu_to_le32((bcnt-1) | tx_flags); + np->tx_ring.ex[nr].bufhigh = cpu_to_le64(np->tx_dma[nr]) >> 32; + np->tx_ring.ex[nr].buflow = cpu_to_le64(np->tx_dma[nr]) & 0x0FFFFFFFF; + np->tx_ring.ex[nr].flaglen = cpu_to_le32((bcnt-1) | tx_flags); } tx_flags = np->tx_flags; offset += bcnt; size -= bcnt; - } while(size); + } while (size); /* setup the fragments */ for (i = 0; i < fragments; i++) { @@ -1274,19 +1524,19 @@ do { bcnt = (size > NV_TX2_TSO_MAX_SIZE) ? NV_TX2_TSO_MAX_SIZE : size; - nr = (nr + 1) % TX_RING; + nr = (nr + 1) % np->tx_ring_size; np->tx_dma[nr] = pci_map_page(np->pci_dev, frag->page, frag->page_offset+offset, bcnt, PCI_DMA_TODEVICE); np->tx_dma_len[nr] = bcnt; if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { - np->tx_ring.orig[nr].PacketBuffer = cpu_to_le32(np->tx_dma[nr]); - np->tx_ring.orig[nr].FlagLen = cpu_to_le32((bcnt-1) | tx_flags); + np->tx_ring.orig[nr].buf = cpu_to_le32(np->tx_dma[nr]); + np->tx_ring.orig[nr].flaglen = cpu_to_le32((bcnt-1) | tx_flags); } else { - np->tx_ring.ex[nr].PacketBufferHigh = cpu_to_le64(np->tx_dma[nr]) >> 32; - np->tx_ring.ex[nr].PacketBufferLow = cpu_to_le64(np->tx_dma[nr]) & 0x0FFFFFFFF; - np->tx_ring.ex[nr].FlagLen = cpu_to_le32((bcnt-1) | tx_flags); + np->tx_ring.ex[nr].bufhigh = cpu_to_le64(np->tx_dma[nr]) >> 32; + np->tx_ring.ex[nr].buflow = cpu_to_le64(np->tx_dma[nr]) & 0x0FFFFFFFF; + np->tx_ring.ex[nr].flaglen = cpu_to_le32((bcnt-1) | tx_flags); } offset += bcnt; size -= bcnt; @@ -1295,19 +1545,20 @@ /* set last fragment flag */ if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { - np->tx_ring.orig[nr].FlagLen |= cpu_to_le32(tx_flags_extra); + np->tx_ring.orig[nr].flaglen |= cpu_to_le32(tx_flags_extra); } else { - np->tx_ring.ex[nr].FlagLen |= cpu_to_le32(tx_flags_extra); + np->tx_ring.ex[nr].flaglen |= cpu_to_le32(tx_flags_extra); } np->tx_skbuff[nr] = skb; #ifdef NETIF_F_TSO - if (skb_shinfo(skb)->tso_size) - tx_flags_extra = NV_TX2_TSO | (skb_shinfo(skb)->tso_size << NV_TX2_TSO_SHIFT); + if (skb_is_gso(skb)) + tx_flags_extra = NV_TX2_TSO | (skb_shinfo(skb)->gso_size << NV_TX2_TSO_SHIFT); else #endif - tx_flags_extra = (skb->ip_summed == CHECKSUM_HW ? (NV_TX2_CHECKSUM_L3|NV_TX2_CHECKSUM_L4) : 0); + tx_flags_extra = skb->ip_summed == CHECKSUM_PARTIAL ? + NV_TX2_CHECKSUM_L3 | NV_TX2_CHECKSUM_L4 : 0; /* vlan tag */ if (np->vlangrp && vlan_tx_tag_present(skb)) { @@ -1316,11 +1567,11 @@ /* set tx flags */ if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { - np->tx_ring.orig[start_nr].FlagLen |= cpu_to_le32(tx_flags | tx_flags_extra); + np->tx_ring.orig[start_nr].flaglen |= cpu_to_le32(tx_flags | tx_flags_extra); } else { - np->tx_ring.ex[start_nr].TxVlan = cpu_to_le32(tx_flags_vlan); - np->tx_ring.ex[start_nr].FlagLen |= cpu_to_le32(tx_flags | tx_flags_extra); - } + np->tx_ring.ex[start_nr].txvlan = cpu_to_le32(tx_flags_vlan); + np->tx_ring.ex[start_nr].flaglen |= cpu_to_le32(tx_flags | tx_flags_extra); + } dprintk(KERN_DEBUG "%s: nv_start_xmit: packet %d (entries %d) queued for transmission. tx_flags_extra: %x\n", dev->name, np->next_tx, entries, tx_flags_extra); @@ -1351,30 +1602,30 @@ static void nv_tx_done(struct net_device *dev) { struct fe_priv *np = netdev_priv(dev); - u32 Flags; + u32 flags; unsigned int i; struct sk_buff *skb; while (np->nic_tx != np->next_tx) { - i = np->nic_tx % TX_RING; + i = np->nic_tx % np->tx_ring_size; if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) - Flags = le32_to_cpu(np->tx_ring.orig[i].FlagLen); + flags = le32_to_cpu(np->tx_ring.orig[i].flaglen); else - Flags = le32_to_cpu(np->tx_ring.ex[i].FlagLen); + flags = le32_to_cpu(np->tx_ring.ex[i].flaglen); - dprintk(KERN_DEBUG "%s: nv_tx_done: looking at packet %d, Flags 0x%x.\n", - dev->name, np->nic_tx, Flags); - if (Flags & NV_TX_VALID) + dprintk(KERN_DEBUG "%s: nv_tx_done: looking at packet %d, flags 0x%x.\n", + dev->name, np->nic_tx, flags); + if (flags & NV_TX_VALID) break; if (np->desc_ver == DESC_VER_1) { - if (Flags & NV_TX_LASTPACKET) { + if (flags & NV_TX_LASTPACKET) { skb = np->tx_skbuff[i]; - if (Flags & (NV_TX_RETRYERROR|NV_TX_CARRIERLOST|NV_TX_LATECOLLISION| + if (flags & (NV_TX_RETRYERROR|NV_TX_CARRIERLOST|NV_TX_LATECOLLISION| NV_TX_UNDERFLOW|NV_TX_ERROR)) { - if (Flags & NV_TX_UNDERFLOW) + if (flags & NV_TX_UNDERFLOW) np->stats.tx_fifo_errors++; - if (Flags & NV_TX_CARRIERLOST) + if (flags & NV_TX_CARRIERLOST) np->stats.tx_carrier_errors++; np->stats.tx_errors++; } else { @@ -1383,31 +1634,31 @@ } } } else { - if (Flags & NV_TX2_LASTPACKET) { + if (flags & NV_TX2_LASTPACKET) { skb = np->tx_skbuff[i]; - if (Flags & (NV_TX2_RETRYERROR|NV_TX2_CARRIERLOST|NV_TX2_LATECOLLISION| + if (flags & (NV_TX2_RETRYERROR|NV_TX2_CARRIERLOST|NV_TX2_LATECOLLISION| NV_TX2_UNDERFLOW|NV_TX2_ERROR)) { - if (Flags & NV_TX2_UNDERFLOW) + if (flags & NV_TX2_UNDERFLOW) np->stats.tx_fifo_errors++; - if (Flags & NV_TX2_CARRIERLOST) + if (flags & NV_TX2_CARRIERLOST) np->stats.tx_carrier_errors++; np->stats.tx_errors++; } else { np->stats.tx_packets++; np->stats.tx_bytes += skb->len; - } + } } } nv_release_txskb(dev, i); np->nic_tx++; } - if (np->next_tx - np->nic_tx < TX_LIMIT_START) + if (np->next_tx - np->nic_tx < np->tx_limit_start) netif_wake_queue(dev); } /* * nv_tx_timeout: dev->tx_timeout function - * Called with dev->xmit_lock held. + * Called with netif_tx_lock held. */ static void nv_tx_timeout(struct net_device *dev) { @@ -1438,33 +1689,33 @@ readl(base + i + 24), readl(base + i + 28)); } printk(KERN_INFO "%s: Dumping tx ring\n", dev->name); - for (i=0;itx_ring_size;i+= 4) { if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { printk(KERN_INFO "%03x: %08x %08x // %08x %08x // %08x %08x // %08x %08x\n", - i, - le32_to_cpu(np->tx_ring.orig[i].PacketBuffer), - le32_to_cpu(np->tx_ring.orig[i].FlagLen), - le32_to_cpu(np->tx_ring.orig[i+1].PacketBuffer), - le32_to_cpu(np->tx_ring.orig[i+1].FlagLen), - le32_to_cpu(np->tx_ring.orig[i+2].PacketBuffer), - le32_to_cpu(np->tx_ring.orig[i+2].FlagLen), - le32_to_cpu(np->tx_ring.orig[i+3].PacketBuffer), - le32_to_cpu(np->tx_ring.orig[i+3].FlagLen)); + i, + le32_to_cpu(np->tx_ring.orig[i].buf), + le32_to_cpu(np->tx_ring.orig[i].flaglen), + le32_to_cpu(np->tx_ring.orig[i+1].buf), + le32_to_cpu(np->tx_ring.orig[i+1].flaglen), + le32_to_cpu(np->tx_ring.orig[i+2].buf), + le32_to_cpu(np->tx_ring.orig[i+2].flaglen), + le32_to_cpu(np->tx_ring.orig[i+3].buf), + le32_to_cpu(np->tx_ring.orig[i+3].flaglen)); } else { printk(KERN_INFO "%03x: %08x %08x %08x // %08x %08x %08x // %08x %08x %08x // %08x %08x %08x\n", - i, - le32_to_cpu(np->tx_ring.ex[i].PacketBufferHigh), - le32_to_cpu(np->tx_ring.ex[i].PacketBufferLow), - le32_to_cpu(np->tx_ring.ex[i].FlagLen), - le32_to_cpu(np->tx_ring.ex[i+1].PacketBufferHigh), - le32_to_cpu(np->tx_ring.ex[i+1].PacketBufferLow), - le32_to_cpu(np->tx_ring.ex[i+1].FlagLen), - le32_to_cpu(np->tx_ring.ex[i+2].PacketBufferHigh), - le32_to_cpu(np->tx_ring.ex[i+2].PacketBufferLow), - le32_to_cpu(np->tx_ring.ex[i+2].FlagLen), - le32_to_cpu(np->tx_ring.ex[i+3].PacketBufferHigh), - le32_to_cpu(np->tx_ring.ex[i+3].PacketBufferLow), - le32_to_cpu(np->tx_ring.ex[i+3].FlagLen)); + i, + le32_to_cpu(np->tx_ring.ex[i].bufhigh), + le32_to_cpu(np->tx_ring.ex[i].buflow), + le32_to_cpu(np->tx_ring.ex[i].flaglen), + le32_to_cpu(np->tx_ring.ex[i+1].bufhigh), + le32_to_cpu(np->tx_ring.ex[i+1].buflow), + le32_to_cpu(np->tx_ring.ex[i+1].flaglen), + le32_to_cpu(np->tx_ring.ex[i+2].bufhigh), + le32_to_cpu(np->tx_ring.ex[i+2].buflow), + le32_to_cpu(np->tx_ring.ex[i+2].flaglen), + le32_to_cpu(np->tx_ring.ex[i+3].bufhigh), + le32_to_cpu(np->tx_ring.ex[i+3].buflow), + le32_to_cpu(np->tx_ring.ex[i+3].flaglen)); } } } @@ -1501,7 +1752,7 @@ int protolen; /* length as stored in the proto field */ /* 1) calculate len according to header */ - if ( ((struct vlan_ethhdr *)packet)->h_vlan_proto == __constant_htons(ETH_P_8021Q)) { + if ( ((struct vlan_ethhdr *)packet)->h_vlan_proto == htons(ETH_P_8021Q)) { protolen = ntohs( ((struct vlan_ethhdr *)packet)->h_vlan_encapsulated_proto ); hdrlen = VLAN_HLEN; } else { @@ -1544,34 +1795,34 @@ } } -static void nv_rx_process(struct net_device *dev) +static int nv_rx_process(struct net_device *dev, int limit) { struct fe_priv *np = netdev_priv(dev); - u32 Flags; + u32 flags; u32 vlanflags = 0; + int count; - - for (;;) { + for (count = 0; count < limit; ++count) { struct sk_buff *skb; int len; int i; - if (np->cur_rx - np->refill_rx >= RX_RING) + if (np->cur_rx - np->refill_rx >= np->rx_ring_size) break; /* we scanned the whole ring - do not continue */ - i = np->cur_rx % RX_RING; + i = np->cur_rx % np->rx_ring_size; if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { - Flags = le32_to_cpu(np->rx_ring.orig[i].FlagLen); + flags = le32_to_cpu(np->rx_ring.orig[i].flaglen); len = nv_descr_getlength(&np->rx_ring.orig[i], np->desc_ver); } else { - Flags = le32_to_cpu(np->rx_ring.ex[i].FlagLen); + flags = le32_to_cpu(np->rx_ring.ex[i].flaglen); len = nv_descr_getlength_ex(&np->rx_ring.ex[i], np->desc_ver); - vlanflags = le32_to_cpu(np->rx_ring.ex[i].PacketBufferLow); + vlanflags = le32_to_cpu(np->rx_ring.ex[i].buflow); } - dprintk(KERN_DEBUG "%s: nv_rx_process: looking at packet %d, Flags 0x%x.\n", - dev->name, np->cur_rx, Flags); + dprintk(KERN_DEBUG "%s: nv_rx_process: looking at packet %d, flags 0x%x.\n", + dev->name, np->cur_rx, flags); - if (Flags & NV_RX_AVAIL) + if (flags & NV_RX_AVAIL) break; /* still owned by hardware, */ /* @@ -1585,7 +1836,7 @@ { int j; - dprintk(KERN_DEBUG "Dumping packet (flags 0x%x).",Flags); + dprintk(KERN_DEBUG "Dumping packet (flags 0x%x).",flags); for (j=0; j<64; j++) { if ((j%16) == 0) dprintk("\n%03x:", j); @@ -1595,30 +1846,30 @@ } /* look at what we actually got: */ if (np->desc_ver == DESC_VER_1) { - if (!(Flags & NV_RX_DESCRIPTORVALID)) + if (!(flags & NV_RX_DESCRIPTORVALID)) goto next_pkt; - if (Flags & NV_RX_ERROR) { - if (Flags & NV_RX_MISSEDFRAME) { + if (flags & NV_RX_ERROR) { + if (flags & NV_RX_MISSEDFRAME) { np->stats.rx_missed_errors++; np->stats.rx_errors++; goto next_pkt; } - if (Flags & (NV_RX_ERROR1|NV_RX_ERROR2|NV_RX_ERROR3)) { + if (flags & (NV_RX_ERROR1|NV_RX_ERROR2|NV_RX_ERROR3)) { np->stats.rx_errors++; goto next_pkt; } - if (Flags & NV_RX_CRCERR) { + if (flags & NV_RX_CRCERR) { np->stats.rx_crc_errors++; np->stats.rx_errors++; goto next_pkt; } - if (Flags & NV_RX_OVERFLOW) { + if (flags & NV_RX_OVERFLOW) { np->stats.rx_over_errors++; np->stats.rx_errors++; goto next_pkt; } - if (Flags & NV_RX_ERROR4) { + if (flags & NV_RX_ERROR4) { len = nv_getlen(dev, np->rx_skbuff[i]->data, len); if (len < 0) { np->stats.rx_errors++; @@ -1626,32 +1877,32 @@ } } /* framing errors are soft errors. */ - if (Flags & NV_RX_FRAMINGERR) { - if (Flags & NV_RX_SUBSTRACT1) { + if (flags & NV_RX_FRAMINGERR) { + if (flags & NV_RX_SUBSTRACT1) { len--; } } } } else { - if (!(Flags & NV_RX2_DESCRIPTORVALID)) + if (!(flags & NV_RX2_DESCRIPTORVALID)) goto next_pkt; - if (Flags & NV_RX2_ERROR) { - if (Flags & (NV_RX2_ERROR1|NV_RX2_ERROR2|NV_RX2_ERROR3)) { + if (flags & NV_RX2_ERROR) { + if (flags & (NV_RX2_ERROR1|NV_RX2_ERROR2|NV_RX2_ERROR3)) { np->stats.rx_errors++; goto next_pkt; } - if (Flags & NV_RX2_CRCERR) { + if (flags & NV_RX2_CRCERR) { np->stats.rx_crc_errors++; np->stats.rx_errors++; goto next_pkt; } - if (Flags & NV_RX2_OVERFLOW) { + if (flags & NV_RX2_OVERFLOW) { np->stats.rx_over_errors++; np->stats.rx_errors++; goto next_pkt; } - if (Flags & NV_RX2_ERROR4) { + if (flags & NV_RX2_ERROR4) { len = nv_getlen(dev, np->rx_skbuff[i]->data, len); if (len < 0) { np->stats.rx_errors++; @@ -1659,20 +1910,22 @@ } } /* framing errors are soft errors */ - if (Flags & NV_RX2_FRAMINGERR) { - if (Flags & NV_RX2_SUBSTRACT1) { + if (flags & NV_RX2_FRAMINGERR) { + if (flags & NV_RX2_SUBSTRACT1) { len--; } } } - Flags &= NV_RX2_CHECKSUMMASK; - if (Flags == NV_RX2_CHECKSUMOK1 || - Flags == NV_RX2_CHECKSUMOK2 || - Flags == NV_RX2_CHECKSUMOK3) { - dprintk(KERN_DEBUG "%s: hw checksum hit!.\n", dev->name); - np->rx_skbuff[i]->ip_summed = CHECKSUM_UNNECESSARY; - } else { - dprintk(KERN_DEBUG "%s: hwchecksum miss!.\n", dev->name); + if (np->rx_csum) { + flags &= NV_RX2_CHECKSUMMASK; + if (flags == NV_RX2_CHECKSUMOK1 || + flags == NV_RX2_CHECKSUMOK2 || + flags == NV_RX2_CHECKSUMOK3) { + dprintk(KERN_DEBUG "%s: hw checksum hit!.\n", dev->name); + np->rx_skbuff[i]->ip_summed = CHECKSUM_UNNECESSARY; + } else { + dprintk(KERN_DEBUG "%s: hwchecksum miss!.\n", dev->name); + } } } /* got a valid packet - forward it to the network core */ @@ -1683,17 +1936,27 @@ skb->protocol = eth_type_trans(skb, dev); dprintk(KERN_DEBUG "%s: nv_rx_process: packet %d with %d bytes, proto %d accepted.\n", dev->name, np->cur_rx, len, skb->protocol); - if (np->vlangrp && (vlanflags & NV_RX3_VLAN_TAG_PRESENT)) { - vlan_hwaccel_rx(skb, np->vlangrp, vlanflags & NV_RX3_VLAN_TAG_MASK); - } else { +#ifdef CONFIG_FORCEDETH_NAPI + if (np->vlangrp && (vlanflags & NV_RX3_VLAN_TAG_PRESENT)) + vlan_hwaccel_receive_skb(skb, np->vlangrp, + vlanflags & NV_RX3_VLAN_TAG_MASK); + else + netif_receive_skb(skb); +#else + if (np->vlangrp && (vlanflags & NV_RX3_VLAN_TAG_PRESENT)) + vlan_hwaccel_rx(skb, np->vlangrp, + vlanflags & NV_RX3_VLAN_TAG_MASK); + else netif_rx(skb); - } +#endif dev->last_rx = jiffies; np->stats.rx_packets++; np->stats.rx_bytes += len; next_pkt: np->cur_rx++; } + + return count; } static void set_bufsize(struct net_device *dev) @@ -1737,7 +2000,7 @@ * Changing the MTU is a rare event, it shouldn't matter. */ nv_disable_irq(dev); - spin_lock_bh(&dev->xmit_lock); + netif_tx_lock_bh(dev); spin_lock(&np->lock); /* stop engines */ nv_stop_rx(dev); @@ -1747,18 +2010,15 @@ nv_drain_rx(dev); nv_drain_tx(dev); /* reinit driver view of the rx queue */ - nv_init_rx(dev); - nv_init_tx(dev); - /* alloc new rx buffers */ set_bufsize(dev); - if (nv_alloc_rx(dev)) { + if (nv_init_ring(dev)) { if (!np->in_shutdown) mod_timer(&np->oom_kick, jiffies + OOM_REFILL); } /* reinit nic view of the rx queue */ writel(np->rx_buf_sz, base + NvRegOffloadConfig); setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); - writel( ((RX_RING-1) << NVREG_RINGSZ_RXSHIFT) + ((TX_RING-1) << NVREG_RINGSZ_TXSHIFT), + writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), base + NvRegRingSizes); pci_push(base); writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); @@ -1768,7 +2028,7 @@ nv_start_rx(dev); nv_start_tx(dev); spin_unlock(&np->lock); - spin_unlock_bh(&dev->xmit_lock); + netif_tx_unlock_bh(dev); nv_enable_irq(dev); } return 0; @@ -1796,14 +2056,14 @@ struct fe_priv *np = netdev_priv(dev); struct sockaddr *macaddr = (struct sockaddr*)addr; - if(!is_valid_ether_addr(macaddr->sa_data)) + if (!is_valid_ether_addr(macaddr->sa_data)) return -EADDRNOTAVAIL; /* synchronized against open : rtnl_lock() held by caller */ memcpy(dev->dev_addr, macaddr->sa_data, ETH_ALEN); if (netif_running(dev)) { - spin_lock_bh(&dev->xmit_lock); + netif_tx_lock_bh(dev); spin_lock_irq(&np->lock); /* stop rx engine */ @@ -1815,7 +2075,7 @@ /* restart rx engine */ nv_start_rx(dev); spin_unlock_irq(&np->lock); - spin_unlock_bh(&dev->xmit_lock); + netif_tx_unlock_bh(dev); } else { nv_copy_mac_to_hw(dev); } @@ -1824,7 +2084,7 @@ /* * nv_set_multicast: dev->set_multicast function - * Called with dev->xmit_lock held. + * Called with netif_tx_lock held. */ static void nv_set_multicast(struct net_device *dev) { @@ -1832,16 +2092,15 @@ u8 __iomem *base = get_hwbase(dev); u32 addr[2]; u32 mask[2]; - u32 pff; + u32 pff = readl(base + NvRegPacketFilterFlags) & NVREG_PFF_PAUSE_RX; memset(addr, 0, sizeof(addr)); memset(mask, 0, sizeof(mask)); if (dev->flags & IFF_PROMISC) { - printk(KERN_NOTICE "%s: Promiscuous mode enabled.\n", dev->name); - pff = NVREG_PFF_PROMISC; + pff |= NVREG_PFF_PROMISC; } else { - pff = NVREG_PFF_MYADDR; + pff |= NVREG_PFF_MYADDR; if (dev->flags & IFF_ALLMULTI || dev->mc_list) { u32 alwaysOff[2]; @@ -1886,6 +2145,35 @@ spin_unlock_irq(&np->lock); } +static void nv_update_pause(struct net_device *dev, u32 pause_flags) +{ + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + + np->pause_flags &= ~(NV_PAUSEFRAME_TX_ENABLE | NV_PAUSEFRAME_RX_ENABLE); + + if (np->pause_flags & NV_PAUSEFRAME_RX_CAPABLE) { + u32 pff = readl(base + NvRegPacketFilterFlags) & ~NVREG_PFF_PAUSE_RX; + if (pause_flags & NV_PAUSEFRAME_RX_ENABLE) { + writel(pff|NVREG_PFF_PAUSE_RX, base + NvRegPacketFilterFlags); + np->pause_flags |= NV_PAUSEFRAME_RX_ENABLE; + } else { + writel(pff, base + NvRegPacketFilterFlags); + } + } + if (np->pause_flags & NV_PAUSEFRAME_TX_CAPABLE) { + u32 regmisc = readl(base + NvRegMisc1) & ~NVREG_MISC1_PAUSE_TX; + if (pause_flags & NV_PAUSEFRAME_TX_ENABLE) { + writel(NVREG_TX_PAUSEFRAME_ENABLE, base + NvRegTxPauseFrame); + writel(regmisc|NVREG_MISC1_PAUSE_TX, base + NvRegMisc1); + np->pause_flags |= NV_PAUSEFRAME_TX_ENABLE; + } else { + writel(NVREG_TX_PAUSEFRAME_DISABLE, base + NvRegTxPauseFrame); + writel(regmisc, base + NvRegMisc1); + } + } +} + /** * nv_update_linkspeed: Setup the MAC according to the link partner * @dev: Network device to be configured @@ -1901,12 +2189,14 @@ { struct fe_priv *np = netdev_priv(dev); u8 __iomem *base = get_hwbase(dev); - int adv, lpa; + int adv = 0; + int lpa = 0; + int adv_lpa, adv_pause, lpa_pause; int newls = np->linkspeed; int newdup = np->duplex; int mii_status; int retval = 0; - u32 control_1000, status_1000, phyreg; + u32 control_1000, status_1000, phyreg, pause_flags, txreg; /* BMSR_LSTATUS is latched, read it twice: * we want the current value. @@ -1952,10 +2242,15 @@ goto set_speed; } + adv = mii_rw(dev, np->phyaddr, MII_ADVERTISE, MII_READ); + lpa = mii_rw(dev, np->phyaddr, MII_LPA, MII_READ); + dprintk(KERN_DEBUG "%s: nv_update_linkspeed: PHY advertises 0x%04x, lpa 0x%04x.\n", + dev->name, adv, lpa); + retval = 1; if (np->gigabit == PHY_GIGABIT) { - control_1000 = mii_rw(dev, np->phyaddr, MII_1000BT_CR, MII_READ); - status_1000 = mii_rw(dev, np->phyaddr, MII_1000BT_SR, MII_READ); + control_1000 = mii_rw(dev, np->phyaddr, MII_CTRL1000, MII_READ); + status_1000 = mii_rw(dev, np->phyaddr, MII_STAT1000, MII_READ); if ((control_1000 & ADVERTISE_1000FULL) && (status_1000 & LPA_1000FULL)) { @@ -1967,27 +2262,22 @@ } } - adv = mii_rw(dev, np->phyaddr, MII_ADVERTISE, MII_READ); - lpa = mii_rw(dev, np->phyaddr, MII_LPA, MII_READ); - dprintk(KERN_DEBUG "%s: nv_update_linkspeed: PHY advertises 0x%04x, lpa 0x%04x.\n", - dev->name, adv, lpa); - /* FIXME: handle parallel detection properly */ - lpa = lpa & adv; - if (lpa & LPA_100FULL) { + adv_lpa = lpa & adv; + if (adv_lpa & LPA_100FULL) { newls = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_100; newdup = 1; - } else if (lpa & LPA_100HALF) { + } else if (adv_lpa & LPA_100HALF) { newls = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_100; newdup = 0; - } else if (lpa & LPA_10FULL) { + } else if (adv_lpa & LPA_10FULL) { newls = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_10; newdup = 1; - } else if (lpa & LPA_10HALF) { + } else if (adv_lpa & LPA_10HALF) { newls = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_10; newdup = 0; } else { - dprintk(KERN_DEBUG "%s: bad ability %04x - falling back to 10HD.\n", dev->name, lpa); + dprintk(KERN_DEBUG "%s: bad ability %04x - falling back to 10HD.\n", dev->name, adv_lpa); newls = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_10; newdup = 0; } @@ -2024,12 +2314,72 @@ phyreg |= PHY_1000; writel(phyreg, base + NvRegPhyInterface); + if (phyreg & PHY_RGMII) { + if ((np->linkspeed & NVREG_LINKSPEED_MASK) == NVREG_LINKSPEED_1000) + txreg = NVREG_TX_DEFERRAL_RGMII_1000; + else + txreg = NVREG_TX_DEFERRAL_RGMII_10_100; + } else { + txreg = NVREG_TX_DEFERRAL_DEFAULT; + } + writel(txreg, base + NvRegTxDeferral); + + if (np->desc_ver == DESC_VER_1) { + txreg = NVREG_TX_WM_DESC1_DEFAULT; + } else { + if ((np->linkspeed & NVREG_LINKSPEED_MASK) == NVREG_LINKSPEED_1000) + txreg = NVREG_TX_WM_DESC2_3_1000; + else + txreg = NVREG_TX_WM_DESC2_3_DEFAULT; + } + writel(txreg, base + NvRegTxWatermark); + writel(NVREG_MISC1_FORCE | ( np->duplex ? 0 : NVREG_MISC1_HD), base + NvRegMisc1); pci_push(base); writel(np->linkspeed, base + NvRegLinkSpeed); pci_push(base); + pause_flags = 0; + /* setup pause frame */ + if (np->duplex != 0) { + if (np->autoneg && np->pause_flags & NV_PAUSEFRAME_AUTONEG) { + adv_pause = adv & (ADVERTISE_PAUSE_CAP| ADVERTISE_PAUSE_ASYM); + lpa_pause = lpa & (LPA_PAUSE_CAP| LPA_PAUSE_ASYM); + + switch (adv_pause) { + case ADVERTISE_PAUSE_CAP: + if (lpa_pause & LPA_PAUSE_CAP) { + pause_flags |= NV_PAUSEFRAME_RX_ENABLE; + if (np->pause_flags & NV_PAUSEFRAME_TX_REQ) + pause_flags |= NV_PAUSEFRAME_TX_ENABLE; + } + break; + case ADVERTISE_PAUSE_ASYM: + if (lpa_pause == (LPA_PAUSE_CAP| LPA_PAUSE_ASYM)) + { + pause_flags |= NV_PAUSEFRAME_TX_ENABLE; + } + break; + case ADVERTISE_PAUSE_CAP| ADVERTISE_PAUSE_ASYM: + if (lpa_pause & LPA_PAUSE_CAP) + { + pause_flags |= NV_PAUSEFRAME_RX_ENABLE; + if (np->pause_flags & NV_PAUSEFRAME_TX_REQ) + pause_flags |= NV_PAUSEFRAME_TX_ENABLE; + } + if (lpa_pause == LPA_PAUSE_ASYM) + { + pause_flags |= NV_PAUSEFRAME_RX_ENABLE; + } + break; + } + } else { + pause_flags = np->pause_flags; + } + } + nv_update_pause(dev, pause_flags); + return retval; } @@ -2090,15 +2440,7 @@ spin_lock(&np->lock); nv_tx_done(dev); spin_unlock(&np->lock); - - nv_rx_process(dev); - if (nv_alloc_rx(dev)) { - spin_lock(&np->lock); - if (!np->in_shutdown) - mod_timer(&np->oom_kick, jiffies + OOM_REFILL); - spin_unlock(&np->lock); - } - + if (events & NVREG_IRQ_LINK) { spin_lock(&np->lock); nv_link_irq(dev); @@ -2118,6 +2460,46 @@ printk(KERN_DEBUG "%s: received irq with unknown events 0x%x. Please report\n", dev->name, events); } + if (unlikely(events & NVREG_IRQ_RECOVER_ERROR)) { + spin_lock(&np->lock); + /* disable interrupts on the nic */ + if (!(np->msi_flags & NV_MSI_X_ENABLED)) + writel(0, base + NvRegIrqMask); + else + writel(np->irqmask, base + NvRegIrqMask); + pci_push(base); + + if (!np->in_shutdown) { + np->nic_poll_irq = np->irqmask; + np->recover_error = 1; + mod_timer(&np->nic_poll, jiffies + POLL_WAIT); + } + spin_unlock(&np->lock); + break; + } +#ifdef CONFIG_FORCEDETH_NAPI + if (events & NVREG_IRQ_RX_ALL) { + netif_rx_schedule(dev); + + /* Disable furthur receive irq's */ + spin_lock(&np->lock); + np->irqmask &= ~NVREG_IRQ_RX_ALL; + + if (np->msi_flags & NV_MSI_X_ENABLED) + writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); + else + writel(np->irqmask, base + NvRegIrqMask); + spin_unlock(&np->lock); + } +#else + nv_rx_process(dev, dev->weight); + if (nv_alloc_rx(dev)) { + spin_lock(&np->lock); + if (!np->in_shutdown) + mod_timer(&np->oom_kick, jiffies + OOM_REFILL); + spin_unlock(&np->lock); + } +#endif if (i > max_interrupt_work) { spin_lock(&np->lock); /* disable interrupts on the nic */ @@ -2149,6 +2531,7 @@ u8 __iomem *base = get_hwbase(dev); u32 events; int i; + unsigned long flags; dprintk(KERN_DEBUG "%s: nv_nic_irq_tx\n", dev->name); @@ -2160,16 +2543,16 @@ if (!(events & np->irqmask)) break; - spin_lock_irq(&np->lock); + spin_lock_irqsave(&np->lock, flags); nv_tx_done(dev); - spin_unlock_irq(&np->lock); - + spin_unlock_irqrestore(&np->lock, flags); + if (events & (NVREG_IRQ_TX_ERR)) { dprintk(KERN_DEBUG "%s: received irq with events 0x%x. Probably TX fail.\n", dev->name, events); } if (i > max_interrupt_work) { - spin_lock_irq(&np->lock); + spin_lock_irqsave(&np->lock, flags); /* disable interrupts on the nic */ writel(NVREG_IRQ_TX_ALL, base + NvRegIrqMask); pci_push(base); @@ -2179,7 +2562,7 @@ mod_timer(&np->nic_poll, jiffies + POLL_WAIT); } printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_tx.\n", dev->name, i); - spin_unlock_irq(&np->lock); + spin_unlock_irqrestore(&np->lock, flags); break; } @@ -2189,6 +2572,63 @@ return IRQ_RETVAL(i); } +#ifdef CONFIG_FORCEDETH_NAPI +static int nv_napi_poll(struct net_device *dev, int *budget) +{ + int pkts, limit = min(*budget, dev->quota); + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + + pkts = nv_rx_process(dev, limit); + + if (nv_alloc_rx(dev)) { + spin_lock_irq(&np->lock); + if (!np->in_shutdown) + mod_timer(&np->oom_kick, jiffies + OOM_REFILL); + spin_unlock_irq(&np->lock); + } + + if (pkts < limit) { + /* all done, no more packets present */ + netif_rx_complete(dev); + + /* re-enable receive interrupts */ + spin_lock_irq(&np->lock); + np->irqmask |= NVREG_IRQ_RX_ALL; + if (np->msi_flags & NV_MSI_X_ENABLED) + writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); + else + writel(np->irqmask, base + NvRegIrqMask); + spin_unlock_irq(&np->lock); + return 0; + } else { + /* used up our quantum, so reschedule */ + dev->quota -= pkts; + *budget -= pkts; + return 1; + } +} +#endif + +#ifdef CONFIG_FORCEDETH_NAPI +static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) +{ + struct net_device *dev = (struct net_device *) data; + u8 __iomem *base = get_hwbase(dev); + u32 events; + + events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQ_RX_ALL; + writel(NVREG_IRQ_RX_ALL, base + NvRegMSIXIrqStatus); + + if (events) { + netif_rx_schedule(dev); + /* disable receive interrupts on the nic */ + writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); + pci_push(base); + } + return IRQ_HANDLED; +} +#else static irqreturn_t nv_nic_irq_rx(int foo, void *data, struct pt_regs *regs) { struct net_device *dev = (struct net_device *) data; @@ -2196,6 +2636,7 @@ u8 __iomem *base = get_hwbase(dev); u32 events; int i; + unsigned long flags; dprintk(KERN_DEBUG "%s: nv_nic_irq_rx\n", dev->name); @@ -2206,17 +2647,17 @@ dprintk(KERN_DEBUG "%s: rx irq: %08x\n", dev->name, events); if (!(events & np->irqmask)) break; - - nv_rx_process(dev); + + nv_rx_process(dev, dev->weight); if (nv_alloc_rx(dev)) { - spin_lock_irq(&np->lock); + spin_lock_irqsave(&np->lock, flags); if (!np->in_shutdown) mod_timer(&np->oom_kick, jiffies + OOM_REFILL); - spin_unlock_irq(&np->lock); + spin_unlock_irqrestore(&np->lock, flags); } - + if (i > max_interrupt_work) { - spin_lock_irq(&np->lock); + spin_lock_irqsave(&np->lock, flags); /* disable interrupts on the nic */ writel(NVREG_IRQ_RX_ALL, base + NvRegIrqMask); pci_push(base); @@ -2226,15 +2667,15 @@ mod_timer(&np->nic_poll, jiffies + POLL_WAIT); } printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_rx.\n", dev->name, i); - spin_unlock_irq(&np->lock); + spin_unlock_irqrestore(&np->lock, flags); break; } - } dprintk(KERN_DEBUG "%s: nv_nic_irq_rx completed\n", dev->name); return IRQ_RETVAL(i); } +#endif static irqreturn_t nv_nic_irq_other(int foo, void *data, struct pt_regs *regs) { @@ -2243,6 +2684,7 @@ u8 __iomem *base = get_hwbase(dev); u32 events; int i; + unsigned long flags; dprintk(KERN_DEBUG "%s: nv_nic_irq_other\n", dev->name); @@ -2253,24 +2695,38 @@ dprintk(KERN_DEBUG "%s: irq: %08x\n", dev->name, events); if (!(events & np->irqmask)) break; - + if (events & NVREG_IRQ_LINK) { - spin_lock_irq(&np->lock); + spin_lock_irqsave(&np->lock, flags); nv_link_irq(dev); - spin_unlock_irq(&np->lock); + spin_unlock_irqrestore(&np->lock, flags); } if (np->need_linktimer && time_after(jiffies, np->link_timeout)) { - spin_lock_irq(&np->lock); + spin_lock_irqsave(&np->lock, flags); nv_linkchange(dev); - spin_unlock_irq(&np->lock); + spin_unlock_irqrestore(&np->lock, flags); np->link_timeout = jiffies + LINK_TIMEOUT; } + if (events & NVREG_IRQ_RECOVER_ERROR) { + spin_lock_irq(&np->lock); + /* disable interrupts on the nic */ + writel(NVREG_IRQ_OTHER, base + NvRegIrqMask); + pci_push(base); + + if (!np->in_shutdown) { + np->nic_poll_irq |= NVREG_IRQ_OTHER; + np->recover_error = 1; + mod_timer(&np->nic_poll, jiffies + POLL_WAIT); + } + spin_unlock_irq(&np->lock); + break; + } if (events & (NVREG_IRQ_UNKNOWN)) { printk(KERN_DEBUG "%s: received irq with unknown events 0x%x. Please report\n", dev->name, events); } if (i > max_interrupt_work) { - spin_lock_irq(&np->lock); + spin_lock_irqsave(&np->lock, flags); /* disable interrupts on the nic */ writel(NVREG_IRQ_OTHER, base + NvRegIrqMask); pci_push(base); @@ -2280,7 +2736,7 @@ mod_timer(&np->nic_poll, jiffies + POLL_WAIT); } printk(KERN_DEBUG "%s: too many iterations (%d) in nv_nic_irq_other.\n", dev->name, i); - spin_unlock_irq(&np->lock); + spin_unlock_irqrestore(&np->lock, flags); break; } @@ -2290,66 +2746,271 @@ return IRQ_RETVAL(i); } -static void nv_do_nic_poll(unsigned long data) +static irqreturn_t nv_nic_irq_test(int foo, void *data, struct pt_regs *regs) { struct net_device *dev = (struct net_device *) data; struct fe_priv *np = netdev_priv(dev); u8 __iomem *base = get_hwbase(dev); - u32 mask = 0; + u32 events; - /* - * First disable irq(s) and then - * reenable interrupts on the nic, we have to do this before calling - * nv_nic_irq because that may decide to do otherwise - */ + dprintk(KERN_DEBUG "%s: nv_nic_irq_test\n", dev->name); - if (!using_multi_irqs(dev)) { - if (np->msi_flags & NV_MSI_X_ENABLED) - disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); - else - disable_irq(dev->irq); - mask = np->irqmask; + if (!(np->msi_flags & NV_MSI_X_ENABLED)) { + events = readl(base + NvRegIrqStatus) & NVREG_IRQSTAT_MASK; + writel(NVREG_IRQ_TIMER, base + NvRegIrqStatus); } else { - if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { - disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); - mask |= NVREG_IRQ_RX_ALL; - } - if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) { - disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); - mask |= NVREG_IRQ_TX_ALL; - } - if (np->nic_poll_irq & NVREG_IRQ_OTHER) { - disable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); - mask |= NVREG_IRQ_OTHER; - } + events = readl(base + NvRegMSIXIrqStatus) & NVREG_IRQSTAT_MASK; + writel(NVREG_IRQ_TIMER, base + NvRegMSIXIrqStatus); } - np->nic_poll_irq = 0; - - /* FIXME: Do we need synchronize_irq(dev->irq) here? */ - - writel(mask, base + NvRegIrqMask); pci_push(base); + dprintk(KERN_DEBUG "%s: irq: %08x\n", dev->name, events); + if (!(events & NVREG_IRQ_TIMER)) + return IRQ_RETVAL(0); - if (!using_multi_irqs(dev)) { - nv_nic_irq((int) 0, (void *) data, (struct pt_regs *) NULL); - if (np->msi_flags & NV_MSI_X_ENABLED) - enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); - else - enable_irq(dev->irq); - } else { - if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { - nv_nic_irq_rx((int) 0, (void *) data, (struct pt_regs *) NULL); - enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); - } - if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) { - nv_nic_irq_tx((int) 0, (void *) data, (struct pt_regs *) NULL); - enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); - } - if (np->nic_poll_irq & NVREG_IRQ_OTHER) { - nv_nic_irq_other((int) 0, (void *) data, (struct pt_regs *) NULL); - enable_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); - } - } + spin_lock(&np->lock); + np->intr_test = 1; + spin_unlock(&np->lock); + + dprintk(KERN_DEBUG "%s: nv_nic_irq_test completed\n", dev->name); + + return IRQ_RETVAL(1); +} + +static void set_msix_vector_map(struct net_device *dev, u32 vector, u32 irqmask) +{ + u8 __iomem *base = get_hwbase(dev); + int i; + u32 msixmap = 0; + + /* Each interrupt bit can be mapped to a MSIX vector (4 bits). + * MSIXMap0 represents the first 8 interrupts and MSIXMap1 represents + * the remaining 8 interrupts. + */ + for (i = 0; i < 8; i++) { + if ((irqmask >> i) & 0x1) { + msixmap |= vector << (i << 2); + } + } + writel(readl(base + NvRegMSIXMap0) | msixmap, base + NvRegMSIXMap0); + + msixmap = 0; + for (i = 0; i < 8; i++) { + if ((irqmask >> (i + 8)) & 0x1) { + msixmap |= vector << (i << 2); + } + } + writel(readl(base + NvRegMSIXMap1) | msixmap, base + NvRegMSIXMap1); +} + +static int nv_request_irq(struct net_device *dev, int intr_test) +{ + struct fe_priv *np = get_nvpriv(dev); + u8 __iomem *base = get_hwbase(dev); + int ret = 1; + int i; + + if (np->msi_flags & NV_MSI_X_CAPABLE) { + for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { + np->msi_x_entry[i].entry = i; + } + if ((ret = pci_enable_msix(np->pci_dev, np->msi_x_entry, (np->msi_flags & NV_MSI_X_VECTORS_MASK))) == 0) { + np->msi_flags |= NV_MSI_X_ENABLED; + if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT && !intr_test) { + /* Request irq for rx handling */ + if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector, &nv_nic_irq_rx, IRQF_SHARED, dev->name, dev) != 0) { + printk(KERN_INFO "forcedeth: request_irq failed for rx %d\n", ret); + pci_disable_msix(np->pci_dev); + np->msi_flags &= ~NV_MSI_X_ENABLED; + goto out_err; + } + /* Request irq for tx handling */ + if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector, &nv_nic_irq_tx, IRQF_SHARED, dev->name, dev) != 0) { + printk(KERN_INFO "forcedeth: request_irq failed for tx %d\n", ret); + pci_disable_msix(np->pci_dev); + np->msi_flags &= ~NV_MSI_X_ENABLED; + goto out_free_rx; + } + /* Request irq for link and timer handling */ + if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector, &nv_nic_irq_other, IRQF_SHARED, dev->name, dev) != 0) { + printk(KERN_INFO "forcedeth: request_irq failed for link %d\n", ret); + pci_disable_msix(np->pci_dev); + np->msi_flags &= ~NV_MSI_X_ENABLED; + goto out_free_tx; + } + /* map interrupts to their respective vector */ + writel(0, base + NvRegMSIXMap0); + writel(0, base + NvRegMSIXMap1); + set_msix_vector_map(dev, NV_MSI_X_VECTOR_RX, NVREG_IRQ_RX_ALL); + set_msix_vector_map(dev, NV_MSI_X_VECTOR_TX, NVREG_IRQ_TX_ALL); + set_msix_vector_map(dev, NV_MSI_X_VECTOR_OTHER, NVREG_IRQ_OTHER); + } else { + /* Request irq for all interrupts */ + if ((!intr_test && + request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector, &nv_nic_irq, IRQF_SHARED, dev->name, dev) != 0) || + (intr_test && + request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector, &nv_nic_irq_test, IRQF_SHARED, dev->name, dev) != 0)) { + printk(KERN_INFO "forcedeth: request_irq failed %d\n", ret); + pci_disable_msix(np->pci_dev); + np->msi_flags &= ~NV_MSI_X_ENABLED; + goto out_err; + } + + /* map interrupts to vector 0 */ + writel(0, base + NvRegMSIXMap0); + writel(0, base + NvRegMSIXMap1); + } + } + } + if (ret != 0 && np->msi_flags & NV_MSI_CAPABLE) { + if ((ret = pci_enable_msi(np->pci_dev)) == 0) { + np->msi_flags |= NV_MSI_ENABLED; + if ((!intr_test && request_irq(np->pci_dev->irq, &nv_nic_irq, IRQF_SHARED, dev->name, dev) != 0) || + (intr_test && request_irq(np->pci_dev->irq, &nv_nic_irq_test, IRQF_SHARED, dev->name, dev) != 0)) { + printk(KERN_INFO "forcedeth: request_irq failed %d\n", ret); + pci_disable_msi(np->pci_dev); + np->msi_flags &= ~NV_MSI_ENABLED; + goto out_err; + } + + /* map interrupts to vector 0 */ + writel(0, base + NvRegMSIMap0); + writel(0, base + NvRegMSIMap1); + /* enable msi vector 0 */ + writel(NVREG_MSI_VECTOR_0_ENABLED, base + NvRegMSIIrqMask); + } + } + if (ret != 0) { + if ((!intr_test && request_irq(np->pci_dev->irq, &nv_nic_irq, IRQF_SHARED, dev->name, dev) != 0) || + (intr_test && request_irq(np->pci_dev->irq, &nv_nic_irq_test, IRQF_SHARED, dev->name, dev) != 0)) + goto out_err; + + } + + return 0; +out_free_tx: + free_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector, dev); +out_free_rx: + free_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector, dev); +out_err: + return 1; +} + +static void nv_free_irq(struct net_device *dev) +{ + struct fe_priv *np = get_nvpriv(dev); + int i; + + if (np->msi_flags & NV_MSI_X_ENABLED) { + for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { + free_irq(np->msi_x_entry[i].vector, dev); + } + pci_disable_msix(np->pci_dev); + np->msi_flags &= ~NV_MSI_X_ENABLED; + } else { + free_irq(np->pci_dev->irq, dev); + if (np->msi_flags & NV_MSI_ENABLED) { + pci_disable_msi(np->pci_dev); + np->msi_flags &= ~NV_MSI_ENABLED; + } + } +} + +static void nv_do_nic_poll(unsigned long data) +{ + struct net_device *dev = (struct net_device *) data; + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + u32 mask = 0; + + /* + * First disable irq(s) and then + * reenable interrupts on the nic, we have to do this before calling + * nv_nic_irq because that may decide to do otherwise + */ + + if (!using_multi_irqs(dev)) { + if (np->msi_flags & NV_MSI_X_ENABLED) + disable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); + else + disable_irq_lockdep(dev->irq); + mask = np->irqmask; + } else { + if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { + disable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); + mask |= NVREG_IRQ_RX_ALL; + } + if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) { + disable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); + mask |= NVREG_IRQ_TX_ALL; + } + if (np->nic_poll_irq & NVREG_IRQ_OTHER) { + disable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); + mask |= NVREG_IRQ_OTHER; + } + } + np->nic_poll_irq = 0; + + if (np->recover_error) { + np->recover_error = 0; + printk(KERN_INFO "forcedeth: MAC in recoverable error state\n"); + if (netif_running(dev)) { + netif_tx_lock_bh(dev); + spin_lock(&np->lock); + /* stop engines */ + nv_stop_rx(dev); + nv_stop_tx(dev); + nv_txrx_reset(dev); + /* drain rx queue */ + nv_drain_rx(dev); + nv_drain_tx(dev); + /* reinit driver view of the rx queue */ + set_bufsize(dev); + if (nv_init_ring(dev)) { + if (!np->in_shutdown) + mod_timer(&np->oom_kick, jiffies + OOM_REFILL); + } + /* reinit nic view of the rx queue */ + writel(np->rx_buf_sz, base + NvRegOffloadConfig); + setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); + writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), + base + NvRegRingSizes); + pci_push(base); + writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); + pci_push(base); + + /* restart rx engine */ + nv_start_rx(dev); + nv_start_tx(dev); + spin_unlock(&np->lock); + netif_tx_unlock_bh(dev); + } + } + + /* FIXME: Do we need synchronize_irq(dev->irq) here? */ + + writel(mask, base + NvRegIrqMask); + pci_push(base); + + if (!using_multi_irqs(dev)) { + nv_nic_irq(0, dev, NULL); + if (np->msi_flags & NV_MSI_X_ENABLED) + enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector); + else + enable_irq_lockdep(dev->irq); + } else { + if (np->nic_poll_irq & NVREG_IRQ_RX_ALL) { + nv_nic_irq_rx(0, dev, NULL); + enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector); + } + if (np->nic_poll_irq & NVREG_IRQ_TX_ALL) { + nv_nic_irq_tx(0, dev, NULL); + enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector); + } + if (np->nic_poll_irq & NVREG_IRQ_OTHER) { + nv_nic_irq_other(0, dev, NULL); + enable_irq_lockdep(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector); + } + } } #ifdef CONFIG_NET_POLL_CONTROLLER @@ -2359,6 +3020,56 @@ } #endif +static void nv_do_stats_poll(unsigned long data) +{ + struct net_device *dev = (struct net_device *) data; + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + + np->estats.tx_bytes += readl(base + NvRegTxCnt); + np->estats.tx_zero_rexmt += readl(base + NvRegTxZeroReXmt); + np->estats.tx_one_rexmt += readl(base + NvRegTxOneReXmt); + np->estats.tx_many_rexmt += readl(base + NvRegTxManyReXmt); + np->estats.tx_late_collision += readl(base + NvRegTxLateCol); + np->estats.tx_fifo_errors += readl(base + NvRegTxUnderflow); + np->estats.tx_carrier_errors += readl(base + NvRegTxLossCarrier); + np->estats.tx_excess_deferral += readl(base + NvRegTxExcessDef); + np->estats.tx_retry_error += readl(base + NvRegTxRetryErr); + np->estats.tx_deferral += readl(base + NvRegTxDef); + np->estats.tx_packets += readl(base + NvRegTxFrame); + np->estats.tx_pause += readl(base + NvRegTxPause); + np->estats.rx_frame_error += readl(base + NvRegRxFrameErr); + np->estats.rx_extra_byte += readl(base + NvRegRxExtraByte); + np->estats.rx_late_collision += readl(base + NvRegRxLateCol); + np->estats.rx_runt += readl(base + NvRegRxRunt); + np->estats.rx_frame_too_long += readl(base + NvRegRxFrameTooLong); + np->estats.rx_over_errors += readl(base + NvRegRxOverflow); + np->estats.rx_crc_errors += readl(base + NvRegRxFCSErr); + np->estats.rx_frame_align_error += readl(base + NvRegRxFrameAlignErr); + np->estats.rx_length_error += readl(base + NvRegRxLenErr); + np->estats.rx_unicast += readl(base + NvRegRxUnicast); + np->estats.rx_multicast += readl(base + NvRegRxMulticast); + np->estats.rx_broadcast += readl(base + NvRegRxBroadcast); + np->estats.rx_bytes += readl(base + NvRegRxCnt); + np->estats.rx_pause += readl(base + NvRegRxPause); + np->estats.rx_drop_frame += readl(base + NvRegRxDropFrame); + np->estats.rx_packets = + np->estats.rx_unicast + + np->estats.rx_multicast + + np->estats.rx_broadcast; + np->estats.rx_errors_total = + np->estats.rx_crc_errors + + np->estats.rx_over_errors + + np->estats.rx_frame_error + + (np->estats.rx_frame_align_error - np->estats.rx_extra_byte) + + np->estats.rx_late_collision + + np->estats.rx_runt + + np->estats.rx_frame_too_long; + + if (!np->in_shutdown) + mod_timer(&np->stats_poll, jiffies + STATS_INTERVAL); +} + static void nv_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct fe_priv *np = netdev_priv(dev); @@ -2382,17 +3093,19 @@ { struct fe_priv *np = netdev_priv(dev); u8 __iomem *base = get_hwbase(dev); + u32 flags = 0; - spin_lock_irq(&np->lock); if (wolinfo->wolopts == 0) { - writel(0, base + NvRegWakeUpFlags); np->wolenabled = 0; - } - if (wolinfo->wolopts & WAKE_MAGIC) { - writel(NVREG_WAKEUPFLAGS_ENABLE, base + NvRegWakeUpFlags); + } else if (wolinfo->wolopts & WAKE_MAGIC) { np->wolenabled = 1; + flags = NVREG_WAKEUPFLAGS_ENABLE; + } + if (netif_running(dev)) { + spin_lock_irq(&np->lock); + writel(flags, base + NvRegWakeUpFlags); + spin_unlock_irq(&np->lock); } - spin_unlock_irq(&np->lock); return 0; } @@ -2406,9 +3119,17 @@ if (!netif_running(dev)) { /* We do not track link speed / duplex setting if the * interface is disabled. Force a link check */ - nv_update_linkspeed(dev); + if (nv_update_linkspeed(dev)) { + if (!netif_carrier_ok(dev)) + netif_carrier_on(dev); + } else { + if (netif_carrier_ok(dev)) + netif_carrier_off(dev); + } } - switch(np->linkspeed & (NVREG_LINKSPEED_MASK)) { + + if (netif_carrier_ok(dev)) { + switch(np->linkspeed & (NVREG_LINKSPEED_MASK)) { case NVREG_LINKSPEED_10: ecmd->speed = SPEED_10; break; @@ -2418,10 +3139,14 @@ case NVREG_LINKSPEED_1000: ecmd->speed = SPEED_1000; break; + } + ecmd->duplex = DUPLEX_HALF; + if (np->duplex) + ecmd->duplex = DUPLEX_FULL; + } else { + ecmd->speed = -1; + ecmd->duplex = -1; } - ecmd->duplex = DUPLEX_HALF; - if (np->duplex) - ecmd->duplex = DUPLEX_FULL; ecmd->autoneg = np->autoneg; @@ -2429,23 +3154,20 @@ if (np->autoneg) { ecmd->advertising |= ADVERTISED_Autoneg; adv = mii_rw(dev, np->phyaddr, MII_ADVERTISE, MII_READ); - } else { - adv = np->fixed_mode; - } - if (adv & ADVERTISE_10HALF) - ecmd->advertising |= ADVERTISED_10baseT_Half; - if (adv & ADVERTISE_10FULL) - ecmd->advertising |= ADVERTISED_10baseT_Full; - if (adv & ADVERTISE_100HALF) - ecmd->advertising |= ADVERTISED_100baseT_Half; - if (adv & ADVERTISE_100FULL) - ecmd->advertising |= ADVERTISED_100baseT_Full; - if (np->autoneg && np->gigabit == PHY_GIGABIT) { - adv = mii_rw(dev, np->phyaddr, MII_1000BT_CR, MII_READ); - if (adv & ADVERTISE_1000FULL) - ecmd->advertising |= ADVERTISED_1000baseT_Full; + if (adv & ADVERTISE_10HALF) + ecmd->advertising |= ADVERTISED_10baseT_Half; + if (adv & ADVERTISE_10FULL) + ecmd->advertising |= ADVERTISED_10baseT_Full; + if (adv & ADVERTISE_100HALF) + ecmd->advertising |= ADVERTISED_100baseT_Half; + if (adv & ADVERTISE_100FULL) + ecmd->advertising |= ADVERTISED_100baseT_Full; + if (np->gigabit == PHY_GIGABIT) { + adv = mii_rw(dev, np->phyaddr, MII_CTRL1000, MII_READ); + if (adv & ADVERTISE_1000FULL) + ecmd->advertising |= ADVERTISED_1000baseT_Full; + } } - ecmd->supported = (SUPPORTED_Autoneg | SUPPORTED_10baseT_Half | SUPPORTED_10baseT_Full | SUPPORTED_100baseT_Half | SUPPORTED_100baseT_Full | @@ -2497,7 +3219,18 @@ return -EINVAL; } - spin_lock_irq(&np->lock); + netif_carrier_off(dev); + if (netif_running(dev)) { + nv_disable_irq(dev); + netif_tx_lock_bh(dev); + spin_lock(&np->lock); + /* stop engines */ + nv_stop_rx(dev); + nv_stop_tx(dev); + spin_unlock(&np->lock); + netif_tx_unlock_bh(dev); + } + if (ecmd->autoneg == AUTONEG_ENABLE) { int adv, bmcr; @@ -2505,7 +3238,7 @@ /* advertise only what has been requested */ adv = mii_rw(dev, np->phyaddr, MII_ADVERTISE, MII_READ); - adv &= ~(ADVERTISE_ALL | ADVERTISE_100BASE4); + adv &= ~(ADVERTISE_ALL | ADVERTISE_100BASE4 | ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM); if (ecmd->advertising & ADVERTISED_10baseT_Half) adv |= ADVERTISE_10HALF; if (ecmd->advertising & ADVERTISED_10baseT_Full) @@ -2514,27 +3247,42 @@ adv |= ADVERTISE_100HALF; if (ecmd->advertising & ADVERTISED_100baseT_Full) adv |= ADVERTISE_100FULL; + if (np->pause_flags & NV_PAUSEFRAME_RX_REQ) /* for rx we set both advertisments but disable tx pause */ + adv |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM; + if (np->pause_flags & NV_PAUSEFRAME_TX_REQ) + adv |= ADVERTISE_PAUSE_ASYM; mii_rw(dev, np->phyaddr, MII_ADVERTISE, adv); if (np->gigabit == PHY_GIGABIT) { - adv = mii_rw(dev, np->phyaddr, MII_1000BT_CR, MII_READ); + adv = mii_rw(dev, np->phyaddr, MII_CTRL1000, MII_READ); adv &= ~ADVERTISE_1000FULL; if (ecmd->advertising & ADVERTISED_1000baseT_Full) adv |= ADVERTISE_1000FULL; - mii_rw(dev, np->phyaddr, MII_1000BT_CR, adv); + mii_rw(dev, np->phyaddr, MII_CTRL1000, adv); } + if (netif_running(dev)) + printk(KERN_INFO "%s: link down.\n", dev->name); bmcr = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); - bmcr |= (BMCR_ANENABLE | BMCR_ANRESTART); - mii_rw(dev, np->phyaddr, MII_BMCR, bmcr); - + if (np->phy_model == PHY_MODEL_MARVELL_E3016) { + bmcr |= BMCR_ANENABLE; + /* reset the phy in order for settings to stick, + * and cause autoneg to start */ + if (phy_reset(dev, bmcr)) { + printk(KERN_INFO "%s: phy reset failed\n", dev->name); + return -EINVAL; + } + } else { + bmcr |= (BMCR_ANENABLE | BMCR_ANRESTART); + mii_rw(dev, np->phyaddr, MII_BMCR, bmcr); + } } else { int adv, bmcr; np->autoneg = 0; adv = mii_rw(dev, np->phyaddr, MII_ADVERTISE, MII_READ); - adv &= ~(ADVERTISE_ALL | ADVERTISE_100BASE4); + adv &= ~(ADVERTISE_ALL | ADVERTISE_100BASE4 | ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM); if (ecmd->speed == SPEED_10 && ecmd->duplex == DUPLEX_HALF) adv |= ADVERTISE_10HALF; if (ecmd->speed == SPEED_10 && ecmd->duplex == DUPLEX_FULL) @@ -2543,30 +3291,51 @@ adv |= ADVERTISE_100HALF; if (ecmd->speed == SPEED_100 && ecmd->duplex == DUPLEX_FULL) adv |= ADVERTISE_100FULL; + np->pause_flags &= ~(NV_PAUSEFRAME_AUTONEG|NV_PAUSEFRAME_RX_ENABLE|NV_PAUSEFRAME_TX_ENABLE); + if (np->pause_flags & NV_PAUSEFRAME_RX_REQ) {/* for rx we set both advertisments but disable tx pause */ + adv |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM; + np->pause_flags |= NV_PAUSEFRAME_RX_ENABLE; + } + if (np->pause_flags & NV_PAUSEFRAME_TX_REQ) { + adv |= ADVERTISE_PAUSE_ASYM; + np->pause_flags |= NV_PAUSEFRAME_TX_ENABLE; + } mii_rw(dev, np->phyaddr, MII_ADVERTISE, adv); np->fixed_mode = adv; if (np->gigabit == PHY_GIGABIT) { - adv = mii_rw(dev, np->phyaddr, MII_1000BT_CR, MII_READ); + adv = mii_rw(dev, np->phyaddr, MII_CTRL1000, MII_READ); adv &= ~ADVERTISE_1000FULL; - mii_rw(dev, np->phyaddr, MII_1000BT_CR, adv); + mii_rw(dev, np->phyaddr, MII_CTRL1000, adv); } bmcr = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); - bmcr |= ~(BMCR_ANENABLE|BMCR_SPEED100|BMCR_FULLDPLX); - if (adv & (ADVERTISE_10FULL|ADVERTISE_100FULL)) + bmcr &= ~(BMCR_ANENABLE|BMCR_SPEED100|BMCR_SPEED1000|BMCR_FULLDPLX); + if (np->fixed_mode & (ADVERTISE_10FULL|ADVERTISE_100FULL)) bmcr |= BMCR_FULLDPLX; - if (adv & (ADVERTISE_100HALF|ADVERTISE_100FULL)) + if (np->fixed_mode & (ADVERTISE_100HALF|ADVERTISE_100FULL)) bmcr |= BMCR_SPEED100; - mii_rw(dev, np->phyaddr, MII_BMCR, bmcr); - - if (netif_running(dev)) { - /* Wait a bit and then reconfigure the nic. */ - udelay(10); - nv_linkchange(dev); + if (np->phy_oui == PHY_OUI_MARVELL) { + /* reset the phy in order for forced mode settings to stick */ + if (phy_reset(dev, bmcr)) { + printk(KERN_INFO "%s: phy reset failed\n", dev->name); + return -EINVAL; + } + } else { + mii_rw(dev, np->phyaddr, MII_BMCR, bmcr); + if (netif_running(dev)) { + /* Wait a bit and then reconfigure the nic. */ + udelay(10); + nv_linkchange(dev); + } } } - spin_unlock_irq(&np->lock); + + if (netif_running(dev)) { + nv_start_rx(dev); + nv_start_tx(dev); + nv_enable_irq(dev); + } return 0; } @@ -2598,36 +3367,696 @@ struct fe_priv *np = netdev_priv(dev); int ret; - spin_lock_irq(&np->lock); if (np->autoneg) { int bmcr; + netif_carrier_off(dev); + if (netif_running(dev)) { + nv_disable_irq(dev); + netif_tx_lock_bh(dev); + spin_lock(&np->lock); + /* stop engines */ + nv_stop_rx(dev); + nv_stop_tx(dev); + spin_unlock(&np->lock); + netif_tx_unlock_bh(dev); + printk(KERN_INFO "%s: link down.\n", dev->name); + } + bmcr = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); - bmcr |= (BMCR_ANENABLE | BMCR_ANRESTART); - mii_rw(dev, np->phyaddr, MII_BMCR, bmcr); + if (np->phy_model == PHY_MODEL_MARVELL_E3016) { + bmcr |= BMCR_ANENABLE; + /* reset the phy in order for settings to stick*/ + if (phy_reset(dev, bmcr)) { + printk(KERN_INFO "%s: phy reset failed\n", dev->name); + return -EINVAL; + } + } else { + bmcr |= (BMCR_ANENABLE | BMCR_ANRESTART); + mii_rw(dev, np->phyaddr, MII_BMCR, bmcr); + } + + if (netif_running(dev)) { + nv_start_rx(dev); + nv_start_tx(dev); + nv_enable_irq(dev); + } + ret = 0; + } else { + ret = -EINVAL; + } + + return ret; +} + +static int nv_set_tso(struct net_device *dev, u32 value) +{ + struct fe_priv *np = netdev_priv(dev); + + if ((np->driver_data & DEV_HAS_CHECKSUM)) + return ethtool_op_set_tso(dev, value); + else + return -EOPNOTSUPP; +} + +static void nv_get_ringparam(struct net_device *dev, struct ethtool_ringparam* ring) +{ + struct fe_priv *np = netdev_priv(dev); + + ring->rx_max_pending = (np->desc_ver == DESC_VER_1) ? RING_MAX_DESC_VER_1 : RING_MAX_DESC_VER_2_3; + ring->rx_mini_max_pending = 0; + ring->rx_jumbo_max_pending = 0; + ring->tx_max_pending = (np->desc_ver == DESC_VER_1) ? RING_MAX_DESC_VER_1 : RING_MAX_DESC_VER_2_3; + + ring->rx_pending = np->rx_ring_size; + ring->rx_mini_pending = 0; + ring->rx_jumbo_pending = 0; + ring->tx_pending = np->tx_ring_size; +} + +static int nv_set_ringparam(struct net_device *dev, struct ethtool_ringparam* ring) +{ + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + u8 *rxtx_ring, *rx_skbuff, *tx_skbuff, *rx_dma, *tx_dma, *tx_dma_len; + dma_addr_t ring_addr; + + if (ring->rx_pending < RX_RING_MIN || + ring->tx_pending < TX_RING_MIN || + ring->rx_mini_pending != 0 || + ring->rx_jumbo_pending != 0 || + (np->desc_ver == DESC_VER_1 && + (ring->rx_pending > RING_MAX_DESC_VER_1 || + ring->tx_pending > RING_MAX_DESC_VER_1)) || + (np->desc_ver != DESC_VER_1 && + (ring->rx_pending > RING_MAX_DESC_VER_2_3 || + ring->tx_pending > RING_MAX_DESC_VER_2_3))) { + return -EINVAL; + } + + /* allocate new rings */ + if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { + rxtx_ring = pci_alloc_consistent(np->pci_dev, + sizeof(struct ring_desc) * (ring->rx_pending + ring->tx_pending), + &ring_addr); + } else { + rxtx_ring = pci_alloc_consistent(np->pci_dev, + sizeof(struct ring_desc_ex) * (ring->rx_pending + ring->tx_pending), + &ring_addr); + } + rx_skbuff = kmalloc(sizeof(struct sk_buff*) * ring->rx_pending, GFP_KERNEL); + rx_dma = kmalloc(sizeof(dma_addr_t) * ring->rx_pending, GFP_KERNEL); + tx_skbuff = kmalloc(sizeof(struct sk_buff*) * ring->tx_pending, GFP_KERNEL); + tx_dma = kmalloc(sizeof(dma_addr_t) * ring->tx_pending, GFP_KERNEL); + tx_dma_len = kmalloc(sizeof(unsigned int) * ring->tx_pending, GFP_KERNEL); + if (!rxtx_ring || !rx_skbuff || !rx_dma || !tx_skbuff || !tx_dma || !tx_dma_len) { + /* fall back to old rings */ + if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { + if (rxtx_ring) + pci_free_consistent(np->pci_dev, sizeof(struct ring_desc) * (ring->rx_pending + ring->tx_pending), + rxtx_ring, ring_addr); + } else { + if (rxtx_ring) + pci_free_consistent(np->pci_dev, sizeof(struct ring_desc_ex) * (ring->rx_pending + ring->tx_pending), + rxtx_ring, ring_addr); + } + if (rx_skbuff) + kfree(rx_skbuff); + if (rx_dma) + kfree(rx_dma); + if (tx_skbuff) + kfree(tx_skbuff); + if (tx_dma) + kfree(tx_dma); + if (tx_dma_len) + kfree(tx_dma_len); + goto exit; + } + + if (netif_running(dev)) { + nv_disable_irq(dev); + netif_tx_lock_bh(dev); + spin_lock(&np->lock); + /* stop engines */ + nv_stop_rx(dev); + nv_stop_tx(dev); + nv_txrx_reset(dev); + /* drain queues */ + nv_drain_rx(dev); + nv_drain_tx(dev); + /* delete queues */ + free_rings(dev); + } + + /* set new values */ + np->rx_ring_size = ring->rx_pending; + np->tx_ring_size = ring->tx_pending; + np->tx_limit_stop = ring->tx_pending - TX_LIMIT_DIFFERENCE; + np->tx_limit_start = ring->tx_pending - TX_LIMIT_DIFFERENCE - 1; + if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { + np->rx_ring.orig = (struct ring_desc*)rxtx_ring; + np->tx_ring.orig = &np->rx_ring.orig[np->rx_ring_size]; + } else { + np->rx_ring.ex = (struct ring_desc_ex*)rxtx_ring; + np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size]; + } + np->rx_skbuff = (struct sk_buff**)rx_skbuff; + np->rx_dma = (dma_addr_t*)rx_dma; + np->tx_skbuff = (struct sk_buff**)tx_skbuff; + np->tx_dma = (dma_addr_t*)tx_dma; + np->tx_dma_len = (unsigned int*)tx_dma_len; + np->ring_addr = ring_addr; + + memset(np->rx_skbuff, 0, sizeof(struct sk_buff*) * np->rx_ring_size); + memset(np->rx_dma, 0, sizeof(dma_addr_t) * np->rx_ring_size); + memset(np->tx_skbuff, 0, sizeof(struct sk_buff*) * np->tx_ring_size); + memset(np->tx_dma, 0, sizeof(dma_addr_t) * np->tx_ring_size); + memset(np->tx_dma_len, 0, sizeof(unsigned int) * np->tx_ring_size); + + if (netif_running(dev)) { + /* reinit driver view of the queues */ + set_bufsize(dev); + if (nv_init_ring(dev)) { + if (!np->in_shutdown) + mod_timer(&np->oom_kick, jiffies + OOM_REFILL); + } + + /* reinit nic view of the queues */ + writel(np->rx_buf_sz, base + NvRegOffloadConfig); + setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); + writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), + base + NvRegRingSizes); + pci_push(base); + writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); + pci_push(base); + + /* restart engines */ + nv_start_rx(dev); + nv_start_tx(dev); + spin_unlock(&np->lock); + netif_tx_unlock_bh(dev); + nv_enable_irq(dev); + } + return 0; +exit: + return -ENOMEM; +} + +static void nv_get_pauseparam(struct net_device *dev, struct ethtool_pauseparam* pause) +{ + struct fe_priv *np = netdev_priv(dev); + + pause->autoneg = (np->pause_flags & NV_PAUSEFRAME_AUTONEG) != 0; + pause->rx_pause = (np->pause_flags & NV_PAUSEFRAME_RX_ENABLE) != 0; + pause->tx_pause = (np->pause_flags & NV_PAUSEFRAME_TX_ENABLE) != 0; +} + +static int nv_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam* pause) +{ + struct fe_priv *np = netdev_priv(dev); + int adv, bmcr; + + if ((!np->autoneg && np->duplex == 0) || + (np->autoneg && !pause->autoneg && np->duplex == 0)) { + printk(KERN_INFO "%s: can not set pause settings when forced link is in half duplex.\n", + dev->name); + return -EINVAL; + } + if (pause->tx_pause && !(np->pause_flags & NV_PAUSEFRAME_TX_CAPABLE)) { + printk(KERN_INFO "%s: hardware does not support tx pause frames.\n", dev->name); + return -EINVAL; + } + + netif_carrier_off(dev); + if (netif_running(dev)) { + nv_disable_irq(dev); + netif_tx_lock_bh(dev); + spin_lock(&np->lock); + /* stop engines */ + nv_stop_rx(dev); + nv_stop_tx(dev); + spin_unlock(&np->lock); + netif_tx_unlock_bh(dev); + } + + np->pause_flags &= ~(NV_PAUSEFRAME_RX_REQ|NV_PAUSEFRAME_TX_REQ); + if (pause->rx_pause) + np->pause_flags |= NV_PAUSEFRAME_RX_REQ; + if (pause->tx_pause) + np->pause_flags |= NV_PAUSEFRAME_TX_REQ; + + if (np->autoneg && pause->autoneg) { + np->pause_flags |= NV_PAUSEFRAME_AUTONEG; + + adv = mii_rw(dev, np->phyaddr, MII_ADVERTISE, MII_READ); + adv &= ~(ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM); + if (np->pause_flags & NV_PAUSEFRAME_RX_REQ) /* for rx we set both advertisments but disable tx pause */ + adv |= ADVERTISE_PAUSE_CAP | ADVERTISE_PAUSE_ASYM; + if (np->pause_flags & NV_PAUSEFRAME_TX_REQ) + adv |= ADVERTISE_PAUSE_ASYM; + mii_rw(dev, np->phyaddr, MII_ADVERTISE, adv); + + if (netif_running(dev)) + printk(KERN_INFO "%s: link down.\n", dev->name); + bmcr = mii_rw(dev, np->phyaddr, MII_BMCR, MII_READ); + bmcr |= (BMCR_ANENABLE | BMCR_ANRESTART); + mii_rw(dev, np->phyaddr, MII_BMCR, bmcr); + } else { + np->pause_flags &= ~(NV_PAUSEFRAME_AUTONEG|NV_PAUSEFRAME_RX_ENABLE|NV_PAUSEFRAME_TX_ENABLE); + if (pause->rx_pause) + np->pause_flags |= NV_PAUSEFRAME_RX_ENABLE; + if (pause->tx_pause) + np->pause_flags |= NV_PAUSEFRAME_TX_ENABLE; + + if (!netif_running(dev)) + nv_update_linkspeed(dev); + else + nv_update_pause(dev, np->pause_flags); + } + + if (netif_running(dev)) { + nv_start_rx(dev); + nv_start_tx(dev); + nv_enable_irq(dev); + } + return 0; +} + +static u32 nv_get_rx_csum(struct net_device *dev) +{ + struct fe_priv *np = netdev_priv(dev); + return (np->rx_csum) != 0; +} + +static int nv_set_rx_csum(struct net_device *dev, u32 data) +{ + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + int retcode = 0; + + if (np->driver_data & DEV_HAS_CHECKSUM) { + if (data) { + np->rx_csum = 1; + np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK; + } else { + np->rx_csum = 0; + /* vlan is dependent on rx checksum offload */ + if (!(np->vlanctl_bits & NVREG_VLANCONTROL_ENABLE)) + np->txrxctl_bits &= ~NVREG_TXRXCTL_RXCHECK; + } + if (netif_running(dev)) { + spin_lock_irq(&np->lock); + writel(np->txrxctl_bits, base + NvRegTxRxControl); + spin_unlock_irq(&np->lock); + } + } else { + return -EINVAL; + } + + return retcode; +} + +static int nv_set_tx_csum(struct net_device *dev, u32 data) +{ + struct fe_priv *np = netdev_priv(dev); + + if (np->driver_data & DEV_HAS_CHECKSUM) + return ethtool_op_set_tx_hw_csum(dev, data); + else + return -EOPNOTSUPP; +} + +static int nv_set_sg(struct net_device *dev, u32 data) +{ + struct fe_priv *np = netdev_priv(dev); + + if (np->driver_data & DEV_HAS_CHECKSUM) + return ethtool_op_set_sg(dev, data); + else + return -EOPNOTSUPP; +} + +static int nv_get_stats_count(struct net_device *dev) +{ + struct fe_priv *np = netdev_priv(dev); + + if (np->driver_data & DEV_HAS_STATISTICS) + return sizeof(struct nv_ethtool_stats)/sizeof(u64); + else + return 0; +} + +static void nv_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *estats, u64 *buffer) +{ + struct fe_priv *np = netdev_priv(dev); + + /* update stats */ + nv_do_stats_poll((unsigned long)dev); + + memcpy(buffer, &np->estats, nv_get_stats_count(dev)*sizeof(u64)); +} + +static int nv_self_test_count(struct net_device *dev) +{ + struct fe_priv *np = netdev_priv(dev); + + if (np->driver_data & DEV_HAS_TEST_EXTENDED) + return NV_TEST_COUNT_EXTENDED; + else + return NV_TEST_COUNT_BASE; +} + +static int nv_link_test(struct net_device *dev) +{ + struct fe_priv *np = netdev_priv(dev); + int mii_status; + + mii_rw(dev, np->phyaddr, MII_BMSR, MII_READ); + mii_status = mii_rw(dev, np->phyaddr, MII_BMSR, MII_READ); + + /* check phy link status */ + if (!(mii_status & BMSR_LSTATUS)) + return 0; + else + return 1; +} + +static int nv_register_test(struct net_device *dev) +{ + u8 __iomem *base = get_hwbase(dev); + int i = 0; + u32 orig_read, new_read; + + do { + orig_read = readl(base + nv_registers_test[i].reg); + + /* xor with mask to toggle bits */ + orig_read ^= nv_registers_test[i].mask; + + writel(orig_read, base + nv_registers_test[i].reg); + + new_read = readl(base + nv_registers_test[i].reg); + + if ((new_read & nv_registers_test[i].mask) != (orig_read & nv_registers_test[i].mask)) + return 0; + + /* restore original value */ + orig_read ^= nv_registers_test[i].mask; + writel(orig_read, base + nv_registers_test[i].reg); + + } while (nv_registers_test[++i].reg != 0); + + return 1; +} + +static int nv_interrupt_test(struct net_device *dev) +{ + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + int ret = 1; + int testcnt; + u32 save_msi_flags, save_poll_interval = 0; + + if (netif_running(dev)) { + /* free current irq */ + nv_free_irq(dev); + save_poll_interval = readl(base+NvRegPollingInterval); + } + + /* flag to test interrupt handler */ + np->intr_test = 0; + + /* setup test irq */ + save_msi_flags = np->msi_flags; + np->msi_flags &= ~NV_MSI_X_VECTORS_MASK; + np->msi_flags |= 0x001; /* setup 1 vector */ + if (nv_request_irq(dev, 1)) + return 0; + + /* setup timer interrupt */ + writel(NVREG_POLL_DEFAULT_CPU, base + NvRegPollingInterval); + writel(NVREG_UNKSETUP6_VAL, base + NvRegUnknownSetupReg6); + + nv_enable_hw_interrupts(dev, NVREG_IRQ_TIMER); + + /* wait for at least one interrupt */ + msleep(100); + + spin_lock_irq(&np->lock); + + /* flag should be set within ISR */ + testcnt = np->intr_test; + if (!testcnt) + ret = 2; + + nv_disable_hw_interrupts(dev, NVREG_IRQ_TIMER); + if (!(np->msi_flags & NV_MSI_X_ENABLED)) + writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); + else + writel(NVREG_IRQSTAT_MASK, base + NvRegMSIXIrqStatus); + + spin_unlock_irq(&np->lock); + + nv_free_irq(dev); + + np->msi_flags = save_msi_flags; + + if (netif_running(dev)) { + writel(save_poll_interval, base + NvRegPollingInterval); + writel(NVREG_UNKSETUP6_VAL, base + NvRegUnknownSetupReg6); + /* restore original irq */ + if (nv_request_irq(dev, 0)) + return 0; + } + + return ret; +} + +static int nv_loopback_test(struct net_device *dev) +{ + struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + struct sk_buff *tx_skb, *rx_skb; + dma_addr_t test_dma_addr; + u32 tx_flags_extra = (np->desc_ver == DESC_VER_1 ? NV_TX_LASTPACKET : NV_TX2_LASTPACKET); + u32 flags; + int len, i, pkt_len; + u8 *pkt_data; + u32 filter_flags = 0; + u32 misc1_flags = 0; + int ret = 1; + + if (netif_running(dev)) { + nv_disable_irq(dev); + filter_flags = readl(base + NvRegPacketFilterFlags); + misc1_flags = readl(base + NvRegMisc1); + } else { + nv_txrx_reset(dev); + } + + /* reinit driver view of the rx queue */ + set_bufsize(dev); + nv_init_ring(dev); + + /* setup hardware for loopback */ + writel(NVREG_MISC1_FORCE, base + NvRegMisc1); + writel(NVREG_PFF_ALWAYS | NVREG_PFF_LOOPBACK, base + NvRegPacketFilterFlags); + + /* reinit nic view of the rx queue */ + writel(np->rx_buf_sz, base + NvRegOffloadConfig); + setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); + writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), + base + NvRegRingSizes); + pci_push(base); + + /* restart rx engine */ + nv_start_rx(dev); + nv_start_tx(dev); + + /* setup packet for tx */ + pkt_len = ETH_DATA_LEN; + tx_skb = dev_alloc_skb(pkt_len); + if (!tx_skb) { + printk(KERN_ERR "dev_alloc_skb() failed during loopback test" + " of %s\n", dev->name); + ret = 0; + goto out; + } + pkt_data = skb_put(tx_skb, pkt_len); + for (i = 0; i < pkt_len; i++) + pkt_data[i] = (u8)(i & 0xff); + test_dma_addr = pci_map_single(np->pci_dev, tx_skb->data, + tx_skb->end-tx_skb->data, PCI_DMA_FROMDEVICE); + + if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { + np->tx_ring.orig[0].buf = cpu_to_le32(test_dma_addr); + np->tx_ring.orig[0].flaglen = cpu_to_le32((pkt_len-1) | np->tx_flags | tx_flags_extra); + } else { + np->tx_ring.ex[0].bufhigh = cpu_to_le64(test_dma_addr) >> 32; + np->tx_ring.ex[0].buflow = cpu_to_le64(test_dma_addr) & 0x0FFFFFFFF; + np->tx_ring.ex[0].flaglen = cpu_to_le32((pkt_len-1) | np->tx_flags | tx_flags_extra); + } + writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); + pci_push(get_hwbase(dev)); + + msleep(500); + + /* check for rx of the packet */ + if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { + flags = le32_to_cpu(np->rx_ring.orig[0].flaglen); + len = nv_descr_getlength(&np->rx_ring.orig[0], np->desc_ver); + + } else { + flags = le32_to_cpu(np->rx_ring.ex[0].flaglen); + len = nv_descr_getlength_ex(&np->rx_ring.ex[0], np->desc_ver); + } + + if (flags & NV_RX_AVAIL) { + ret = 0; + } else if (np->desc_ver == DESC_VER_1) { + if (flags & NV_RX_ERROR) + ret = 0; + } else { + if (flags & NV_RX2_ERROR) { + ret = 0; + } + } + + if (ret) { + if (len != pkt_len) { + ret = 0; + dprintk(KERN_DEBUG "%s: loopback len mismatch %d vs %d\n", + dev->name, len, pkt_len); + } else { + rx_skb = np->rx_skbuff[0]; + for (i = 0; i < pkt_len; i++) { + if (rx_skb->data[i] != (u8)(i & 0xff)) { + ret = 0; + dprintk(KERN_DEBUG "%s: loopback pattern check failed on byte %d\n", + dev->name, i); + break; + } + } + } + } else { + dprintk(KERN_DEBUG "%s: loopback - did not receive test packet\n", dev->name); + } + + pci_unmap_page(np->pci_dev, test_dma_addr, + tx_skb->end-tx_skb->data, + PCI_DMA_TODEVICE); + dev_kfree_skb_any(tx_skb); + out: + /* stop engines */ + nv_stop_rx(dev); + nv_stop_tx(dev); + nv_txrx_reset(dev); + /* drain rx queue */ + nv_drain_rx(dev); + nv_drain_tx(dev); - ret = 0; - } else { - ret = -EINVAL; + if (netif_running(dev)) { + writel(misc1_flags, base + NvRegMisc1); + writel(filter_flags, base + NvRegPacketFilterFlags); + nv_enable_irq(dev); } - spin_unlock_irq(&np->lock); return ret; } -#ifdef NETIF_F_TSO -static int nv_set_tso(struct net_device *dev, u32 value) +static void nv_self_test(struct net_device *dev, struct ethtool_test *test, u64 *buffer) { struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); + int result; + memset(buffer, 0, nv_self_test_count(dev)*sizeof(u64)); - if ((np->driver_data & DEV_HAS_CHECKSUM)) - return ethtool_op_set_tso(dev, value); - else - return value ? -EOPNOTSUPP : 0; + if (!nv_link_test(dev)) { + test->flags |= ETH_TEST_FL_FAILED; + buffer[0] = 1; + } + + if (test->flags & ETH_TEST_FL_OFFLINE) { + if (netif_running(dev)) { + netif_stop_queue(dev); + netif_poll_disable(dev); + netif_tx_lock_bh(dev); + spin_lock_irq(&np->lock); + nv_disable_hw_interrupts(dev, np->irqmask); + if (!(np->msi_flags & NV_MSI_X_ENABLED)) { + writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); + } else { + writel(NVREG_IRQSTAT_MASK, base + NvRegMSIXIrqStatus); + } + /* stop engines */ + nv_stop_rx(dev); + nv_stop_tx(dev); + nv_txrx_reset(dev); + /* drain rx queue */ + nv_drain_rx(dev); + nv_drain_tx(dev); + spin_unlock_irq(&np->lock); + netif_tx_unlock_bh(dev); + } + + if (!nv_register_test(dev)) { + test->flags |= ETH_TEST_FL_FAILED; + buffer[1] = 1; + } + + result = nv_interrupt_test(dev); + if (result != 1) { + test->flags |= ETH_TEST_FL_FAILED; + buffer[2] = 1; + } + if (result == 0) { + /* bail out */ + return; + } + + if (!nv_loopback_test(dev)) { + test->flags |= ETH_TEST_FL_FAILED; + buffer[3] = 1; + } + + if (netif_running(dev)) { + /* reinit driver view of the rx queue */ + set_bufsize(dev); + if (nv_init_ring(dev)) { + if (!np->in_shutdown) + mod_timer(&np->oom_kick, jiffies + OOM_REFILL); + } + /* reinit nic view of the rx queue */ + writel(np->rx_buf_sz, base + NvRegOffloadConfig); + setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); + writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), + base + NvRegRingSizes); + pci_push(base); + writel(NVREG_TXRXCTL_KICK|np->txrxctl_bits, get_hwbase(dev) + NvRegTxRxControl); + pci_push(base); + /* restart rx engine */ + nv_start_rx(dev); + nv_start_tx(dev); + netif_start_queue(dev); + netif_poll_enable(dev); + nv_enable_hw_interrupts(dev, np->irqmask); + } + } +} + +static void nv_get_strings(struct net_device *dev, u32 stringset, u8 *buffer) +{ + switch (stringset) { + case ETH_SS_STATS: + memcpy(buffer, &nv_estats_str, nv_get_stats_count(dev)*sizeof(struct nv_ethtool_str)); + break; + case ETH_SS_TEST: + memcpy(buffer, &nv_etests_str, nv_self_test_count(dev)*sizeof(struct nv_ethtool_str)); + break; + } } -#endif -static struct ethtool_ops ops = { +static const struct ethtool_ops ops = { .get_drvinfo = nv_get_drvinfo, .get_link = ethtool_op_get_link, .get_wol = nv_get_wol, @@ -2638,10 +4067,23 @@ .get_regs = nv_get_regs, .nway_reset = nv_nway_reset, .get_perm_addr = ethtool_op_get_perm_addr, -#ifdef NETIF_F_TSO .get_tso = ethtool_op_get_tso, - .set_tso = nv_set_tso -#endif + .set_tso = nv_set_tso, + .get_ringparam = nv_get_ringparam, + .set_ringparam = nv_set_ringparam, + .get_pauseparam = nv_get_pauseparam, + .set_pauseparam = nv_set_pauseparam, + .get_rx_csum = nv_get_rx_csum, + .set_rx_csum = nv_set_rx_csum, + .get_tx_csum = ethtool_op_get_tx_csum, + .set_tx_csum = nv_set_tx_csum, + .get_sg = ethtool_op_get_sg, + .set_sg = nv_set_sg, + .get_strings = nv_get_strings, + .get_stats_count = nv_get_stats_count, + .get_ethtool_stats = nv_get_ethtool_stats, + .self_test_count = nv_self_test_count, + .self_test = nv_self_test, }; static void nv_vlan_rx_register(struct net_device *dev, struct vlan_group *grp) @@ -2672,137 +4114,52 @@ /* nothing to do */ }; -static void set_msix_vector_map(struct net_device *dev, u32 vector, u32 irqmask) +/* The mgmt unit and driver use a semaphore to access the phy during init */ +static int nv_mgmt_acquire_sema(struct net_device *dev) { u8 __iomem *base = get_hwbase(dev); int i; - u32 msixmap = 0; - - /* Each interrupt bit can be mapped to a MSIX vector (4 bits). - * MSIXMap0 represents the first 8 interrupts and MSIXMap1 represents - * the remaining 8 interrupts. - */ - for (i = 0; i < 8; i++) { - if ((irqmask >> i) & 0x1) { - msixmap |= vector << (i << 2); - } - } - writel(readl(base + NvRegMSIXMap0) | msixmap, base + NvRegMSIXMap0); + u32 tx_ctrl, mgmt_sema; - msixmap = 0; - for (i = 0; i < 8; i++) { - if ((irqmask >> (i + 8)) & 0x1) { - msixmap |= vector << (i << 2); - } + for (i = 0; i < 10; i++) { + mgmt_sema = readl(base + NvRegTransmitterControl) & NVREG_XMITCTL_MGMT_SEMA_MASK; + if (mgmt_sema == NVREG_XMITCTL_MGMT_SEMA_FREE) + break; + msleep(500); } - writel(readl(base + NvRegMSIXMap1) | msixmap, base + NvRegMSIXMap1); -} - -static int nv_request_irq(struct net_device *dev) -{ - struct fe_priv *np = get_nvpriv(dev); - u8 __iomem *base = get_hwbase(dev); - int ret = 1; - int i; - - if (np->msi_flags & NV_MSI_X_CAPABLE) { - for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { - np->msi_x_entry[i].entry = i; - } - if ((ret = pci_enable_msix(np->pci_dev, np->msi_x_entry, (np->msi_flags & NV_MSI_X_VECTORS_MASK))) == 0) { - np->msi_flags |= NV_MSI_X_ENABLED; - if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT) { - /* Request irq for rx handling */ - if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector, &nv_nic_irq_rx, SA_SHIRQ, dev->name, dev) != 0) { - printk(KERN_INFO "forcedeth: request_irq failed for rx %d\n", ret); - pci_disable_msix(np->pci_dev); - np->msi_flags &= ~NV_MSI_X_ENABLED; - goto out_err; - } - /* Request irq for tx handling */ - if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector, &nv_nic_irq_tx, SA_SHIRQ, dev->name, dev) != 0) { - printk(KERN_INFO "forcedeth: request_irq failed for tx %d\n", ret); - pci_disable_msix(np->pci_dev); - np->msi_flags &= ~NV_MSI_X_ENABLED; - goto out_free_rx; - } - /* Request irq for link and timer handling */ - if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_OTHER].vector, &nv_nic_irq_other, SA_SHIRQ, dev->name, dev) != 0) { - printk(KERN_INFO "forcedeth: request_irq failed for link %d\n", ret); - pci_disable_msix(np->pci_dev); - np->msi_flags &= ~NV_MSI_X_ENABLED; - goto out_free_tx; - } - /* map interrupts to their respective vector */ - writel(0, base + NvRegMSIXMap0); - writel(0, base + NvRegMSIXMap1); - set_msix_vector_map(dev, NV_MSI_X_VECTOR_RX, NVREG_IRQ_RX_ALL); - set_msix_vector_map(dev, NV_MSI_X_VECTOR_TX, NVREG_IRQ_TX_ALL); - set_msix_vector_map(dev, NV_MSI_X_VECTOR_OTHER, NVREG_IRQ_OTHER); - } else { - /* Request irq for all interrupts */ - if (request_irq(np->msi_x_entry[NV_MSI_X_VECTOR_ALL].vector, &nv_nic_irq, SA_SHIRQ, dev->name, dev) != 0) { - printk(KERN_INFO "forcedeth: request_irq failed %d\n", ret); - pci_disable_msix(np->pci_dev); - np->msi_flags &= ~NV_MSI_X_ENABLED; - goto out_err; - } - /* map interrupts to vector 0 */ - writel(0, base + NvRegMSIXMap0); - writel(0, base + NvRegMSIXMap1); - } - } - } - if (ret != 0 && np->msi_flags & NV_MSI_CAPABLE) { - if ((ret = pci_enable_msi(np->pci_dev)) == 0) { - np->msi_flags |= NV_MSI_ENABLED; - if (request_irq(np->pci_dev->irq, &nv_nic_irq, SA_SHIRQ, dev->name, dev) != 0) { - printk(KERN_INFO "forcedeth: request_irq failed %d\n", ret); - pci_disable_msi(np->pci_dev); - np->msi_flags &= ~NV_MSI_ENABLED; - goto out_err; - } + if (mgmt_sema != NVREG_XMITCTL_MGMT_SEMA_FREE) + return 0; - /* map interrupts to vector 0 */ - writel(0, base + NvRegMSIMap0); - writel(0, base + NvRegMSIMap1); - /* enable msi vector 0 */ - writel(NVREG_MSI_VECTOR_0_ENABLED, base + NvRegMSIIrqMask); - } - } - if (ret != 0) { - if (request_irq(np->pci_dev->irq, &nv_nic_irq, SA_SHIRQ, dev->name, dev) != 0) - goto out_err; + for (i = 0; i < 2; i++) { + tx_ctrl = readl(base + NvRegTransmitterControl); + tx_ctrl |= NVREG_XMITCTL_HOST_SEMA_ACQ; + writel(tx_ctrl, base + NvRegTransmitterControl); + + /* verify that semaphore was acquired */ + tx_ctrl = readl(base + NvRegTransmitterControl); + if (((tx_ctrl & NVREG_XMITCTL_HOST_SEMA_MASK) == NVREG_XMITCTL_HOST_SEMA_ACQ) && + ((tx_ctrl & NVREG_XMITCTL_MGMT_SEMA_MASK) == NVREG_XMITCTL_MGMT_SEMA_FREE)) + return 1; + else + udelay(50); } return 0; -out_free_tx: - free_irq(np->msi_x_entry[NV_MSI_X_VECTOR_TX].vector, dev); -out_free_rx: - free_irq(np->msi_x_entry[NV_MSI_X_VECTOR_RX].vector, dev); -out_err: - return 1; } -static void nv_free_irq(struct net_device *dev) +/* Indicate to mgmt unit whether driver is loaded or not */ +static void nv_mgmt_driver_loaded(struct net_device *dev, int loaded) { - struct fe_priv *np = get_nvpriv(dev); - int i; + u8 __iomem *base = get_hwbase(dev); + u32 tx_ctrl; - if (np->msi_flags & NV_MSI_X_ENABLED) { - for (i = 0; i < (np->msi_flags & NV_MSI_X_VECTORS_MASK); i++) { - free_irq(np->msi_x_entry[i].vector, dev); - } - pci_disable_msix(np->pci_dev); - np->msi_flags &= ~NV_MSI_X_ENABLED; - } else { - free_irq(np->pci_dev->irq, dev); - if (np->msi_flags & NV_MSI_ENABLED) { - pci_disable_msi(np->pci_dev); - np->msi_flags &= ~NV_MSI_ENABLED; - } - } + tx_ctrl = readl(base + NvRegTransmitterControl); + if (loaded) + tx_ctrl |= NVREG_XMITCTL_HOST_LOADED; + else + tx_ctrl &= ~NVREG_XMITCTL_HOST_LOADED; + writel(tx_ctrl, base + NvRegTransmitterControl); } static int nv_open(struct net_device *dev) @@ -2814,10 +4171,9 @@ dprintk(KERN_DEBUG "nv_open: begin\n"); - /* 1) erase previous misconfiguration */ + /* erase previous misconfiguration */ if (np->driver_data & DEV_HAS_POWER_CNTRL) nv_mac_reset(dev); - /* 4.1-1: stop adapter: ignored, 4.3 seems to be overkill */ writel(NVREG_MCASTADDRA_FORCE, base + NvRegMulticastAddrA); writel(0, base + NvRegMulticastAddrB); writel(0, base + NvRegMulticastMaskA); @@ -2829,28 +4185,30 @@ writel(0, base + NvRegAdapterControl); - /* 2) initialize descriptor rings */ + if (np->pause_flags & NV_PAUSEFRAME_TX_CAPABLE) + writel(NVREG_TX_PAUSEFRAME_DISABLE, base + NvRegTxPauseFrame); + + /* initialize descriptor rings */ set_bufsize(dev); oom = nv_init_ring(dev); writel(0, base + NvRegLinkSpeed); - writel(0, base + NvRegUnknownTransmitterReg); + writel(readl(base + NvRegTransmitPoll) & NVREG_TRANSMITPOLL_MAC_ADDR_REV, base + NvRegTransmitPoll); nv_txrx_reset(dev); writel(0, base + NvRegUnknownSetupReg6); np->in_shutdown = 0; - /* 3) set mac address */ - nv_copy_mac_to_hw(dev); - - /* 4) give hw rings */ + /* give hw rings */ setup_hw_rings(dev, NV_SETUP_RX_RING | NV_SETUP_TX_RING); - writel( ((RX_RING-1) << NVREG_RINGSZ_RXSHIFT) + ((TX_RING-1) << NVREG_RINGSZ_TXSHIFT), + writel( ((np->rx_ring_size-1) << NVREG_RINGSZ_RXSHIFT) + ((np->tx_ring_size-1) << NVREG_RINGSZ_TXSHIFT), base + NvRegRingSizes); - /* 5) continue setup */ writel(np->linkspeed, base + NvRegLinkSpeed); - writel(NVREG_UNKSETUP3_VAL1, base + NvRegUnknownSetupReg3); + if (np->desc_ver == DESC_VER_1) + writel(NVREG_TX_WM_DESC1_DEFAULT, base + NvRegTxWatermark); + else + writel(NVREG_TX_WM_DESC2_3_DEFAULT, base + NvRegTxWatermark); writel(np->txrxctl_bits, base + NvRegTxRxControl); writel(np->vlanctl_bits, base + NvRegVlanControl); pci_push(base); @@ -2859,11 +4217,10 @@ NV_SETUP5_DELAY, NV_SETUP5_DELAYMAX, KERN_INFO "open: SetupReg5, Bit 31 remained off\n"); - writel(0, base + NvRegUnknownSetupReg4); + writel(0, base + NvRegMIIMask); writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); writel(NVREG_MIISTAT_MASK2, base + NvRegMIIStatus); - /* 6) continue setup */ writel(NVREG_MISC1_FORCE | NVREG_MISC1_HD, base + NvRegMisc1); writel(readl(base + NvRegTransmitterStatus), base + NvRegTransmitterStatus); writel(NVREG_PFF_ALWAYS, base + NvRegPacketFilterFlags); @@ -2872,8 +4229,8 @@ writel(readl(base + NvRegReceiverStatus), base + NvRegReceiverStatus); get_random_bytes(&i, sizeof(i)); writel(NVREG_RNDSEED_FORCE | (i&NVREG_RNDSEED_MASK), base + NvRegRandomSeed); - writel(NVREG_UNKSETUP1_VAL, base + NvRegUnknownSetupReg1); - writel(NVREG_UNKSETUP2_VAL, base + NvRegUnknownSetupReg2); + writel(NVREG_TX_DEFERRAL_DEFAULT, base + NvRegTxDeferral); + writel(NVREG_RX_DEFERRAL_DEFAULT, base + NvRegRxDeferral); if (poll_interval == -1) { if (optimization_mode == NV_OPTIMIZATION_MODE_THROUGHPUT) writel(NVREG_POLL_DEFAULT_THROUGHPUT, base + NvRegPollingInterval); @@ -2886,8 +4243,9 @@ writel((np->phyaddr << NVREG_ADAPTCTL_PHYSHIFT)|NVREG_ADAPTCTL_PHYVALID|NVREG_ADAPTCTL_RUNNING, base + NvRegAdapterControl); writel(NVREG_MIISPEED_BIT8|NVREG_MIIDELAY, base + NvRegMIISpeed); - writel(NVREG_UNKSETUP4_VAL, base + NvRegUnknownSetupReg4); - writel(NVREG_WAKEUPFLAGS_VAL, base + NvRegWakeUpFlags); + writel(NVREG_MII_LINKCHANGE, base + NvRegMIIMask); + if (np->wolenabled) + writel(NVREG_WAKEUPFLAGS_ENABLE , base + NvRegWakeUpFlags); i = readl(base + NvRegPowerState); if ( (i & NVREG_POWERSTATE_POWEREDUP) == 0) @@ -2903,7 +4261,7 @@ writel(NVREG_IRQSTAT_MASK, base + NvRegIrqStatus); pci_push(base); - if (nv_request_irq(dev)) { + if (nv_request_irq(dev, 0)) { goto out_drain; } @@ -2932,6 +4290,8 @@ nv_start_rx(dev); nv_start_tx(dev); netif_start_queue(dev); + netif_poll_enable(dev); + if (ret) { netif_carrier_on(dev); } else { @@ -2940,6 +4300,11 @@ } if (oom) mod_timer(&np->oom_kick, jiffies + OOM_REFILL); + + /* start statistics timer */ + if (np->driver_data & DEV_HAS_STATISTICS) + mod_timer(&np->stats_poll, jiffies + STATS_INTERVAL); + spin_unlock_irq(&np->lock); return 0; @@ -2956,10 +4321,12 @@ spin_lock_irq(&np->lock); np->in_shutdown = 1; spin_unlock_irq(&np->lock); + netif_poll_disable(dev); synchronize_irq(dev->irq); del_timer_sync(&np->oom_kick); del_timer_sync(&np->nic_poll); + del_timer_sync(&np->stats_poll); netif_stop_queue(dev); spin_lock_irq(&np->lock); @@ -2982,12 +4349,6 @@ if (np->wolenabled) nv_start_rx(dev); - /* special op: write back the misordered MAC address - otherwise - * the next nv_probe would see a wrong address. - */ - writel(np->orig_mac[0], base + NvRegMacAddrA); - writel(np->orig_mac[1], base + NvRegMacAddrB); - /* FIXME: power down nic */ return 0; @@ -3000,7 +4361,9 @@ unsigned long addr; u8 __iomem *base; int err, i; - u32 powerstate; + u32 powerstate, txreg; + u32 phystate_orig = 0, phystate; + int phyinitialized = 0; dev = alloc_etherdev(sizeof(struct fe_priv)); err = -ENOMEM; @@ -3019,6 +4382,9 @@ init_timer(&np->nic_poll); np->nic_poll.data = (unsigned long) dev; np->nic_poll.function = &nv_do_nic_poll; /* timer handler */ + init_timer(&np->stats_poll); + np->stats_poll.data = (unsigned long) dev; + np->stats_poll.function = &nv_do_stats_poll; /* timer handler */ err = pci_enable_device(pci_dev); if (err) { @@ -3033,7 +4399,7 @@ if (err < 0) goto out_disable; - if (id->driver_data & (DEV_HAS_VLAN|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL)) + if (id->driver_data & (DEV_HAS_VLAN|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL|DEV_HAS_STATISTICS)) np->register_size = NV_PCI_REGSZ_VER2; else np->register_size = NV_PCI_REGSZ_VER1; @@ -3065,16 +4431,18 @@ /* packet format 3: supports 40-bit addressing */ np->desc_ver = DESC_VER_3; np->txrxctl_bits = NVREG_TXRXCTL_DESC_3; - if (pci_set_dma_mask(pci_dev, DMA_39BIT_MASK)) { - printk(KERN_INFO "forcedeth: 64-bit DMA failed, using 32-bit addressing for device %s.\n", - pci_name(pci_dev)); - } else { - dev->features |= NETIF_F_HIGHDMA; - printk(KERN_INFO "forcedeth: using HIGHDMA\n"); - } - if (pci_set_consistent_dma_mask(pci_dev, 0x0000007fffffffffULL)) { - printk(KERN_INFO "forcedeth: 64-bit DMA (consistent) failed for device %s.\n", - pci_name(pci_dev)); + if (dma_64bit) { + if (pci_set_dma_mask(pci_dev, DMA_39BIT_MASK)) { + printk(KERN_INFO "forcedeth: 64-bit DMA failed, using 32-bit addressing for device %s.\n", + pci_name(pci_dev)); + } else { + dev->features |= NETIF_F_HIGHDMA; + printk(KERN_INFO "forcedeth: using HIGHDMA\n"); + } + if (pci_set_consistent_dma_mask(pci_dev, DMA_39BIT_MASK)) { + printk(KERN_INFO "forcedeth: 64-bit DMA (consistent) failed, using 32-bit ring buffers for device %s.\n", + pci_name(pci_dev)); + } } } else if (id->driver_data & DEV_HAS_LARGEDESC) { /* packet format 2: supports jumbo frames */ @@ -3091,6 +4459,7 @@ np->pkt_limit = NV_PKTLIMIT_2; if (id->driver_data & DEV_HAS_CHECKSUM) { + np->rx_csum = 1; np->txrxctl_bits |= NVREG_TXRXCTL_RXCHECK; dev->features |= NETIF_F_HW_CSUM | NETIF_F_SG; #ifdef NETIF_F_TSO @@ -3107,13 +4476,19 @@ } np->msi_flags = 0; - if ((id->driver_data & DEV_HAS_MSI) && !disable_msi) { + if ((id->driver_data & DEV_HAS_MSI) && msi) { np->msi_flags |= NV_MSI_CAPABLE; } - if ((id->driver_data & DEV_HAS_MSI_X) && !disable_msix) { + if ((id->driver_data & DEV_HAS_MSI_X) && msix) { np->msi_flags |= NV_MSI_X_CAPABLE; } + np->pause_flags = NV_PAUSEFRAME_RX_CAPABLE | NV_PAUSEFRAME_RX_REQ | NV_PAUSEFRAME_AUTONEG; + if (id->driver_data & DEV_HAS_PAUSEFRAME_TX) { + np->pause_flags |= NV_PAUSEFRAME_TX_CAPABLE | NV_PAUSEFRAME_TX_REQ; + } + + err = -ENOMEM; np->base = ioremap(addr, np->register_size); if (!np->base) @@ -3122,21 +4497,38 @@ dev->irq = pci_dev->irq; + np->rx_ring_size = RX_RING_DEFAULT; + np->tx_ring_size = TX_RING_DEFAULT; + np->tx_limit_stop = np->tx_ring_size - TX_LIMIT_DIFFERENCE; + np->tx_limit_start = np->tx_ring_size - TX_LIMIT_DIFFERENCE - 1; + if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) { np->rx_ring.orig = pci_alloc_consistent(pci_dev, - sizeof(struct ring_desc) * (RX_RING + TX_RING), + sizeof(struct ring_desc) * (np->rx_ring_size + np->tx_ring_size), &np->ring_addr); if (!np->rx_ring.orig) goto out_unmap; - np->tx_ring.orig = &np->rx_ring.orig[RX_RING]; + np->tx_ring.orig = &np->rx_ring.orig[np->rx_ring_size]; } else { np->rx_ring.ex = pci_alloc_consistent(pci_dev, - sizeof(struct ring_desc_ex) * (RX_RING + TX_RING), + sizeof(struct ring_desc_ex) * (np->rx_ring_size + np->tx_ring_size), &np->ring_addr); if (!np->rx_ring.ex) goto out_unmap; - np->tx_ring.ex = &np->rx_ring.ex[RX_RING]; + np->tx_ring.ex = &np->rx_ring.ex[np->rx_ring_size]; } + np->rx_skbuff = kmalloc(sizeof(struct sk_buff*) * np->rx_ring_size, GFP_KERNEL); + np->rx_dma = kmalloc(sizeof(dma_addr_t) * np->rx_ring_size, GFP_KERNEL); + np->tx_skbuff = kmalloc(sizeof(struct sk_buff*) * np->tx_ring_size, GFP_KERNEL); + np->tx_dma = kmalloc(sizeof(dma_addr_t) * np->tx_ring_size, GFP_KERNEL); + np->tx_dma_len = kmalloc(sizeof(unsigned int) * np->tx_ring_size, GFP_KERNEL); + if (!np->rx_skbuff || !np->rx_dma || !np->tx_skbuff || !np->tx_dma || !np->tx_dma_len) + goto out_freering; + memset(np->rx_skbuff, 0, sizeof(struct sk_buff*) * np->rx_ring_size); + memset(np->rx_dma, 0, sizeof(dma_addr_t) * np->rx_ring_size); + memset(np->tx_skbuff, 0, sizeof(struct sk_buff*) * np->tx_ring_size); + memset(np->tx_dma, 0, sizeof(dma_addr_t) * np->tx_ring_size); + memset(np->tx_dma_len, 0, sizeof(unsigned int) * np->tx_ring_size); dev->open = nv_open; dev->stop = nv_close; @@ -3148,6 +4540,10 @@ #ifdef CONFIG_NET_POLL_CONTROLLER dev->poll_controller = nv_poll_controller; #endif + dev->weight = 64; +#ifdef CONFIG_FORCEDETH_NAPI + dev->poll = nv_napi_poll; +#endif SET_ETHTOOL_OPS(dev, &ops); dev->tx_timeout = nv_tx_timeout; dev->watchdog_timeo = NV_WATCHDOG_TIMEO; @@ -3159,12 +4555,30 @@ np->orig_mac[0] = readl(base + NvRegMacAddrA); np->orig_mac[1] = readl(base + NvRegMacAddrB); - dev->dev_addr[0] = (np->orig_mac[1] >> 8) & 0xff; - dev->dev_addr[1] = (np->orig_mac[1] >> 0) & 0xff; - dev->dev_addr[2] = (np->orig_mac[0] >> 24) & 0xff; - dev->dev_addr[3] = (np->orig_mac[0] >> 16) & 0xff; - dev->dev_addr[4] = (np->orig_mac[0] >> 8) & 0xff; - dev->dev_addr[5] = (np->orig_mac[0] >> 0) & 0xff; + /* check the workaround bit for correct mac address order */ + txreg = readl(base + NvRegTransmitPoll); + if (txreg & NVREG_TRANSMITPOLL_MAC_ADDR_REV) { + /* mac address is already in correct order */ + dev->dev_addr[0] = (np->orig_mac[0] >> 0) & 0xff; + dev->dev_addr[1] = (np->orig_mac[0] >> 8) & 0xff; + dev->dev_addr[2] = (np->orig_mac[0] >> 16) & 0xff; + dev->dev_addr[3] = (np->orig_mac[0] >> 24) & 0xff; + dev->dev_addr[4] = (np->orig_mac[1] >> 0) & 0xff; + dev->dev_addr[5] = (np->orig_mac[1] >> 8) & 0xff; + } else { + /* need to reverse mac address to correct order */ + dev->dev_addr[0] = (np->orig_mac[1] >> 8) & 0xff; + dev->dev_addr[1] = (np->orig_mac[1] >> 0) & 0xff; + dev->dev_addr[2] = (np->orig_mac[0] >> 24) & 0xff; + dev->dev_addr[3] = (np->orig_mac[0] >> 16) & 0xff; + dev->dev_addr[4] = (np->orig_mac[0] >> 8) & 0xff; + dev->dev_addr[5] = (np->orig_mac[0] >> 0) & 0xff; + /* set permanent address to be correct aswell */ + np->orig_mac[0] = (dev->dev_addr[0] << 0) + (dev->dev_addr[1] << 8) + + (dev->dev_addr[2] << 16) + (dev->dev_addr[3] << 24); + np->orig_mac[1] = (dev->dev_addr[4] << 0) + (dev->dev_addr[5] << 8); + writel(txreg|NVREG_TRANSMITPOLL_MAC_ADDR_REV, base + NvRegTransmitPoll); + } memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); if (!is_valid_ether_addr(dev->perm_addr)) { @@ -3187,6 +4601,9 @@ dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2], dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5]); + /* set mac address */ + nv_copy_mac_to_hw(dev); + /* disable WOL */ writel(0, base + NvRegWakeUpFlags); np->wolenabled = 0; @@ -3231,6 +4648,48 @@ np->need_linktimer = 0; } + /* clear phy state and temporarily halt phy interrupts */ + writel(0, base + NvRegMIIMask); + phystate = readl(base + NvRegAdapterControl); + if (phystate & NVREG_ADAPTCTL_RUNNING) { + phystate_orig = 1; + phystate &= ~NVREG_ADAPTCTL_RUNNING; + writel(phystate, base + NvRegAdapterControl); + } + writel(NVREG_MIISTAT_MASK, base + NvRegMIIStatus); + + if (id->driver_data & DEV_HAS_MGMT_UNIT) { + writel(0x1, base + 0x204); pci_push(base); + msleep(500); + /* management unit running on the mac? */ + np->mac_in_use = readl(base + NvRegTransmitterControl) & NVREG_XMITCTL_MGMT_ST; + if (np->mac_in_use) { + u32 mgmt_sync; + /* management unit setup the phy already? */ + mgmt_sync = readl(base + NvRegTransmitterControl) & NVREG_XMITCTL_SYNC_MASK; + if (mgmt_sync == NVREG_XMITCTL_SYNC_NOT_READY) { + if (!nv_mgmt_acquire_sema(dev)) { + for (i = 0; i < 5000; i++) { + msleep(1); + mgmt_sync = readl(base + NvRegTransmitterControl) & NVREG_XMITCTL_SYNC_MASK; + if (mgmt_sync == NVREG_XMITCTL_SYNC_NOT_READY) + continue; + if (mgmt_sync == NVREG_XMITCTL_SYNC_PHY_INIT) + phyinitialized = 1; + break; + } + } else { + /* we need to init the phy */ + } + } else if (mgmt_sync == NVREG_XMITCTL_SYNC_PHY_INIT) { + /* phy is inited by SMU */ + phyinitialized = 1; + } else { + /* we need to init the phy */ + } + } + } + /* find a suitable phy */ for (i = 1; i <= 32; i++) { int id1, id2; @@ -3247,6 +4706,7 @@ if (id2 < 0 || id2 == 0xffff) continue; + np->phy_model = id2 & PHYID2_MODEL_MASK; id1 = (id1 & PHYID1_OUI_MASK) << PHYID1_OUI_SHFT; id2 = (id2 & PHYID2_OUI_MASK) >> PHYID2_OUI_SHFT; dprintk(KERN_DEBUG "%s: open: Found PHY %04x:%04x at address %d.\n", @@ -3255,13 +4715,20 @@ np->phy_oui = id1 | id2; break; } - - /* Let the damn card work if it can */ - if (i == 33) + if (i == 33) { printk(KERN_INFO "%s: open: Could not find a valid PHY.\n", pci_name(pci_dev)); - else + goto out_error; + } + + if (!phyinitialized) { + /* reset it */ phy_init(dev); + } + + if (id->driver_data & DEV_HAS_MGMT_UNIT) { + nv_mgmt_driver_loaded(dev, 1); + } /* set default link speed settings */ np->linkspeed = NVREG_LINKSPEED_FORCE|NVREG_LINKSPEED_10; @@ -3271,7 +4738,7 @@ err = register_netdev(dev); if (err) { printk(KERN_INFO "forcedeth: unable to register netdev: %d\n", err); - goto out_freering; + goto out_error; } printk(KERN_INFO "%s: forcedeth.c: subsystem: %05x:%04x bound to %s\n", dev->name, pci_dev->subsystem_vendor, pci_dev->subsystem_device, @@ -3279,14 +4746,14 @@ return 0; -out_freering: - if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) - pci_free_consistent(np->pci_dev, sizeof(struct ring_desc) * (RX_RING + TX_RING), - np->rx_ring.orig, np->ring_addr); - else - pci_free_consistent(np->pci_dev, sizeof(struct ring_desc_ex) * (RX_RING + TX_RING), - np->rx_ring.ex, np->ring_addr); +out_error: + if (phystate_orig) + writel(phystate|NVREG_ADAPTCTL_RUNNING, base + NvRegAdapterControl); + if (np->mac_in_use) + nv_mgmt_driver_loaded(dev, 0); pci_set_drvdata(pci_dev, NULL); +out_freering: + free_rings(dev); out_unmap: iounmap(get_hwbase(dev)); out_relreg: @@ -3303,14 +4770,21 @@ { struct net_device *dev = pci_get_drvdata(pci_dev); struct fe_priv *np = netdev_priv(dev); + u8 __iomem *base = get_hwbase(dev); unregister_netdev(dev); + /* special op: write back the misordered MAC address - otherwise + * the next nv_probe would see a wrong address. + */ + writel(np->orig_mac[0], base + NvRegMacAddrA); + writel(np->orig_mac[1], base + NvRegMacAddrB); + + if (np->mac_in_use) + nv_mgmt_driver_loaded(dev, 0); + /* free all structures */ - if (np->desc_ver == DESC_VER_1 || np->desc_ver == DESC_VER_2) - pci_free_consistent(np->pci_dev, sizeof(struct ring_desc) * (RX_RING + TX_RING), np->rx_ring.orig, np->ring_addr); - else - pci_free_consistent(np->pci_dev, sizeof(struct ring_desc_ex) * (RX_RING + TX_RING), np->rx_ring.ex, np->ring_addr); + free_rings(dev); iounmap(get_hwbase(dev)); pci_release_regions(pci_dev); pci_disable_device(pci_dev); @@ -3318,6 +4792,50 @@ pci_set_drvdata(pci_dev, NULL); } +#ifdef CONFIG_PM +static int nv_suspend(struct pci_dev *pdev, pm_message_t state) +{ + struct net_device *dev = pci_get_drvdata(pdev); + struct fe_priv *np = netdev_priv(dev); + + if (!netif_running(dev)) + goto out; + + netif_device_detach(dev); + + // Gross. + nv_close(dev); + + pci_save_state(pdev); + pci_enable_wake(pdev, pci_choose_state(pdev, state), np->wolenabled); + pci_set_power_state(pdev, pci_choose_state(pdev, state)); +out: + return 0; +} + +static int nv_resume(struct pci_dev *pdev) +{ + struct net_device *dev = pci_get_drvdata(pdev); + int rc = 0; + + if (!netif_running(dev)) + goto out; + + netif_device_attach(dev); + + pci_set_power_state(pdev, PCI_D0); + pci_restore_state(pdev); + pci_enable_wake(pdev, PCI_D0, 0); + + rc = nv_open(dev); +out: + return rc; +} +#else +#define nv_suspend NULL +#define nv_resume NULL +#endif /* CONFIG_PM */ + static struct pci_device_id pci_tbl[] = { { /* nForce Ethernet Controller */ PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_1), @@ -3373,11 +4891,59 @@ }, { /* MCP55 Ethernet Controller */ PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_14), - .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL, + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, }, { /* MCP55 Ethernet Controller */ PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_15), - .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL, + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_VLAN|DEV_HAS_MSI|DEV_HAS_MSI_X|DEV_HAS_POWER_CNTRL|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP61 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_16), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP61 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_17), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP61 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_18), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP61 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_19), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP65 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_20), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP65 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_21), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP65 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_22), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP65 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_23), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_LARGEDESC|DEV_HAS_CHECKSUM|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP67 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_24), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP67 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_25), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP67 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_26), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, + }, + { /* MCP67 Ethernet Controller */ + PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_27), + .driver_data = DEV_NEED_TIMERIRQ|DEV_NEED_LINKTIMER|DEV_HAS_HIGH_DMA|DEV_HAS_POWER_CNTRL|DEV_HAS_MSI|DEV_HAS_PAUSEFRAME_TX|DEV_HAS_STATISTICS|DEV_HAS_TEST_EXTENDED|DEV_HAS_MGMT_UNIT, }, {0,}, }; @@ -3387,13 +4953,14 @@ .id_table = pci_tbl, .probe = nv_probe, .remove = __devexit_p(nv_remove), + .suspend = nv_suspend, + .resume = nv_resume, }; - static int __init init_nic(void) { printk(KERN_INFO "forcedeth.c: Reverse Engineered nForce ethernet driver. Version %s.\n", FORCEDETH_VERSION); - return pci_module_init(&driver); + return pci_register_driver(&driver); } static void __exit exit_nic(void) @@ -3407,10 +4974,12 @@ MODULE_PARM_DESC(optimization_mode, "In throughput mode (0), every tx & rx packet will generate an interrupt. In CPU mode (1), interrupts are controlled by a timer."); module_param(poll_interval, int, 0); MODULE_PARM_DESC(poll_interval, "Interval determines how frequent timer interrupt is generated by [(time_in_micro_secs * 100) / (2^10)]. Min is 0 and Max is 65535."); -module_param(disable_msi, int, 0); -MODULE_PARM_DESC(disable_msi, "Disable MSI interrupts by setting to 1."); -module_param(disable_msix, int, 0); -MODULE_PARM_DESC(disable_msix, "Disable MSIX interrupts by setting to 1."); +module_param(msi, int, 0); +MODULE_PARM_DESC(msi, "MSI interrupts are enabled by setting to 1 and disabled by setting to 0."); +module_param(msix, int, 0); +MODULE_PARM_DESC(msix, "MSIX interrupts are enabled by setting to 1 and disabled by setting to 0."); +module_param(dma_64bit, int, 0); +MODULE_PARM_DESC(dma_64bit, "High DMA is enabled by setting to 1 and disabled by setting to 0."); MODULE_AUTHOR("Manfred Spraul "); MODULE_DESCRIPTION("Reverse Engineered nForce ethernet driver"); --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/netdriver_compat.h +++ linux-source-2.6.17-2.6.17.1/drivers/net/netdriver_compat.h @@ -0,0 +1,104 @@ +#ifndef _NETDRIVER_COMPAT_H_ +#define _NETDRIVER_COMPAT_H_ + +#include + +#include + +/* Compatibility defines for ubuntu-edgy kernels */ + +typedef irqreturn_t (*irq_handler_t)(int, void *, struct pt_regs *); + +static inline void netif_tx_lock(struct net_device *dev) +{ + spin_lock(&dev->xmit_lock); + dev->xmit_lock_owner = smp_processor_id(); +} + +static inline void netif_tx_lock_bh(struct net_device *dev) +{ + spin_lock_bh(&dev->xmit_lock); + dev->xmit_lock_owner = smp_processor_id(); +} + +static inline void netif_tx_unlock(struct net_device *dev) +{ + dev->xmit_lock_owner = -1; + spin_unlock(&dev->xmit_lock); +} + +static inline void netif_tx_unlock_bh(struct net_device *dev) +{ + dev->xmit_lock_owner = -1; + spin_unlock_bh(&dev->xmit_lock); +} + +struct sk_buff *__netdev_alloc_skb(struct net_device *dev, + unsigned int length, gfp_t gfp_mask) +{ + struct sk_buff *skb; + + skb = alloc_skb(length + NET_SKB_PAD, gfp_mask); + if (likely(skb)) { + skb_reserve(skb, NET_SKB_PAD); + skb->dev = dev; + } + return skb; +} + + +static inline struct sk_buff *netdev_alloc_skb(struct net_device *dev, + unsigned int length) +{ + return __netdev_alloc_skb(dev, length, GFP_ATOMIC); +} + +static inline int skb_is_gso(const struct sk_buff *skb) +{ + return skb_shinfo(skb)->tso_size; +} + +#define disable_irq_lockdep disable_irq +#define enable_irq_lockdep enable_irq + +#define IRQF_SHARED SA_SHIRQ +#define IRQF_SAMPLE_RANDOM SA_SAMPLE_RANDOM + +#define CHECKSUM_PARTIAL CHECKSUM_HW +#define CHECKSUM_COMPLETE CHECKSUM_HW + +#define gso_size tso_size +#define gso_segs tso_segs + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,17) + +/* drivers/net/tg3.c */ +#define PCI_DEVICE_ID_TIGON3_5722 0x165a +#define PCI_DEVICE_ID_TIGON3_5756 0x1674 +#define PCI_DEVICE_ID_TIGON3_5786 0x169a +#define PCI_DEVICE_ID_TIGON3_5906 0x1712 +#define PCI_DEVICE_ID_TIGON3_5906M 0x1713 + +/* drivers/net/forcedeth.c */ +#define PCI_DEVICE_ID_NVIDIA_NVENET_16 0x03E5 +#define PCI_DEVICE_ID_NVIDIA_NVENET_17 0x03E6 +#define PCI_DEVICE_ID_NVIDIA_NVENET_18 0x03EE +#define PCI_DEVICE_ID_NVIDIA_NVENET_19 0x03EF +#define PCI_DEVICE_ID_NVIDIA_NVENET_20 0x0450 +#define PCI_DEVICE_ID_NVIDIA_NVENET_21 0x0451 +#define PCI_DEVICE_ID_NVIDIA_NVENET_22 0x0452 +#define PCI_DEVICE_ID_NVIDIA_NVENET_23 0x0453 +#define PCI_DEVICE_ID_NVIDIA_NVENET_24 0x054C +#define PCI_DEVICE_ID_NVIDIA_NVENET_25 0x054D +#define PCI_DEVICE_ID_NVIDIA_NVENET_26 0x054E +#define PCI_DEVICE_ID_NVIDIA_NVENET_27 0x054F + +#define PCI_EXP_LNKCTL_CLKREQ_EN 0x100 /* Enable clkreq */ + +#endif /* < 2.6.17 */ + +#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) + +#endif /* < 2.6.15 */ + +#endif /* _NETDRIVER_COMPAT_H_ */ --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/tg3.h +++ linux-source-2.6.17-2.6.17.1/drivers/net/tg3.h @@ -24,6 +24,8 @@ #define RX_COPY_THRESHOLD 256 +#define TG3_RX_INTERNAL_RING_SZ_5906 32 + #define RX_STD_MAX_SIZE 1536 #define RX_STD_MAX_SIZE_5705 512 #define RX_JUMBO_MAX_SIZE 0xdeadbeef /* XXX */ @@ -129,6 +131,7 @@ #define CHIPREV_ID_5752_A0_HW 0x5000 #define CHIPREV_ID_5752_A0 0x6000 #define CHIPREV_ID_5752_A1 0x6001 +#define CHIPREV_ID_5906_A1 0xc001 #define GET_ASIC_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 12) #define ASIC_REV_5700 0x07 #define ASIC_REV_5701 0x00 @@ -141,6 +144,7 @@ #define ASIC_REV_5714 0x09 #define ASIC_REV_5755 0x0a #define ASIC_REV_5787 0x0b +#define ASIC_REV_5906 0x0c #define GET_CHIP_REV(CHIP_REV_ID) ((CHIP_REV_ID) >> 8) #define CHIPREV_5700_AX 0x70 #define CHIPREV_5700_BX 0x71 @@ -646,7 +650,8 @@ #define SNDDATAI_SCTRL_FORCE_ZERO 0x00000010 #define SNDDATAI_STATSENAB 0x00000c0c #define SNDDATAI_STATSINCMASK 0x00000c10 -/* 0xc14 --> 0xc80 unused */ +#define ISO_PKT_TX 0x00000c20 +/* 0xc24 --> 0xc80 unused */ #define SNDDATAI_COS_CNT_0 0x00000c80 #define SNDDATAI_COS_CNT_1 0x00000c84 #define SNDDATAI_COS_CNT_2 0x00000c88 @@ -761,6 +766,7 @@ #define RCVLPC_STATSCTRL_ENABLE 0x00000001 #define RCVLPC_STATSCTRL_FASTUPD 0x00000002 #define RCVLPC_STATS_ENABLE 0x00002018 +#define RCVLPC_STATSENAB_DACK_FIX 0x00040000 #define RCVLPC_STATSENAB_LNGBRST_RFIX 0x00400000 #define RCVLPC_STATS_INCMASK 0x0000201c /* 0x2020 --> 0x2100 unused */ @@ -996,11 +1002,13 @@ #define BUFMGR_MB_MACRX_LOW_WATER 0x00004414 #define DEFAULT_MB_MACRX_LOW_WATER 0x00000020 #define DEFAULT_MB_MACRX_LOW_WATER_5705 0x00000010 +#define DEFAULT_MB_MACRX_LOW_WATER_5906 0x00000004 #define DEFAULT_MB_MACRX_LOW_WATER_JUMBO 0x00000098 #define DEFAULT_MB_MACRX_LOW_WATER_JUMBO_5780 0x0000004b #define BUFMGR_MB_HIGH_WATER 0x00004418 #define DEFAULT_MB_HIGH_WATER 0x00000060 #define DEFAULT_MB_HIGH_WATER_5705 0x00000060 +#define DEFAULT_MB_HIGH_WATER_5906 0x00000010 #define DEFAULT_MB_HIGH_WATER_JUMBO 0x0000017c #define DEFAULT_MB_HIGH_WATER_JUMBO_5780 0x00000096 #define BUFMGR_RX_MB_ALLOC_REQ 0x0000441c @@ -1137,7 +1145,12 @@ #define TX_CPU_STATE 0x00005404 #define TX_CPU_PGMCTR 0x0000541c +#define VCPU_STATUS 0x00005100 +#define VCPU_STATUS_INIT_DONE 0x04000000 +#define VCPU_STATUS_DRV_RESET 0x08000000 + /* Mailboxes */ +#define GRCMBOX_BASE 0x00005600 #define GRCMBOX_INTERRUPT_0 0x00005800 /* 64-bit */ #define GRCMBOX_INTERRUPT_1 0x00005808 /* 64-bit */ #define GRCMBOX_INTERRUPT_2 0x00005810 /* 64-bit */ @@ -1397,7 +1410,10 @@ #define GRC_EEPROM_CTRL 0x00006840 #define GRC_MDI_CTRL 0x00006844 #define GRC_SEEPROM_DELAY 0x00006848 -/* 0x684c --> 0x6c00 unused */ +/* 0x684c --> 0x6890 unused */ +#define GRC_VCPU_EXT_CTRL 0x00006890 +#define GRC_VCPU_EXT_CTRL_HALT_CPU 0x00400000 +#define GRC_VCPU_EXT_CTRL_DISABLE_WOL 0x20000000 #define GRC_FASTBOOT_PC 0x00006894 /* 5752, 5755, 5787 */ /* 0x6c00 --> 0x7000 unused */ @@ -1484,9 +1500,17 @@ #define NVRAM_WRITE1 0x00007028 /* 0x702c --> 0x7400 unused */ -/* 0x7400 --> 0x8000 unused */ +/* 0x7400 --> 0x7c00 unused */ +#define PCIE_TRANSACTION_CFG 0x00007c04 +#define PCIE_TRANS_CFG_1SHOT_MSI 0x20000000 +#define PCIE_TRANS_CFG_LOM 0x00000020 + #define TG3_EEPROM_MAGIC 0x669955aa +#define TG3_EEPROM_MAGIC_FW 0xa5000000 +#define TG3_EEPROM_MAGIC_FW_MSK 0xff000000 +#define TG3_EEPROM_MAGIC_HW 0xabcd +#define TG3_EEPROM_MAGIC_HW_MSK 0xffff /* 32K Window into NIC internal memory */ #define NIC_SRAM_WIN_BASE 0x00008000 @@ -1536,6 +1560,7 @@ #define FWCMD_NICDRV_FIX_DMAR 0x00000005 #define FWCMD_NICDRV_FIX_DMAW 0x00000006 #define FWCMD_NICDRV_ALIVE2 0x0000000d +#define FWCMD_NICDRV_ALIVE3 0x0000000e #define NIC_SRAM_FW_CMD_LEN_MBOX 0x00000b7c #define NIC_SRAM_FW_CMD_DATA_MBOX 0x00000b80 #define NIC_SRAM_FW_ASF_STATUS_MBOX 0x00000c00 @@ -1603,6 +1628,7 @@ #define MII_TG3_DSP_RW_PORT 0x15 /* DSP coefficient read/write port */ #define MII_TG3_DSP_ADDRESS 0x17 /* DSP address register */ +#define MII_TG3_EPHY_PTEST 0x17 /* 5906 PHY register */ #define MII_TG3_AUX_CTRL 0x18 /* auxilliary control register */ @@ -1616,6 +1642,8 @@ #define MII_TG3_AUX_STAT_100FULL 0x0500 #define MII_TG3_AUX_STAT_1000HALF 0x0600 #define MII_TG3_AUX_STAT_1000FULL 0x0700 +#define MII_TG3_AUX_STAT_100 0x0008 +#define MII_TG3_AUX_STAT_FULL 0x0001 #define MII_TG3_ISTAT 0x1a /* IRQ status register */ #define MII_TG3_IMASK 0x1b /* IRQ mask register */ @@ -1626,6 +1654,9 @@ #define MII_TG3_INT_DUPLEXCHG 0x0008 #define MII_TG3_INT_ANEG_PAGE_RX 0x0400 +#define MII_TG3_EPHY_TEST 0x1f /* 5906 PHY register */ +#define MII_TG3_EPHY_SHADOW_EN 0x80 + /* There are two ways to manage the TX descriptors on the tigon3. * Either the descriptors are in host DMA'able memory, or they * exist only in the cards on-chip SRAM. All 16 send bds are under @@ -2075,12 +2106,22 @@ /* SMP locking strategy: * - * lock: Held during all operations except TX packet - * processing. + * lock: Held during reset, PHY access, timer, and when + * updating tg3_flags and tg3_flags2. * - * tx_lock: Held during tg3_start_xmit and tg3_tx + * netif_tx_lock: Held during tg3_start_xmit. tg3_tx holds + * netif_tx_lock when it needs to call + * netif_wake_queue. * * Both of these locks are to be held with BH safety. + * + * Because the IRQ handler, tg3_poll, and tg3_start_xmit + * are running lockless, it is necessary to completely + * quiesce the chip with tg3_netif_stop and tg3_full_lock + * before reconfiguring the device. + * + * indirect_lock: Held when accessing registers indirectly + * with IRQ disabling. */ spinlock_t lock; spinlock_t indirect_lock; @@ -2107,8 +2148,6 @@ u32 tx_cons; u32 tx_pending; - spinlock_t tx_lock; - struct tg3_tx_buffer_desc *tx_ring; struct tx_ring_info *tx_buffers; dma_addr_t tx_desc_mapping; @@ -2128,6 +2167,7 @@ struct tg3_rx_buffer_desc *rx_std; struct ring_info *rx_std_buffers; dma_addr_t rx_std_mapping; + u32 rx_std_max_post; struct tg3_rx_buffer_desc *rx_jumbo; struct ring_info *rx_jumbo_buffers; @@ -2156,11 +2196,7 @@ #define TG3_FLAG_ENABLE_ASF 0x00000020 #define TG3_FLAG_5701_REG_WRITE_BUG 0x00000040 #define TG3_FLAG_POLL_SERDES 0x00000080 -#if defined(CONFIG_X86) #define TG3_FLAG_MBOX_WRITE_REORDER 0x00000100 -#else -#define TG3_FLAG_MBOX_WRITE_REORDER 0 /* disables code too */ -#endif #define TG3_FLAG_PCIX_TARGET_HWBUG 0x00000200 #define TG3_FLAG_WOL_SPEED_100MB 0x00000400 #define TG3_FLAG_WOL_ENABLE 0x00000800 @@ -2173,6 +2209,7 @@ #define TG3_FLAG_PCI_HIGH_SPEED 0x00040000 #define TG3_FLAG_PCI_32BIT 0x00080000 #define TG3_FLAG_SRAM_USE_CONFIG 0x00100000 +#define TG3_FLAG_TX_RECOVERY_PENDING 0x00200000 #define TG3_FLAG_SERDES_WOL_CAP 0x00400000 #define TG3_FLAG_JUMBO_RING_ENABLE 0x00800000 #define TG3_FLAG_10_100_ONLY 0x01000000 @@ -2185,7 +2222,7 @@ #define TG3_FLAG_INIT_COMPLETE 0x80000000 u32 tg3_flags2; #define TG3_FLG2_RESTART_TIMER 0x00000001 -/* 0x00000002 available */ +#define TG3_FLG2_HW_TSO_1_BUG 0x00000002 #define TG3_FLG2_NO_ETH_WIRE_SPEED 0x00000004 #define TG3_FLG2_IS_5788 0x00000008 #define TG3_FLG2_MAX_RXPEND_64 0x00000010 @@ -2196,7 +2233,6 @@ #define TG3_FLG2_PCI_EXPRESS 0x00000200 #define TG3_FLG2_ASF_NEW_HANDSHAKE 0x00000400 #define TG3_FLG2_HW_AUTONEG 0x00000800 -#define TG3_FLG2_PHY_JUST_INITTED 0x00001000 #define TG3_FLG2_PHY_SERDES 0x00002000 #define TG3_FLG2_CAPACITIVE_COUPLING 0x00004000 #define TG3_FLG2_FLASH 0x00008000 @@ -2229,6 +2265,12 @@ u16 asf_counter; u16 asf_multiplier; + /* 1 second counter for transient serdes link events */ + u32 serdes_counter; +#define SERDES_AN_TIMEOUT_5704S 2 +#define SERDES_PARALLEL_DET_TIMEOUT 1 +#define SERDES_AN_TIMEOUT_5714S 1 + struct tg3_link_config link_config; struct tg3_bufmgr_config bufmgr_config; @@ -2269,6 +2311,8 @@ #define PHY_ID_BCM5780 0x60008350 #define PHY_ID_BCM5755 0xbc050cc0 #define PHY_ID_BCM5787 0xbc050ce0 +#define PHY_ID_BCM5756 0xbc050ed0 +#define PHY_ID_BCM5906 0xdc00ac40 #define PHY_ID_BCM8002 0x60010140 #define PHY_ID_INVALID 0xffffffff #define PHY_ID_REV_MASK 0x0000000f @@ -2295,7 +2339,8 @@ (X) == PHY_ID_BCM5705 || (X) == PHY_ID_BCM5750 || \ (X) == PHY_ID_BCM5752 || (X) == PHY_ID_BCM5714 || \ (X) == PHY_ID_BCM5780 || (X) == PHY_ID_BCM5787 || \ - (X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM8002) + (X) == PHY_ID_BCM5755 || (X) == PHY_ID_BCM5756 || \ + (X) == PHY_ID_BCM5906 || (X) == PHY_ID_BCM8002) struct tg3_hw_stats *hw_stats; dma_addr_t stats_mapping; --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/tg3.c +++ linux-source-2.6.17-2.6.17.1/drivers/net/tg3.c @@ -15,7 +15,6 @@ * notice is accompanying it. */ -#include #include #include @@ -59,7 +58,7 @@ #define TG3_VLAN_TAG_USED 0 #endif -#ifdef NETIF_F_TSO +#if 0 #define TG3_TSO_SUPPORT 1 #else #define TG3_TSO_SUPPORT 0 @@ -67,10 +66,12 @@ #include "tg3.h" +#include "netdriver_compat.h" + #define DRV_MODULE_NAME "tg3" #define PFX DRV_MODULE_NAME ": " -#define DRV_MODULE_VERSION "3.59.1" -#define DRV_MODULE_RELDATE "August 25, 2006" +#define DRV_MODULE_VERSION "3.69" +#define DRV_MODULE_RELDATE "November 15, 2006" #define TG3_DEF_MAC_MODE 0 #define TG3_DEF_RX_MODE 0 @@ -124,16 +125,13 @@ TG3_RX_RCB_RING_SIZE(tp)) #define TG3_TX_RING_BYTES (sizeof(struct tg3_tx_buffer_desc) * \ TG3_TX_RING_SIZE) -#define TX_BUFFS_AVAIL(TP) \ - ((TP)->tx_pending - \ - (((TP)->tx_prod - (TP)->tx_cons) & (TG3_TX_RING_SIZE - 1))) #define NEXT_TX(N) (((N) + 1) & (TG3_TX_RING_SIZE - 1)) #define RX_PKT_BUF_SZ (1536 + tp->rx_offset + 64) #define RX_JUMBO_PKT_BUF_SZ (9046 + tp->rx_offset + 64) /* minimum number of free TX descriptors required to wake up TX process */ -#define TG3_TX_WAKEUP_THRESH (TG3_TX_RING_SIZE / 4) +#define TG3_TX_WAKEUP_THRESH(tp) ((tp)->tx_pending / 4) /* number of ETHTOOL_GSTATS u64's */ #define TG3_NUM_STATS (sizeof(struct tg3_ethtool_stats)/sizeof(u64)) @@ -153,120 +151,71 @@ MODULE_PARM_DESC(tg3_debug, "Tigon3 bitmapped debugging message enable value"); static struct pci_device_id tg3_pci_tbl[] = { - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5700, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5701, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702FE, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705_2, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M_2, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702X, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703X, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702A3, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703A3, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5782, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5788, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5789, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901_2, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S_2, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705F, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5720, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5721, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751F, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753F, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787M, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714S, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715S, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780S, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5781, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9DXX, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9MXX, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1000, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1001, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1003, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC9100, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_TIGON3, - PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0UL }, - { 0, } + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5700)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5701)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702FE)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705_2)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705M_2)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702X)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703X)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5702A3)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5703A3)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5782)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5788)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5789)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5901_2)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5704S_2)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5705F)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5720)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5721)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5722)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5750M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5751F)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5752M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5753F)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5754M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5755M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5756)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5786)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5787M)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5714S)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5715S)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5780S)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5781)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5906)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, PCI_DEVICE_ID_TIGON3_5906M)}, + {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9DXX)}, + {PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9MXX)}, + {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1000)}, + {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1001)}, + {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1003)}, + {PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC9100)}, + {PCI_DEVICE(PCI_VENDOR_ID_APPLE, PCI_DEVICE_ID_APPLE_TIGON3)}, + {} }; MODULE_DEVICE_TABLE(pci, tg3_pci_tbl); -static struct { +static const struct { const char string[ETH_GSTRING_LEN]; } ethtool_stats_keys[TG3_NUM_STATS] = { { "rx_octets" }, @@ -347,7 +296,7 @@ { "nic_tx_threshold_hit" } }; -static struct { +static const struct { const char string[ETH_GSTRING_LEN]; } ethtool_test_keys[TG3_NUM_TEST] = { { "nvram test (online) " }, @@ -365,7 +314,7 @@ static u32 tg3_read32(struct tg3 *tp, u32 off) { - return (readl(tp->regs + off)); + return (readl(tp->regs + off)); } static void tg3_write_indirect_reg32(struct tg3 *tp, u32 off, u32 val) @@ -481,6 +430,16 @@ readl(mbox); } +static u32 tg3_read32_mbox_5906(struct tg3 *tp, u32 off) +{ + return (readl(tp->regs + off + GRCMBOX_BASE)); +} + +static void tg3_write32_mbox_5906(struct tg3 *tp, u32 off, u32 val) +{ + writel(val, tp->regs + off + GRCMBOX_BASE); +} + #define tw32_mailbox(reg, val) tp->write32_mbox(tp, reg, val) #define tw32_mailbox_f(reg, val) tw32_mailbox_flush(tp, (reg), (val)) #define tw32_rx_mbox(reg, val) tp->write32_rx_mbox(tp, reg, val) @@ -496,6 +455,10 @@ { unsigned long flags; + if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) && + (off >= NIC_SRAM_STATS_BLK) && (off < NIC_SRAM_TX_BUFFER_DESC)) + return; + spin_lock_irqsave(&tp->indirect_lock, flags); if (tp->tg3_flags & TG3_FLAG_SRAM_USE_CONFIG) { pci_write_config_dword(tp->pdev, TG3PCI_MEM_WIN_BASE_ADDR, off); @@ -517,6 +480,12 @@ { unsigned long flags; + if ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) && + (off >= NIC_SRAM_STATS_BLK) && (off < NIC_SRAM_TX_BUFFER_DESC)) { + *val = 0; + return; + } + spin_lock_irqsave(&tp->indirect_lock, flags); if (tp->tg3_flags & TG3_FLAG_SRAM_USE_CONFIG) { pci_write_config_dword(tp->pdev, TG3PCI_MEM_WIN_BASE_ADDR, off); @@ -546,6 +515,9 @@ if (!(tp->tg3_flags & TG3_FLAG_TAGGED_STATUS) && (tp->hw_status->status & SD_STATUS_UPDATED)) tw32(GRC_LOCAL_CTRL, tp->grc_local_ctrl | GRC_LCLCTRL_SETINT); + else + tw32(HOSTCC_MODE, tp->coalesce_mode | + (HOSTCC_MODE_ENABLE | HOSTCC_MODE_NOW)); } static void tg3_enable_ints(struct tg3 *tp) @@ -586,7 +558,7 @@ /* tg3_restart_ints * similar to tg3_enable_ints, but it accurately determines whether there * is new work pending and can return without flushing the PIO write - * which reenables interrupts + * which reenables interrupts */ static void tg3_restart_ints(struct tg3 *tp) { @@ -675,7 +647,7 @@ frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & MI_COM_REG_ADDR_MASK); frame_val |= (MI_COM_CMD_READ | MI_COM_START); - + tw32_f(MAC_MI_COM, frame_val); loops = PHY_BUSY_LOOPS; @@ -711,6 +683,10 @@ unsigned int loops; int ret; + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 && + (reg == MII_TG3_CTRL || reg == MII_TG3_AUX_CTRL)) + return 0; + if ((tp->mi_mode & MAC_MI_MODE_AUTO_POLL) != 0) { tw32_f(MAC_MI_MODE, (tp->mi_mode & ~MAC_MI_MODE_AUTO_POLL)); @@ -723,7 +699,7 @@ MI_COM_REG_ADDR_MASK); frame_val |= (val & MI_COM_DATA_MASK); frame_val |= (MI_COM_CMD_WRITE | MI_COM_START); - + tw32_f(MAC_MI_COM, frame_val); loops = PHY_BUSY_LOOPS; @@ -1061,6 +1037,24 @@ phy_reg | MII_TG3_EXT_CTRL_FIFO_ELASTIC); } + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + u32 phy_reg; + + /* adjust output voltage */ + tg3_writephy(tp, MII_TG3_EPHY_PTEST, 0x12); + + if (!tg3_readphy(tp, MII_TG3_EPHY_TEST, &phy_reg)) { + u32 phy_reg2; + + tg3_writephy(tp, MII_TG3_EPHY_TEST, + phy_reg | MII_TG3_EPHY_SHADOW_EN); + /* Enable auto-MDIX */ + if (!tg3_readphy(tp, 0x10, &phy_reg2)) + tg3_writephy(tp, 0x10, phy_reg2 | 0x4000); + tg3_writephy(tp, MII_TG3_EPHY_TEST, phy_reg); + } + } + tg3_phy_set_wirespeed(tp); return 0; } @@ -1174,6 +1168,15 @@ static void tg3_power_down_phy(struct tg3 *tp) { + if (tp->tg3_flags2 & TG3_FLG2_PHY_SERDES) + return; + + if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906) { + tg3_writephy(tp, MII_TG3_EXT_CTRL, + MII_TG3_EXT_CTRL_FORCE_LED_OFF); + tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x01b2); + } + /* The PHY should not be powered down on some chips because * of bugs. */ @@ -1256,7 +1259,12 @@ tg3_setup_phy(tp, 0); } - if (!(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) { + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + u32 val; + + val = tr32(GRC_VCPU_EXT_CTRL); + tw32(GRC_VCPU_EXT_CTRL, val | GRC_VCPU_EXT_CTRL_DISABLE_WOL); + } else if (!(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) { int i; u32 val; @@ -1280,7 +1288,10 @@ tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x5a); udelay(40); - mac_mode = MAC_MODE_PORT_MODE_MII; + if (tp->tg3_flags2 & TG3_FLG2_MII_SERDES) + mac_mode = MAC_MODE_PORT_MODE_GMII; + else + mac_mode = MAC_MODE_PORT_MODE_MII; if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5700 || !(tp->tg3_flags & TG3_FLAG_WOL_SPEED_100MB)) @@ -1358,15 +1369,8 @@ } if (!(tp->tg3_flags & TG3_FLAG_WOL_ENABLE) && - !(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) { - /* Turn off the PHY */ - if (!(tp->tg3_flags2 & TG3_FLG2_PHY_SERDES)) { - tg3_writephy(tp, MII_TG3_EXT_CTRL, - MII_TG3_EXT_CTRL_FORCE_LED_OFF); - tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x01b2); - tg3_power_down_phy(tp); - } - } + !(tp->tg3_flags & TG3_FLAG_ENABLE_ASF)) + tg3_power_down_phy(tp); tg3_frob_aux_power(tp); @@ -1479,7 +1483,7 @@ if (old_rx_mode != tp->rx_mode) { tw32_f(MAC_RX_MODE, tp->rx_mode); } - + if (new_tg3_flags & TG3_FLAG_TX_PAUSE) tp->tx_mode |= TX_MODE_FLOW_CTRL_ENABLE; else @@ -1524,6 +1528,13 @@ break; default: + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + *speed = (val & MII_TG3_AUX_STAT_100) ? SPEED_100 : + SPEED_10; + *duplex = (val & MII_TG3_AUX_STAT_FULL) ? DUPLEX_FULL : + DUPLEX_HALF; + break; + } *speed = SPEED_INVALID; *duplex = DUPLEX_INVALID; break; @@ -1806,7 +1817,7 @@ if (tp->tg3_flags & TG3_FLAG_USE_MI_INTERRUPT) tg3_writephy(tp, MII_TG3_IMASK, ~MII_TG3_INT_LINKCHG); - else + else if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906) tg3_writephy(tp, MII_TG3_IMASK, ~0); if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || @@ -2463,24 +2474,27 @@ expected_sg_dig_ctrl |= (1 << 12); if (sg_dig_ctrl != expected_sg_dig_ctrl) { + if ((tp->tg3_flags2 & TG3_FLG2_PARALLEL_DETECT) && + tp->serdes_counter && + ((mac_status & (MAC_STATUS_PCS_SYNCED | + MAC_STATUS_RCVD_CFG)) == + MAC_STATUS_PCS_SYNCED)) { + tp->serdes_counter--; + current_link_up = 1; + goto out; + } +restart_autoneg: if (workaround) tw32_f(MAC_SERDES_CFG, serdes_cfg | 0xc011000); tw32_f(SG_DIG_CTRL, expected_sg_dig_ctrl | (1 << 30)); udelay(5); tw32_f(SG_DIG_CTRL, expected_sg_dig_ctrl); - tp->tg3_flags2 |= TG3_FLG2_PHY_JUST_INITTED; + tp->serdes_counter = SERDES_AN_TIMEOUT_5704S; + tp->tg3_flags2 &= ~TG3_FLG2_PARALLEL_DETECT; } else if (mac_status & (MAC_STATUS_PCS_SYNCED | MAC_STATUS_SIGNAL_DET)) { - int i; - - /* Giver time to negotiate (~200ms) */ - for (i = 0; i < 40000; i++) { - sg_dig_status = tr32(SG_DIG_STATUS); - if (sg_dig_status & (0x3)) - break; - udelay(5); - } + sg_dig_status = tr32(SG_DIG_STATUS); mac_status = tr32(MAC_STATUS); if ((sg_dig_status & (1 << 1)) && @@ -2496,10 +2510,11 @@ tg3_setup_flow_control(tp, local_adv, remote_adv); current_link_up = 1; - tp->tg3_flags2 &= ~TG3_FLG2_PHY_JUST_INITTED; + tp->serdes_counter = 0; + tp->tg3_flags2 &= ~TG3_FLG2_PARALLEL_DETECT; } else if (!(sg_dig_status & (1 << 1))) { - if (tp->tg3_flags2 & TG3_FLG2_PHY_JUST_INITTED) - tp->tg3_flags2 &= ~TG3_FLG2_PHY_JUST_INITTED; + if (tp->serdes_counter) + tp->serdes_counter--; else { if (workaround) { u32 val = serdes_cfg; @@ -2523,9 +2538,17 @@ !(mac_status & MAC_STATUS_RCVD_CFG)) { tg3_setup_flow_control(tp, 0, 0); current_link_up = 1; - } + tp->tg3_flags2 |= + TG3_FLG2_PARALLEL_DETECT; + tp->serdes_counter = + SERDES_PARALLEL_DET_TIMEOUT; + } else + goto restart_autoneg; } } + } else { + tp->serdes_counter = SERDES_AN_TIMEOUT_5704S; + tp->tg3_flags2 &= ~TG3_FLG2_PARALLEL_DETECT; } out: @@ -2544,7 +2567,7 @@ if (tp->link_config.autoneg == AUTONEG_ENABLE) { u32 flags; int i; - + if (fiber_autoneg(tp, &flags)) { u32 local_adv, remote_adv; @@ -2656,14 +2679,16 @@ MAC_STATUS_CFG_CHANGED)); udelay(5); if ((tr32(MAC_STATUS) & (MAC_STATUS_SYNC_CHANGED | - MAC_STATUS_CFG_CHANGED)) == 0) + MAC_STATUS_CFG_CHANGED | + MAC_STATUS_LNKSTATE_CHANGED)) == 0) break; } mac_status = tr32(MAC_STATUS); if ((mac_status & MAC_STATUS_PCS_SYNCED) == 0) { current_link_up = 0; - if (tp->link_config.autoneg == AUTONEG_ENABLE) { + if (tp->link_config.autoneg == AUTONEG_ENABLE && + tp->serdes_counter == 0) { tw32_f(MAC_MODE, (tp->mac_mode | MAC_MODE_SEND_CONFIGS)); udelay(1); @@ -2768,7 +2793,7 @@ tg3_writephy(tp, MII_BMCR, bmcr); tw32_f(MAC_EVENT, MAC_EVENT_LNKSTATE_CHANGED); - tp->tg3_flags2 |= TG3_FLG2_PHY_JUST_INITTED; + tp->serdes_counter = SERDES_AN_TIMEOUT_5714S; tp->tg3_flags2 &= ~TG3_FLG2_PARALLEL_DETECT; return err; @@ -2873,9 +2898,9 @@ static void tg3_serdes_parallel_detect(struct tg3 *tp) { - if (tp->tg3_flags2 & TG3_FLG2_PHY_JUST_INITTED) { + if (tp->serdes_counter) { /* Give autoneg time to complete. */ - tp->tg3_flags2 &= ~TG3_FLG2_PHY_JUST_INITTED; + tp->serdes_counter--; return; } if (!netif_carrier_ok(tp->dev) && @@ -2965,6 +2990,34 @@ return err; } +/* This is called whenever we suspect that the system chipset is re- + * ordering the sequence of MMIO to the tx send mailbox. The symptom + * is bogus tx completions. We try to recover by setting the + * TG3_FLAG_MBOX_WRITE_REORDER flag and resetting the chip later + * in the workqueue. + */ +static void tg3_tx_recover(struct tg3 *tp) +{ + BUG_ON((tp->tg3_flags & TG3_FLAG_MBOX_WRITE_REORDER) || + tp->write32_tx_mbox == tg3_write_indirect_mbox); + + printk(KERN_WARNING PFX "%s: The system may be re-ordering memory-" + "mapped I/O cycles to the network device, attempting to " + "recover. Please report the problem to the driver maintainer " + "and include system chipset information.\n", tp->dev->name); + + spin_lock(&tp->lock); + tp->tg3_flags |= TG3_FLAG_TX_RECOVERY_PENDING; + spin_unlock(&tp->lock); +} + +static inline u32 tg3_tx_avail(struct tg3 *tp) +{ + smp_mb(); + return (tp->tx_pending - + ((tp->tx_prod - tp->tx_cons) & (TG3_TX_RING_SIZE - 1))); +} + /* Tigon3 never reports partial packet sends. So we do not * need special logic to handle SKBs that have not had all * of their frags sent yet, like SunGEM does. @@ -2977,9 +3030,13 @@ while (sw_idx != hw_idx) { struct tx_ring_info *ri = &tp->tx_buffers[sw_idx]; struct sk_buff *skb = ri->skb; - int i; + int i, tx_bug = 0; + + if (unlikely(skb == NULL)) { + tg3_tx_recover(tp); + return; + } - BUG_ON(skb == NULL); pci_unmap_single(tp->pdev, pci_unmap_addr(ri, mapping), skb_headlen(skb), @@ -2990,10 +3047,9 @@ sw_idx = NEXT_TX(sw_idx); for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { - BUG_ON(sw_idx == hw_idx); - ri = &tp->tx_buffers[sw_idx]; - BUG_ON(ri->skb != NULL); + if (unlikely(ri->skb != NULL || sw_idx == hw_idx)) + tx_bug = 1; pci_unmap_page(tp->pdev, pci_unmap_addr(ri, mapping), @@ -3004,16 +3060,29 @@ } dev_kfree_skb(skb); + + if (unlikely(tx_bug)) { + tg3_tx_recover(tp); + return; + } } tp->tx_cons = sw_idx; - if (unlikely(netif_queue_stopped(tp->dev))) { - spin_lock(&tp->tx_lock); + /* Need to make the tx_cons update visible to tg3_start_xmit() + * before checking for netif_queue_stopped(). Without the + * memory barrier, there is a small possibility that tg3_start_xmit() + * will miss it and cause the queue to be stopped forever. + */ + smp_mb(); + + if (unlikely(netif_queue_stopped(tp->dev) && + (tg3_tx_avail(tp) > TG3_TX_WAKEUP_THRESH(tp)))) { + netif_tx_lock(tp->dev); if (netif_queue_stopped(tp->dev) && - (TX_BUFFS_AVAIL(tp) > TG3_TX_WAKEUP_THRESH)) + (tg3_tx_avail(tp) > TG3_TX_WAKEUP_THRESH(tp))) netif_wake_queue(tp->dev); - spin_unlock(&tp->tx_lock); + netif_tx_unlock(tp->dev); } } @@ -3067,11 +3136,10 @@ * Callers depend upon this behavior and assume that * we leave everything unchanged if we fail. */ - skb = dev_alloc_skb(skb_size); + skb = netdev_alloc_skb(tp->dev, skb_size); if (skb == NULL) return -ENOMEM; - skb->dev = tp->dev; skb_reserve(skb, tp->rx_offset); mapping = pci_map_single(tp->pdev, skb->data, @@ -3164,7 +3232,7 @@ */ static int tg3_rx(struct tg3 *tp, int budget) { - u32 work_mask; + u32 work_mask, rx_std_posted = 0; u32 sw_idx = tp->rx_rcb_ptr; u16 hw_idx; int received; @@ -3191,6 +3259,7 @@ mapping); skb = tp->rx_std_buffers[desc_idx].skb; post_ptr = &tp->rx_std_ptr; + rx_std_posted++; } else if (opaque_key == RXD_OPAQUE_RING_JUMBO) { dma_addr = pci_unmap_addr(&tp->rx_jumbo_buffers[desc_idx], mapping); @@ -3216,7 +3285,7 @@ len = ((desc->idx_len & RXD_LEN_MASK) >> RXD_LEN_SHIFT) - 4; /* omit crc */ - if (len > RX_COPY_THRESHOLD + if (len > RX_COPY_THRESHOLD && tp->rx_offset == 2 /* rx_offset != 2 iff this is a 5701 card running * in PCI-X mode [see tg3_get_invariants()] */ @@ -3239,11 +3308,10 @@ tg3_recycle_rx(tp, opaque_key, desc_idx, *post_ptr); - copy_skb = dev_alloc_skb(len + 2); + copy_skb = netdev_alloc_skb(tp->dev, len + 2); if (copy_skb == NULL) goto drop_it_no_recycle; - copy_skb->dev = tp->dev; skb_reserve(copy_skb, 2); skb_put(copy_skb, len); pci_dma_sync_single_for_cpu(tp->pdev, dma_addr, len, PCI_DMA_FROMDEVICE); @@ -3278,6 +3346,15 @@ next_pkt: (*post_ptr)++; + + if (unlikely(rx_std_posted >= tp->rx_std_max_post)) { + u32 idx = *post_ptr % TG3_RX_RING_SIZE; + + tw32_rx_mbox(MAILBOX_RCV_STD_PROD_IDX + + TG3_64BIT_REG_LOW, idx); + work_mask &= ~RXD_OPAQUE_RING_STD; + rx_std_posted = 0; + } next_pkt_nopost: sw_idx++; sw_idx %= TG3_RX_RCB_RING_SIZE(tp); @@ -3331,6 +3408,11 @@ /* run TX completion thread */ if (sblk->idx[0].tx_consumer != tp->tx_cons) { tg3_tx(tp); + if (unlikely(tp->tg3_flags & TG3_FLAG_TX_RECOVERY_PENDING)) { + netif_rx_complete(netdev); + schedule_work(&tp->reset_task); + return 0; + } } /* run RX thread, within the bounds set by NAPI. @@ -3391,12 +3473,10 @@ if (irq_sync) tg3_irq_quiesce(tp); spin_lock_bh(&tp->lock); - spin_lock(&tp->tx_lock); } static inline void tg3_full_unlock(struct tg3 *tp) { - spin_unlock(&tp->tx_lock); spin_unlock_bh(&tp->lock); } @@ -3528,8 +3608,7 @@ } /* ISR for interrupt test */ -static irqreturn_t tg3_test_isr(int irq, void *dev_id, - struct pt_regs *regs) +static irqreturn_t tg3_test_isr(int irq, void *dev_id, struct pt_regs *regs) { struct net_device *dev = dev_id; struct tg3 *tp = netdev_priv(dev); @@ -3537,8 +3616,7 @@ if ((sblk->status & SD_STATUS_UPDATED) || !(tr32(TG3PCI_PCISTATE) & PCISTATE_INT_NOT_ACTIVE)) { - tw32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW, - 0x00000001); + tg3_disable_ints(tp); return IRQ_RETVAL(1); } return IRQ_RETVAL(0); @@ -3547,6 +3625,28 @@ static int tg3_init_hw(struct tg3 *, int); static int tg3_halt(struct tg3 *, int, int); +/* Restart hardware after configuration changes, self-test, etc. + * Invoked with tp->lock held. + */ +static int tg3_restart_hw(struct tg3 *tp, int reset_phy) +{ + int err; + + err = tg3_init_hw(tp, reset_phy); + if (err) { + printk(KERN_ERR PFX "%s: Failed to re-initialize device, " + "aborting.\n", tp->dev->name); + tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); + tg3_full_unlock(tp); + del_timer_sync(&tp->timer); + tp->irq_sync = 0; + netif_poll_enable(tp->dev); + dev_close(tp->dev); + tg3_full_lock(tp, 0); + } + return err; +} + #ifdef CONFIG_NET_POLL_CONTROLLER static void tg3_poll_controller(struct net_device *dev) { @@ -3579,14 +3679,23 @@ restart_timer = tp->tg3_flags2 & TG3_FLG2_RESTART_TIMER; tp->tg3_flags2 &= ~TG3_FLG2_RESTART_TIMER; + if (tp->tg3_flags & TG3_FLAG_TX_RECOVERY_PENDING) { + tp->write32_tx_mbox = tg3_write32_tx_mbox; + tp->write32_rx_mbox = tg3_write_flush_reg32; + tp->tg3_flags |= TG3_FLAG_MBOX_WRITE_REORDER; + tp->tg3_flags &= ~TG3_FLAG_TX_RECOVERY_PENDING; + } + tg3_halt(tp, RESET_KIND_SHUTDOWN, 0); - tg3_init_hw(tp, 1); + if (tg3_init_hw(tp, 1)) + goto out; tg3_netif_start(tp); if (restart_timer) mod_timer(&tp->timer, jiffies + 1); +out: tp->tg3_flags &= ~TG3_FLAG_IN_RESET_TASK; tg3_full_unlock(tp); @@ -3718,15 +3827,12 @@ len = skb_headlen(skb); - /* No BH disabling for tx_lock here. We are running in BH disabled - * context and TX reclaim runs via tp->poll inside of a software + /* We are running in BH disabled context with netif_tx_lock + * and TX reclaim runs via tp->poll inside of a software * interrupt. Furthermore, IRQ processing runs lockless so we have * no IRQ context deadlocks to worry about either. Rejoice! */ - if (!spin_trylock(&tp->tx_lock)) - return NETDEV_TX_LOCKED; - - if (unlikely(TX_BUFFS_AVAIL(tp) <= (skb_shinfo(skb)->nr_frags + 1))) { + if (unlikely(tg3_tx_avail(tp) <= (skb_shinfo(skb)->nr_frags + 1))) { if (!netif_queue_stopped(dev)) { netif_stop_queue(dev); @@ -3734,7 +3840,6 @@ printk(KERN_ERR PFX "%s: BUG! Tx Ring full when " "queue awake!\n", dev->name); } - spin_unlock(&tp->tx_lock); return NETDEV_TX_BUSY; } @@ -3743,7 +3848,7 @@ #if TG3_TSO_SUPPORT != 0 mss = 0; if (skb->len > (tp->dev->mtu + ETH_HLEN) && - (mss = skb_shinfo(skb)->tso_size) != 0) { + (mss = skb_shinfo(skb)->gso_size) != 0) { int tcp_opt_len, ip_tcp_len; if (skb_header_cloned(skb) && @@ -3752,24 +3857,30 @@ goto out_unlock; } - tcp_opt_len = ((skb->h.th->doff - 5) * 4); - ip_tcp_len = (skb->nh.iph->ihl * 4) + sizeof(struct tcphdr); + if (skb_shinfo(skb)->gso_type & SKB_GSO_TCPV6) + mss |= (skb_headlen(skb) - ETH_HLEN) << 9; + else { + tcp_opt_len = ((skb->h.th->doff - 5) * 4); + ip_tcp_len = (skb->nh.iph->ihl * 4) + + sizeof(struct tcphdr); + + skb->nh.iph->check = 0; + skb->nh.iph->tot_len = htons(mss + ip_tcp_len + + tcp_opt_len); + mss |= (ip_tcp_len + tcp_opt_len) << 9; + } base_flags |= (TXD_FLAG_CPU_PRE_DMA | TXD_FLAG_CPU_POST_DMA); - skb->nh.iph->check = 0; - skb->nh.iph->tot_len = htons(mss + ip_tcp_len + tcp_opt_len); - skb->h.th->check = 0; - mss |= (ip_tcp_len + tcp_opt_len) << 9; } - else if (skb->ip_summed == CHECKSUM_HW) + else if (skb->ip_summed == CHECKSUM_PARTIAL) base_flags |= TXD_FLAG_TCPUDP_CSUM; #else mss = 0; - if (skb->ip_summed == CHECKSUM_HW) + if (skb->ip_summed == CHECKSUM_PARTIAL) base_flags |= TXD_FLAG_TCPUDP_CSUM; #endif #if TG3_VLAN_TAG_USED @@ -3817,21 +3928,54 @@ tw32_tx_mbox((MAILBOX_SNDHOST_PROD_IDX_0 + TG3_64BIT_REG_LOW), entry); tp->tx_prod = entry; - if (TX_BUFFS_AVAIL(tp) <= (MAX_SKB_FRAGS + 1)) { + if (unlikely(tg3_tx_avail(tp) <= (MAX_SKB_FRAGS + 1))) { netif_stop_queue(dev); - if (TX_BUFFS_AVAIL(tp) > TG3_TX_WAKEUP_THRESH) + if (tg3_tx_avail(tp) > TG3_TX_WAKEUP_THRESH(tp)) netif_wake_queue(tp->dev); } out_unlock: mmiowb(); - spin_unlock(&tp->tx_lock); dev->trans_start = jiffies; return NETDEV_TX_OK; } +#if TG3_TSO_SUPPORT != 0 +static int tg3_start_xmit_dma_bug(struct sk_buff *, struct net_device *); + +/* Use GSO to workaround a rare TSO bug that may be triggered when the + * TSO header is greater than 80 bytes. + */ +static int tg3_tso_bug(struct tg3 *tp, struct sk_buff *skb) +{ + struct sk_buff *segs, *nskb; + + /* Estimate the number of fragments in the worst case */ + if (unlikely(tg3_tx_avail(tp) <= (skb_shinfo(skb)->gso_segs * 3))) { + netif_stop_queue(tp->dev); + return NETDEV_TX_BUSY; + } + + segs = skb_gso_segment(skb, tp->dev->features & ~NETIF_F_TSO); + if (unlikely(IS_ERR(segs))) + goto tg3_tso_bug_end; + + do { + nskb = segs; + segs = segs->next; + nskb->next = NULL; + tg3_start_xmit_dma_bug(nskb, tp->dev); + } while (segs); + +tg3_tso_bug_end: + dev_kfree_skb(skb); + + return NETDEV_TX_OK; +} +#endif + /* hard_start_xmit for devices that have the 4G bug and/or 40-bit bug and * support TG3_FLG2_HW_TSO_1 or firmware TSO only. */ @@ -3844,15 +3988,12 @@ len = skb_headlen(skb); - /* No BH disabling for tx_lock here. We are running in BH disabled - * context and TX reclaim runs via tp->poll inside of a software + /* We are running in BH disabled context with netif_tx_lock + * and TX reclaim runs via tp->poll inside of a software * interrupt. Furthermore, IRQ processing runs lockless so we have * no IRQ context deadlocks to worry about either. Rejoice! */ - if (!spin_trylock(&tp->tx_lock)) - return NETDEV_TX_LOCKED; - - if (unlikely(TX_BUFFS_AVAIL(tp) <= (skb_shinfo(skb)->nr_frags + 1))) { + if (unlikely(tg3_tx_avail(tp) <= (skb_shinfo(skb)->nr_frags + 1))) { if (!netif_queue_stopped(dev)) { netif_stop_queue(dev); @@ -3860,19 +4001,18 @@ printk(KERN_ERR PFX "%s: BUG! Tx Ring full when " "queue awake!\n", dev->name); } - spin_unlock(&tp->tx_lock); return NETDEV_TX_BUSY; } entry = tp->tx_prod; base_flags = 0; - if (skb->ip_summed == CHECKSUM_HW) + if (skb->ip_summed == CHECKSUM_PARTIAL) base_flags |= TXD_FLAG_TCPUDP_CSUM; #if TG3_TSO_SUPPORT != 0 mss = 0; if (skb->len > (tp->dev->mtu + ETH_HLEN) && - (mss = skb_shinfo(skb)->tso_size) != 0) { - int tcp_opt_len, ip_tcp_len; + (mss = skb_shinfo(skb)->gso_size) != 0) { + int tcp_opt_len, ip_tcp_len, hdr_len; if (skb_header_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) { @@ -3883,11 +4023,16 @@ tcp_opt_len = ((skb->h.th->doff - 5) * 4); ip_tcp_len = (skb->nh.iph->ihl * 4) + sizeof(struct tcphdr); + hdr_len = ip_tcp_len + tcp_opt_len; + if (unlikely((ETH_HLEN + hdr_len) > 80) && + (tp->tg3_flags2 & TG3_FLG2_HW_TSO_1_BUG)) + return (tg3_tso_bug(tp, skb)); + base_flags |= (TXD_FLAG_CPU_PRE_DMA | TXD_FLAG_CPU_POST_DMA); skb->nh.iph->check = 0; - skb->nh.iph->tot_len = htons(mss + ip_tcp_len + tcp_opt_len); + skb->nh.iph->tot_len = htons(mss + hdr_len); if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) { skb->h.th->check = 0; base_flags &= ~TXD_FLAG_TCPUDP_CSUM; @@ -3998,15 +4143,14 @@ tw32_tx_mbox((MAILBOX_SNDHOST_PROD_IDX_0 + TG3_64BIT_REG_LOW), entry); tp->tx_prod = entry; - if (TX_BUFFS_AVAIL(tp) <= (MAX_SKB_FRAGS + 1)) { + if (unlikely(tg3_tx_avail(tp) <= (MAX_SKB_FRAGS + 1))) { netif_stop_queue(dev); - if (TX_BUFFS_AVAIL(tp) > TG3_TX_WAKEUP_THRESH) + if (tg3_tx_avail(tp) > TG3_TX_WAKEUP_THRESH(tp)) netif_wake_queue(tp->dev); } out_unlock: mmiowb(); - spin_unlock(&tp->tx_lock); dev->trans_start = jiffies; @@ -4035,6 +4179,7 @@ static int tg3_change_mtu(struct net_device *dev, int new_mtu) { struct tg3 *tp = netdev_priv(dev); + int err; if (new_mtu < TG3_MIN_MTU || new_mtu > TG3_MAX_MTU(tp)) return -EINVAL; @@ -4055,13 +4200,14 @@ tg3_set_mtu(dev, tp, new_mtu); - tg3_init_hw(tp, 0); + err = tg3_restart_hw(tp, 0); - tg3_netif_start(tp); + if (!err) + tg3_netif_start(tp); tg3_full_unlock(tp); - return 0; + return err; } /* Free up pending packets in all rx/tx rings. @@ -4143,7 +4289,7 @@ * end up in the driver. tp->{tx,}lock are held and thus * we may not sleep. */ -static void tg3_init_rings(struct tg3 *tp) +static int tg3_init_rings(struct tg3 *tp) { u32 i; @@ -4192,18 +4338,38 @@ /* Now allocate fresh SKBs for each rx ring. */ for (i = 0; i < tp->rx_pending; i++) { - if (tg3_alloc_rx_skb(tp, RXD_OPAQUE_RING_STD, - -1, i) < 0) + if (tg3_alloc_rx_skb(tp, RXD_OPAQUE_RING_STD, -1, i) < 0) { + printk(KERN_WARNING PFX + "%s: Using a smaller RX standard ring, " + "only %d out of %d buffers were allocated " + "successfully.\n", + tp->dev->name, i, tp->rx_pending); + if (i == 0) + return -ENOMEM; + tp->rx_pending = i; break; + } } if (tp->tg3_flags & TG3_FLAG_JUMBO_RING_ENABLE) { for (i = 0; i < tp->rx_jumbo_pending; i++) { if (tg3_alloc_rx_skb(tp, RXD_OPAQUE_RING_JUMBO, - -1, i) < 0) + -1, i) < 0) { + printk(KERN_WARNING PFX + "%s: Using a smaller RX jumbo ring, " + "only %d out of %d buffers were " + "allocated successfully.\n", + tp->dev->name, i, tp->rx_jumbo_pending); + if (i == 0) { + tg3_free_rings(tp); + return -ENOMEM; + } + tp->rx_jumbo_pending = i; break; + } } } + return 0; } /* @@ -4558,6 +4724,45 @@ } } +static int tg3_poll_fw(struct tg3 *tp) +{ + int i; + u32 val; + + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + /* Wait up to 20ms for init done. */ + for (i = 0; i < 200; i++) { + if (tr32(VCPU_STATUS) & VCPU_STATUS_INIT_DONE) + return 0; + udelay(100); + } + return -ENODEV; + } + + /* Wait for firmware initialization to complete. */ + for (i = 0; i < 100000; i++) { + tg3_read_mem(tp, NIC_SRAM_FIRMWARE_MBOX, &val); + if (val == ~NIC_SRAM_FIRMWARE_MBOX_MAGIC1) + break; + udelay(10); + } + + /* Chip might not be fitted with firmware. Some Sun onboard + * parts are configured like that. So don't signal the timeout + * of the above loop as an error, but do report the lack of + * running firmware once. + */ + if (i >= 100000 && + !(tp->tg3_flags2 & TG3_FLG2_NO_FWARE_REPORTED)) { + tp->tg3_flags2 |= TG3_FLG2_NO_FWARE_REPORTED; + + printk(KERN_INFO PFX "%s: No firmware running.\n", + tp->dev->name); + } + + return 0; +} + static void tg3_stop_fw(struct tg3 *); /* tp->lock is held. */ @@ -4565,7 +4770,7 @@ { u32 val; void (*write_op)(struct tg3 *, u32, u32); - int i; + int err; tg3_nvram_lock(tp); @@ -4602,6 +4807,12 @@ } } + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + tw32(VCPU_STATUS, tr32(VCPU_STATUS) | VCPU_STATUS_DRV_RESET); + tw32(GRC_VCPU_EXT_CTRL, + tr32(GRC_VCPU_EXT_CTRL) & ~GRC_VCPU_EXT_CTRL_HALT_CPU); + } + if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS) val |= GRC_MISC_CFG_KEEP_GPHY_POWER; tw32(GRC_MISC_CFG, val); @@ -4725,26 +4936,9 @@ tw32_f(MAC_MODE, 0); udelay(40); - /* Wait for firmware initialization to complete. */ - for (i = 0; i < 100000; i++) { - tg3_read_mem(tp, NIC_SRAM_FIRMWARE_MBOX, &val); - if (val == ~NIC_SRAM_FIRMWARE_MBOX_MAGIC1) - break; - udelay(10); - } - - /* Chip might not be fitted with firmare. Some Sun onboard - * parts are configured like that. So don't signal the timeout - * of the above loop as an error, but do report the lack of - * running firmware once. - */ - if (i >= 100000 && - !(tp->tg3_flags2 & TG3_FLG2_NO_FWARE_REPORTED)) { - tp->tg3_flags2 |= TG3_FLG2_NO_FWARE_REPORTED; - - printk(KERN_INFO PFX "%s: No firmware running.\n", - tp->dev->name); - } + err = tg3_poll_fw(tp); + if (err) + return err; if ((tp->tg3_flags2 & TG3_FLG2_PCI_EXPRESS) && tp->pci_chip_rev_id != CHIPREV_ID_5750_A0) { @@ -4828,7 +5022,7 @@ #define TG3_FW_BSS_ADDR 0x08000a70 #define TG3_FW_BSS_LEN 0x10 -static u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = { +static const u32 tg3FwText[(TG3_FW_TEXT_LEN / sizeof(u32)) + 1] = { 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000018, 0x00000000, 0x0000000d, 0x3c1d0800, 0x37bd3ffc, 0x03a0f021, 0x3c100800, 0x26100034, @@ -4922,7 +5116,7 @@ 0x27bd0008, 0x03e00008, 0x00000000, 0x00000000, 0x00000000 }; -static u32 tg3FwRodata[(TG3_FW_RODATA_LEN / sizeof(u32)) + 1] = { +static const u32 tg3FwRodata[(TG3_FW_RODATA_LEN / sizeof(u32)) + 1] = { 0x35373031, 0x726c7341, 0x00000000, 0x00000000, 0x53774576, 0x656e7430, 0x00000000, 0x726c7045, 0x76656e74, 0x31000000, 0x556e6b6e, 0x45766e74, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x66617461, 0x6c457272, @@ -4950,6 +5144,12 @@ BUG_ON(offset == TX_CPU_BASE && (tp->tg3_flags2 & TG3_FLG2_5705_PLUS)); + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + u32 val = tr32(GRC_VCPU_EXT_CTRL); + + tw32(GRC_VCPU_EXT_CTRL, val | GRC_VCPU_EXT_CTRL_HALT_CPU); + return 0; + } if (offset == RX_CPU_BASE) { for (i = 0; i < 10000; i++) { tw32(offset + CPU_STATE, 0xffffffff); @@ -4987,13 +5187,13 @@ struct fw_info { unsigned int text_base; unsigned int text_len; - u32 *text_data; + const u32 *text_data; unsigned int rodata_base; unsigned int rodata_len; - u32 *rodata_data; + const u32 *rodata_data; unsigned int data_base; unsigned int data_len; - u32 *data_data; + const u32 *data_data; }; /* tp->lock is held. */ @@ -5125,7 +5325,7 @@ #define TG3_TSO_FW_BSS_ADDR 0x08001b80 #define TG3_TSO_FW_BSS_LEN 0x894 -static u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = { +static const u32 tg3TsoFwText[(TG3_TSO_FW_TEXT_LEN / 4) + 1] = { 0x0e000003, 0x00000000, 0x08001b24, 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0800, 0x37bd4000, 0x03a0f021, 0x3c100800, 0x26100000, 0x0e000010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe, @@ -5412,7 +5612,7 @@ 0xac470014, 0xac4a0018, 0x03e00008, 0xac4b001c, 0x00000000, 0x00000000, }; -static u32 tg3TsoFwRodata[] = { +static const u32 tg3TsoFwRodata[] = { 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000, 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x496e0000, 0x73746b6f, 0x66662a2a, 0x00000000, 0x53774576, 0x656e7430, 0x00000000, 0x00000000, @@ -5420,7 +5620,7 @@ 0x00000000, }; -static u32 tg3TsoFwData[] = { +static const u32 tg3TsoFwData[] = { 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x362e3000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, @@ -5442,7 +5642,7 @@ #define TG3_TSO5_FW_BSS_ADDR 0x00010f50 #define TG3_TSO5_FW_BSS_LEN 0x88 -static u32 tg3Tso5FwText[(TG3_TSO5_FW_TEXT_LEN / 4) + 1] = { +static const u32 tg3Tso5FwText[(TG3_TSO5_FW_TEXT_LEN / 4) + 1] = { 0x0c004003, 0x00000000, 0x00010f04, 0x00000000, 0x10000003, 0x00000000, 0x0000000d, 0x0000000d, 0x3c1d0001, 0x37bde000, 0x03a0f021, 0x3c100001, 0x26100000, 0x0c004010, 0x00000000, 0x0000000d, 0x27bdffe0, 0x3c04fefe, @@ -5601,14 +5801,14 @@ 0x00000000, 0x00000000, 0x00000000, }; -static u32 tg3Tso5FwRodata[(TG3_TSO5_FW_RODATA_LEN / 4) + 1] = { +static const u32 tg3Tso5FwRodata[(TG3_TSO5_FW_RODATA_LEN / 4) + 1] = { 0x4d61696e, 0x43707542, 0x00000000, 0x4d61696e, 0x43707541, 0x00000000, 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, 0x73746b6f, 0x66666c64, 0x00000000, 0x00000000, 0x66617461, 0x6c457272, 0x00000000, 0x00000000, 0x00000000, }; -static u32 tg3Tso5FwData[(TG3_TSO5_FW_DATA_LEN / 4) + 1] = { +static const u32 tg3Tso5FwData[(TG3_TSO5_FW_DATA_LEN / 4) + 1] = { 0x00000000, 0x73746b6f, 0x66666c64, 0x5f76312e, 0x322e3000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, }; @@ -5726,6 +5926,7 @@ { struct tg3 *tp = netdev_priv(dev); struct sockaddr *addr = p; + int err = 0; if (!is_valid_ether_addr(addr->sa_data)) return -EINVAL; @@ -5743,9 +5944,9 @@ tg3_full_lock(tp, 1); tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); - tg3_init_hw(tp, 0); - - tg3_netif_start(tp); + err = tg3_restart_hw(tp, 0); + if (!err) + tg3_netif_start(tp); tg3_full_unlock(tp); } else { spin_lock_bh(&tp->lock); @@ -5753,7 +5954,7 @@ spin_unlock_bh(&tp->lock); } - return 0; + return err; } /* tp->lock is held. */ @@ -5816,7 +6017,7 @@ tg3_abort_hw(tp, 1); } - if ((tp->tg3_flags2 & TG3_FLG2_MII_SERDES) && reset_phy) + if (reset_phy) tg3_phy_reset(tp); err = tg3_chip_reset(tp); @@ -5853,7 +6054,9 @@ * can only do this after the hardware has been * successfully reset. */ - tg3_init_rings(tp); + err = tg3_init_rings(tp); + if (err) + return err; /* This value is determined during the probe time DMA * engine test, tg3_test_dma. @@ -5946,7 +6149,20 @@ } /* Setup replenish threshold. */ - tw32(RCVBDI_STD_THRESH, tp->rx_pending / 8); + val = tp->rx_pending / 8; + if (val == 0) + val = 1; + else if (val > tp->rx_std_max_post) + val = tp->rx_std_max_post; + else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + if (tp->pci_chip_rev_id == CHIPREV_ID_5906_A1) + tw32(ISO_PKT_TX, (tr32(ISO_PKT_TX) & ~0x3) | 0x2); + + if (val > (TG3_RX_INTERNAL_RING_SZ_5906 / 2)) + val = TG3_RX_INTERNAL_RING_SZ_5906 / 2; + } + + tw32(RCVBDI_STD_THRESH, val); /* Initialize TG3_BDINFO's at: * RCVDBDI_STD_BD: standard eth size rx ring @@ -6106,8 +6322,12 @@ #endif /* Receive/send statistics. */ - if ((rdmac_mode & RDMAC_MODE_FIFO_SIZE_128) && - (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE)) { + if (tp->tg3_flags2 & TG3_FLG2_5750_PLUS) { + val = tr32(RCVLPC_STATS_ENABLE); + val &= ~RCVLPC_STATSENAB_DACK_FIX; + tw32(RCVLPC_STATS_ENABLE, val); + } else if ((rdmac_mode & RDMAC_MODE_FIFO_SIZE_128) && + (tp->tg3_flags2 & TG3_FLG2_TSO_CAPABLE)) { val = tr32(RCVLPC_STATS_ENABLE); val &= ~RCVLPC_STATSENAB_LNGBRST_RFIX; tw32(RCVLPC_STATS_ENABLE, val); @@ -6357,11 +6577,12 @@ tw32(GRC_LOCAL_CTRL, tp->grc_local_ctrl); } - err = tg3_setup_phy(tp, reset_phy); + err = tg3_setup_phy(tp, 0); if (err) return err; - if (!(tp->tg3_flags2 & TG3_FLG2_PHY_SERDES)) { + if (!(tp->tg3_flags2 & TG3_FLG2_PHY_SERDES) && + GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906) { u32 tmp; /* Clear CRC stats. */ @@ -6561,12 +6782,14 @@ need_setup = 1; } if (need_setup) { - tw32_f(MAC_MODE, - (tp->mac_mode & - ~MAC_MODE_PORT_MODE_MASK)); - udelay(40); - tw32_f(MAC_MODE, tp->mac_mode); - udelay(40); + if (!tp->serdes_counter) { + tw32_f(MAC_MODE, + (tp->mac_mode & + ~MAC_MODE_PORT_MODE_MASK)); + udelay(40); + tw32_f(MAC_MODE, tp->mac_mode); + udelay(40); + } tg3_setup_phy(tp, 0); } } else if (tp->tg3_flags2 & TG3_FLG2_MII_SERDES) @@ -6575,13 +6798,29 @@ tp->timer_counter = tp->timer_multiplier; } - /* Heartbeat is only sent once every 2 seconds. */ + /* Heartbeat is only sent once every 2 seconds. + * + * The heartbeat is to tell the ASF firmware that the host + * driver is still alive. In the event that the OS crashes, + * ASF needs to reset the hardware to free up the FIFO space + * that may be filled with rx packets destined for the host. + * If the FIFO is full, ASF will no longer function properly. + * + * Unintended resets have been reported on real time kernels + * where the timer doesn't run on time. Netpoll will also have + * same problem. + * + * The new FWCMD_NICDRV_ALIVE3 command tells the ASF firmware + * to check the ring condition when the heartbeat is expiring + * before doing the reset. This will prevent most unintended + * resets. + */ if (!--tp->asf_counter) { if (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) { u32 val; tg3_write_mem(tp, NIC_SRAM_FW_CMD_MBOX, - FWCMD_NICDRV_ALIVE2); + FWCMD_NICDRV_ALIVE3); tg3_write_mem(tp, NIC_SRAM_FW_CMD_LEN_MBOX, 4); /* 5 seconds timeout */ tg3_write_mem(tp, NIC_SRAM_FW_CMD_DATA_MBOX, 5); @@ -6601,7 +6840,7 @@ static int tg3_request_irq(struct tg3 *tp) { - irqreturn_t (*fn)(int, void *, struct pt_regs *); + irq_handler_t fn; unsigned long flags; struct net_device *dev = tp->dev; @@ -6609,12 +6848,12 @@ fn = tg3_msi; if (tp->tg3_flags2 & TG3_FLG2_1SHOT_MSI) fn = tg3_msi_1shot; - flags = SA_SAMPLE_RANDOM; + flags = IRQF_SAMPLE_RANDOM; } else { fn = tg3_interrupt; if (tp->tg3_flags & TG3_FLAG_TAGGED_STATUS) fn = tg3_interrupt_tagged; - flags = SA_SHIRQ | SA_SAMPLE_RANDOM; + flags = IRQF_SHARED | IRQF_SAMPLE_RANDOM; } return (request_irq(tp->pdev->irq, fn, flags, dev->name, dev)); } @@ -6622,8 +6861,7 @@ static int tg3_test_interrupt(struct tg3 *tp) { struct net_device *dev = tp->dev; - int err, i; - u32 int_mbox = 0; + int err, i, intr_ok = 0; if (!netif_running(dev)) return -ENODEV; @@ -6633,7 +6871,7 @@ free_irq(tp->pdev->irq, dev); err = request_irq(tp->pdev->irq, tg3_test_isr, - SA_SHIRQ | SA_SAMPLE_RANDOM, dev->name, dev); + IRQF_SHARED | IRQF_SAMPLE_RANDOM, dev->name, dev); if (err) return err; @@ -6644,23 +6882,31 @@ HOSTCC_MODE_NOW); for (i = 0; i < 5; i++) { + u32 int_mbox, misc_host_ctrl; + int_mbox = tr32_mailbox(MAILBOX_INTERRUPT_0 + TG3_64BIT_REG_LOW); - if (int_mbox != 0) + misc_host_ctrl = tr32(TG3PCI_MISC_HOST_CTRL); + + if ((int_mbox != 0) || + (misc_host_ctrl & MISC_HOST_CTRL_MASK_PCI_INT)) { + intr_ok = 1; break; + } + msleep(10); } tg3_disable_ints(tp); free_irq(tp->pdev->irq, dev); - + err = tg3_request_irq(tp); if (err) return err; - if (int_mbox != 0) + if (intr_ok) return 0; return -EIO; @@ -6735,8 +6981,10 @@ tg3_full_lock(tp, 0); err = tg3_set_power_state(tp, PCI_D0); - if (err) + if (err) { + tg3_full_unlock(tp); return err; + } tg3_disable_ints(tp); tp->tg3_flags &= ~TG3_FLAG_INIT_COMPLETE; @@ -6837,9 +7085,10 @@ if (tp->tg3_flags2 & TG3_FLG2_USING_MSI) { if (tp->tg3_flags2 & TG3_FLG2_1SHOT_MSI) { - u32 val = tr32(0x7c04); + u32 val = tr32(PCIE_TRANSACTION_CFG); - tw32(0x7c04, val | (1 << 29)); + tw32(PCIE_TRANSACTION_CFG, + val | PCIE_TRANS_CFG_1SHOT_MSI); } } } @@ -7281,7 +7530,7 @@ get_stat64(&hw_stats->rx_ucast_packets) + get_stat64(&hw_stats->rx_mcast_packets) + get_stat64(&hw_stats->rx_bcast_packets); - + stats->tx_packets = old_stats->tx_packets + get_stat64(&hw_stats->tx_ucast_packets) + get_stat64(&hw_stats->tx_mcast_packets) + @@ -7589,7 +7838,7 @@ return 0; } -static int tg3_nvram_write_block(struct tg3 *tp, u32 offset, u32 len, u8 *buf); +static int tg3_nvram_write_block(struct tg3 *tp, u32 offset, u32 len, u8 *buf); static int tg3_set_eeprom(struct net_device *dev, struct ethtool_eeprom *eeprom, u8 *data) { @@ -7653,7 +7902,7 @@ static int tg3_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) { struct tg3 *tp = netdev_priv(dev); - + cmd->supported = (SUPPORTED_Autoneg); if (!(tp->tg3_flags & TG3_FLAG_10_100_ONLY)) @@ -7671,7 +7920,7 @@ cmd->supported |= SUPPORTED_FIBRE; cmd->port = PORT_FIBRE; } - + cmd->advertising = tp->link_config.advertising; if (netif_running(dev)) { cmd->speed = tp->link_config.active_speed; @@ -7684,12 +7933,12 @@ cmd->maxrxpkt = 0; return 0; } - + static int tg3_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) { struct tg3 *tp = netdev_priv(dev); - - if (tp->tg3_flags2 & TG3_FLG2_ANY_SERDES) { + + if (tp->tg3_flags2 & TG3_FLG2_ANY_SERDES) { /* These are the only valid advertisement bits allowed. */ if (cmd->autoneg == AUTONEG_ENABLE && (cmd->advertising & ~(ADVERTISED_1000baseT_Half | @@ -7721,69 +7970,69 @@ tp->link_config.speed = cmd->speed; tp->link_config.duplex = cmd->duplex; } - + if (netif_running(dev)) tg3_setup_phy(tp, 1); tg3_full_unlock(tp); - + return 0; } - + static void tg3_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info) { struct tg3 *tp = netdev_priv(dev); - + strcpy(info->driver, DRV_MODULE_NAME); strcpy(info->version, DRV_MODULE_VERSION); strcpy(info->fw_version, tp->fw_ver); strcpy(info->bus_info, pci_name(tp->pdev)); } - + static void tg3_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol) { struct tg3 *tp = netdev_priv(dev); - + wol->supported = WAKE_MAGIC; wol->wolopts = 0; if (tp->tg3_flags & TG3_FLAG_WOL_ENABLE) wol->wolopts = WAKE_MAGIC; memset(&wol->sopass, 0, sizeof(wol->sopass)); } - + static int tg3_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol) { struct tg3 *tp = netdev_priv(dev); - + if (wol->wolopts & ~WAKE_MAGIC) return -EINVAL; if ((wol->wolopts & WAKE_MAGIC) && - tp->tg3_flags2 & TG3_FLG2_PHY_SERDES && + tp->tg3_flags2 & TG3_FLG2_ANY_SERDES && !(tp->tg3_flags & TG3_FLAG_SERDES_WOL_CAP)) return -EINVAL; - + spin_lock_bh(&tp->lock); if (wol->wolopts & WAKE_MAGIC) tp->tg3_flags |= TG3_FLAG_WOL_ENABLE; else tp->tg3_flags &= ~TG3_FLAG_WOL_ENABLE; spin_unlock_bh(&tp->lock); - + return 0; } - + static u32 tg3_get_msglevel(struct net_device *dev) { struct tg3 *tp = netdev_priv(dev); return tp->msg_enable; } - + static void tg3_set_msglevel(struct net_device *dev, u32 value) { struct tg3 *tp = netdev_priv(dev); tp->msg_enable = value; } - + #if TG3_TSO_SUPPORT != 0 static int tg3_set_tso(struct net_device *dev, u32 value) { @@ -7794,16 +8043,23 @@ return -EINVAL; return 0; } + if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO_2) && + (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906)) { + if (value) + dev->features |= NETIF_F_TSO6; + else + dev->features &= ~NETIF_F_TSO6; + } return ethtool_op_set_tso(dev, value); } #endif - + static int tg3_nway_reset(struct net_device *dev) { struct tg3 *tp = netdev_priv(dev); u32 bmcr; int r; - + if (!netif_running(dev)) return -EAGAIN; @@ -7821,14 +8077,14 @@ r = 0; } spin_unlock_bh(&tp->lock); - + return r; } - + static void tg3_get_ringparam(struct net_device *dev, struct ethtool_ringparam *ering) { struct tg3 *tp = netdev_priv(dev); - + ering->rx_max_pending = TG3_RX_RING_SIZE - 1; ering->rx_mini_max_pending = 0; if (tp->tg3_flags & TG3_FLAG_JUMBO_RING_ENABLE) @@ -7847,24 +8103,27 @@ ering->tx_pending = tp->tx_pending; } - + static int tg3_set_ringparam(struct net_device *dev, struct ethtool_ringparam *ering) { struct tg3 *tp = netdev_priv(dev); - int irq_sync = 0; - + int irq_sync = 0, err = 0; + if ((ering->rx_pending > TG3_RX_RING_SIZE - 1) || (ering->rx_jumbo_pending > TG3_RX_JUMBO_RING_SIZE - 1) || - (ering->tx_pending > TG3_TX_RING_SIZE - 1)) + (ering->tx_pending > TG3_TX_RING_SIZE - 1) || + (ering->tx_pending <= MAX_SKB_FRAGS) || + ((tp->tg3_flags2 & TG3_FLG2_HW_TSO_1_BUG) && + (ering->tx_pending <= (MAX_SKB_FRAGS * 3)))) return -EINVAL; - + if (netif_running(dev)) { tg3_netif_stop(tp); irq_sync = 1; } tg3_full_lock(tp, irq_sync); - + tp->rx_pending = ering->rx_pending; if ((tp->tg3_flags2 & TG3_FLG2_MAX_RXPEND_64) && @@ -7875,29 +8134,30 @@ if (netif_running(dev)) { tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); - tg3_init_hw(tp, 1); - tg3_netif_start(tp); + err = tg3_restart_hw(tp, 1); + if (!err) + tg3_netif_start(tp); } tg3_full_unlock(tp); - - return 0; + + return err; } - + static void tg3_get_pauseparam(struct net_device *dev, struct ethtool_pauseparam *epause) { struct tg3 *tp = netdev_priv(dev); - + epause->autoneg = (tp->tg3_flags & TG3_FLAG_PAUSE_AUTONEG) != 0; epause->rx_pause = (tp->tg3_flags & TG3_FLAG_RX_PAUSE) != 0; epause->tx_pause = (tp->tg3_flags & TG3_FLAG_TX_PAUSE) != 0; } - + static int tg3_set_pauseparam(struct net_device *dev, struct ethtool_pauseparam *epause) { struct tg3 *tp = netdev_priv(dev); - int irq_sync = 0; - + int irq_sync = 0, err = 0; + if (netif_running(dev)) { tg3_netif_stop(tp); irq_sync = 1; @@ -7920,51 +8180,52 @@ if (netif_running(dev)) { tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); - tg3_init_hw(tp, 1); - tg3_netif_start(tp); + err = tg3_restart_hw(tp, 1); + if (!err) + tg3_netif_start(tp); } tg3_full_unlock(tp); - - return 0; + + return err; } - + static u32 tg3_get_rx_csum(struct net_device *dev) { struct tg3 *tp = netdev_priv(dev); return (tp->tg3_flags & TG3_FLAG_RX_CHECKSUMS) != 0; } - + static int tg3_set_rx_csum(struct net_device *dev, u32 data) { struct tg3 *tp = netdev_priv(dev); - + if (tp->tg3_flags & TG3_FLAG_BROKEN_CHECKSUMS) { if (data != 0) return -EINVAL; return 0; } - + spin_lock_bh(&tp->lock); if (data) tp->tg3_flags |= TG3_FLAG_RX_CHECKSUMS; else tp->tg3_flags &= ~TG3_FLAG_RX_CHECKSUMS; spin_unlock_bh(&tp->lock); - + return 0; } - + static int tg3_set_tx_csum(struct net_device *dev, u32 data) { struct tg3 *tp = netdev_priv(dev); - + if (tp->tg3_flags & TG3_FLAG_BROKEN_CHECKSUMS) { if (data != 0) return -EINVAL; return 0; } - + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) ethtool_op_set_tx_hw_csum(dev, data); @@ -8019,7 +8280,7 @@ LED_CTRL_TRAFFIC_OVERRIDE | LED_CTRL_TRAFFIC_BLINK | LED_CTRL_TRAFFIC_LED); - + else tw32(MAC_LED_CTRL, LED_CTRL_LNKLED_OVERRIDE | LED_CTRL_TRAFFIC_OVERRIDE); @@ -8040,6 +8301,8 @@ #define NVRAM_TEST_SIZE 0x100 #define NVRAM_SELFBOOT_FORMAT1_SIZE 0x14 +#define NVRAM_SELFBOOT_HW_SIZE 0x20 +#define NVRAM_SELFBOOT_DATA_SIZE 0x1c static int tg3_test_nvram(struct tg3 *tp) { @@ -8051,12 +8314,14 @@ if (magic == TG3_EEPROM_MAGIC) size = NVRAM_TEST_SIZE; - else if ((magic & 0xff000000) == 0xa5000000) { + else if ((magic & TG3_EEPROM_MAGIC_FW_MSK) == TG3_EEPROM_MAGIC_FW) { if ((magic & 0xe00000) == 0x200000) size = NVRAM_SELFBOOT_FORMAT1_SIZE; else return 0; - } else + } else if ((magic & TG3_EEPROM_MAGIC_HW_MSK) == TG3_EEPROM_MAGIC_HW) + size = NVRAM_SELFBOOT_HW_SIZE; + else return -EIO; buf = kmalloc(size, GFP_KERNEL); @@ -8075,7 +8340,8 @@ goto out; /* Selfboot format */ - if (cpu_to_be32(buf[0]) != TG3_EEPROM_MAGIC) { + if ((cpu_to_be32(buf[0]) & TG3_EEPROM_MAGIC_FW_MSK) == + TG3_EEPROM_MAGIC_FW) { u8 *buf8 = (u8 *) buf, csum8 = 0; for (i = 0; i < size; i++) @@ -8090,6 +8356,51 @@ goto out; } + if ((cpu_to_be32(buf[0]) & TG3_EEPROM_MAGIC_HW_MSK) == + TG3_EEPROM_MAGIC_HW) { + u8 data[NVRAM_SELFBOOT_DATA_SIZE]; + u8 parity[NVRAM_SELFBOOT_DATA_SIZE]; + u8 *buf8 = (u8 *) buf; + int j, k; + + /* Separate the parity bits and the data bytes. */ + for (i = 0, j = 0, k = 0; i < NVRAM_SELFBOOT_HW_SIZE; i++) { + if ((i == 0) || (i == 8)) { + int l; + u8 msk; + + for (l = 0, msk = 0x80; l < 7; l++, msk >>= 1) + parity[k++] = buf8[i] & msk; + i++; + } + else if (i == 16) { + int l; + u8 msk; + + for (l = 0, msk = 0x20; l < 6; l++, msk >>= 1) + parity[k++] = buf8[i] & msk; + i++; + + for (l = 0, msk = 0x80; l < 8; l++, msk >>= 1) + parity[k++] = buf8[i] & msk; + i++; + } + data[j++] = buf8[i]; + } + + err = -EIO; + for (i = 0; i < NVRAM_SELFBOOT_DATA_SIZE; i++) { + u8 hw8 = hweight8(data[i]); + + if ((hw8 & 0x1) && parity[i]) + goto out; + else if (!(hw8 & 0x1) && !parity[i]) + goto out; + } + err = 0; + goto out; + } + /* Bootstrap checksum at offset 0x10 */ csum = calc_crc((unsigned char *) buf, 0x10); if(csum != cpu_to_le32(buf[0x10/4])) @@ -8136,7 +8447,7 @@ /* Only test the commonly used registers */ static int tg3_test_registers(struct tg3 *tp) { - int i, is_5705; + int i, is_5705, is_5750; u32 offset, read_mask, write_mask, val, save_val, read_val; static struct { u16 offset; @@ -8144,6 +8455,7 @@ #define TG3_FL_5705 0x1 #define TG3_FL_NOT_5705 0x2 #define TG3_FL_NOT_5788 0x4 +#define TG3_FL_NOT_5750 0x8 u32 read_mask; u32 write_mask; } reg_tbl[] = { @@ -8196,7 +8508,7 @@ 0x00000000, 0xffff0002 }, { RCVDBDI_STD_BD+0xc, 0x0000, 0x00000000, 0xffffffff }, - + /* Receive BD Initiator Control Registers. */ { RCVBDI_STD_THRESH, TG3_FL_NOT_5705, 0x00000000, 0xffffffff }, @@ -8204,7 +8516,7 @@ 0x00000000, 0x000003ff }, { RCVBDI_JUMBO_THRESH, TG3_FL_NOT_5705, 0x00000000, 0xffffffff }, - + /* Host Coalescing Control Registers. */ { HOSTCC_MODE, TG3_FL_NOT_5705, 0x00000000, 0x00000004 }, @@ -8254,9 +8566,9 @@ 0xffffffff, 0x00000000 }, /* Buffer Manager Control Registers. */ - { BUFMGR_MB_POOL_ADDR, 0x0000, + { BUFMGR_MB_POOL_ADDR, TG3_FL_NOT_5750, 0x00000000, 0x007fff80 }, - { BUFMGR_MB_POOL_SIZE, 0x0000, + { BUFMGR_MB_POOL_SIZE, TG3_FL_NOT_5750, 0x00000000, 0x007fffff }, { BUFMGR_MB_RDMA_LOW_WATER, 0x0000, 0x00000000, 0x0000003f }, @@ -8268,7 +8580,7 @@ 0xffffffff, 0x00000000 }, { BUFMGR_DMA_DESC_POOL_SIZE, TG3_FL_NOT_5705, 0xffffffff, 0x00000000 }, - + /* Mailbox Registers */ { GRCMBOX_RCVSTD_PROD_IDX+4, 0x0000, 0x00000000, 0x000001ff }, @@ -8282,10 +8594,12 @@ { 0xffff, 0x0000, 0x00000000, 0x00000000 }, }; - if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS) + is_5705 = is_5750 = 0; + if (tp->tg3_flags2 & TG3_FLG2_5705_PLUS) { is_5705 = 1; - else - is_5705 = 0; + if (tp->tg3_flags2 & TG3_FLG2_5750_PLUS) + is_5750 = 1; + } for (i = 0; reg_tbl[i].offset != 0xffff; i++) { if (is_5705 && (reg_tbl[i].flags & TG3_FL_NOT_5705)) @@ -8298,6 +8612,9 @@ (reg_tbl[i].flags & TG3_FL_NOT_5788)) continue; + if (is_5750 && (reg_tbl[i].flags & TG3_FL_NOT_5750)) + continue; + offset = (u32) reg_tbl[i].offset; read_mask = reg_tbl[i].read_mask; write_mask = reg_tbl[i].write_mask; @@ -8389,6 +8706,13 @@ { 0x00008000, 0x02000}, { 0x00010000, 0x0c000}, { 0xffffffff, 0x00000} + }, mem_tbl_5906[] = { + { 0x00000200, 0x00008}, + { 0x00004000, 0x00400}, + { 0x00006000, 0x00400}, + { 0x00008000, 0x01000}, + { 0x00010000, 0x01000}, + { 0xffffffff, 0x00000} }; struct mem_entry *mem_tbl; int err = 0; @@ -8398,6 +8722,8 @@ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) mem_tbl = mem_tbl_5755; + else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) + mem_tbl = mem_tbl_5906; else mem_tbl = mem_tbl_5705; } else @@ -8408,7 +8734,7 @@ mem_tbl[i].len)) != 0) break; } - + return err; } @@ -8434,13 +8760,41 @@ return 0; mac_mode = (tp->mac_mode & ~MAC_MODE_PORT_MODE_MASK) | - MAC_MODE_PORT_INT_LPBACK | MAC_MODE_LINK_POLARITY | - MAC_MODE_PORT_MODE_GMII; + MAC_MODE_PORT_INT_LPBACK | MAC_MODE_LINK_POLARITY; + if (tp->tg3_flags & TG3_FLAG_10_100_ONLY) + mac_mode |= MAC_MODE_PORT_MODE_MII; + else + mac_mode |= MAC_MODE_PORT_MODE_GMII; tw32(MAC_MODE, mac_mode); } else if (loopback_mode == TG3_PHY_LOOPBACK) { - tg3_writephy(tp, MII_BMCR, BMCR_LOOPBACK | BMCR_FULLDPLX | - BMCR_SPEED1000); + u32 val; + + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + u32 phytest; + + if (!tg3_readphy(tp, MII_TG3_EPHY_TEST, &phytest)) { + u32 phy; + + tg3_writephy(tp, MII_TG3_EPHY_TEST, + phytest | MII_TG3_EPHY_SHADOW_EN); + if (!tg3_readphy(tp, 0x1b, &phy)) + tg3_writephy(tp, 0x1b, phy & ~0x20); + if (!tg3_readphy(tp, 0x10, &phy)) + tg3_writephy(tp, 0x10, phy & ~0x4000); + tg3_writephy(tp, MII_TG3_EPHY_TEST, phytest); + } + } + val = BMCR_LOOPBACK | BMCR_FULLDPLX; + if (tp->tg3_flags & TG3_FLAG_10_100_ONLY) + val |= BMCR_SPEED100; + else + val |= BMCR_SPEED1000; + + tg3_writephy(tp, MII_BMCR, val); udelay(40); + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) + tg3_writephy(tp, MII_TG3_EPHY_PTEST, 0x1800); + /* reset to prevent losing 1st rx packet intermittently */ if (tp->tg3_flags2 & TG3_FLG2_MII_SERDES) { tw32_f(MAC_RX_MODE, RX_MODE_RESET); @@ -8448,7 +8802,11 @@ tw32_f(MAC_RX_MODE, tp->rx_mode); } mac_mode = (tp->mac_mode & ~MAC_MODE_PORT_MODE_MASK) | - MAC_MODE_LINK_POLARITY | MAC_MODE_PORT_MODE_GMII; + MAC_MODE_LINK_POLARITY; + if (tp->tg3_flags & TG3_FLAG_10_100_ONLY) + mac_mode |= MAC_MODE_PORT_MODE_MII; + else + mac_mode |= MAC_MODE_PORT_MODE_GMII; if ((tp->phy_id & PHY_ID_MASK) == PHY_ID_BCM5401) { mac_mode &= ~MAC_MODE_LINK_POLARITY; tg3_writephy(tp, MII_TG3_EXT_CTRL, @@ -8462,7 +8820,7 @@ err = -EIO; tx_len = 1514; - skb = dev_alloc_skb(tx_len); + skb = netdev_alloc_skb(tp->dev, tx_len); if (!skb) return -ENOMEM; @@ -8497,7 +8855,8 @@ udelay(10); - for (i = 0; i < 10; i++) { + /* 250 usec to allow enough time on some 10/100 Mbps devices. */ + for (i = 0; i < 25; i++) { tw32_f(HOSTCC_MODE, tp->coalesce_mode | HOSTCC_MODE_ENABLE | HOSTCC_MODE_NOW); @@ -8543,7 +8902,7 @@ goto out; } err = 0; - + /* tg3_free_rings will unmap and free the rx_skb */ out: return err; @@ -8561,7 +8920,9 @@ if (!netif_running(tp->dev)) return TG3_LOOPBACK_FAILED; - tg3_reset_hw(tp, 1); + err = tg3_reset_hw(tp, 1); + if (err) + return TG3_LOOPBACK_FAILED; if (tg3_run_loopback(tp, TG3_MAC_LOOPBACK)) err |= TG3_MAC_LOOPBACK_FAILED; @@ -8635,8 +8996,8 @@ tg3_halt(tp, RESET_KIND_SHUTDOWN, 1); if (netif_running(dev)) { tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; - tg3_init_hw(tp, 1); - tg3_netif_start(tp); + if (!tg3_restart_hw(tp, 1)) + tg3_netif_start(tp); } tg3_full_unlock(tp); @@ -8703,6 +9064,9 @@ { struct tg3 *tp = netdev_priv(dev); + if (netif_running(dev)) + tg3_netif_stop(tp); + tg3_full_lock(tp, 0); tp->vlgrp = grp; @@ -8711,16 +9075,25 @@ __tg3_set_rx_mode(dev); tg3_full_unlock(tp); + + if (netif_running(dev)) + tg3_netif_start(tp); } static void tg3_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid) { struct tg3 *tp = netdev_priv(dev); + if (netif_running(dev)) + tg3_netif_stop(tp); + tg3_full_lock(tp, 0); if (tp->vlgrp) tp->vlgrp->vlan_devices[vid] = NULL; tg3_full_unlock(tp); + + if (netif_running(dev)) + tg3_netif_start(tp); } #endif @@ -8786,7 +9159,7 @@ return 0; } -static struct ethtool_ops tg3_ethtool_ops = { +static const struct ethtool_ops tg3_ethtool_ops = { .get_settings = tg3_get_settings, .set_settings = tg3_set_settings, .get_drvinfo = tg3_get_drvinfo, @@ -8835,7 +9208,9 @@ if (tg3_nvram_read_swab(tp, 0, &magic) != 0) return; - if ((magic != TG3_EEPROM_MAGIC) && ((magic & 0xff000000) != 0xa5000000)) + if ((magic != TG3_EEPROM_MAGIC) && + ((magic & TG3_EEPROM_MAGIC_FW_MSK) != TG3_EEPROM_MAGIC_FW) && + ((magic & TG3_EEPROM_MAGIC_HW_MSK) != TG3_EEPROM_MAGIC_HW)) return; /* @@ -8857,7 +9232,7 @@ tp->nvram_size = cursize; } - + static void __devinit tg3_get_nvram_size(struct tg3 *tp) { u32 val; @@ -9073,6 +9448,13 @@ } } +static void __devinit tg3_get_5906_nvram_info(struct tg3 *tp) +{ + tp->nvram_jedecnum = JEDEC_ATMEL; + tp->tg3_flags |= TG3_FLAG_NVRAM_BUFFERED; + tp->nvram_pagesize = ATMEL_AT24C512_CHIP_SIZE; +} + /* Chips other than 5700/5701 use the NVRAM for fetching info. */ static void __devinit tg3_nvram_init(struct tg3 *tp) { @@ -9109,6 +9491,8 @@ tg3_get_5755_nvram_info(tp); else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) tg3_get_5787_nvram_info(tp); + else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) + tg3_get_5906_nvram_info(tp); else tg3_get_nvram_info(tp); @@ -9273,7 +9657,7 @@ (addr & EEPROM_ADDR_ADDR_MASK) | EEPROM_ADDR_START | EEPROM_ADDR_WRITE); - + for (j = 0; j < 10000; j++) { val = tr32(GRC_EEPROM_ADDR); @@ -9309,7 +9693,7 @@ u32 phy_addr, page_off, size; phy_addr = offset & ~pagemask; - + for (j = 0; j < pagesize; j += 4) { if ((ret = tg3_nvram_read(tp, phy_addr + j, (u32 *) (tmp + j)))) @@ -9582,6 +9966,12 @@ /* Assume an onboard device by default. */ tp->tg3_flags |= TG3_FLAG_EEPROM_WRITE_PROT; + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + if (!(tr32(PCIE_TRANSACTION_CFG) & PCIE_TRANS_CFG_LOM)) + tp->tg3_flags &= ~TG3_FLAG_EEPROM_WRITE_PROT; + return; + } + tg3_read_mem(tp, NIC_SRAM_DATA_SIG, &val); if (val == NIC_SRAM_DATA_SIG_MAGIC) { u32 nic_cfg, led_cfg; @@ -9765,7 +10155,7 @@ if (!tg3_readphy(tp, MII_BMSR, &bmsr) && (bmsr & BMSR_LSTATUS)) goto skip_phy_reset; - + err = tg3_phy_reset(tp); if (err) return err; @@ -9827,7 +10217,7 @@ static void __devinit tg3_read_partno(struct tg3 *tp) { unsigned char vpd_data[256]; - int i; + unsigned int i; u32 magic; if (tg3_nvram_read_swab(tp, 0x0, &magic)) @@ -9873,9 +10263,9 @@ } /* Now parse and find the part number. */ - for (i = 0; i < 256; ) { + for (i = 0; i < 254; ) { unsigned char val = vpd_data[i]; - int block_end; + unsigned int block_end; if (val == 0x82 || val == 0x91) { i = (i + 3 + @@ -9891,21 +10281,26 @@ (vpd_data[i + 1] + (vpd_data[i + 2] << 8))); i += 3; - while (i < block_end) { + + if (block_end > 256) + goto out_not_found; + + while (i < (block_end - 2)) { if (vpd_data[i + 0] == 'P' && vpd_data[i + 1] == 'N') { int partno_len = vpd_data[i + 2]; - if (partno_len > 24) + i += 3; + if (partno_len > 24 || (partno_len + i) > 256) goto out_not_found; memcpy(tp->board_part_number, - &vpd_data[i + 3], - partno_len); + &vpd_data[i], partno_len); /* Success. */ return; } + i += 3 + vpd_data[i + 2]; } /* Part number not found. */ @@ -9913,7 +10308,10 @@ } out_not_found: - strcpy(tp->board_part_number, "none"); + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) + strcpy(tp->board_part_number, "BCM95906"); + else + strcpy(tp->board_part_number, "none"); } static void __devinit tg3_read_fw_ver(struct tg3 *tp) @@ -9961,6 +10359,8 @@ static struct pci_device_id write_reorder_chipsets[] = { { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_FE_GATE_700C) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, + PCI_DEVICE_ID_AMD_8131_BRIDGE) }, { PCI_DEVICE(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8385_0) }, { }, @@ -9970,7 +10370,7 @@ u32 pci_state_reg, grc_misc_cfg; u32 val; u16 pci_cmd; - int err; + int err, pcie_cap; /* Force memory write invalidate off. If we leave it on, * then on 5700_BX chips we have to enable a workaround. @@ -10113,6 +10513,7 @@ GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 || (tp->tg3_flags2 & TG3_FLG2_5780_CLASS)) tp->tg3_flags2 |= TG3_FLG2_5750_PLUS; @@ -10122,22 +10523,41 @@ if (tp->tg3_flags2 & TG3_FLG2_5750_PLUS) { if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || - GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) { + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { tp->tg3_flags2 |= TG3_FLG2_HW_TSO_2; tp->tg3_flags2 |= TG3_FLG2_1SHOT_MSI; - } else - tp->tg3_flags2 |= TG3_FLG2_HW_TSO_1; + } else { + tp->tg3_flags2 |= TG3_FLG2_HW_TSO_1 | + TG3_FLG2_HW_TSO_1_BUG; + if (GET_ASIC_REV(tp->pci_chip_rev_id) == + ASIC_REV_5750 && + tp->pci_chip_rev_id >= CHIPREV_ID_5750_C2) + tp->tg3_flags2 &= ~TG3_FLG2_HW_TSO_1_BUG; + } } if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5705 && GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5750 && GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5752 && GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5755 && - GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5787) + GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5787 && + GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906) tp->tg3_flags2 |= TG3_FLG2_JUMBO_CAPABLE; - if (pci_find_capability(tp->pdev, PCI_CAP_ID_EXP) != 0) + pcie_cap = pci_find_capability(tp->pdev, PCI_CAP_ID_EXP); + if (pcie_cap != 0) { tp->tg3_flags2 |= TG3_FLG2_PCI_EXPRESS; + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + u16 lnkctl; + + pci_read_config_word(tp->pdev, + pcie_cap + PCI_EXP_LNKCTL, + &lnkctl); + if (lnkctl & PCI_EXP_LNKCTL_CLKREQ_EN) + tp->tg3_flags2 &= ~TG3_FLG2_HW_TSO_2; + } + } /* If we have an AMD 762 or VIA K8T800 chipset, write * reordering to the mailbox registers done by the host @@ -10263,6 +10683,12 @@ pci_cmd &= ~PCI_COMMAND_MEMORY; pci_write_config_word(tp->pdev, PCI_COMMAND, pci_cmd); } + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + tp->read32_mbox = tg3_read32_mbox_5906; + tp->write32_mbox = tg3_write32_mbox_5906; + tp->write32_tx_mbox = tg3_write32_mbox_5906; + tp->write32_rx_mbox = tg3_write32_mbox_5906; + } if (tp->write32 == tg3_write_indirect_reg32 || ((tp->tg3_flags & TG3_FLAG_PCIX_MODE) && @@ -10277,7 +10703,7 @@ * When the flag is set, it means that GPIO1 is used for eeprom * write protect and also implies that it is a LOM where GPIOs * are not used to switch power. - */ + */ tg3_get_eeprom_hw_cfg(tp); /* Set up tp->grc_local_ctrl before calling tg3_set_power_state(). @@ -10334,6 +10760,7 @@ ((GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5705) && (tp->pci_chip_rev_id != CHIPREV_ID_5705_A0) && (tp->pci_chip_rev_id != CHIPREV_ID_5705_A1)) || + (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) || (tp->tg3_flags2 & TG3_FLG2_ANY_SERDES)) tp->tg3_flags2 |= TG3_FLG2_NO_ETH_WIRE_SPEED; @@ -10347,7 +10774,7 @@ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) tp->tg3_flags2 |= TG3_FLG2_PHY_JITTER_BUG; - else + else if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906) tp->tg3_flags2 |= TG3_FLG2_PHY_BER_BUG; } @@ -10437,7 +10864,8 @@ tp->pdev->device == PCI_DEVICE_ID_TIGON3_5705F)) || (tp->pdev->vendor == PCI_VENDOR_ID_BROADCOM && (tp->pdev->device == PCI_DEVICE_ID_TIGON3_5751F || - tp->pdev->device == PCI_DEVICE_ID_TIGON3_5753F))) + tp->pdev->device == PCI_DEVICE_ID_TIGON3_5753F)) || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) tp->tg3_flags |= TG3_FLAG_10_100_ONLY; err = tg3_phy_probe(tp); @@ -10488,7 +10916,8 @@ * straddle the 4GB address boundary in some cases. */ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755 || - GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787) + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5787 || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) tp->dev->hard_start_xmit = tg3_start_xmit; else tp->dev->hard_start_xmit = tg3_start_xmit_dma_bug; @@ -10498,6 +10927,16 @@ (tp->tg3_flags & TG3_FLAG_PCIX_MODE) != 0) tp->rx_offset = 0; + tp->rx_std_max_post = TG3_RX_RING_SIZE; + + /* Increment the rx prod index on the rx std ring by at most + * 8 for these chips to workaround hw errata. + */ + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5752 || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5755) + tp->rx_std_max_post = 8; + /* By default, disable wake-on-lan. User can change this * using ETHTOOL_SWOL. */ @@ -10514,11 +10953,13 @@ struct pcidev_cookie *pcp = pdev->sysdata; if (pcp != NULL) { - int node = pcp->prom_node; + unsigned char *addr; + int len; - if (prom_getproplen(node, "local-mac-address") == 6) { - prom_getproperty(node, "local-mac-address", - dev->dev_addr, 6); + addr = of_get_property(pcp->prom_node, "local-mac-address", + &len); + if (addr && len == 6) { + memcpy(dev->dev_addr, addr, 6); memcpy(dev->perm_addr, dev->dev_addr, 6); return 0; } @@ -10557,6 +10998,8 @@ else tg3_nvram_unlock(tp); } + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) + mac_offset = 0x10; /* First try to get it from MAC address mailbox. */ tg3_read_mem(tp, NIC_SRAM_MAC_ADDR_HIGH_MBOX, &hi); @@ -11040,6 +11483,12 @@ DEFAULT_MB_MACRX_LOW_WATER_5705; tp->bufmgr_config.mbuf_high_water = DEFAULT_MB_HIGH_WATER_5705; + if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) { + tp->bufmgr_config.mbuf_mac_rx_low_water = + DEFAULT_MB_MACRX_LOW_WATER_5906; + tp->bufmgr_config.mbuf_high_water = + DEFAULT_MB_HIGH_WATER_5906; + } tp->bufmgr_config.mbuf_read_dma_low_water_jumbo = DEFAULT_MB_RDMA_LOW_WATER_JUMBO_5780; @@ -11083,6 +11532,8 @@ case PHY_ID_BCM5780: return "5780"; case PHY_ID_BCM5755: return "5755"; case PHY_ID_BCM5787: return "5787"; + case PHY_ID_BCM5756: return "5722/5756"; + case PHY_ID_BCM5906: return "5906"; case PHY_ID_BCM8002: return "8002/serdes"; case 0: return "serdes"; default: return "unknown"; @@ -11243,7 +11694,6 @@ SET_MODULE_OWNER(dev); SET_NETDEV_DEV(dev, &pdev->dev); - dev->features |= NETIF_F_LLTX; #if TG3_VLAN_TAG_USED dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX; dev->vlan_rx_register = tg3_vlan_rx_register; @@ -11285,7 +11735,6 @@ tp->grc_mode |= GRC_MODE_BSWAP_NONFRM_DATA; #endif spin_lock_init(&tp->lock); - spin_lock_init(&tp->tx_lock); spin_lock_init(&tp->indirect_lock); INIT_WORK(&tp->reset_task, tg3_reset_task, tp); @@ -11375,22 +11824,23 @@ else if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 || GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5701 || tp->pci_chip_rev_id == CHIPREV_ID_5705_A0 || + GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906 || (tp->tg3_flags & TG3_FLAG_ENABLE_ASF) != 0) { tp->tg3_flags2 &= ~TG3_FLG2_TSO_CAPABLE; } else { tp->tg3_flags2 |= TG3_FLG2_TSO_CAPABLE; } - /* TSO is on by default on chips that support HW_TSO_2. - * Some HW_TSO_1 capable chips have bugs that can lead to - * tx timeouts in some cases when TSO is enabled. + /* TSO is on by default on chips that support hardware TSO. * Firmware TSO on older chips gives lower performance, so it * is off by default, but can be enabled using ethtool. */ - if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO_2) || - (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5750 && - tp->pci_chip_rev_id >= CHIPREV_ID_5750_C2)) + if (tp->tg3_flags2 & TG3_FLG2_HW_TSO) { dev->features |= NETIF_F_TSO; + if ((tp->tg3_flags2 & TG3_FLG2_HW_TSO_2) && + (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906)) + dev->features |= NETIF_F_TSO6; + } #endif @@ -11564,7 +12014,8 @@ tg3_full_lock(tp, 0); tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; - tg3_init_hw(tp, 1); + if (tg3_restart_hw(tp, 1)) + goto out; tp->timer.expires = jiffies + tp->timer_offset; add_timer(&tp->timer); @@ -11572,6 +12023,7 @@ netif_device_attach(dev); tg3_netif_start(tp); +out: tg3_full_unlock(tp); } @@ -11598,16 +12050,19 @@ tg3_full_lock(tp, 0); tp->tg3_flags |= TG3_FLAG_INIT_COMPLETE; - tg3_init_hw(tp, 1); + err = tg3_restart_hw(tp, 1); + if (err) + goto out; tp->timer.expires = jiffies + tp->timer_offset; add_timer(&tp->timer); tg3_netif_start(tp); +out: tg3_full_unlock(tp); - return 0; + return err; } static struct pci_driver tg3_driver = { @@ -11621,7 +12076,7 @@ static int __init tg3_init(void) { - return pci_module_init(&tg3_driver); + return pci_register_driver(&tg3_driver); } static void __exit tg3_cleanup(void) --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/wireless/ipw3945/ipw3945.h +++ linux-source-2.6.17-2.6.17.1/drivers/net/wireless/ipw3945/ipw3945.h @@ -29,7 +29,7 @@ #include #include -#include +#include #include #include @@ -202,9 +202,12 @@ #define IPW_DEBUG_POWER(f, a...) IPW_DEBUG(IPW_DL_POWER, f, ## a) #define IPW_DEBUG_11H(f, a...) IPW_DEBUG(IPW_DL_11H, f, ## a) -/* Amount of time after sending an association request before we assume - * the request has failed in ms (default 750ms)*/ -#define ASSOCIATE_TIMEOUT 750 +/* Amount of time after sending an association request to wait before we send + * the next request frame. */ +#define IPW_ASSOC_STATE_TIMEOUT 100 + +/* Number of association sequence request frames to send before we bail */ +#define IPW_MAX_ASSOC_RETRY 7 /* microcode and hardware interface definitions */ @@ -1288,21 +1291,13 @@ /*********************************************/ /* Authentication and Association States */ -enum connection_manager_assoc_states { - CMAS_INIT = 0, - CMAS_TX_AUTH_SEQ_1, - CMAS_RX_AUTH_SEQ_2, - CMAS_AUTH_SEQ_1_PASS, - CMAS_AUTH_SEQ_1_FAIL, - CMAS_TX_AUTH_SEQ_3, - CMAS_RX_AUTH_SEQ_4, - CMAS_AUTH_SEQ_2_PASS, - CMAS_AUTH_SEQ_2_FAIL, - CMAS_AUTHENTICATED, - CMAS_TX_ASSOC, - CMAS_RX_ASSOC_RESP, - CMAS_ASSOCIATED, - CMAS_LAST +enum ipw_auth_sequence { + AUTH_INIT = 0, + AUTH_TRANSACTION_1, /* STA send AUTH request */ + AUTH_TRANSACTION_2, /* shared: AP responds */ + AUTH_TRANSACTION_3, /* shared: STA sends encrypted text */ + AUTH_TRANSACTION_4, /* shared: AP sends success or failure */ + AUTH_SUCCESS, }; #define IPW_POWER_MODE_CAM 0x00 //(always on) @@ -2042,6 +2037,7 @@ }; struct ipw_frame { + int len; union { struct ieee80211_hdr frame; u8 raw[IEEE80211_FRAME_LEN]; @@ -2206,11 +2202,12 @@ struct ipw_power_mgr power_data; - struct ieee80211_auth *auth_frame; - enum connection_manager_assoc_states auth_state; + enum ipw_auth_sequence auth_state; + struct ipw_frame *assoc_sequence_frame; struct ipw_associate assoc_request; struct ieee80211_network *assoc_network; + int association_retries; struct ipw_notif_statistics statistics; @@ -2288,7 +2285,7 @@ struct work_struct link_up; struct work_struct update_link_led; struct work_struct link_down; - struct work_struct associate_timeout; + struct work_struct assoc_state_retry; struct work_struct activity_timer; struct work_struct alive_start; struct work_struct resume_work; --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/wireless/ipw3945/ipw3945.c +++ linux-source-2.6.17-2.6.17.1/drivers/net/wireless/ipw3945/ipw3945.c @@ -61,18 +61,17 @@ * then again with each band one directed and one indirect. * */ -#include #include #include #include #include "ipw3945.h" -#define IEEE80211_API_VERSION 2 +#define IPW3945_COMPAT 2 -#if IEEE80211_API_VERSION != 1 && \ - IEEE80211_API_VERSION != 2 -#error Incompatible ieee80211 subsystem version. Please upgrade ipw3945 driver sources. +#ifndef IPW3945_COMPAT +#error Incomplete build system. If you are building as part of your kernel build +#error process, ensure that you used 'make patch_kernel' to install into your kernel. #endif #ifdef CONFIG_IPW3945_DEBUG @@ -105,7 +104,7 @@ #define VQ #endif -#define IPW3945_VERSION "1.1.0" VD VM VP VR VQ +#define IPW3945_VERSION "1.1.3" VD VM VP VR VQ #define DRV_DESCRIPTION "Intel(R) PRO/Wireless 3945 Network Connection driver for Linux" #define DRV_COPYRIGHT "Copyright(c) 2003-2006 Intel Corporation" @@ -1437,7 +1436,7 @@ { struct list_head *element; - IPW_DEBUG_INFO("%d frames on pre-allocated heap on clear.\n", + IPW_DEBUG_INFO("%d frame[s] on pre-allocated heap on clear.\n", priv->frames_count); while (!list_empty(&priv->free_frames)) { @@ -2112,7 +2111,7 @@ geo->a[i].max_power, geo->a[i]. flags & IEEE80211_CH_RADAR_DETECT ? - " (IEEE 802.11h requried)" : "", + " (radar spectrum)" : "", ((geo->a[i].flags & IEEE80211_CH_NO_IBSS) || (geo->a[i]. flags & @@ -2567,6 +2566,7 @@ IPW_DEBUG_INFO("Setting scan to off\n"); + priv->one_direct_scan = 0; priv->status &= ~STATUS_SCANNING; priv->ieee->scans++; @@ -3851,8 +3851,6 @@ IPW_SUPPORTED_RATES_IE_LEN); ret_rates = ~ret_rates & priv->active_rate; - IPW_DEBUG_INFO("ASSOC REQ: Rates: %08X %08X\n", priv->active_rate, - priv->active_rate_basic); /* Account for the size we know... */ len = sizeof(struct ieee80211_assoc_request) + @@ -4061,6 +4059,10 @@ frame->beacon_interval = priv->assoc_request.beacon_interval; frame->capability |= WLAN_CAPABILITY_IBSS; + if (priv->capability & CAP_PRIVACY_ON) + frame->capability |= WLAN_CAPABILITY_PRIVACY; + else + frame->capability &= ~WLAN_CAPABILITY_PRIVACY; frame->capability &= ~WLAN_CAPABILITY_SHORT_SLOT_TIME; info_element = frame->info_element; @@ -4281,22 +4283,12 @@ return 0; } -static int ipw_send_associate(struct ipw_priv *priv, - struct ipw_associate *associate) +static int ipw_start_association(struct ipw_priv *priv, + struct ipw_associate *associate) { - struct ieee80211_auth frame = { - .header.frame_ctl = IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_AUTH, - .transaction = 1, - }; int rc = 0; struct daemon_rx_config *rxon = &priv->rxon; - - frame.algorithm = (associate->auth_type == AUTH_SHARED_KEY) ? - WLAN_AUTH_SHARED_KEY : WLAN_AUTH_OPEN; - - memcpy(frame.header.addr1, priv->bssid, ETH_ALEN); - memcpy(frame.header.addr2, priv->mac_addr, ETH_ALEN); - memcpy(frame.header.addr3, priv->bssid, ETH_ALEN); + struct ieee80211_auth *auth_frame; if (priv->status & STATUS_ASSOCIATED) { IPW_DEBUG_ASSOC @@ -4305,6 +4297,27 @@ return -EINVAL; } + if (!priv->assoc_sequence_frame) + priv->assoc_sequence_frame = ipw_get_free_frame(priv); + if (!priv->assoc_sequence_frame) { + IPW_ERROR("Could not obtain frame for auth work.\n"); + return -ENOMEM; + } + + auth_frame = (void *)&priv->assoc_sequence_frame->u.frame; + priv->assoc_sequence_frame->len = sizeof(*auth_frame); + + auth_frame->header.frame_ctl = + IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_AUTH; + auth_frame->transaction = 1; + + auth_frame->algorithm = (associate->auth_type == AUTH_SHARED_KEY) ? + WLAN_AUTH_SHARED_KEY : WLAN_AUTH_OPEN; + + memcpy(auth_frame->header.addr1, priv->bssid, ETH_ALEN); + memcpy(auth_frame->header.addr2, priv->mac_addr, ETH_ALEN); + memcpy(auth_frame->header.addr3, priv->bssid, ETH_ALEN); + memcpy(priv->ieee->bssid, priv->bssid, ETH_ALEN); memcpy(rxon->bssid_addr, associate->bssid, ETH_ALEN); rxon->channel = associate->channel; @@ -4402,16 +4415,26 @@ } else { unsigned long flags; spin_lock_irqsave(&priv->lock, flags); -#if IEEE80211_API_VERSION >= 2 +#if IPW3945_COMPAT >= 2 rc = ieee80211_tx_frame(priv->ieee, - (struct ieee80211_hdr - *)&frame, 0, sizeof(frame), 0); + &priv->assoc_sequence_frame->u. + frame, 0, + priv->assoc_sequence_frame->len, + 0); #else rc = ieee80211_tx_frame(priv->ieee, - (struct ieee80211_hdr - *)&frame, sizeof(frame)); + &priv->assoc_sequence_frame->u. + frame, + priv->assoc_sequence_frame-> + len); #endif + priv->auth_state = AUTH_TRANSACTION_1; spin_unlock_irqrestore(&priv->lock, flags); + priv->association_retries = 0; + queue_delayed_work(priv->workqueue, + &priv->assoc_state_retry, + msecs_to_jiffies + (IPW_ASSOC_STATE_TIMEOUT)); } } @@ -4558,6 +4581,7 @@ priv->status |= STATUS_CALIBRATE; if (!priv->netdev_registered) { + mutex_unlock(&priv->mutex); rc = register_netdev(priv->net_dev); if (rc) { IPW_ERROR("Failed to register network " @@ -4565,7 +4589,6 @@ "in 5 seconds.\n", rc); queue_delayed_work(priv->workqueue, &priv->down, 5 * HZ); - mutex_unlock(&priv->mutex); return; } #ifdef CONFIG_IPW3945_PROMISCUOUS @@ -4578,12 +4601,12 @@ "in 5 seconds.\n", rc); queue_delayed_work(priv->workqueue, &priv->down, 5 * HZ); - mutex_unlock(&priv->mutex); unregister_netdev(priv->net_dev); return; } } #endif + mutex_lock(&priv->mutex); priv->netdev_registered = 1; /* For some reason, this card comes up with IFF_RUNNING set. @@ -4878,7 +4901,7 @@ break; case DAEMON_FRAME_TX: -#if IEEE80211_API_VERSION >= 2 +#if IPW3945_COMPAT >= 2 ieee80211_tx_frame(priv->ieee, (struct ieee80211_hdr *) daemon_cmd->cmd.data, 0, daemon_cmd->cmd.data_len, 0); @@ -5218,8 +5241,9 @@ element = rxq->rx_free.next; rxb = list_entry(element, struct ipw_rx_mem_buffer, list); list_del(element); - *(dma_addr_t *) & (((u32 *) rxq->bd)[rxq->write]) = - rxb->dma_addr; + + ((u32 *) rxq->bd)[rxq->write] = (u32) rxb->dma_addr; + rxq->queue[rxq->write] = rxb; rxq->write = (rxq->write + 1) % RX_QUEUE_SIZE; rxq->free_count--; @@ -6735,7 +6759,12 @@ ipw_clear_stations_table(priv); - priv->auth_state = CMAS_INIT; + if (priv->assoc_sequence_frame) { + ipw_free_frame(priv, priv->assoc_sequence_frame); + priv->assoc_sequence_frame = NULL; + } + + priv->auth_state = AUTH_INIT; if (!(priv->status & STATUS_EXIT_PENDING)) queue_work(priv->workqueue, &priv->link_down); @@ -6750,12 +6779,12 @@ { struct ipw_priv *priv = data; - cancel_delayed_work(&priv->associate_timeout); + cancel_delayed_work(&priv->assoc_state_retry); if (!(priv->status & (STATUS_ASSOCIATED | STATUS_ASSOCIATING))) return 0; - priv->auth_state = CMAS_INIT; + priv->auth_state = AUTH_INIT; ipw_send_disassociate(data, 0); @@ -8305,7 +8334,6 @@ scan->direct_scan.len = priv->direct_ssid_len; memcpy(scan->direct_scan.ssid, priv->direct_ssid, priv->direct_ssid_len); - priv->one_direct_scan = 0; } else if ((priv->config & CFG_STATIC_ESSID) && #else if ((priv->config & CFG_STATIC_ESSID) && @@ -8351,8 +8379,7 @@ #endif if (scan->flags & DAEMON_SCAN_FLAG_ACTIVE) { - if ((priv->config & CFG_STATIC_ESSID) && - !(priv->status & STATUS_ASSOCIATED)) + if (scan->flags & DAEMON_SCAN_FLAG_DIRECT) IPW_DEBUG_SCAN ("Initiating direct scan for %s.\n", escape_essid(priv->essid, priv->essid_len)); @@ -9340,177 +9367,198 @@ #define STATUS_SUCCESS 0 #define STATUS_FAIL 1 -static void ipw_auth_work(void *data) +static void ipw_send_association_req(struct ipw_priv *priv) +{ + unsigned long flags; + + priv->assoc_sequence_frame->len = + ipw_fill_association_req(priv, &priv->assoc_sequence_frame->u.frame, + IEEE80211_FRAME_LEN); + + IPW_DEBUG_INFO("Sending association request frame (%d bytes).\n", + priv->assoc_sequence_frame->len); + + spin_lock_irqsave(&priv->lock, flags); +#if IPW3945_COMPAT >= 2 + ieee80211_tx_frame(priv->ieee, &priv->assoc_sequence_frame->u.frame, 0, + priv->assoc_sequence_frame->len, 0); +#else + ieee80211_tx_frame(priv->ieee, &priv->assoc_sequence_frame->u.frame, + priv->assoc_sequence_frame->len); +#endif + spin_unlock_irqrestore(&priv->lock, flags); + + priv->association_retries = 0; + queue_delayed_work(priv->workqueue, &priv->assoc_state_retry, + msecs_to_jiffies(IPW_ASSOC_STATE_TIMEOUT)); +} + +static void ipw_bg_auth_work(void *data) { struct ipw_priv *priv = data; - enum connection_manager_assoc_states *state = &priv->auth_state; - struct ieee80211_auth *auth = priv->auth_frame; + struct ieee80211_auth *auth; unsigned long flags; - int status; mutex_lock(&priv->mutex); spin_lock_irqsave(&priv->lock, flags); - if (*state >= CMAS_INIT && *state <= CMAS_RX_AUTH_SEQ_4) { - *state = CMAS_RX_AUTH_SEQ_2; - if (auth->algorithm == WLAN_AUTH_OPEN && - *state <= CMAS_RX_AUTH_SEQ_2) { - BUG_ON(!priv->auth_frame); - status = auth->status; - kfree(priv->auth_frame); - priv->auth_frame = NULL; + auth = (void *)&priv->assoc_sequence_frame->u.frame; - if (status == STATUS_SUCCESS) { - goto fill_assoc; - } - *state = CMAS_INIT; - spin_unlock_irqrestore(&priv->lock, flags); - mutex_unlock(&priv->mutex); - IPW_DEBUG_ASSOC("AUTH_OPEN fail\n"); - return; + if (auth->algorithm == WLAN_AUTH_OPEN) { + if (priv->auth_state != AUTH_TRANSACTION_1) { + IPW_DEBUG_ASSOC + ("Invalid AP AUTH_OPEN failed reason: %d\n", + auth->status); } - if (auth->algorithm == WLAN_AUTH_SHARED_KEY && - *state <= CMAS_RX_AUTH_SEQ_4) { - if (auth->transaction == 2) { - struct ieee80211_auth *auth2; -#if IEEE80211_API_VERSION >= 2 - BUG_ON(!priv->auth_frame); - auth2 = priv->auth_frame; - auth2->header.seq_ctl = 0; - - memcpy(auth2->header.addr1, priv->bssid, 6); - memcpy(auth2->header.addr2, priv->mac_addr, 6); - memcpy(auth2->header.addr3, - priv->ieee->bssid, 6); - auth2->algorithm = WLAN_AUTH_SHARED_KEY; - auth2->transaction = 3; - auth2->status = 0; - - ieee80211_tx_frame(priv->ieee, - (struct ieee80211_hdr *) - priv->auth_frame, - IEEE80211_3ADDR_LEN, - sizeof(*auth2) + 130, 1); + if (auth->status == STATUS_SUCCESS) + goto authenticated; + + IPW_DEBUG_ASSOC("AUTH_OPEN failed reason: %d\n", auth->status); + + goto failed; + } + + if (auth->algorithm != WLAN_AUTH_SHARED_KEY || + priv->auth_state == AUTH_INIT) { + IPW_DEBUG_ASSOC + ("Out of lock for auth sequence/algorithm: %d:%d\n", + priv->auth_state, auth->algorithm); + + goto failed; + } + + switch (auth->transaction) { + case 2: +#if IPW3945_COMPAT < 2 + struct ieee80211_auth *auth2; + struct sk_buff *skb_auth = NULL; + int tx_key = !(priv->ieee->sec.flags & SEC_ACTIVE_KEY) ? + 0 : priv->ieee->sec.active_key; + struct ieee80211_crypt_data *crypt = priv->ieee->crypt[tx_key]; +#endif + + if (priv->auth_state != AUTH_TRANSACTION_1) { + IPW_DEBUG_ASSOC + ("Duplicate frame received for AUTH 1\n"); + break; + } +#if IPW3945_COMPAT >= 2 + auth->header.seq_ctl = 0; + + memcpy(auth->header.addr1, priv->bssid, 6); + memcpy(auth->header.addr2, priv->mac_addr, 6); + memcpy(auth->header.addr3, priv->ieee->bssid, 6); + auth->algorithm = WLAN_AUTH_SHARED_KEY; + auth->transaction = 3; + auth->status = 0; + priv->assoc_sequence_frame->len = sizeof(*auth) + 130; + + ieee80211_tx_frame(priv->ieee, + &priv->assoc_sequence_frame->u.frame, + IEEE80211_3ADDR_LEN, + priv->assoc_sequence_frame->len, 1); + + priv->association_retries = 0; + queue_delayed_work(priv->workqueue, + &priv->assoc_state_retry, + msecs_to_jiffies(IPW_ASSOC_STATE_TIMEOUT)); #else - struct sk_buff *skb_auth = NULL; - int tx_key = - !(priv->ieee->sec. - flags & SEC_ACTIVE_KEY) ? 0 : priv->ieee-> - sec.active_key; - struct ieee80211_crypt_data *crypt = - priv->ieee->crypt[tx_key]; - - if (!crypt) { - IPW_DEBUG_ASSOC("no crypt config " - "shared_key auth failed\n"); - *state = CMAS_INIT; - goto out_fail2; - } - skb_auth = - dev_alloc_skb(sizeof(struct ieee80211_auth) - + 138); - if (!skb_auth) { - IPW_DEBUG_ASSOC("can't alloc skb " - "shared_key auth failed\n"); - *state = CMAS_INIT; - goto out_fail2; - } + if (!crypt) { + IPW_DEBUG_ASSOC("no crypt config " + "shared_key auth failed\n"); + goto failed; + } + + skb_auth = dev_alloc_skb(sizeof(struct ieee80211_auth) + + 138); + if (!skb_auth) { + IPW_DEBUG_ASSOC("can't alloc skb " + "shared_key auth failed\n"); + goto failed; + } + + skb_reserve(skb_auth, 4); + skb_put(skb_auth, sizeof(*auth) + 130); + auth2 = (struct ieee80211_auth *)skb_auth->data; + auth2->header.frame_ctl = + IEEE80211_FTYPE_MGMT | + IEEE80211_STYPE_AUTH | IEEE80211_FCTL_PROTECTED; + auth2->header.seq_ctl = 0; + BUG_ON(!priv->auth_frame); + + memcpy(auth2->header.addr1, priv->bssid, 6); + memcpy(auth2->header.addr2, priv->mac_addr, 6); + memcpy(auth2->header.addr3, priv->ieee->bssid, 6); + auth2->algorithm = WLAN_AUTH_SHARED_KEY; + auth2->transaction = 3; + auth2->status = 0; + + memcpy(auth2->info_element, + priv->auth_frame->info_element, 130); + + atomic_inc(&crypt->refcnt); + if (crypt->ops->encrypt_mpdu) + crypt->ops-> + encrypt_mpdu(skb_auth, + IEEE80211_3ADDR_LEN, crypt->priv); + atomic_dec(&crypt->refcnt); + + memcpy(auth, skb_auth->data, skb_auth->len); + + priv->assoc_sequence_frame->len = skb_auth->len; + + ieee80211_tx_frame(priv->ieee, + priv->assoc_sequence_frame->u.frame, + priv->assoc_sequence_frame->len); + dev_kfree_skb_any(skb_auth); - skb_reserve(skb_auth, 4); - skb_put(skb_auth, sizeof(*auth) + 130); - auth2 = (struct ieee80211_auth *) - skb_auth->data; - auth2->header.frame_ctl = - IEEE80211_FTYPE_MGMT | - IEEE80211_STYPE_AUTH | - IEEE80211_FCTL_PROTECTED; - auth2->header.seq_ctl = 0; - BUG_ON(!priv->auth_frame); - - memcpy(auth2->header.addr1, priv->bssid, 6); - memcpy(auth2->header.addr2, priv->mac_addr, 6); - memcpy(auth2->header.addr3, - priv->ieee->bssid, 6); - auth2->algorithm = WLAN_AUTH_SHARED_KEY; - auth2->transaction = 3; - auth2->status = 0; - - memcpy(auth2->info_element, - priv->auth_frame->info_element, 130); - - atomic_inc(&crypt->refcnt); - if (crypt->ops->encrypt_mpdu) - crypt->ops-> - encrypt_mpdu(skb_auth, - IEEE80211_3ADDR_LEN, - crypt->priv); - atomic_dec(&crypt->refcnt); - - memcpy(priv->auth_frame, - skb_auth->data, skb_auth->len); - - ieee80211_tx_frame(priv->ieee, - (struct ieee80211_hdr *) - priv->auth_frame, - skb_auth->len); - dev_kfree_skb_any(skb_auth); - out_fail2: + priv->association_retries = 0; + queue_delayed_work(priv->workqueue, + &priv->assoc_state_retry, + msecs_to_jiffies(IPW_ASSOC_STATE_TIMEOUT)); #endif - spin_unlock_irqrestore(&priv->lock, flags); - mutex_unlock(&priv->mutex); - return; - } else if (auth->transaction == 4) { - BUG_ON(!priv->auth_frame); - status = auth->status; - kfree(priv->auth_frame); - priv->auth_frame = NULL; - if (status == STATUS_SUCCESS) { - goto fill_assoc; - } + priv->auth_state = AUTH_TRANSACTION_3; + break; - *state = CMAS_INIT; - spin_unlock_irqrestore(&priv->lock, flags); - mutex_unlock(&priv->mutex); - IPW_DEBUG_ASSOC("AUTH_SHARED_KEY fail\n"); - return; - } + case 4: + if (priv->auth_state != AUTH_TRANSACTION_3) { + IPW_DEBUG_ASSOC + ("Duplicate frame received for AUTH 3\n"); + break; } + + if (auth->status == STATUS_SUCCESS) + goto authenticated; + + priv->auth_state = AUTH_INIT; + IPW_DEBUG_ASSOC("AUTH_SHARED_KEY fail reason: %d\n", + auth->status); + break; + + default: + IPW_DEBUG_ASSOC("Unhandled auth transaction state: %d\n", + auth->transaction); } + spin_unlock_irqrestore(&priv->lock, flags); mutex_unlock(&priv->mutex); return; - fill_assoc: - priv->auth_state = CMAS_AUTHENTICATED; + authenticated: + priv->auth_state = AUTH_SUCCESS; spin_unlock_irqrestore(&priv->lock, flags); + if (!(priv->status & STATUS_ASSOCIATED)) + ipw_send_association_req(priv); mutex_unlock(&priv->mutex); - if (!(priv->status & STATUS_ASSOCIATED)) { - struct ipw_frame *frame = ipw_get_free_frame(priv); - int len; - - if (!frame) { - IPW_ERROR("Could not allocate frame for auth work.\n"); - return; - } - - len = ipw_fill_association_req(priv, &frame->u.frame, - sizeof(frame->u)); - if (len) { - IPW_DEBUG_11H("Sending %d bytes.\n", len); - spin_lock_irqsave(&priv->lock, flags); -#if IEEE80211_API_VERSION >= 2 - ieee80211_tx_frame(priv->ieee, &frame->u.frame, 0, len, - 0); -#else - ieee80211_tx_frame(priv->ieee, &frame->u.frame, len); -#endif - spin_unlock_irqrestore(&priv->lock, flags); - } + return; - ipw_free_frame(priv, frame); - } + failed: + priv->auth_state = AUTH_INIT; + spin_unlock_irqrestore(&priv->lock, flags); + ipw_send_disassociate(priv, 1); + mutex_unlock(&priv->mutex); } static int ipw_handle_probe_request(struct net_device *dev, struct ieee80211_probe_request @@ -9574,7 +9622,7 @@ IPW_DEBUG_11H("Sending %d bytes.\n", len); out_frame->u.frame.frame_ctl = IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_PROBE_RESP; -#if IEEE80211_API_VERSION >= 2 +#if IPW3945_COMPAT >= 2 ieee80211_tx_frame(priv->ieee, &out_frame->u.frame, 0, len, 0); #else ieee80211_tx_frame(priv->ieee, &out_frame->u.frame, len); @@ -9595,6 +9643,11 @@ ("auth frame algorithm %d transaction %d status %d \n", auth->algorithm, auth->transaction, auth->status); + if (!priv->assoc_sequence_frame) { + IPW_DEBUG_INFO("Auth received out of sequence. Ignoring.\n"); + return 0; + } + if (priv->status & STATUS_EXIT_PENDING) return 0; @@ -9602,24 +9655,21 @@ !(priv->status & STATUS_ASSOCIATING)) return 0; - if ((priv->auth_state <= CMAS_INIT) - && (priv->auth_frame == NULL)) { - priv->auth_frame = kmalloc(size + 138, GFP_ATOMIC); - if (priv->auth_frame == NULL) { - IPW_DEBUG_ASSOC("can't alloc auth frame\n"); - return 0; - } + if (priv->auth_state == AUTH_SUCCESS || priv->auth_state == AUTH_INIT) { + IPW_DEBUG_INFO + ("AUTH frame received while not authenticating...\n"); + return 0; } - if (priv->auth_state != CMAS_AUTHENTICATED) { - BUG_ON(!priv->auth_frame); - if (auth->transaction == 2 - && auth->algorithm == WLAN_AUTH_SHARED_KEY) - size += 138; - memcpy(priv->auth_frame, auth, size); + if (auth->transaction == 2 && auth->algorithm == WLAN_AUTH_SHARED_KEY) + size += 138; - queue_work(priv->workqueue, &priv->auth_work); - } + priv->assoc_sequence_frame->len = size; + memcpy(&priv->assoc_sequence_frame->u.frame, auth, size); + + cancel_delayed_work(&priv->assoc_state_retry); + + queue_work(priv->workqueue, &priv->auth_work); return 0; } @@ -9648,7 +9698,7 @@ memcpy(frame.header.addr2, priv->mac_addr, ETH_ALEN); memcpy(frame.header.addr3, priv->ieee->bssid, ETH_ALEN); - priv->auth_state = CMAS_INIT; + priv->auth_state = AUTH_INIT; ieee80211_tx_frame(priv->ieee, (struct ieee80211_hdr *)&frame, sizeof(frame)); @@ -9780,6 +9830,13 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + cancel_delayed_work(&priv->assoc_state_retry); + + if (priv->assoc_sequence_frame) { + ipw_free_frame(priv, priv->assoc_sequence_frame); + priv->assoc_sequence_frame = NULL; + } + if (priv->status & STATUS_EXIT_PENDING) return 0; @@ -9812,8 +9869,6 @@ escape_essid(priv->essid, priv->essid_len), MAC_ARG(priv->bssid)); - cancel_delayed_work(&priv->associate_timeout); - priv->assoc_request.assoc_id = resp->aid & 0x3fff; priv->assoc_request.capability = network->capability; queue_work(priv->workqueue, &priv->post_associate); @@ -9985,7 +10040,7 @@ ipw_qos_association(priv, network); #endif - err = ipw_send_associate(priv, &priv->assoc_request); + err = ipw_start_association(priv, &priv->assoc_request); if (err) { IPW_DEBUG_HC("Attempt to send associate command failed.\n"); return err; @@ -9995,9 +10050,6 @@ escape_essid(priv->essid, priv->essid_len), MAC_ARG(priv->bssid)); - queue_delayed_work(priv->workqueue, &priv->associate_timeout, - msecs_to_jiffies(ASSOCIATE_TIMEOUT)); - return 0; } @@ -10220,6 +10272,7 @@ hdr = (void *)rxb->skb->data; priv->rx_bytes += rxb->skb->len - ieee80211_get_hdrlen(hdr->frame_ctl); + priv->rx_packets++; if (!ieee80211_rx(priv->ieee, rxb->skb, stats)) priv->ieee->stats.rx_errors++; @@ -10306,7 +10359,7 @@ return 1; } -#ifdef CONFIG_IEEE80211_RADIOTAP +#if defined(CONFIG_IEEE80211_RADIOTAP) && defined(CONFIG_IPW3945_MONITOR) static void ipw_handle_data_packet_monitor(struct ipw_priv *priv, struct ipw_rx_mem_buffer *rxb, struct ieee80211_rx_stats *stats) @@ -11129,8 +11182,6 @@ /* can be covered by ipw_report_frame() in most cases */ // IPW_DEBUG_RX("RX status: 0x%08X\n", rx_end->status); - priv->rx_packets++; - header = (struct ieee80211_hdr_4addr *)IPW_RX_DATA(pkt); network_packet = is_network_packet(priv, header); @@ -12085,6 +12136,14 @@ return 0; } +#if WIRELESS_EXT > 20 +#define IW_ESSID_FIX 0 +#else +#define IW_ESSID_FIX 1 +#define IW_RETRY_LONG IW_RETRY_MAX +#define IW_RETRY_SHORT IW_RETRY_MIN +#endif + static int ipw_wx_set_essid(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra) @@ -12098,7 +12157,7 @@ mutex_lock(&priv->mutex); if (wrqu->essid.flags && wrqu->essid.length) { - length = wrqu->essid.length - 1; + length = wrqu->essid.length - IW_ESSID_FIX; essid = extra; } @@ -12142,6 +12201,9 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + /* If we are associated, trying to associate, or have a statically * configured ESSID then return that; otherwise return ANY */ mutex_lock(&priv->mutex); @@ -12150,7 +12212,7 @@ IPW_DEBUG_WX("Getting essid: '%s'\n", escape_essid(priv->essid, priv->essid_len)); memcpy(extra, priv->essid, priv->essid_len); - wrqu->essid.length = priv->essid_len; + wrqu->essid.length = priv->essid_len + IW_ESSID_FIX; wrqu->essid.flags = 1; /* active */ } else { IPW_DEBUG_WX("Getting essid: ANY\n"); @@ -12166,6 +12228,10 @@ union iwreq_data *wrqu, char *extra) { struct ipw_priv *priv = ieee80211_priv(dev); + + if (!ipw_is_ready(priv)) + return -EAGAIN; + IPW_DEBUG_WX("Setting nick to '%s'\n", extra); if (wrqu->data.length > IW_ESSID_MAX_SIZE) @@ -12185,9 +12251,12 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + IPW_DEBUG_WX("Getting nick\n"); mutex_lock(&priv->mutex); - wrqu->data.length = strlen(priv->nick) + 1; + wrqu->data.length = strlen(priv->nick) + IW_ESSID_FIX; memcpy(extra, priv->nick, wrqu->data.length); wrqu->data.flags = 1; /* active */ mutex_unlock(&priv->mutex); @@ -12310,7 +12379,7 @@ priv->rxon.ofdm_basic_rates = R_6M_MSK | R_12M_MSK | R_24M_MSK; - rc = ipw_rxon_call(priv, 1); + rc = ipw_rxon_call(priv, priv->status & STATUS_ASSOCIATED); } if (rc) { @@ -12331,6 +12400,9 @@ struct ipw_priv *priv = ieee80211_priv(dev); u32 max_rate; + if (!ipw_is_ready(priv)) + return -EAGAIN; + mutex_lock(&priv->mutex); /* If we are not actively transmitting data then the * priv->last_rate may be set to a data rate higher @@ -12353,6 +12425,9 @@ int ret = 0; struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + mutex_lock(&priv->mutex); if (wrqu->rts.disabled) @@ -12376,6 +12451,9 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + mutex_lock(&priv->mutex); wrqu->rts.value = priv->rts_threshold; wrqu->rts.fixed = 0; /* no auto select */ @@ -12451,6 +12529,9 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + mutex_lock(&priv->mutex); if (priv->status & STATUS_ASSOCIATED) wrqu->txpower.value = priv->actual_txpower_limit; @@ -12482,6 +12563,9 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + mutex_lock(&priv->mutex); if (wrqu->frag.disabled) priv->ieee->fts = DEFAULT_FTS; @@ -12506,6 +12590,9 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + mutex_lock(&priv->mutex); wrqu->frag.value = priv->ieee->fts; wrqu->frag.fixed = 0; /* no auto select */ @@ -12521,6 +12608,9 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + IPW_DEBUG_WX("0x%p, 0x%p, 0x%p\n", dev, info, wrqu); if (!(wrqu->retry.flags & IW_RETRY_LIMIT)) @@ -12543,6 +12633,9 @@ { struct ipw_priv *priv = ieee80211_priv(dev); + if (!ipw_is_ready(priv)) + return -EAGAIN; + IPW_DEBUG_WX("0x%p, 0x%p, 0x%p\n", dev, info, wrqu); mutex_lock(&priv->mutex); @@ -12743,6 +12836,9 @@ struct ipw_priv *priv = ieee80211_priv(dev); int level; + if (!ipw_is_ready(priv)) + return -EAGAIN; + mutex_lock(&priv->mutex); level = IPW_POWER_LEVEL(priv->power_mode); if (!(priv->power_mode & IPW_POWER_ENABLED)) @@ -13135,6 +13231,9 @@ int level = IPW_POWER_LEVEL(priv->power_mode); char *p = extra; + if (!ipw_is_ready(priv)) + return -EAGAIN; + p += snprintf(p, MAX_WX_STRING, "Power save level: %d ", level); switch (level) { case IPW_POWER_MODE_CAM: @@ -13226,7 +13325,7 @@ { struct ipw_priv *priv = ieee80211_priv(dev); - if (!ipw_is_alive(priv)) + if (!ipw_is_ready(priv)) return -EAGAIN; if (priv->status & STATUS_EXIT_PENDING) @@ -13273,7 +13372,7 @@ struct ipw_priv *priv = ieee80211_priv(dev); int mode = *(int *)extra; - if (!ipw_is_alive(priv)) + if (!ipw_is_ready(priv)) return -EAGAIN; if (priv->status & STATUS_EXIT_PENDING) @@ -13310,7 +13409,7 @@ { struct ipw_priv *priv = ieee80211_priv(dev); - if (!ipw_is_alive(priv)) + if (!ipw_is_ready(priv)) return -EAGAIN; mutex_lock(&priv->mutex); @@ -13331,7 +13430,7 @@ int *parms = (int *)extra; int enable = (parms[0] > 0); - if (!ipw_is_alive(priv)) + if (!ipw_is_ready(priv)) return -EAGAIN; if (priv->status & STATUS_EXIT_PENDING) @@ -13373,7 +13472,7 @@ { struct ipw_priv *priv = ieee80211_priv(dev); - if (!ipw_is_alive(priv)) + if (!ipw_is_ready(priv)) return -EAGAIN; if (priv->status & STATUS_EXIT_PENDING) @@ -15115,7 +15214,11 @@ .get_eeprom = ipw_ethtool_get_eeprom, }; +#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) ) static irqreturn_t ipw_isr(int irq, void *data, struct pt_regs *regs) +#else +static irqreturn_t ipw_isr(int irq, void *data) +#endif { struct ipw_priv *priv = data; u32 inta, inta_mask; @@ -15348,20 +15451,55 @@ mutex_unlock(&priv->mutex); } -static void ipw_associate_timeout(void *data) +/* + * This callback is used for retransmitting the current auth/assoc frame + * during an association sequence + */ +static void ipw_bg_assoc_state_retry(void *data) { + unsigned long flags; struct ipw_priv *priv = data; mutex_lock(&priv->mutex); + if (priv->status & STATUS_ASSOCIATED || - !(priv->status & STATUS_ASSOCIATING)) { - mutex_unlock(&priv->mutex); - return; - } + !(priv->status & STATUS_ASSOCIATING)) + goto unlock; - IPW_DEBUG_ASSOC("Association attempt timed out.\n"); + if (priv->association_retries++ == + ((priv->data_retry_limit == -1) ? IPW_MAX_ASSOC_RETRY : + priv->data_retry_limit)) { + IPW_DEBUG_ASSOC("Association failed after %d checks.\n", + priv->association_retries); + ipw_send_disassociate(data, 1); + goto unlock; + } + + priv->assoc_sequence_frame->u.frame.frame_ctl |= IEEE80211_FCTL_RETRY; + + IPW_DEBUG_INFO("Sending auth/assoc frame at state %d (%d bytes)\n", + priv->auth_state, priv->assoc_sequence_frame->len); + printk_buf(IPW_DL_INFO, + (void *)&priv->assoc_sequence_frame->u.frame, + priv->assoc_sequence_frame->len); - ipw_send_disassociate(data, 1); + spin_lock_irqsave(&priv->lock, flags); +#if IPW3945_COMPAT >= 2 + ieee80211_tx_frame(priv->ieee, + &priv->assoc_sequence_frame->u.frame, 0, + priv->assoc_sequence_frame->len, 0); +#else + ieee80211_tx_frame(priv->ieee, + &priv->assoc_sequence_frame->u.frame, + priv->assoc_sequence_frame->len); +#endif + spin_unlock_irqrestore(&priv->lock, flags); + + /* Queue up another check... */ + queue_delayed_work(priv->workqueue, &priv->assoc_state_retry, + msecs_to_jiffies(IPW_ASSOC_STATE_TIMEOUT)); + + unlock: mutex_unlock(&priv->mutex); } @@ -15395,9 +15533,9 @@ INIT_WORK(&priv->link_up, ipw_bg_link_up, priv); INIT_WORK(&priv->update_link_led, ipw_bg_update_link_led, priv); INIT_WORK(&priv->link_down, ipw_bg_link_down, priv); - INIT_WORK(&priv->auth_work, ipw_auth_work, priv); + INIT_WORK(&priv->auth_work, ipw_bg_auth_work, priv); INIT_WORK(&priv->merge_networks, ipw_merge_adhoc_network, priv); - INIT_WORK(&priv->associate_timeout, ipw_associate_timeout, priv); + INIT_WORK(&priv->assoc_state_retry, ipw_bg_assoc_state_retry, priv); INIT_WORK(&priv->alive_start, ipw_bg_alive_start, priv); INIT_WORK(&priv->resume_work, ipw_bg_resume_work, priv); @@ -15773,16 +15911,18 @@ IPW_DEBUG_INFO("Alive received.\n"); - /* Wait for thermal sensor in adapter to kick in */ - while (ipw_read32(priv, CSR_UCODE_DRV_GP2) == 0) { - thermal_spin++; - udelay(10); + if (!(priv->status & STATUS_RF_KILL_MASK)) { + /* if rfkill is not on, then + * wait for thermal sensor in adapter to kick in */ + while (ipw_read32(priv, CSR_UCODE_DRV_GP2) == 0) { + thermal_spin++; + udelay(10); + } + if (thermal_spin) + IPW_DEBUG_INFO("Thermal calibration took %dus\n", + thermal_spin * 10); } - if (thermal_spin) - IPW_DEBUG_INFO("Thermal calibration took %dus\n", - thermal_spin * 10); - ipw_clear_stations_table(priv); if (!(priv->status & STATUS_RF_KILL_MASK)) @@ -15918,7 +16058,7 @@ cancel_delayed_work(&priv->request_scan); cancel_delayed_work(&priv->gather_stats); cancel_delayed_work(&priv->scan_check); - cancel_delayed_work(&priv->associate_timeout); + cancel_delayed_work(&priv->assoc_state_retry); cancel_delayed_work(&priv->rf_kill); cancel_delayed_work(&priv->report_work); cancel_delayed_work(&priv->rate_scale_flush); @@ -16228,7 +16368,7 @@ memset(&(priv->txq[0]), 0, sizeof(struct ipw_tx_queue) * 6); memset(&priv->card_alive, 0, sizeof(struct ipw_alive_resp)); priv->data_retry_limit = -1; - priv->auth_state = CMAS_INIT; + priv->auth_state = AUTH_INIT; err = pci_set_dma_mask(pdev, DMA_32BIT_MASK); if (!err) @@ -16622,7 +16762,8 @@ #else pci_set_power_state(pdev, PCI_D0); #endif - pci_enable_device(pdev); + if (pci_enable_device(pdev)) + return -ENODEV; #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10) pci_restore_state(pdev, priv->pm_state); #else --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/sky2.h +++ linux-source-2.6.17-2.6.17.1/drivers/net/sky2.h @@ -4,24 +4,17 @@ #ifndef _SKY2_H #define _SKY2_H -/* PCI config registers */ +#define ETH_JUMBO_MTU 9000 /* Maximum MTU supported */ + +/* PCI device specific config registers */ enum { PCI_DEV_REG1 = 0x40, PCI_DEV_REG2 = 0x44, - PCI_DEV_STATUS = 0x7c, PCI_DEV_REG3 = 0x80, PCI_DEV_REG4 = 0x84, PCI_DEV_REG5 = 0x88, }; -enum { - PEX_DEV_CAP = 0xe4, - PEX_DEV_CTRL = 0xe8, - PEX_DEV_STA = 0xea, - PEX_LNK_STAT = 0xf2, - PEX_UNC_ERR_STAT= 0x104, -}; - /* Yukon-2 */ enum pci_dev_reg_1 { PCI_Y2_PIG_ENA = 1<<31, /* Enable Plug-in-Go (YUKON-2) */ @@ -70,39 +63,6 @@ PCI_STATUS_REC_MASTER_ABORT | \ PCI_STATUS_REC_TARGET_ABORT | \ PCI_STATUS_PARITY) - -enum pex_dev_ctrl { - PEX_DC_MAX_RRS_MSK = 7<<12, /* Bit 14..12: Max. Read Request Size */ - PEX_DC_EN_NO_SNOOP = 1<<11,/* Enable No Snoop */ - PEX_DC_EN_AUX_POW = 1<<10,/* Enable AUX Power */ - PEX_DC_EN_PHANTOM = 1<<9, /* Enable Phantom Functions */ - PEX_DC_EN_EXT_TAG = 1<<8, /* Enable Extended Tag Field */ - PEX_DC_MAX_PLS_MSK = 7<<5, /* Bit 7.. 5: Max. Payload Size Mask */ - PEX_DC_EN_REL_ORD = 1<<4, /* Enable Relaxed Ordering */ - PEX_DC_EN_UNS_RQ_RP = 1<<3, /* Enable Unsupported Request Reporting */ - PEX_DC_EN_FAT_ER_RP = 1<<2, /* Enable Fatal Error Reporting */ - PEX_DC_EN_NFA_ER_RP = 1<<1, /* Enable Non-Fatal Error Reporting */ - PEX_DC_EN_COR_ER_RP = 1<<0, /* Enable Correctable Error Reporting */ -}; -#define PEX_DC_MAX_RD_RQ_SIZE(x) (((x)<<12) & PEX_DC_MAX_RRS_MSK) - -/* PEX_UNC_ERR_STAT PEX Uncorrectable Errors Status Register (Yukon-2) */ -enum pex_err { - PEX_UNSUP_REQ = 1<<20, /* Unsupported Request Error */ - - PEX_MALFOR_TLP = 1<<18, /* Malformed TLP */ - - PEX_UNEXP_COMP = 1<<16, /* Unexpected Completion */ - - PEX_COMP_TO = 1<<14, /* Completion Timeout */ - PEX_FLOW_CTRL_P = 1<<13, /* Flow Control Protocol Error */ - PEX_POIS_TLP = 1<<12, /* Poisoned TLP */ - - PEX_DATA_LINK_P = 1<<4, /* Data Link Protocol Error */ - PEX_FATAL_ERRORS= (PEX_MALFOR_TLP | PEX_FLOW_CTRL_P | PEX_DATA_LINK_P), -}; - - enum csr_regs { B0_RAP = 0x0000, B0_CTST = 0x0004, @@ -1488,7 +1448,7 @@ GM_TXCR_FORCE_JAM = 1<<15, /* Bit 15: Force Jam / Flow-Control */ GM_TXCR_CRC_DIS = 1<<14, /* Bit 14: Disable insertion of CRC */ GM_TXCR_PAD_DIS = 1<<13, /* Bit 13: Disable padding of packets */ - GM_TXCR_COL_THR_MSK = 1<<10, /* Bit 12..10: Collision Threshold */ + GM_TXCR_COL_THR_MSK = 7<<10, /* Bit 12..10: Collision Threshold */ }; #define TX_COL_THR(x) (((x)<<10) & GM_TXCR_COL_THR_MSK) @@ -1756,7 +1716,6 @@ INIT_SUM= 1<<3, LOCK_SUM= 1<<4, INS_VLAN= 1<<5, - FRC_STAT= 1<<6, EOP = 1<<7, }; @@ -1792,21 +1751,9 @@ OP_TXINDEXLE = 0x68, }; -/* Yukon 2 hardware interface - * Not tested on big endian - */ +/* Yukon 2 hardware interface */ struct sky2_tx_le { - union { - __le32 addr; - struct { - __le16 offset; - __le16 start; - } csum __attribute((packed)); - struct { - __le16 size; - __le16 rsvd; - } tso __attribute((packed)); - } tx; + __le32 addr; __le16 length; /* also vlan tag or checksum start */ u8 ctrl; u8 opcode; @@ -1829,12 +1776,14 @@ struct tx_ring_info { struct sk_buff *skb; DECLARE_PCI_UNMAP_ADDR(mapaddr); - u16 idx; + DECLARE_PCI_UNMAP_ADDR(maplen); }; -struct ring_info { +struct rx_ring_info { struct sk_buff *skb; - dma_addr_t mapaddr; + dma_addr_t data_addr; + DECLARE_PCI_UNMAP_ADDR(data_size); + dma_addr_t frag_addr[ETH_JUMBO_MTU >> PAGE_SHIFT]; }; struct sky2_port { @@ -1844,7 +1793,6 @@ u32 msg_enable; spinlock_t phy_lock; - spinlock_t tx_lock ____cacheline_aligned_in_smp; struct tx_ring_info *tx_ring; struct sky2_tx_le *tx_le; u16 tx_cons; /* next le to check */ @@ -1852,14 +1800,17 @@ u32 tx_addr64; u16 tx_pending; u16 tx_last_mss; + u32 tx_tcpsum; - struct ring_info *rx_ring ____cacheline_aligned_in_smp; + struct rx_ring_info *rx_ring ____cacheline_aligned_in_smp; struct sky2_rx_le *rx_le; u32 rx_addr64; u16 rx_next; /* next re to check */ u16 rx_put; /* next le index to use */ u16 rx_pending; - u16 rx_bufsize; + u16 rx_data_size; + u16 rx_nfrags; + #ifdef SKY2_VLAN_TAG_USED u16 rx_tag; struct vlan_group *vlgrp; @@ -1885,6 +1836,7 @@ struct net_device *dev[2]; int pm_cap; + int err_cap; u8 chip_id; u8 chip_rev; u8 pmd_type; --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/sky2.c +++ linux-source-2.6.17-2.6.17.1/drivers/net/sky2.c @@ -23,7 +23,6 @@ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -#include #include #include #include @@ -49,23 +48,24 @@ #endif #include "sky2.h" +#include "netdriver_compat.h" #define DRV_NAME "sky2" -#define DRV_VERSION "1.6.1" +#define DRV_VERSION "1.9" #define PFX DRV_NAME " " /* * The Yukon II chipset takes 64 bit command blocks (called list elements) * that are organized into three (receive, transmit, status) different rings - * similar to Tigon3. A transmit can require several elements; - * a receive requires one (or two if using 64 bit dma). + * similar to Tigon3. */ -#define RX_LE_SIZE 512 +#define RX_LE_SIZE 1024 #define RX_LE_BYTES (RX_LE_SIZE*sizeof(struct sky2_rx_le)) -#define RX_MAX_PENDING (RX_LE_SIZE/2 - 2) +#define RX_MAX_PENDING (RX_LE_SIZE/6 - 2) #define RX_DEF_PENDING RX_MAX_PENDING #define RX_SKB_ALIGN 8 +#define RX_BUF_WRITE 16 #define TX_RING_SIZE 512 #define TX_DEF_PENDING (TX_RING_SIZE - 1) @@ -74,7 +74,6 @@ #define STATUS_RING_SIZE 2048 /* 2 ports * (TX + 2*RX) */ #define STATUS_LE_BYTES (STATUS_RING_SIZE*sizeof(struct sky2_status_le)) -#define ETH_JUMBO_MTU 9000 #define TX_WATCHDOG (5 * HZ) #define NAPI_WEIGHT 64 #define PHY_RETRIES 1000 @@ -90,7 +89,7 @@ module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); -static int copybreak __read_mostly = 256; +static int copybreak __read_mostly = 128; module_param(copybreak, int, 0); MODULE_PARM_DESC(copybreak, "Receive copy threshold"); @@ -103,12 +102,10 @@ MODULE_PARM_DESC(idle_timeout, "Idle timeout workaround for lost interrupts (ms)"); static const struct pci_device_id sky2_id_table[] = { -#ifndef CONFIG_SK98LIN { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, -#endif { PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, -#ifndef CONFIG_SK98LIN { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4b00) }, /* DGE-560T */ + { PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4001) }, /* DGE-550SX */ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4340) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4341) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4342) }, @@ -119,14 +116,18 @@ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4347) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4350) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4351) }, -#endif { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4352) }, -#ifndef CONFIG_SK98LIN + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4353) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4360) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4361) }, { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4362) }, -#endif { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4363) }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4364) }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4365) }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4366) }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4367) }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4368) }, + { PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x4369) }, { 0 } }; @@ -196,7 +197,6 @@ static void sky2_set_power_state(struct sky2_hw *hw, pci_power_t state) { u16 power_control; - u32 reg1; int vaux; pr_debug("sky2_set_power_state %d\n", state); @@ -229,21 +229,9 @@ else sky2_write8(hw, B2_Y2_CLK_GATE, 0); - /* Turn off phy power saving */ - reg1 = sky2_pci_read32(hw, PCI_DEV_REG1); - reg1 &= ~(PCI_Y2_PHY1_POWD | PCI_Y2_PHY2_POWD); - - /* looks like this XL is back asswards .. */ - if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > 1) { - reg1 |= PCI_Y2_PHY1_COMA; - if (hw->ports > 1) - reg1 |= PCI_Y2_PHY2_COMA; - } - sky2_pci_write32(hw, PCI_DEV_REG1, reg1); - udelay(100); - if (hw->chip_id == CHIP_ID_YUKON_EC_U) { - sky2_write16(hw, B0_CTST, Y2_HW_WOL_ON); + u32 reg1; + sky2_pci_write32(hw, PCI_DEV_REG3, 0); reg1 = sky2_pci_read32(hw, PCI_DEV_REG4); reg1 &= P_ASPM_CONTROL_MSK; @@ -255,14 +243,6 @@ case PCI_D3hot: case PCI_D3cold: - /* Turn on phy power saving */ - reg1 = sky2_pci_read32(hw, PCI_DEV_REG1); - if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > 1) - reg1 &= ~(PCI_Y2_PHY1_POWD | PCI_Y2_PHY2_POWD); - else - reg1 |= (PCI_Y2_PHY1_POWD | PCI_Y2_PHY2_POWD); - sky2_pci_write32(hw, PCI_DEV_REG1, reg1); - if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > 1) sky2_write8(hw, B2_Y2_CLK_GATE, 0); else @@ -286,7 +266,7 @@ sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF); } -static void sky2_phy_reset(struct sky2_hw *hw, unsigned port) +static void sky2_gmac_reset(struct sky2_hw *hw, unsigned port) { u16 reg; @@ -308,7 +288,7 @@ static void sky2_phy_init(struct sky2_hw *hw, unsigned port) { struct sky2_port *sky2 = netdev_priv(hw->dev[port]); - u16 ctrl, ct1000, adv, pg, ledctrl, ledover; + u16 ctrl, ct1000, adv, pg, ledctrl, ledover, reg; if (sky2->autoneg == AUTONEG_ENABLE && !(hw->chip_id == CHIP_ID_YUKON_XL || hw->chip_id == CHIP_ID_YUKON_EC_U)) { @@ -389,6 +369,7 @@ ctrl = 0; ct1000 = 0; adv = PHY_AN_CSMA; + reg = 0; if (sky2->autoneg == AUTONEG_ENABLE) { if (sky2_is_copper(hw)) { @@ -425,21 +406,46 @@ /* forced speed/duplex settings */ ct1000 = PHY_M_1000C_MSE; - if (sky2->duplex == DUPLEX_FULL) - ctrl |= PHY_CT_DUP_MD; + /* Disable auto update for duplex flow control and speed */ + reg |= GM_GPCR_AU_ALL_DIS; switch (sky2->speed) { case SPEED_1000: ctrl |= PHY_CT_SP1000; + reg |= GM_GPCR_SPEED_1000; break; case SPEED_100: ctrl |= PHY_CT_SP100; + reg |= GM_GPCR_SPEED_100; break; } + if (sky2->duplex == DUPLEX_FULL) { + reg |= GM_GPCR_DUP_FULL; + ctrl |= PHY_CT_DUP_MD; + } else if (sky2->speed != SPEED_1000 && hw->chip_id != CHIP_ID_YUKON_EC_U) { + /* Turn off flow control for 10/100mbps */ + sky2->rx_pause = 0; + sky2->tx_pause = 0; + } + + if (!sky2->rx_pause) + reg |= GM_GPCR_FC_RX_DIS; + + if (!sky2->tx_pause) + reg |= GM_GPCR_FC_TX_DIS; + + /* Forward pause packets to GMAC? */ + if (sky2->tx_pause || sky2->rx_pause) + sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON); + else + sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); + ctrl |= PHY_CT_RESET; } + gma_write16(hw, port, GM_GP_CTRL, reg); + if (hw->chip_id != CHIP_ID_YUKON_FE) gm_phy_write(hw, port, PHY_MARV_1000T_CTRL, ct1000); @@ -543,6 +549,7 @@ gm_phy_write(hw, port, PHY_MARV_LED_OVER, ledover); } + /* Enable phy interrupt on auto-negotiation complete (or link up) */ if (sky2->autoneg == AUTONEG_ENABLE) gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_IS_AN_COMPL); @@ -550,6 +557,29 @@ gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_DEF_MSK); } +static void sky2_phy_power(struct sky2_hw *hw, unsigned port, int onoff) +{ + u32 reg1; + static const u32 phy_power[] + = { PCI_Y2_PHY1_POWD, PCI_Y2_PHY2_POWD }; + + /* looks like this XL is back asswards .. */ + if (hw->chip_id == CHIP_ID_YUKON_XL && hw->chip_rev > 1) + onoff = !onoff; + + reg1 = sky2_pci_read32(hw, PCI_DEV_REG1); + + if (onoff) + /* Turn off phy power saving */ + reg1 &= ~phy_power[port]; + else + reg1 |= phy_power[port]; + + sky2_pci_write32(hw, PCI_DEV_REG1, reg1); + sky2_pci_read32(hw, PCI_DEV_REG1); + udelay(100); +} + /* Force a renegotiation */ static void sky2_phy_reinit(struct sky2_port *sky2) { @@ -582,49 +612,11 @@ gm_phy_read(hw, 1, PHY_MARV_INT_MASK) != 0); } - if (sky2->autoneg == AUTONEG_DISABLE) { - reg = gma_read16(hw, port, GM_GP_CTRL); - reg |= GM_GPCR_AU_ALL_DIS; - gma_write16(hw, port, GM_GP_CTRL, reg); - gma_read16(hw, port, GM_GP_CTRL); - - switch (sky2->speed) { - case SPEED_1000: - reg &= ~GM_GPCR_SPEED_100; - reg |= GM_GPCR_SPEED_1000; - break; - case SPEED_100: - reg &= ~GM_GPCR_SPEED_1000; - reg |= GM_GPCR_SPEED_100; - break; - case SPEED_10: - reg &= ~(GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100); - break; - } - - if (sky2->duplex == DUPLEX_FULL) - reg |= GM_GPCR_DUP_FULL; - - /* turn off pause in 10/100mbps half duplex */ - else if (sky2->speed != SPEED_1000 && - hw->chip_id != CHIP_ID_YUKON_EC_U) - sky2->tx_pause = sky2->rx_pause = 0; - } else - reg = GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100 | GM_GPCR_DUP_FULL; - - if (!sky2->tx_pause && !sky2->rx_pause) { - sky2_write32(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); - reg |= - GM_GPCR_FC_TX_DIS | GM_GPCR_FC_RX_DIS | GM_GPCR_AU_FCT_DIS; - } else if (sky2->tx_pause && !sky2->rx_pause) { - /* disable Rx flow-control */ - reg |= GM_GPCR_FC_RX_DIS | GM_GPCR_AU_FCT_DIS; - } - - gma_write16(hw, port, GM_GP_CTRL, reg); - sky2_read16(hw, SK_REG(port, GMAC_IRQ_SRC)); + /* Enable Transmit FIFO Underrun */ + sky2_write8(hw, SK_REG(port, GMAC_IRQ_MSK), GMAC_DEF_MSK); + spin_lock_bh(&sky2->phy_lock); sky2_phy_init(hw, port); spin_unlock_bh(&sky2->phy_lock); @@ -704,16 +696,10 @@ } -/* Assign Ram Buffer allocation. - * start and end are in units of 4k bytes - * ram registers are in units of 64bit words - */ -static void sky2_ramset(struct sky2_hw *hw, u16 q, u8 startk, u8 endk) +/* Assign Ram Buffer allocation in units of 64bit (8 bytes) */ +static void sky2_ramset(struct sky2_hw *hw, u16 q, u32 start, u32 end) { - u32 start, end; - - start = startk * 4096/8; - end = (endk * 4096/8) - 1; + pr_debug(PFX "q %d %#x %#x\n", q, start, end); sky2_write8(hw, RB_ADDR(q, RB_CTRL), RB_RST_CLR); sky2_write32(hw, RB_ADDR(q, RB_START), start); @@ -722,7 +708,7 @@ sky2_write32(hw, RB_ADDR(q, RB_RP), start); if (q == Q_R1 || q == Q_R2) { - u32 space = (endk - startk) * 4096/8; + u32 space = end - start + 1; u32 tp = space - space/4; /* On receive queue's set the thresholds @@ -776,15 +762,23 @@ struct sky2_tx_le *le = sky2->tx_le + sky2->tx_prod; sky2->tx_prod = RING_NEXT(sky2->tx_prod, TX_RING_SIZE); + le->ctrl = 0; return le; } +static inline struct tx_ring_info *tx_le_re(struct sky2_port *sky2, + struct sky2_tx_le *le) +{ + return sky2->tx_ring + (le - sky2->tx_le); +} + /* Update chip's next pointer */ static inline void sky2_put_idx(struct sky2_hw *hw, unsigned q, u16 idx) { + q = Y2_QADDR(q, PREF_UNIT_PUT_IDX); wmb(); - sky2_write16(hw, Y2_QADDR(q, PREF_UNIT_PUT_IDX), idx); - mmiowb(); + sky2_write16(hw, q, idx); + sky2_read16(hw, q); } @@ -792,6 +786,7 @@ { struct sky2_rx_le *le = sky2->rx_le + sky2->rx_put; sky2->rx_put = RING_NEXT(sky2->rx_put, RX_LE_SIZE); + le->ctrl = 0; return le; } @@ -801,17 +796,16 @@ return sizeof(a) > sizeof(u32) ? (a >> 16) >> 16 : 0; } -/* Build description to hardware about buffer */ -static void sky2_rx_add(struct sky2_port *sky2, dma_addr_t map) +/* Build description to hardware for one receive segment */ +static void sky2_rx_add(struct sky2_port *sky2, u8 op, + dma_addr_t map, unsigned len) { struct sky2_rx_le *le; u32 hi = high32(map); - u16 len = sky2->rx_bufsize; if (sky2->rx_addr64 != hi) { le = sky2_next_rx(sky2); le->addr = cpu_to_le32(hi); - le->ctrl = 0; le->opcode = OP_ADDR64 | HW_OWNER; sky2->rx_addr64 = high32(map + len); } @@ -819,10 +813,52 @@ le = sky2_next_rx(sky2); le->addr = cpu_to_le32((u32) map); le->length = cpu_to_le16(len); - le->ctrl = 0; - le->opcode = OP_PACKET | HW_OWNER; + le->opcode = op | HW_OWNER; +} + +/* Build description to hardware for one possibly fragmented skb */ +static void sky2_rx_submit(struct sky2_port *sky2, + const struct rx_ring_info *re) +{ + int i; + + sky2_rx_add(sky2, OP_PACKET, re->data_addr, sky2->rx_data_size); + + for (i = 0; i < skb_shinfo(re->skb)->nr_frags; i++) + sky2_rx_add(sky2, OP_BUFFER, re->frag_addr[i], PAGE_SIZE); +} + + +static void sky2_rx_map_skb(struct pci_dev *pdev, struct rx_ring_info *re, + unsigned size) +{ + struct sk_buff *skb = re->skb; + int i; + + re->data_addr = pci_map_single(pdev, skb->data, size, PCI_DMA_FROMDEVICE); + pci_unmap_len_set(re, data_size, size); + + for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) + re->frag_addr[i] = pci_map_page(pdev, + skb_shinfo(skb)->frags[i].page, + skb_shinfo(skb)->frags[i].page_offset, + skb_shinfo(skb)->frags[i].size, + PCI_DMA_FROMDEVICE); } +static void sky2_rx_unmap_skb(struct pci_dev *pdev, struct rx_ring_info *re) +{ + struct sk_buff *skb = re->skb; + int i; + + pci_unmap_single(pdev, re->data_addr, pci_unmap_len(re, data_size), + PCI_DMA_FROMDEVICE); + + for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) + pci_unmap_page(pdev, re->frag_addr[i], + skb_shinfo(skb)->frags[i].size, + PCI_DMA_FROMDEVICE); +} /* Tell chip where to start receive checksum. * Actually has two checksums, but set both same to avoid possible byte @@ -833,7 +869,7 @@ struct sky2_rx_le *le; le = sky2_next_rx(sky2); - le->addr = (ETH_HLEN << 16) | ETH_HLEN; + le->addr = cpu_to_le32((ETH_HLEN << 16) | ETH_HLEN); le->ctrl = 0; le->opcode = OP_TCPSTART | HW_OWNER; @@ -883,12 +919,10 @@ memset(sky2->rx_le, 0, RX_LE_BYTES); for (i = 0; i < sky2->rx_pending; i++) { - struct ring_info *re = sky2->rx_ring + i; + struct rx_ring_info *re = sky2->rx_ring + i; if (re->skb) { - pci_unmap_single(sky2->hw->pdev, - re->mapaddr, sky2->rx_bufsize, - PCI_DMA_FROMDEVICE); + sky2_rx_unmap_skb(sky2->hw->pdev, re); kfree_skb(re->skb); re->skb = NULL; } @@ -942,13 +976,13 @@ struct sky2_hw *hw = sky2->hw; u16 port = sky2->port; - spin_lock_bh(&sky2->tx_lock); + netif_tx_lock_bh(dev); sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), RX_VLAN_STRIP_ON); sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), TX_VLAN_TAG_ON); sky2->vlgrp = grp; - spin_unlock_bh(&sky2->tx_lock); + netif_tx_unlock_bh(dev); } static void sky2_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid) @@ -957,48 +991,69 @@ struct sky2_hw *hw = sky2->hw; u16 port = sky2->port; - spin_lock_bh(&sky2->tx_lock); + netif_tx_lock_bh(dev); sky2_write32(hw, SK_REG(port, RX_GMF_CTRL_T), RX_VLAN_STRIP_OFF); sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), TX_VLAN_TAG_OFF); if (sky2->vlgrp) sky2->vlgrp->vlan_devices[vid] = NULL; - spin_unlock_bh(&sky2->tx_lock); + netif_tx_unlock_bh(dev); } #endif /* + * Allocate an skb for receiving. If the MTU is large enough + * make the skb non-linear with a fragment list of pages. + * * It appears the hardware has a bug in the FIFO logic that * cause it to hang if the FIFO gets overrun and the receive buffer - * is not aligned. Also dev_alloc_skb() won't align properly if slab - * debugging is enabled. + * is not 64 byte aligned. The buffer returned from netdev_alloc_skb is + * aligned except if slab debugging is enabled. */ -static inline struct sk_buff *sky2_alloc_skb(unsigned int size, gfp_t gfp_mask) +static struct sk_buff *sky2_rx_alloc(struct sky2_port *sky2) { struct sk_buff *skb; + unsigned long p; + int i; - skb = __dev_alloc_skb(size + RX_SKB_ALIGN, gfp_mask); - if (likely(skb)) { - unsigned long p = (unsigned long) skb->data; - skb_reserve(skb, ALIGN(p, RX_SKB_ALIGN) - p); + skb = netdev_alloc_skb(sky2->netdev, sky2->rx_data_size + RX_SKB_ALIGN); + if (!skb) + goto nomem; + + p = (unsigned long) skb->data; + skb_reserve(skb, ALIGN(p, RX_SKB_ALIGN) - p); + + for (i = 0; i < sky2->rx_nfrags; i++) { + struct page *page = alloc_page(GFP_ATOMIC); + + if (!page) + goto free_partial; + skb_fill_page_desc(skb, i, page, 0, PAGE_SIZE); } return skb; +free_partial: + kfree_skb(skb); +nomem: + return NULL; } /* * Allocate and setup receiver buffer pool. - * In case of 64 bit dma, there are 2X as many list elements - * available as ring entries - * and need to reserve one list element so we don't wrap around. + * Normal case this ends up creating one list element for skb + * in the receive ring. Worst case if using large MTU and each + * allocation falls on a different 64 bit region, that results + * in 6 list elements per ring entry. + * One element is used for checksum enable/disable, and one + * extra to avoid wrap. */ static int sky2_rx_start(struct sky2_port *sky2) { struct sky2_hw *hw = sky2->hw; + struct rx_ring_info *re; unsigned rxq = rxqaddr[sky2->port]; - int i; - unsigned thresh; + unsigned i, size, space, thresh; sky2->rx_put = sky2->rx_next = 0; sky2_qset(hw, rxq); @@ -1011,26 +1066,56 @@ sky2_prefetch_init(hw, rxq, sky2->rx_le_map, RX_LE_SIZE - 1); rx_set_checksum(sky2); + + /* Space needed for frame data + headers rounded up */ + size = ALIGN(sky2->netdev->mtu + ETH_HLEN + VLAN_HLEN, 8) + + 8; + + /* Stopping point for hardware truncation */ + thresh = (size - 8) / sizeof(u32); + + /* Account for overhead of skb - to avoid order > 0 allocation */ + space = SKB_DATA_ALIGN(size) + NET_SKB_PAD + + sizeof(struct skb_shared_info); + + sky2->rx_nfrags = space >> PAGE_SHIFT; + BUG_ON(sky2->rx_nfrags > ARRAY_SIZE(re->frag_addr)); + + if (sky2->rx_nfrags != 0) { + /* Compute residue after pages */ + space = sky2->rx_nfrags << PAGE_SHIFT; + + if (space < size) + size -= space; + else + size = 0; + + /* Optimize to handle small packets and headers */ + if (size < copybreak) + size = copybreak; + if (size < ETH_HLEN) + size = ETH_HLEN; + } + sky2->rx_data_size = size; + + /* Fill Rx ring */ for (i = 0; i < sky2->rx_pending; i++) { - struct ring_info *re = sky2->rx_ring + i; + re = sky2->rx_ring + i; - re->skb = sky2_alloc_skb(sky2->rx_bufsize, GFP_KERNEL); + re->skb = sky2_rx_alloc(sky2); if (!re->skb) goto nomem; - re->mapaddr = pci_map_single(hw->pdev, re->skb->data, - sky2->rx_bufsize, PCI_DMA_FROMDEVICE); - sky2_rx_add(sky2, re->mapaddr); + sky2_rx_map_skb(hw->pdev, re, sky2->rx_data_size); + sky2_rx_submit(sky2, re); } - /* * The receiver hangs if it receives frames larger than the * packet buffer. As a workaround, truncate oversize frames, but * the register is limited to 9 bits, so if you do frames > 2052 * you better get the MTU right! */ - thresh = (sky2->rx_bufsize - 8) / sizeof(u32); if (thresh > 0x1ff) sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), RX_TRUNC_OFF); else { @@ -1038,7 +1123,6 @@ sky2_write32(hw, SK_REG(sky2->port, RX_GMF_CTRL_T), RX_TRUNC_ON); } - /* Tell chip about available buffers */ sky2_write16(hw, Y2_QADDR(rxq, PREF_UNIT_PUT_IDX), sky2->rx_put); return 0; @@ -1097,26 +1181,25 @@ goto err_out; memset(sky2->rx_le, 0, RX_LE_BYTES); - sky2->rx_ring = kcalloc(sky2->rx_pending, sizeof(struct ring_info), + sky2->rx_ring = kcalloc(sky2->rx_pending, sizeof(struct rx_ring_info), GFP_KERNEL); if (!sky2->rx_ring) goto err_out; + sky2_phy_power(hw, port, 1); + sky2_mac_init(hw, port); - /* Determine available ram buffer space (in 4K blocks). - * Note: not sure about the FE setting below yet - */ - if (hw->chip_id == CHIP_ID_YUKON_FE) - ramsize = 4; - else - ramsize = sky2_read8(hw, B2_E_0); + /* Determine available ram buffer space in qwords. */ + ramsize = sky2_read8(hw, B2_E_0) * 4096/8; - /* Give transmitter one third (rounded up) */ - rxspace = ramsize - (ramsize + 2) / 3; + if (ramsize > 6*1024/8) + rxspace = ramsize - (ramsize + 2) / 3; + else + rxspace = ramsize / 2; - sky2_ramset(hw, rxqaddr[port], 0, rxspace); - sky2_ramset(hw, txqaddr[port], rxspace, ramsize); + sky2_ramset(hw, rxqaddr[port], 0, rxspace-1); + sky2_ramset(hw, txqaddr[port], rxspace, ramsize-1); /* Make sure SyncQ is disabled */ sky2_write8(hw, RB_ADDR(port == 0 ? Q_XS1 : Q_XS2, RB_CTRL), @@ -1125,7 +1208,8 @@ sky2_qset(hw, txqaddr[port]); /* Set almost empty threshold */ - if (hw->chip_id == CHIP_ID_YUKON_EC_U && hw->chip_rev == 1) + if (hw->chip_id == CHIP_ID_YUKON_EC_U + && hw->chip_rev == CHIP_REV_YU_EC_U_A0) sky2_write16(hw, Q_ADDR(txqaddr[port], Q_AL), 0x1a0); sky2_prefetch_init(hw, txqaddr[port], sky2->tx_le_map, @@ -1182,10 +1266,10 @@ count = sizeof(dma_addr_t) / sizeof(u32); count += skb_shinfo(skb)->nr_frags * count; - if (skb_shinfo(skb)->tso_size) + if (skb_is_gso(skb)) ++count; - if (skb->ip_summed == CHECKSUM_HW) + if (skb->ip_summed == CHECKSUM_PARTIAL) ++count; return count; @@ -1196,8 +1280,6 @@ * A single packet can generate multiple list elements, and * the number of ring elements will probably be less than the number * of list elements used. - * - * No BH disabling for tx_lock here (like tg3) */ static int sky2_xmit_frame(struct sk_buff *skb, struct net_device *dev) { @@ -1206,33 +1288,13 @@ struct sky2_tx_le *le = NULL; struct tx_ring_info *re; unsigned i, len; - int avail; dma_addr_t mapping; u32 addr64; u16 mss; u8 ctrl; - /* No BH disabling for tx_lock here. We are running in BH disabled - * context and TX reclaim runs via poll inside of a software - * interrupt, and no related locks in IRQ processing. - */ - if (!spin_trylock(&sky2->tx_lock)) - return NETDEV_TX_LOCKED; - - if (unlikely(tx_avail(sky2) < tx_le_req(skb))) { - /* There is a known but harmless race with lockless tx - * and netif_stop_queue. - */ - if (!netif_queue_stopped(dev)) { - netif_stop_queue(dev); - if (net_ratelimit()) - printk(KERN_WARNING PFX "%s: ring full when queue awake!\n", - dev->name); - } - spin_unlock(&sky2->tx_lock); - - return NETDEV_TX_BUSY; - } + if (unlikely(tx_avail(sky2) < tx_le_req(skb))) + return NETDEV_TX_BUSY; if (unlikely(netif_msg_tx_queued(sky2))) printk(KERN_DEBUG "%s: tx queued, slot %u, len %d\n", @@ -1242,39 +1304,27 @@ mapping = pci_map_single(hw->pdev, skb->data, len, PCI_DMA_TODEVICE); addr64 = high32(mapping); - re = sky2->tx_ring + sky2->tx_prod; - /* Send high bits if changed or crosses boundary */ if (addr64 != sky2->tx_addr64 || high32(mapping + len) != sky2->tx_addr64) { le = get_tx_le(sky2); - le->tx.addr = cpu_to_le32(addr64); - le->ctrl = 0; + le->addr = cpu_to_le32(addr64); le->opcode = OP_ADDR64 | HW_OWNER; sky2->tx_addr64 = high32(mapping + len); } /* Check for TCP Segmentation Offload */ - mss = skb_shinfo(skb)->tso_size; + mss = skb_shinfo(skb)->gso_size; if (mss != 0) { - /* just drop the packet if non-linear expansion fails */ - if (skb_header_cloned(skb) && - pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) { - dev_kfree_skb(skb); - goto out_unlock; - } - mss += ((skb->h.th->doff - 5) * 4); /* TCP options */ mss += (skb->nh.iph->ihl * 4) + sizeof(struct tcphdr); mss += ETH_HLEN; - } - if (mss != sky2->tx_last_mss) { - le = get_tx_le(sky2); - le->tx.tso.size = cpu_to_le16(mss); - le->tx.tso.rsvd = 0; - le->opcode = OP_LRGLEN | HW_OWNER; - le->ctrl = 0; - sky2->tx_last_mss = mss; + if (mss != sky2->tx_last_mss) { + le = get_tx_le(sky2); + le->addr = cpu_to_le32(mss); + le->opcode = OP_LRGLEN | HW_OWNER; + sky2->tx_last_mss = mss; + } } ctrl = 0; @@ -1283,9 +1333,8 @@ if (sky2->vlgrp && vlan_tx_tag_present(skb)) { if (!le) { le = get_tx_le(sky2); - le->tx.addr = 0; + le->addr = 0; le->opcode = OP_VLAN|HW_OWNER; - le->ctrl = 0; } else le->opcode |= OP_VLAN; le->length = cpu_to_be16(vlan_tx_tag_get(skb)); @@ -1294,73 +1343,72 @@ #endif /* Handle TCP checksum offload */ - if (skb->ip_summed == CHECKSUM_HW) { - u16 hdr = skb->h.raw - skb->data; - u16 offset = hdr + skb->csum; + if (skb->ip_summed == CHECKSUM_PARTIAL) { + unsigned offset = skb->h.raw - skb->data; + u32 tcpsum; + + tcpsum = offset << 16; /* sum start */ + tcpsum |= offset + skb->csum; /* sum write */ ctrl = CALSUM | WR_SUM | INIT_SUM | LOCK_SUM; if (skb->nh.iph->protocol == IPPROTO_UDP) ctrl |= UDPTCP; - le = get_tx_le(sky2); - le->tx.csum.start = cpu_to_le16(hdr); - le->tx.csum.offset = cpu_to_le16(offset); - le->length = 0; /* initial checksum value */ - le->ctrl = 1; /* one packet */ - le->opcode = OP_TCPLISW | HW_OWNER; + if (tcpsum != sky2->tx_tcpsum) { + sky2->tx_tcpsum = tcpsum; + + le = get_tx_le(sky2); + le->addr = cpu_to_le32(tcpsum); + le->length = 0; /* initial checksum value */ + le->ctrl = 1; /* one packet */ + le->opcode = OP_TCPLISW | HW_OWNER; + } } le = get_tx_le(sky2); - le->tx.addr = cpu_to_le32((u32) mapping); + le->addr = cpu_to_le32((u32) mapping); le->length = cpu_to_le16(len); le->ctrl = ctrl; le->opcode = mss ? (OP_LARGESEND | HW_OWNER) : (OP_PACKET | HW_OWNER); - /* Record the transmit mapping info */ + re = tx_le_re(sky2, le); re->skb = skb; pci_unmap_addr_set(re, mapaddr, mapping); + pci_unmap_len_set(re, maplen, len); for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { - skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; - struct tx_ring_info *fre; + const skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; mapping = pci_map_page(hw->pdev, frag->page, frag->page_offset, frag->size, PCI_DMA_TODEVICE); addr64 = high32(mapping); if (addr64 != sky2->tx_addr64) { le = get_tx_le(sky2); - le->tx.addr = cpu_to_le32(addr64); + le->addr = cpu_to_le32(addr64); le->ctrl = 0; le->opcode = OP_ADDR64 | HW_OWNER; sky2->tx_addr64 = addr64; } le = get_tx_le(sky2); - le->tx.addr = cpu_to_le32((u32) mapping); + le->addr = cpu_to_le32((u32) mapping); le->length = cpu_to_le16(frag->size); le->ctrl = ctrl; le->opcode = OP_BUFFER | HW_OWNER; - fre = sky2->tx_ring - + RING_NEXT((re - sky2->tx_ring) + i, TX_RING_SIZE); - pci_unmap_addr_set(fre, mapaddr, mapping); + re = tx_le_re(sky2, le); + re->skb = skb; + pci_unmap_addr_set(re, mapaddr, mapping); + pci_unmap_len_set(re, maplen, frag->size); } - re->idx = sky2->tx_prod; le->ctrl |= EOP; - avail = tx_avail(sky2); - if (mss != 0 || avail < TX_MIN_PENDING) { - le->ctrl |= FRC_STAT; - if (avail <= MAX_SKB_TX_LE) - netif_stop_queue(dev); - } + if (tx_avail(sky2) <= MAX_SKB_TX_LE) + netif_stop_queue(dev); sky2_put_idx(hw, txqaddr[sky2->port], sky2->tx_prod); -out_unlock: - spin_unlock(&sky2->tx_lock); - dev->trans_start = jiffies; return NETDEV_TX_OK; } @@ -1369,59 +1417,59 @@ * Free ring elements from starting at tx_cons until "done" * * NB: the hardware will tell us about partial completion of multi-part - * buffers; these are deferred until completion. + * buffers so make sure not to free skb to early. */ static void sky2_tx_complete(struct sky2_port *sky2, u16 done) { struct net_device *dev = sky2->netdev; struct pci_dev *pdev = sky2->hw->pdev; - u16 nxt, put; - unsigned i; + unsigned idx; BUG_ON(done >= TX_RING_SIZE); - if (unlikely(netif_msg_tx_done(sky2))) - printk(KERN_DEBUG "%s: tx done, up to %u\n", - dev->name, done); - - for (put = sky2->tx_cons; put != done; put = nxt) { - struct tx_ring_info *re = sky2->tx_ring + put; - struct sk_buff *skb = re->skb; - - nxt = re->idx; - BUG_ON(nxt >= TX_RING_SIZE); - prefetch(sky2->tx_ring + nxt); - - /* Check for partial status */ - if (tx_dist(put, done) < tx_dist(put, nxt)) + for (idx = sky2->tx_cons; idx != done; + idx = RING_NEXT(idx, TX_RING_SIZE)) { + struct sky2_tx_le *le = sky2->tx_le + idx; + struct tx_ring_info *re = sky2->tx_ring + idx; + + switch(le->opcode & ~HW_OWNER) { + case OP_LARGESEND: + case OP_PACKET: + pci_unmap_single(pdev, + pci_unmap_addr(re, mapaddr), + pci_unmap_len(re, maplen), + PCI_DMA_TODEVICE); break; - - skb = re->skb; - pci_unmap_single(pdev, pci_unmap_addr(re, mapaddr), - skb_headlen(skb), PCI_DMA_TODEVICE); - - for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { - struct tx_ring_info *fre; - fre = sky2->tx_ring + RING_NEXT(put + i, TX_RING_SIZE); - pci_unmap_page(pdev, pci_unmap_addr(fre, mapaddr), - skb_shinfo(skb)->frags[i].size, + case OP_BUFFER: + pci_unmap_page(pdev, pci_unmap_addr(re, mapaddr), + pci_unmap_len(re, maplen), PCI_DMA_TODEVICE); + break; + } + + if (le->ctrl & EOP) { + if (unlikely(netif_msg_tx_done(sky2))) + printk(KERN_DEBUG "%s: tx done %u\n", + dev->name, idx); + dev_kfree_skb(re->skb); } - dev_kfree_skb(skb); + le->opcode = 0; /* paranoia */ } - sky2->tx_cons = put; - if (tx_avail(sky2) > MAX_SKB_TX_LE) + sky2->tx_cons = idx; + if (tx_avail(sky2) > MAX_SKB_TX_LE + 4) netif_wake_queue(dev); } /* Cleanup all untransmitted buffers, assume transmitter not running */ -static void sky2_tx_clean(struct sky2_port *sky2) +static void sky2_tx_clean(struct net_device *dev) { - spin_lock_bh(&sky2->tx_lock); + struct sky2_port *sky2 = netdev_priv(dev); + + netif_tx_lock_bh(dev); sky2_tx_complete(sky2, sky2->tx_prod); - spin_unlock_bh(&sky2->tx_lock); + netif_tx_unlock_bh(dev); } /* Network shutdown */ @@ -1443,7 +1491,7 @@ /* Stop more packets from being queued */ netif_stop_queue(dev); - sky2_phy_reset(hw, port); + sky2_gmac_reset(hw, port); /* Stop transmitter */ sky2_write32(hw, Q_ADDR(txqaddr[port], Q_CSR), BMU_STOP); @@ -1452,6 +1500,13 @@ sky2_write32(hw, RB_ADDR(txqaddr[port], RB_CTRL), RB_RST_SET | RB_DIS_OP_MD); + /* WA for dev. #4.209 */ + if (hw->chip_id == CHIP_ID_YUKON_EC_U + && hw->chip_rev == CHIP_REV_YU_EC_U_A1) + sky2_write32(hw, SK_REG(port, TX_GMF_CTRL_T), + sky2->speed != SPEED_1000 ? + TX_STFW_ENA : TX_STFW_DIS); + ctrl = gma_read16(hw, port, GM_GP_CTRL); ctrl &= ~(GM_GPCR_TX_ENA | GM_GPCR_RX_ENA); gma_write16(hw, port, GM_GP_CTRL, ctrl); @@ -1491,12 +1546,14 @@ imask &= ~portirq_msk[port]; sky2_write32(hw, B0_IMSK, imask); + sky2_phy_power(hw, port, 0); + /* turn off LED's */ sky2_write16(hw, B0_Y2LED, LED_STAT_OFF); synchronize_irq(hw->pdev->irq); - sky2_tx_clean(sky2); + sky2_tx_clean(dev); sky2_rx_clean(sky2); pci_free_consistent(hw->pdev, RX_LE_BYTES, @@ -1541,40 +1598,10 @@ unsigned port = sky2->port; u16 reg; - /* Enable Transmit FIFO Underrun */ - sky2_write8(hw, SK_REG(port, GMAC_IRQ_MSK), GMAC_DEF_MSK); - - reg = gma_read16(hw, port, GM_GP_CTRL); - if (sky2->autoneg == AUTONEG_DISABLE) { - reg |= GM_GPCR_AU_ALL_DIS; - - /* Is write/read necessary? Copied from sky2_mac_init */ - gma_write16(hw, port, GM_GP_CTRL, reg); - gma_read16(hw, port, GM_GP_CTRL); - - switch (sky2->speed) { - case SPEED_1000: - reg &= ~GM_GPCR_SPEED_100; - reg |= GM_GPCR_SPEED_1000; - break; - case SPEED_100: - reg &= ~GM_GPCR_SPEED_1000; - reg |= GM_GPCR_SPEED_100; - break; - case SPEED_10: - reg &= ~(GM_GPCR_SPEED_1000 | GM_GPCR_SPEED_100); - break; - } - } else - reg &= ~GM_GPCR_AU_ALL_DIS; - - if (sky2->duplex == DUPLEX_FULL || sky2->autoneg == AUTONEG_ENABLE) - reg |= GM_GPCR_DUP_FULL; - /* enable Rx/Tx */ + reg = gma_read16(hw, port, GM_GP_CTRL); reg |= GM_GPCR_RX_ENA | GM_GPCR_TX_ENA; gma_write16(hw, port, GM_GP_CTRL, reg); - gma_read16(hw, port, GM_GP_CTRL); gm_phy_write(hw, port, PHY_MARV_INT_MASK, PHY_M_DEF_MSK); @@ -1628,7 +1655,6 @@ reg = gma_read16(hw, port, GM_GP_CTRL); reg &= ~(GM_GPCR_RX_ENA | GM_GPCR_TX_ENA); gma_write16(hw, port, GM_GP_CTRL, reg); - gma_read16(hw, port, GM_GP_CTRL); /* PCI post */ if (sky2->rx_pause && !sky2->tx_pause) { /* restore Asymmetric Pause bit */ @@ -1645,6 +1671,7 @@ if (netif_msg_link(sky2)) printk(KERN_INFO PFX "%s: Link is down.\n", sky2->netdev->name); + sky2_phy_init(hw, port); } @@ -1661,22 +1688,33 @@ return -1; } - if (hw->chip_id != CHIP_ID_YUKON_FE && - gm_phy_read(hw, port, PHY_MARV_1000T_STAT) & PHY_B_1000S_MSF) { - printk(KERN_ERR PFX "%s: master/slave fault", - sky2->netdev->name); - return -1; - } - if (!(aux & PHY_M_PS_SPDUP_RES)) { printk(KERN_ERR PFX "%s: speed/duplex mismatch", sky2->netdev->name); return -1; } - sky2->duplex = (aux & PHY_M_PS_FULL_DUP) ? DUPLEX_FULL : DUPLEX_HALF; - sky2->speed = sky2_phy_speed(hw, aux); + if (sky2->speed == SPEED_1000) { + u16 ctl2 = gm_phy_read(hw, port, PHY_MARV_1000T_CTRL); + u16 lpa2 = gm_phy_read(hw, port, PHY_MARV_1000T_STAT); + if (lpa2 & PHY_B_1000S_MSF) { + printk(KERN_ERR PFX "%s: master/slave fault", + sky2->netdev->name); + return -1; + } + + if ((ctl2 & PHY_M_1000C_AFD) && (lpa2 & PHY_B_1000S_LP_FD)) + sky2->duplex = DUPLEX_FULL; + else + sky2->duplex = DUPLEX_HALF; + } else { + u16 adv = gm_phy_read(hw, port, PHY_MARV_AUNE_ADV); + if ((aux & adv) & PHY_AN_FULL) + sky2->duplex = DUPLEX_FULL; + else + sky2->duplex = DUPLEX_HALF; + } /* Pause bits are offset (9..8) */ if (hw->chip_id == CHIP_ID_YUKON_XL || hw->chip_id == CHIP_ID_YUKON_EC_U) @@ -1685,8 +1723,11 @@ sky2->rx_pause = (aux & PHY_M_PS_RX_P_EN) != 0; sky2->tx_pause = (aux & PHY_M_PS_TX_P_EN) != 0; - if ((sky2->tx_pause || sky2->rx_pause) - && !(sky2->speed < SPEED_1000 && sky2->duplex == DUPLEX_HALF)) + if (sky2->duplex == DUPLEX_HALF && sky2->speed != SPEED_1000 + && hw->chip_id != CHIP_ID_YUKON_EC_U) + sky2->rx_pause = sky2->tx_pause = 0; + + if (sky2->rx_pause || sky2->tx_pause) sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_ON); else sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_PAUSE_OFF); @@ -1712,7 +1753,7 @@ printk(KERN_INFO PFX "%s: phy interrupt status 0x%x 0x%x\n", sky2->netdev->name, istatus, phystat); - if (istatus & PHY_M_IS_AN_COMPL) { + if (sky2->autoneg == AUTONEG_ENABLE && (istatus & PHY_M_IS_AN_COMPL)) { if (sky2_autoneg_done(sky2, phystat) == 0) sky2_link_up(sky2); goto out; @@ -1764,31 +1805,22 @@ } else if (report != sky2->tx_cons) { printk(KERN_INFO PFX "status report lost?\n"); - spin_lock_bh(&sky2->tx_lock); + netif_tx_lock_bh(dev); sky2_tx_complete(sky2, report); - spin_unlock_bh(&sky2->tx_lock); + netif_tx_unlock_bh(dev); } else { printk(KERN_INFO PFX "hardware hung? flushing\n"); sky2_write32(hw, Q_ADDR(txq, Q_CSR), BMU_STOP); sky2_write32(hw, Y2_QADDR(txq, PREF_UNIT_CTRL), PREF_UNIT_RST_SET); - sky2_tx_clean(sky2); + sky2_tx_clean(dev); sky2_qset(hw, txq); sky2_prefetch_init(hw, txq, sky2->tx_le_map, TX_RING_SIZE - 1); } } - -/* Want receive buffer size to be multiple of 64 bits - * and incl room for vlan and truncation - */ -static inline unsigned sky2_buf_size(int mtu) -{ - return ALIGN(mtu + ETH_HLEN + VLAN_HLEN, 8) + 8; -} - static int sky2_change_mtu(struct net_device *dev, int new_mtu) { struct sky2_port *sky2 = netdev_priv(dev); @@ -1823,7 +1855,7 @@ sky2_rx_clean(sky2); dev->mtu = new_mtu; - sky2->rx_bufsize = sky2_buf_size(new_mtu); + mode = DATA_BLIND_VAL(DATA_BLIND_DEF) | GM_SMOD_VLAN_ENA | IPG_DATA_VAL(IPG_DATA_DEF); @@ -1849,20 +1881,105 @@ return err; } +/* For small just reuse existing skb for next receive */ +static struct sk_buff *receive_copy(struct sky2_port *sky2, + const struct rx_ring_info *re, + unsigned length) +{ + struct sk_buff *skb; + + skb = netdev_alloc_skb(sky2->netdev, length + 2); + if (likely(skb)) { + skb_reserve(skb, 2); + pci_dma_sync_single_for_cpu(sky2->hw->pdev, re->data_addr, + length, PCI_DMA_FROMDEVICE); + memcpy(skb->data, re->skb->data, length); + skb->ip_summed = re->skb->ip_summed; + skb->csum = re->skb->csum; + pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr, + length, PCI_DMA_FROMDEVICE); + re->skb->ip_summed = CHECKSUM_NONE; + __skb_put(skb, length); + } + return skb; +} + +/* Adjust length of skb with fragments to match received data */ +static void skb_put_frags(struct sk_buff *skb, unsigned int hdr_space, + unsigned int length) +{ + int i, num_frags; + unsigned int size; + + /* put header into skb */ + size = min(length, hdr_space); + skb->tail += size; + skb->len += size; + length -= size; + + num_frags = skb_shinfo(skb)->nr_frags; + for (i = 0; i < num_frags; i++) { + skb_frag_t *frag = &skb_shinfo(skb)->frags[i]; + + if (length == 0) { + /* don't need this page */ + __free_page(frag->page); + --skb_shinfo(skb)->nr_frags; + } else { + size = min(length, (unsigned) PAGE_SIZE); + + frag->size = size; + skb->data_len += size; + skb->truesize += size; + skb->len += size; + length -= size; + } + } +} + +/* Normal packet - take skb from ring element and put in a new one */ +static struct sk_buff *receive_new(struct sky2_port *sky2, + struct rx_ring_info *re, + unsigned int length) +{ + struct sk_buff *skb, *nskb; + unsigned hdr_space = sky2->rx_data_size; + + pr_debug(PFX "receive new length=%d\n", length); + + /* Don't be tricky about reusing pages (yet) */ + nskb = sky2_rx_alloc(sky2); + if (unlikely(!nskb)) + return NULL; + + skb = re->skb; + sky2_rx_unmap_skb(sky2->hw->pdev, re); + + prefetch(skb->data); + re->skb = nskb; + sky2_rx_map_skb(sky2->hw->pdev, re, hdr_space); + + if (skb_shinfo(skb)->nr_frags) + skb_put_frags(skb, hdr_space, length); + else + skb_put(skb, hdr_space); + return skb; +} + /* * Receive one packet. - * For small packets or errors, just reuse existing skb. * For larger packets, get new buffer. */ -static struct sk_buff *sky2_receive(struct sky2_port *sky2, +static struct sk_buff *sky2_receive(struct net_device *dev, u16 length, u32 status) { - struct ring_info *re = sky2->rx_ring + sky2->rx_next; + struct sky2_port *sky2 = netdev_priv(dev); + struct rx_ring_info *re = sky2->rx_ring + sky2->rx_next; struct sk_buff *skb = NULL; if (unlikely(netif_msg_rx_status(sky2))) printk(KERN_DEBUG PFX "%s: rx slot %u status 0x%x len %d\n", - sky2->netdev->name, sky2->rx_next, status, length); + dev->name, sky2->rx_next, status, length); sky2->rx_next = (sky2->rx_next + 1) % sky2->rx_pending; prefetch(sky2->rx_ring + sky2->rx_next); @@ -1873,46 +1990,15 @@ if (!(status & GMR_FS_RX_OK)) goto resubmit; - if (length > sky2->netdev->mtu + ETH_HLEN) + if (length > dev->mtu + ETH_HLEN) goto oversize; - if (length < copybreak) { - skb = dev_alloc_skb(length + 2); - if (!skb) - goto resubmit; - - skb_reserve(skb, 2); - pci_dma_sync_single_for_cpu(sky2->hw->pdev, re->mapaddr, - length, PCI_DMA_FROMDEVICE); - memcpy(skb->data, re->skb->data, length); - skb->ip_summed = re->skb->ip_summed; - skb->csum = re->skb->csum; - pci_dma_sync_single_for_device(sky2->hw->pdev, re->mapaddr, - length, PCI_DMA_FROMDEVICE); - } else { - struct sk_buff *nskb; - - nskb = sky2_alloc_skb(sky2->rx_bufsize, GFP_ATOMIC); - if (!nskb) - goto resubmit; - - skb = re->skb; - re->skb = nskb; - pci_unmap_single(sky2->hw->pdev, re->mapaddr, - sky2->rx_bufsize, PCI_DMA_FROMDEVICE); - prefetch(skb->data); - - re->mapaddr = pci_map_single(sky2->hw->pdev, nskb->data, - sky2->rx_bufsize, PCI_DMA_FROMDEVICE); - } - - skb_put(skb, length); + if (length < copybreak) + skb = receive_copy(sky2, re, length); + else + skb = receive_new(sky2, re, length); resubmit: - re->skb->ip_summed = CHECKSUM_NONE; - sky2_rx_add(sky2, re->mapaddr); - - /* Tell receiver about new buffers. */ - sky2_put_idx(sky2->hw, rxqaddr[sky2->port], sky2->rx_put); + sky2_rx_submit(sky2, re); return skb; @@ -1925,7 +2011,7 @@ if (netif_msg_rx_err(sky2) && net_ratelimit()) printk(KERN_INFO PFX "%s: rx error, status 0x%x length %d\n", - sky2->netdev->name, status, length); + dev->name, status, length); if (status & (GMR_FS_LONG_ERR | GMR_FS_UN_SIZE)) sky2->net_stats.rx_length_errors++; @@ -1945,22 +2031,18 @@ struct sky2_port *sky2 = netdev_priv(dev); if (netif_running(dev)) { - spin_lock(&sky2->tx_lock); + netif_tx_lock(dev); sky2_tx_complete(sky2, last); - spin_unlock(&sky2->tx_lock); + netif_tx_unlock(dev); } } -/* Is status ring empty or is there more to do? */ -static inline int sky2_more_work(const struct sky2_hw *hw) -{ - return (hw->st_idx != sky2_read16(hw, STAT_PUT_IDX)); -} - /* Process status response ring */ static int sky2_status_intr(struct sky2_hw *hw, int to_do) { + struct sky2_port *sky2; int work_done = 0; + unsigned buf_write[2] = { 0, 0 }; u16 hwidx = sky2_read16(hw, STAT_PUT_IDX); rmb(); @@ -1968,7 +2050,6 @@ while (hw->st_idx != hwidx) { struct sky2_status_le *le = hw->st_le + hw->st_idx; struct net_device *dev; - struct sky2_port *sky2; struct sk_buff *skb; u32 status; u16 length; @@ -1979,16 +2060,15 @@ dev = hw->dev[le->link]; sky2 = netdev_priv(dev); - length = le->length; - status = le->status; + length = le16_to_cpu(le->length); + status = le32_to_cpu(le->status); switch (le->opcode & ~HW_OWNER) { case OP_RXSTAT: - skb = sky2_receive(sky2, length, status); + skb = sky2_receive(dev, length, status); if (!skb) break; - skb->dev = dev; skb->protocol = eth_type_trans(skb, dev); dev->last_rx = jiffies; @@ -2001,6 +2081,14 @@ #endif netif_receive_skb(skb); + /* Update receiver after 16 frames */ + if (++buf_write[le->link] == RX_BUF_WRITE) { + sky2_put_idx(hw, rxqaddr[le->link], + sky2->rx_put); + buf_write[le->link] = 0; + } + + /* Stop after net poll weight */ if (++work_done >= to_do) goto exit_loop; break; @@ -2016,8 +2104,8 @@ #endif case OP_RXCHKS: skb = sky2->rx_ring[sky2->rx_next].skb; - skb->ip_summed = CHECKSUM_HW; - skb->csum = le16_to_cpu(status); + skb->ip_summed = CHECKSUM_COMPLETE; + skb->csum = status & 0xffff; break; case OP_TXINDEXLE: @@ -2042,6 +2130,16 @@ sky2_write32(hw, STAT_CTRL, SC_STAT_CLR_IRQ); exit_loop: + if (buf_write[0]) { + sky2 = netdev_priv(hw->dev[0]); + sky2_put_idx(hw, Q_R1, sky2->rx_put); + } + + if (buf_write[1]) { + sky2 = netdev_priv(hw->dev[1]); + sky2_put_idx(hw, Q_R2, sky2->rx_put); + } + return work_done; } @@ -2106,7 +2204,7 @@ sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON); sky2_pci_write16(hw, PCI_STATUS, - pci_err | PCI_STATUS_ERROR_BITS); + pci_err | PCI_STATUS_ERROR_BITS); sky2_write8(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF); } @@ -2114,7 +2212,8 @@ /* PCI-Express uncorrectable Error occurred */ u32 pex_err; - pex_err = sky2_pci_read32(hw, PEX_UNC_ERR_STAT); + pex_err = sky2_pci_read32(hw, + hw->err_cap + PCI_ERR_UNCOR_STATUS); if (net_ratelimit()) printk(KERN_ERR PFX "%s: pci express error (0x%x)\n", @@ -2122,15 +2221,20 @@ /* clear the interrupt */ sky2_write32(hw, B2_TST_CTRL1, TST_CFG_WRITE_ON); - sky2_pci_write32(hw, PEX_UNC_ERR_STAT, - 0xffffffffUL); + sky2_pci_write32(hw, + hw->err_cap + PCI_ERR_UNCOR_STATUS, + 0xffffffffUL); sky2_write32(hw, B2_TST_CTRL1, TST_CFG_WRITE_OFF); - if (pex_err & PEX_FATAL_ERRORS) { + + /* In case of fatal error mask off to keep from getting stuck */ + if (pex_err & (PCI_ERR_UNC_POISON_TLP | PCI_ERR_UNC_FCP + | PCI_ERR_UNC_DLP)) { u32 hwmsk = sky2_read32(hw, B0_HWE_IMSK); hwmsk &= ~Y2_IS_PCI_EXP; sky2_write32(hw, B0_HWE_IMSK, hwmsk); } + } if (status & Y2_HWE_L1_MASK) @@ -2240,16 +2344,16 @@ sky2_descriptor_error(hw, 1, "transmit", Y2_IS_CHK_TXA2); work_done = sky2_status_intr(hw, work_limit); - *budget -= work_done; - dev0->quota -= work_done; + if (work_done < work_limit) { + netif_rx_complete(dev0); - if (sky2_more_work(hw)) + sky2_read32(hw, B0_Y2_SP_LISR); + return 0; + } else { + *budget -= work_done; + dev0->quota -= work_done; return 1; - - netif_rx_complete(dev0); - - sky2_read32(hw, B0_Y2_SP_LISR); - return 0; + } } static irqreturn_t sky2_intr(int irq, void *dev_id, struct pt_regs *regs) @@ -2306,11 +2410,12 @@ } -static int __devinit sky2_reset(struct sky2_hw *hw) +static int sky2_reset(struct sky2_hw *hw) { u16 status; u8 t8; int i; + u32 msk; sky2_write8(hw, B0_CTST, CS_RST_CLR); @@ -2351,9 +2456,13 @@ sky2_write8(hw, B0_CTST, CS_MRST_CLR); /* clear any PEX errors */ - if (pci_find_capability(hw->pdev, PCI_CAP_ID_EXP)) - sky2_pci_write32(hw, PEX_UNC_ERR_STAT, 0xffffffffUL); - + if (pci_find_capability(hw->pdev, PCI_CAP_ID_EXP)) { + hw->err_cap = pci_find_ext_capability(hw->pdev, PCI_EXT_CAP_ID_ERR); + if (hw->err_cap) + sky2_pci_write32(hw, + hw->err_cap + PCI_ERR_UNCOR_STATUS, + 0xffffffffUL); + } hw->pmd_type = sky2_read8(hw, B2_PMD_TYP); hw->ports = 1; @@ -2410,10 +2519,13 @@ sky2_write8(hw, RAM_BUFFER(i, B3_RI_RTO_XS2), SK_RI_TO_53); } - sky2_write32(hw, B0_HWE_IMSK, Y2_HWE_ALL_MASK); + msk = Y2_HWE_ALL_MASK; + if (!hw->err_cap) + msk &= ~Y2_IS_PCI_EXP; + sky2_write32(hw, B0_HWE_IMSK, msk); for (i = 0; i < hw->ports; i++) - sky2_phy_reset(hw, i); + sky2_gmac_reset(hw, i); memset(hw->st_le, 0, STATUS_LE_BYTES); hw->st_idx = 0; @@ -2893,7 +3005,6 @@ struct ethtool_pauseparam *ecmd) { struct sky2_port *sky2 = netdev_priv(dev); - int err = 0; sky2->autoneg = ecmd->autoneg; sky2->tx_pause = ecmd->tx_pause != 0; @@ -2901,7 +3012,7 @@ sky2_phy_reinit(sky2); - return err; + return 0; } static int sky2_get_coalesce(struct net_device *dev, @@ -3058,7 +3169,7 @@ regs->len - B3_RI_WTO_R1); } -static struct ethtool_ops sky2_ethtool_ops = { +static const struct ethtool_ops sky2_ethtool_ops = { .get_settings = sky2_get_settings, .set_settings = sky2_set_settings, .get_drvinfo = sky2_get_drvinfo, @@ -3127,7 +3238,6 @@ sky2->hw = hw; sky2->msg_enable = netif_msg_init(debug, default_msg); - spin_lock_init(&sky2->tx_lock); /* Auto speed and flow control */ sky2->autoneg = AUTONEG_ENABLE; sky2->tx_pause = 1; @@ -3140,13 +3250,11 @@ spin_lock_init(&sky2->phy_lock); sky2->tx_pending = TX_DEF_PENDING; sky2->rx_pending = RX_DEF_PENDING; - sky2->rx_bufsize = sky2_buf_size(ETH_DATA_LEN); hw->dev[port] = dev; sky2->port = port; - dev->features |= NETIF_F_LLTX; if (hw->chip_id != CHIP_ID_YUKON_EC_U) dev->features |= NETIF_F_TSO; if (highmem) @@ -3211,7 +3319,7 @@ sky2_write32(hw, B0_IMSK, Y2_IS_IRQ_SW); - err = request_irq(pdev->irq, sky2_test_intr, SA_SHIRQ, DRV_NAME, hw); + err = request_irq(pdev->irq, sky2_test_intr, IRQF_SHARED, DRV_NAME, hw); if (err) { printk(KERN_ERR PFX "%s: cannot assign irq %d\n", pci_name(pdev), pdev->irq); @@ -3311,12 +3419,13 @@ hw->pm_cap = pm_cap; #ifdef __BIG_ENDIAN - /* byte swap descriptors in hardware */ + /* The sk98lin vendor driver uses hardware byte swapping but + * this driver uses software swapping. + */ { u32 reg; - reg = sky2_pci_read32(hw, PCI_DEV_REG2); - reg |= PCI_REV_DESC; + reg &= ~PCI_REV_DESC; sky2_pci_write32(hw, PCI_DEV_REG2, reg); } #endif @@ -3331,15 +3440,23 @@ if (err) goto err_out_iounmap; - printk(KERN_INFO PFX "v%s addr 0x%lx irq %d Yukon-%s (0x%x) rev %d\n", - DRV_VERSION, pci_resource_start(pdev, 0), pdev->irq, - yukon2_name[hw->chip_id - CHIP_ID_YUKON_XL], + printk(KERN_INFO PFX "v%s addr 0x%llx irq %d Yukon-%s (0x%x) rev %d\n", + DRV_VERSION, (unsigned long long)pci_resource_start(pdev, 0), + pdev->irq, yukon2_name[hw->chip_id - CHIP_ID_YUKON_XL], hw->chip_id, hw->chip_rev); dev = sky2_init_netdev(hw, 0, using_dac); if (!dev) goto err_out_free_pci; + if (!disable_msi && pci_enable_msi(pdev) == 0) { + err = sky2_test_msi(hw); + if (err == -EOPNOTSUPP) + pci_disable_msi(pdev); + else if (err) + goto err_out_free_netdev; + } + err = register_netdev(dev); if (err) { printk(KERN_ERR PFX "%s: cannot register net device\n", @@ -3347,6 +3464,14 @@ goto err_out_free_netdev; } + err = request_irq(pdev->irq, sky2_intr, IRQF_SHARED, dev->name, hw); + if (err) { + printk(KERN_ERR PFX "%s: cannot assign irq %d\n", + pci_name(pdev), pdev->irq); + goto err_out_unregister; + } + sky2_write32(hw, B0_IMSK, Y2_IS_BASE); + sky2_show_addr(dev); if (hw->ports > 1 && (dev1 = sky2_init_netdev(hw, 1, using_dac))) { @@ -3361,23 +3486,6 @@ } } - if (!disable_msi && pci_enable_msi(pdev) == 0) { - err = sky2_test_msi(hw); - if (err == -EOPNOTSUPP) - pci_disable_msi(pdev); - else if (err) - goto err_out_unregister; - } - - err = request_irq(pdev->irq, sky2_intr, SA_SHIRQ, DRV_NAME, hw); - if (err) { - printk(KERN_ERR PFX "%s: cannot assign irq %d\n", - pci_name(pdev), pdev->irq); - goto err_out_unregister; - } - - sky2_write32(hw, B0_IMSK, Y2_IS_BASE); - setup_timer(&hw->idle_timer, sky2_idle, (unsigned long) hw); sky2_idle_start(hw); @@ -3387,10 +3495,6 @@ err_out_unregister: pci_disable_msi(pdev); - if (dev1) { - unregister_netdev(dev1); - free_netdev(dev1); - } unregister_netdev(dev); err_out_free_netdev: free_netdev(dev); @@ -3458,17 +3562,14 @@ return -EINVAL; del_timer_sync(&hw->idle_timer); + netif_poll_disable(hw->dev[0]); for (i = 0; i < hw->ports; i++) { struct net_device *dev = hw->dev[i]; - if (dev) { - if (!netif_running(dev)) - continue; - + if (netif_running(dev)) { sky2_down(dev); netif_device_detach(dev); - netif_poll_disable(dev); } } @@ -3495,9 +3596,8 @@ for (i = 0; i < hw->ports; i++) { struct net_device *dev = hw->dev[i]; - if (dev && netif_running(dev)) { + if (netif_running(dev)) { netif_device_attach(dev); - netif_poll_enable(dev); err = sky2_up(dev); if (err) { @@ -3509,6 +3609,7 @@ } } + netif_poll_enable(hw->dev[0]); sky2_idle_start(hw); out: return err; --- linux-source-2.6.17-2.6.17.1.orig/drivers/net/wan/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/net/wan/.gitignore @@ -0,0 +1 @@ +wanxlfw.inc --- linux-source-2.6.17-2.6.17.1.orig/drivers/char/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/char/.gitignore @@ -0,0 +1,3 @@ +consolemap_deftbl.c +defkeymap.c +qtronixmap.c --- linux-source-2.6.17-2.6.17.1.orig/drivers/video/logo/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/video/logo/.gitignore @@ -0,0 +1,7 @@ +# +# Generated files +# +*_mono.c +*_vga16.c +*_clut224.c +*_gray256.c --- linux-source-2.6.17-2.6.17.1.orig/drivers/media/video/cx88/cx88-cards.c +++ linux-source-2.6.17-2.6.17.1/drivers/media/video/cx88/cx88-cards.c @@ -601,6 +601,28 @@ }, .dvb = 1, }, + [CX88_BOARD_PCHDTV_HD5500] = { + .name = "pcHDTV HD5500 HDTV", + .tuner_type = TUNER_LG_TDVS_H062F, + .radio_type = UNSET, + .tuner_addr = ADDR_UNSET, + .radio_addr = ADDR_UNSET, + .tda9887_conf = TDA9887_PRESENT, + .input = {{ + .type = CX88_VMUX_TELEVISION, + .vmux = 0, + .gpio0 = 0x87fd, + },{ + .type = CX88_VMUX_COMPOSITE1, + .vmux = 1, + .gpio0 = 0x87f9, + },{ + .type = CX88_VMUX_SVIDEO, + .vmux = 2, + .gpio0 = 0x87f9, + }}, + .dvb = 1, + }, [CX88_BOARD_HAUPPAUGE_ROSLYN] = { // entry added by Kaustubh D. Bhalerao // GPIO values obtained from regspy, courtesy Sean Covel @@ -1311,6 +1333,10 @@ .subvendor = 0x18ac, .subdevice = 0xdb44, .card = CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID, + },{ + .subvendor = 0x7063, + .subdevice = 0x5500, + .card = CX88_BOARD_PCHDTV_HD5500, }, }; const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); --- linux-source-2.6.17-2.6.17.1.orig/drivers/media/video/cx88/cx88-dvb.c +++ linux-source-2.6.17-2.6.17.1/drivers/media/video/cx88/cx88-dvb.c @@ -455,6 +455,14 @@ .pll_set = lgdt330x_pll_set, .set_ts_params = lgdt330x_set_ts_param, }; + +static struct lgdt330x_config pchdtv_hd5500 = { + .demod_address = 0x59, + .demod_chip = LGDT3303, + .serial_mpeg = 0x40, /* TPSERIAL for 3303 in TOP_CONTROL */ + .pll_set = lgdt330x_pll_set, + .set_ts_params = lgdt330x_set_ts_param, +}; #endif #ifdef HAVE_NXT200X @@ -661,6 +669,22 @@ &dev->core->i2c_adap); } break; + case CX88_BOARD_PCHDTV_HD5500: + dev->ts_gen_cntrl = 0x08; + { + /* Do a hardware reset of chip before using it. */ + struct cx88_core *core = dev->core; + + cx_clear(MO_GP0_IO, 1); + mdelay(100); + cx_set(MO_GP0_IO, 1); + mdelay(200); + dev->core->pll_addr = 0x61; + dev->core->pll_desc = &dvb_pll_tdvs_tua6034; + dev->dvb.frontend = lgdt330x_attach(&pchdtv_hd5500, + &dev->core->i2c_adap); + } + break; #endif #ifdef HAVE_NXT200X case CX88_BOARD_ATI_HDTVWONDER: --- linux-source-2.6.17-2.6.17.1.orig/drivers/media/video/cx88/cx88-mpeg.c +++ linux-source-2.6.17-2.6.17.1/drivers/media/video/cx88/cx88-mpeg.c @@ -76,6 +76,7 @@ case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q: case CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_T: case CX88_BOARD_DVICO_FUSIONHDTV_5_GOLD: + case CX88_BOARD_PCHDTV_HD5500: cx_write(TS_SOP_STAT, 1<<13); break; case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1: --- linux-source-2.6.17-2.6.17.1.orig/drivers/media/video/cx88/cx88.h +++ linux-source-2.6.17-2.6.17.1/drivers/media/video/cx88/cx88.h @@ -189,6 +189,7 @@ #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_DUAL 44 #define CX88_BOARD_KWORLD_HARDWARE_MPEG_TV_XPERT 45 #define CX88_BOARD_DVICO_FUSIONHDTV_DVB_T_HYBRID 46 +#define CX88_BOARD_PCHDTV_HD5500 47 enum cx88_itype { CX88_VMUX_COMPOSITE1 = 1, --- linux-source-2.6.17-2.6.17.1.orig/drivers/hwmon/hdaps.c +++ linux-source-2.6.17-2.6.17.1/drivers/hwmon/hdaps.c @@ -678,29 +678,29 @@ return hdaps_dmi_match(id); } -#define HDAPS_DMI_MATCH_NORMAL(model) { \ - .ident = "IBM " model, \ +#define HDAPS_DMI_MATCH_NORMAL(vendor, model) { \ + .ident = vendor " " model, \ .callback = hdaps_dmi_match, \ .matches = { \ - DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), \ + DMI_MATCH(DMI_BOARD_VENDOR, vendor), \ DMI_MATCH(DMI_PRODUCT_VERSION, model) \ } \ } -#define HDAPS_DMI_MATCH_INVERT_XY(model) { \ - .ident = "IBM " model, \ +#define HDAPS_DMI_MATCH_INVERT_XY(vendor, model) { \ + .ident = vendor " " model, \ .callback = hdaps_dmi_match_invert_xy, \ .matches = { \ - DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), \ + DMI_MATCH(DMI_BOARD_VENDOR, vendor), \ DMI_MATCH(DMI_PRODUCT_VERSION, model) \ } \ } -#define HDAPS_DMI_MATCH_INVERT_Y(model) { \ - .ident = "IBM " model, \ +#define HDAPS_DMI_MATCH_INVERT_Y(vendor, model) { \ + .ident = vendor " " model, \ .callback = hdaps_dmi_match_invert_y, \ .matches = { \ - DMI_MATCH(DMI_BOARD_VENDOR, "IBM"), \ + DMI_MATCH(DMI_BOARD_VENDOR, vendor), \ DMI_MATCH(DMI_PRODUCT_VERSION, model) \ } \ } @@ -713,18 +713,22 @@ Note that HDAPS_DMI_MATCH_NORMAL("ThinkPad T42") would match "ThinkPad T42p", so the order of the entries matters */ struct dmi_system_id hdaps_whitelist[] = { - HDAPS_DMI_MATCH_INVERT_XY("ThinkPad R50p"), - HDAPS_DMI_MATCH_NORMAL("ThinkPad R50"), - HDAPS_DMI_MATCH_NORMAL("ThinkPad R51"), - HDAPS_DMI_MATCH_NORMAL("ThinkPad R52"), - HDAPS_DMI_MATCH_INVERT_XY("ThinkPad T41p"), - HDAPS_DMI_MATCH_NORMAL("ThinkPad T41"), - HDAPS_DMI_MATCH_INVERT_XY("ThinkPad T42p"), - HDAPS_DMI_MATCH_NORMAL("ThinkPad T42"), - HDAPS_DMI_MATCH_NORMAL("ThinkPad T43"), - HDAPS_DMI_MATCH_INVERT_Y("ThinkPad X40"), - HDAPS_DMI_MATCH_INVERT_Y("ThinkPad X41 Tablet"), - HDAPS_DMI_MATCH_INVERT_Y("ThinkPad X41"), + HDAPS_DMI_MATCH_INVERT_XY("IBM", "ThinkPad R50p"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R50"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R51"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R52"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad H"), /* R52 (1846AQG) */ + HDAPS_DMI_MATCH_INVERT_XY("IBM", "ThinkPad T41p"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad T41"), + HDAPS_DMI_MATCH_INVERT_XY("IBM", "ThinkPad T42p"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad T42"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad T43"), + HDAPS_DMI_MATCH_INVERT_XY("LENOVO", "ThinkPad T60p"), + HDAPS_DMI_MATCH_INVERT_XY("LENOVO", "ThinkPad T60"), + HDAPS_DMI_MATCH_INVERT_Y("IBM", "ThinkPad X40"), + HDAPS_DMI_MATCH_INVERT_Y("IBM", "ThinkPad X41"), + HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad Z60m"), + HDAPS_DMI_MATCH_INVERT_XY("LENOVO", "ThinkPad X60"), { .ident = NULL } }; --- linux-source-2.6.17-2.6.17.1.orig/drivers/scsi/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/scsi/.gitignore @@ -0,0 +1,3 @@ +53c700_d.h +53c7xx_d.h +53c7xx_u.h --- linux-source-2.6.17-2.6.17.1.orig/drivers/scsi/aic7xxx/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/scsi/aic7xxx/.gitignore @@ -0,0 +1,6 @@ +aic79xx_reg.h +aic79xx_reg_print.c +aic79xx_seq.h +aic7xxx_reg.h +aic7xxx_reg_print.c +aic7xxx_seq.h --- linux-source-2.6.17-2.6.17.1.orig/drivers/acpi/asus_acpi.c +++ linux-source-2.6.17-2.6.17.1/drivers/acpi/asus_acpi.c @@ -1114,6 +1114,8 @@ return W1N; else if (strncmp(model, "W5A", 3) == 0) return W5A; + else if (strncmp(model, "W3V", 3) == 0) + return W3V; else return END_MODEL; } @@ -1195,6 +1197,7 @@ hotk->methods = &model_conf[hotk->model]; return AE_OK; } + hotk->methods = &model_conf[hotk->model]; printk(KERN_NOTICE " %s model detected, supported\n", string); --- linux-source-2.6.17-2.6.17.1.orig/drivers/md/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/md/.gitignore @@ -0,0 +1,4 @@ +mktables +raid6altivec*.c +raid6int*.c +raid6tables.c --- linux-source-2.6.17-2.6.17.1.orig/drivers/pci/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/pci/.gitignore @@ -0,0 +1,4 @@ +classlist.h +devlist.h +gen-devlist + --- linux-source-2.6.17-2.6.17.1.orig/drivers/i2c/busses/i2c-nforce2.c +++ linux-source-2.6.17-2.6.17.1/drivers/i2c/busses/i2c-nforce2.c @@ -31,6 +31,8 @@ nForce3 250Gb MCP 00E4 nForce4 MCP 0052 nForce4 MCP-04 0034 + nForce4 MCP51 0264 + nForce4 MCP55 0368 This driver supports the 2 SMBuses that are included in the MCP of the nForce2/3/4 chipsets. @@ -64,6 +66,7 @@ /* * nVidia nForce2 SMBus control register definitions + * (Newer incarnations use standard BARs 4 and 5 instead) */ #define NFORCE_PCI_SMB1 0x50 #define NFORCE_PCI_SMB2 0x54 @@ -259,6 +262,8 @@ { PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE3S_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE4_SMBUS) }, { PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP04_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP51_SMBUS) }, + { PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NFORCE_MCP55_SMBUS) }, { 0 } }; @@ -266,19 +271,29 @@ MODULE_DEVICE_TABLE (pci, nforce2_ids); -static int __devinit nforce2_probe_smb (struct pci_dev *dev, int reg, - struct nforce2_smbus *smbus, char *name) +static int __devinit nforce2_probe_smb (struct pci_dev *dev, int bar, + int alt_reg, struct nforce2_smbus *smbus, const char *name) { - u16 iobase; int error; - if (pci_read_config_word(dev, reg, &iobase) != PCIBIOS_SUCCESSFUL) { - dev_err(&smbus->adapter.dev, "Error reading PCI config for %s\n", name); - return -1; + smbus->base = pci_resource_start(dev, bar); + if (smbus->base) { + smbus->size = pci_resource_len(dev, bar); + } else { + /* Older incarnations of the device used non-standard BARs */ + u16 iobase; + + if (pci_read_config_word(dev, alt_reg, &iobase) + != PCIBIOS_SUCCESSFUL) { + dev_err(&dev->dev, "Error reading PCI config for %s\n", + name); + return -1; + } + + smbus->base = iobase & PCI_BASE_ADDRESS_IO_MASK; + smbus->size = 8; } - smbus->dev = dev; - smbus->base = iobase & 0xfffc; - smbus->size = 8; + smbus->dev = dev; if (!request_region(smbus->base, smbus->size, nforce2_driver.name)) { dev_err(&smbus->adapter.dev, "Error requesting region %02x .. %02X for %s\n", @@ -313,12 +328,13 @@ pci_set_drvdata(dev, smbuses); /* SMBus adapter 1 */ - res1 = nforce2_probe_smb (dev, NFORCE_PCI_SMB1, &smbuses[0], "SMB1"); + res1 = nforce2_probe_smb(dev, 4, NFORCE_PCI_SMB1, &smbuses[0], "SMB1"); if (res1 < 0) { dev_err(&dev->dev, "Error probing SMB1.\n"); smbuses[0].base = 0; /* to have a check value */ } - res2 = nforce2_probe_smb (dev, NFORCE_PCI_SMB2, &smbuses[1], "SMB2"); + /* SMBus adapter 2 */ + res2 = nforce2_probe_smb(dev, 5, NFORCE_PCI_SMB2, &smbuses[1], "SMB2"); if (res2 < 0) { dev_err(&dev->dev, "Error probing SMB2.\n"); smbuses[1].base = 0; /* to have a check value */ --- linux-source-2.6.17-2.6.17.1.orig/drivers/ide/ide-iops.c +++ linux-source-2.6.17-2.6.17.1/drivers/ide/ide-iops.c @@ -603,6 +603,9 @@ return 1; if (!(drive->id->hw_config & 0x6000)) return 0; + /* Check for SATA but only if we are ATA5 or higher */ + if (drive->id->hw_config == 0 && (drive->id->major_rev_num & 0x7FE0)) + return 1; #ifndef CONFIG_IDEDMA_IVB if(!(drive->id->hw_config & 0x4000)) return 0; --- linux-source-2.6.17-2.6.17.1.orig/drivers/atm/.gitignore +++ linux-source-2.6.17-2.6.17.1/drivers/atm/.gitignore @@ -0,0 +1,5 @@ +# Ignore generated files +fore200e_mkfirm +fore200e_pca_fw.c +pca200e.bin +