pandora-kernel.git
16 years agoNFSv4: Fix the underestimate of NFSv4 open request size
Trond Myklebust [Mon, 2 Jul 2007 17:57:28 +0000 (13:57 -0400)]
NFSv4: Fix the underestimate of NFSv4 open request size

The maximum size depends on the filename size and a number of other
elements which are currently not being counted.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Fix the NFSv4 owner and owner_group size estimates
Trond Myklebust [Sun, 8 Jul 2007 22:38:23 +0000 (18:38 -0400)]
NFSv4: Fix the NFSv4 owner and owner_group size estimates

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Don't reuse expired nfs4_state_owner structs
Trond Myklebust [Mon, 2 Jul 2007 16:49:23 +0000 (12:49 -0400)]
NFSv4: Don't reuse expired nfs4_state_owner structs

That just confuses certain NFSv4 servers.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Fix a credential reference leak in nfs4_get_state_owner()
Trond Myklebust [Mon, 2 Jul 2007 14:24:56 +0000 (10:24 -0400)]
NFSv4: Fix a credential reference leak in nfs4_get_state_owner()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Replace NFS_I(inode)->req_lock with inode->i_lock
Trond Myklebust [Mon, 2 Jul 2007 13:57:54 +0000 (09:57 -0400)]
NFS: Replace NFS_I(inode)->req_lock with inode->i_lock

There is no justification for keeping a special spinlock for the exclusive
use of the NFS writeback code.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Clean up _nfs4_proc_lookup() vs _nfs4_proc_lookupfh()
Trond Myklebust [Sun, 1 Jul 2007 22:13:52 +0000 (18:13 -0400)]
NFSv4: Clean up _nfs4_proc_lookup() vs _nfs4_proc_lookupfh()

They differ only slightly in the arguments they take. Why have they not
been merged?

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Suppress some noisy and unnecessary printk() calls in call_verify()
Trond Myklebust [Wed, 27 Jun 2007 22:30:26 +0000 (18:30 -0400)]
SUNRPC: Suppress some noisy and unnecessary printk() calls in call_verify()

Convert them into dprintk() calls.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Ensure RPCSEC_GSS destroys the security context when freeing a cred
Trond Myklebust [Tue, 26 Jun 2007 21:04:57 +0000 (17:04 -0400)]
SUNRPC: Ensure RPCSEC_GSS destroys the security context when freeing a cred

Do so by set the gc_proc field to RPC_GSS_PROC_DESTROY, and then sending a
NULL RPC call.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Ensure that the struct gss_auth lifetime exceeds the credential's
Trond Myklebust [Wed, 27 Jun 2007 18:29:12 +0000 (14:29 -0400)]
SUNRPC: Ensure that the struct gss_auth lifetime exceeds the credential's

Add a refcount in order to ensure that the gss_auth doesn't disappear from
underneath us while we're freeing up GSS contexts.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Remove the tk_auth macro...
Trond Myklebust [Wed, 27 Jun 2007 18:29:04 +0000 (14:29 -0400)]
SUNRPC: Remove the tk_auth macro...

We should almost always be deferencing the rpc_auth struct by means of the
credential's cr_auth field instead of the rpc_clnt->cl_auth anyway. Fix up
that historical mistake, and remove the macro that propagated it.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Allow rpc_auth to run clean up before the rpc_client is destroyed
Trond Myklebust [Tue, 26 Jun 2007 20:57:41 +0000 (16:57 -0400)]
SUNRPC: Allow rpc_auth to run clean up before the rpc_client is destroyed

RPCSEC_GSS needs to be able to send NULL RPC calls to the server in order
to free up any remaining GSS contexts.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Convert gss_ctx_lock to an RCU lock
Trond Myklebust [Tue, 26 Jun 2007 23:18:38 +0000 (19:18 -0400)]
SUNRPC: Convert gss_ctx_lock to an RCU lock

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Convert the credential garbage collector into a shrinker callback
Trond Myklebust [Mon, 25 Jun 2007 21:11:20 +0000 (17:11 -0400)]
SUNRPC: Convert the credential garbage collector into a shrinker callback

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Give credential cache a local spinlock
Trond Myklebust [Sun, 24 Jun 2007 19:57:57 +0000 (15:57 -0400)]
SUNRPC: Give credential cache a local spinlock

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Convert the credcache lookup code to use RCU
Trond Myklebust [Sun, 24 Jun 2007 19:55:26 +0000 (15:55 -0400)]
SUNRPC: Convert the credcache lookup code to use RCU

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: cleanup rpc credential cache garbage collection
Trond Myklebust [Sat, 23 Jun 2007 23:45:36 +0000 (19:45 -0400)]
SUNRPC: cleanup rpc credential cache garbage collection

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Enforce atomic updates of rpc_cred->cr_flags
Trond Myklebust [Mon, 25 Jun 2007 14:15:15 +0000 (10:15 -0400)]
SUNRPC: Enforce atomic updates of rpc_cred->cr_flags

Convert to the use of atomic bitops...

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: replace casts in auth_unix.c with container_of()
Trond Myklebust [Mon, 25 Jun 2007 13:48:25 +0000 (09:48 -0400)]
SUNRPC: replace casts in auth_unix.c with container_of()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Clean up rpc credential initialisation
Trond Myklebust [Sat, 23 Jun 2007 23:55:31 +0000 (19:55 -0400)]
SUNRPC: Clean up rpc credential initialisation

Add a helper rpc_cred_init()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Mark auth and cred operation tables as constant.
Trond Myklebust [Sun, 24 Jun 2007 00:17:58 +0000 (20:17 -0400)]
SUNRPC: Mark auth and cred operation tables as constant.

Also do the same for gss_api operation tables.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Rename rpcauth_destroy() to rpcauth_release()
Trond Myklebust [Sat, 23 Jun 2007 14:46:47 +0000 (10:46 -0400)]
SUNRPC: Rename rpcauth_destroy() to rpcauth_release()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Add the helper function 'rpc_call_null()'
Trond Myklebust [Sat, 23 Jun 2007 14:17:16 +0000 (10:17 -0400)]
SUNRPC: Add the helper function 'rpc_call_null()'

Does a NULL RPC call and returns a pointer to the resulting rpc_task. The
call may be either synchronous or asynchronous.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Make rpc_ping() static
Trond Myklebust [Sat, 23 Jun 2007 14:17:16 +0000 (10:17 -0400)]
SUNRPC: Make rpc_ping() static

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Fix races in rpcauth_create
Trond Myklebust [Sat, 9 Jun 2007 20:15:46 +0000 (16:15 -0400)]
SUNRPC: Fix races in rpcauth_create

See the FIXME: auth_flavors[] really needs a lock and module refcounting.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Fix a memory leak in gss_create()
Trond Myklebust [Sat, 9 Jun 2007 19:42:01 +0000 (15:42 -0400)]
SUNRPC: Fix a memory leak in gss_create()

Fix a memory leak in gss_create() whereby the rpc credcache was not being
freed if the rpc_mkpipe() call failed.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Fix a typo in unx_create()
Trond Myklebust [Sun, 24 Jun 2007 19:24:29 +0000 (15:24 -0400)]
SUNRPC: Fix a typo in unx_create()

We want to set the unix_cred_cache.nextgc on the first call to
unx_create(), which should be when unix_auth.au_count === 1

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Fix a memory leak in the auth credcache code
Trond Myklebust [Sat, 9 Jun 2007 19:41:42 +0000 (15:41 -0400)]
SUNRPC: Fix a memory leak in the auth credcache code

The leak only affects the RPCSEC_GSS caches, since they are the only ones
that are dynamically allocated...
Rename the existing rpcauth_free_credcache() to rpcauth_clear_credcache()
in order to better describe its role, then add a new function
rpcauth_destroy_credcache() that actually frees the cache in addition to
clearing it out.

Also move the call to destroy the credcache in gss_destroy() to come before
the rpc upcall pipe is unlinked.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Add a field to track the number of kernel users of an rpc_pipe
Trond Myklebust [Fri, 8 Jun 2007 18:14:53 +0000 (14:14 -0400)]
SUNRPC: Add a field to track the number of kernel users of an rpc_pipe

This allows us to correctly deduce when we need to remove the pipe.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Clean up rpc_pipefs.
Trond Myklebust [Fri, 8 Jun 2007 18:14:46 +0000 (14:14 -0400)]
SUNRPC: Clean up rpc_pipefs.

Add a dentry_ops with a d_delete() method in order to ensure that dentries
are removed as soon as the last reference is gone.

Clean up rpc_depopulate() so that it only removes files that were created
via rpc_populate().

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Enable non-exclusive create in rpc_mkpipe()
Trond Myklebust [Thu, 7 Jun 2007 22:28:02 +0000 (18:28 -0400)]
SUNRPC: Enable non-exclusive create in rpc_mkpipe()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Add a downcall queue to struct rpc_inode
Trond Myklebust [Thu, 7 Jun 2007 19:31:36 +0000 (15:31 -0400)]
SUNRPC: Add a downcall queue to struct rpc_inode

Currently, the downcall queue is tied to the struct gss_auth, which means
that different RPCSEC_GSS pseudoflavours must use different upcall pipes.
Add a list to struct rpc_inode that can be used instead.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Always match an upcall message in gss_pipe_downcall()
Trond Myklebust [Thu, 7 Jun 2007 14:14:15 +0000 (10:14 -0400)]
SUNRPC: Always match an upcall message in gss_pipe_downcall()

It used to be possible for an rpc.gssd daemon to stuff the RPC credential
cache for any rpc client simply by creating RPCSEC_GSS contexts and then
doing downcalls. In practice, no daemons ever made use of this feature.

Remove this feature now, since it will be impossible to figure out which
mechanism a given context actually matches if we enable more
than one gss mechanism to use the same upcall pipe.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Remove the gss_auth spinlock
Trond Myklebust [Thu, 7 Jun 2007 14:14:14 +0000 (10:14 -0400)]
SUNRPC: Remove the gss_auth spinlock

We're just as well off using the inode spinlock instead.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Add a backpointer from the struct rpc_cred to the rpc_auth
Trond Myklebust [Thu, 7 Jun 2007 14:14:14 +0000 (10:14 -0400)]
SUNRPC: Add a backpointer from the struct rpc_cred to the rpc_auth

Cleans up an issue whereby rpcsec_gss uses the rpc_clnt->cl_auth. If we want
to be able to add several rpc_auths to a single rpc_clnt, then this abuse
must go.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: fix hang due to eventd deadlock...
Trond Myklebust [Thu, 14 Jun 2007 22:00:42 +0000 (18:00 -0400)]
SUNRPC: fix hang due to eventd deadlock...

Brian Behlendorf writes:

The root cause of the NFS hang we were observing appears to be a rare
deadlock between the kernel provided usermodehelper API and the linux NFS
client.  The deadlock can arise because both of these services use the
generic linux work queues.  The usermodehelper API run the specified user
application in the context of the work queue.  And NFS submits both cleanup
and reconnect work to the generic work queue for handling.  Normally this
is fine but a deadlock can result in the following situation.

  - NFS client is in a disconnected state
  - [events/0] runs a usermodehelper app with an NFS dependent operation,
    this triggers an NFS reconnect.
  - NFS reconnect happens to be submitted to [events/0] work queue.
  - Deadlock, the [events/0] work queue will never process the
    reconnect because it is blocked on the previous NFS dependent
    operation which will not complete.`

The solution is simply to run reconnect requests on rpciod.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: clean up rpc_call_async/rpc_call_sync/rpc_run_task
Trond Myklebust [Tue, 12 Jun 2007 14:02:37 +0000 (10:02 -0400)]
SUNRPC: clean up rpc_call_async/rpc_call_sync/rpc_run_task

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Move rpc_register_client and friends into net/sunrpc/clnt.c
Trond Myklebust [Sat, 16 Jun 2007 18:18:40 +0000 (14:18 -0400)]
SUNRPC: Move rpc_register_client and friends into net/sunrpc/clnt.c

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Remove redundant calls to rpciod_up()/rpciod_down()
Trond Myklebust [Thu, 14 Jun 2007 21:31:58 +0000 (17:31 -0400)]
SUNRPC: Remove redundant calls to rpciod_up()/rpciod_down()

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Make create_client() take a reference to the rpciod workqueue
Trond Myklebust [Thu, 14 Jun 2007 21:26:17 +0000 (17:26 -0400)]
SUNRPC: Make create_client() take a reference to the rpciod workqueue

Ensures that an rpc_client always has the possibility to send asynchronous
RPC calls.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Optimise rpciod_up()
Trond Myklebust [Thu, 14 Jun 2007 21:08:36 +0000 (17:08 -0400)]
SUNRPC: Optimise rpciod_up()

Instead of taking the mutex every time we just need to increment/decrement
rpciod_users, we can optmise by using atomic_inc_not_zero and
atomic_dec_and_test.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Don't create an rpc_pipefs directory before rpc_clone is initialised
Trond Myklebust [Sun, 17 Jun 2007 21:07:54 +0000 (17:07 -0400)]
SUNRPC: Don't create an rpc_pipefs directory before rpc_clone is initialised

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Remove rpc_clnt->cl_count
Trond Myklebust [Thu, 14 Jun 2007 20:40:32 +0000 (16:40 -0400)]
SUNRPC: Remove rpc_clnt->cl_count

The kref now does most of what cl_count + cl_user used to do. The only
remaining role for cl_count is to tell us if we are in a 'shutdown'
phase. We can provide that information using a single bit field instead
of a full atomic counter.

Also rename rpc_destroy_client() to rpc_close_client(), which reflects
better what its role is these days.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Make rpc_clone take a reference instead of using cl_count
Trond Myklebust [Thu, 14 Jun 2007 20:40:32 +0000 (16:40 -0400)]
SUNRPC: Make rpc_clone take a reference instead of using cl_count

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Kill rpc_clnt->cl_oneshot
Trond Myklebust [Sat, 9 Jun 2007 23:49:36 +0000 (19:49 -0400)]
SUNRPC: Kill rpc_clnt->cl_oneshot

Replace it with explicit calls to rpc_shutdown_client() or
rpc_destroy_client() (for the case of asynchronous calls).

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Kill rpc_clnt->cl_dead
Trond Myklebust [Sat, 9 Jun 2007 23:39:12 +0000 (19:39 -0400)]
SUNRPC: Kill rpc_clnt->cl_dead

Its use is at best racy, and there is only one user (lockd), which has
additional locking that makes the whole thing redundant.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Convert rpc_clnt->cl_users to a kref
Trond Myklebust [Thu, 14 Jun 2007 20:40:31 +0000 (16:40 -0400)]
SUNRPC: Convert rpc_clnt->cl_users to a kref

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Clean up tk_pid allocation and make it lockless
Trond Myklebust [Sat, 16 Jun 2007 18:17:01 +0000 (14:17 -0400)]
SUNRPC: Clean up tk_pid allocation and make it lockless

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Add a per-rpc_clnt spinlock
Trond Myklebust [Sat, 16 Jun 2007 18:17:01 +0000 (14:17 -0400)]
SUNRPC: Add a per-rpc_clnt spinlock

Use that to protect the rpc_clnt->cl_tasks list instead of using a global
lock.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoSUNRPC: Move rpc_task->tk_task list into struct rpc_clnt
Trond Myklebust [Thu, 14 Jun 2007 20:40:14 +0000 (16:40 -0400)]
SUNRPC: Move rpc_task->tk_task list into struct rpc_clnt

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Convert struct nfs4_opendata to use struct kref
Trond Myklebust [Sun, 17 Jun 2007 20:02:44 +0000 (16:02 -0400)]
NFSv4: Convert struct nfs4_opendata to use struct kref

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Convert struct nfs_open_context to use a kref
Trond Myklebust [Sun, 17 Jun 2007 20:02:44 +0000 (16:02 -0400)]
NFS: Convert struct nfs_open_context to use a kref

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: reduce latency by using conditional rescheduling in nfs_scan_list
Trond Myklebust [Sun, 17 Jun 2007 20:02:34 +0000 (16:02 -0400)]
NFS: reduce latency by using conditional rescheduling in nfs_scan_list

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Prevent integer overflow in nfs_scan_list()
Trond Myklebust [Sun, 17 Jun 2007 19:47:53 +0000 (15:47 -0400)]
NFS: Prevent integer overflow in nfs_scan_list()

Also ensure that nfs_inode ncommit and npages are large enough to represent
all possible values for the number of pages.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Remove the redundant 'dirty' and 'commit' lists from nfs_inode
Trond Myklebust [Sun, 17 Jun 2007 19:40:59 +0000 (15:40 -0400)]
NFS: Remove the redundant 'dirty' and 'commit' lists from nfs_inode

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS cleanup: speed up nfs_scan_commit using radix tree tags
Trond Myklebust [Sun, 17 Jun 2007 19:27:42 +0000 (15:27 -0400)]
NFS cleanup: speed up nfs_scan_commit using radix tree tags

Add a tag for requests that are waiting for a COMMIT

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS cleanup: Rename NFS_PAGE_TAG_WRITEBACK to NFS_PAGE_TAG_LOCKED
Trond Myklebust [Sun, 17 Jun 2007 19:10:24 +0000 (15:10 -0400)]
NFS cleanup: Rename NFS_PAGE_TAG_WRITEBACK to NFS_PAGE_TAG_LOCKED

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Convert struct nfs_page to use krefs
Trond Myklebust [Sun, 17 Jun 2007 17:26:38 +0000 (13:26 -0400)]
NFS: Convert struct nfs_page to use krefs

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Fix an Oops in the nfs_access_cache_shrinker()
Trond Myklebust [Tue, 5 Jun 2007 23:23:43 +0000 (19:23 -0400)]
NFS: Fix an Oops in the nfs_access_cache_shrinker()

The nfs_access_cache_shrinker may race with nfs_access_zap_cache().

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: nfs3_proc_create() should use nfs_post_op_update_inode()
Trond Myklebust [Tue, 5 Jun 2007 23:27:00 +0000 (19:27 -0400)]
NFS: nfs3_proc_create() should use nfs_post_op_update_inode()

Also get rid of a redundant call to nfs_setattr_update_inode(). The call to
nfs3_proc_setattr() already takes care of that.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS4: on a O_EXCL OPEN make sure SETATTR sets the fields holding the verifier
Jeff Layton [Tue, 5 Jun 2007 18:49:03 +0000 (14:49 -0400)]
NFS4: on a O_EXCL OPEN make sure SETATTR sets the fields holding the verifier

The Linux NFS4 client simply skips over the bitmask in an O_EXCL open
call and so it doesn't bother to reset any fields that may be holding
the verifier. This patch has us save the first two words of the bitmask
(which is all the current client has #defines for). The client then
later checks this bitmask and turns on the appropriate flags in the
sattr->ia_verify field for the following SETATTR call.

This patch only currently checks to see if the server used the atime
and mtime slots for the verifier (which is what the Linux server uses
for this). I'm not sure of what other fields the server could
reasonably use, but adding checks for others should be trivial.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Re-enable forced umounts
Trond Myklebust [Tue, 5 Jun 2007 23:13:47 +0000 (19:13 -0400)]
NFS: Re-enable forced umounts

They disappeared some time around 2.6.18.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Use GFP_HIGHUSER for page allocation in nfs_symlink()
Jeff Layton [Thu, 7 Jun 2007 13:58:08 +0000 (09:58 -0400)]
NFS: Use GFP_HIGHUSER for page allocation in nfs_symlink()

nfs_symlink() allocates a GFP_KERNEL page for the pagecache. Most
pagecache pages are allocated using GFP_HIGHUSER, and there's no reason
not to do that in nfs_symlink() as well.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
16 years agoNFS: Fix nfs_reval_fsid()
Trond Myklebust [Tue, 5 Jun 2007 17:26:15 +0000 (13:26 -0400)]
NFS: Fix nfs_reval_fsid()

We don't need to revalidate the fsid on the root directory. It suffices to
revalidate it on the current directory.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Clean up nfs4_call_async()
Trond Myklebust [Tue, 12 Jun 2007 03:05:07 +0000 (23:05 -0400)]
NFSv4: Clean up nfs4_call_async()

Use rpc_run_task() instead of doing it ourselves.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Ensure that nfs4_do_close() doesn't race with umount
Trond Myklebust [Tue, 5 Jun 2007 14:31:33 +0000 (10:31 -0400)]
NFSv4: Ensure that nfs4_do_close() doesn't race with umount

nfs4_do_close() does not currently have any way to ensure that the user
won't attempt to unmount the partition while the asynchronous RPC call
is completing. This again may cause Oopses in nfs_update_inode().

Add a vfsmount argument to nfs4_close_state to ensure that the partition
remains mounted while we're closing the file.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Ensure asynchronous open() calls always pin the mountpoint
Trond Myklebust [Tue, 5 Jun 2007 16:30:00 +0000 (12:30 -0400)]
NFSv4: Ensure asynchronous open() calls always pin the mountpoint

A number of race conditions may currently ensue if the user presses ^C
and then unmounts the partition while an asynchronous open() is in
progress.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFSv4: Cleanup: pass the nfs_open_context to open recovery code
Trond Myklebust [Tue, 5 Jun 2007 15:46:42 +0000 (11:46 -0400)]
NFSv4: Cleanup: pass the nfs_open_context to open recovery code

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Replace vfsmount and dentry in nfs_open_context with struct path
Trond Myklebust [Tue, 5 Jun 2007 14:42:27 +0000 (10:42 -0400)]
NFS: Replace vfsmount and dentry in nfs_open_context with struct path

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Minor read optimisation...
Trond Myklebust [Sun, 20 May 2007 17:05:05 +0000 (13:05 -0400)]
NFS: Minor read optimisation...

Since PG_uptodate may now end up getting set during the call to
nfs_wb_page(), we can avoid putting a read request on the wire in those
situations.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Don't mark a written page as uptodate until it is on disk
Trond Myklebust [Sat, 19 May 2007 15:58:03 +0000 (11:58 -0400)]
NFS: Don't mark a written page as uptodate until it is on disk

The write may fail, so we should not mark the page as uptodate until we are
certain that the data has been accepted and written to disk by the server.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Don't fail an O_DIRECT read/write if get_user_pages() returns pages
Trond Myklebust [Tue, 22 May 2007 14:22:20 +0000 (10:22 -0400)]
NFS: Don't fail an O_DIRECT read/write if get_user_pages() returns pages

There is no need to fail the entire O_DIRECT read/write just because
get_user_pages() returned fewer pages than we requested.

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agoNFS: Clean ups in fs/nfs/direct.c
Chuck Lever [Sat, 19 May 2007 21:22:52 +0000 (17:22 -0400)]
NFS: Clean ups in fs/nfs/direct.c

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
16 years agolots-of-architectures: enable arbitary speed tty support
Alan Cox [Wed, 11 Jul 2007 00:22:27 +0000 (17:22 -0700)]
lots-of-architectures: enable arbitary speed tty support

Add the termios2 structure ready for enabling on most platforms.  One or
two like Sparc are plain weird so have been left alone.  Most can use the
same structure as ktermios for termios2 (ie the newer ioctl uses the
structure matching the current kernel structure)

Signed-off-by: Alan Cox <alan@redhat.com>
Cc: Bryan Wu <bryan.wu@analog.com>
Cc: Ian Molton <spyro@f2s.com>
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
Cc: Mikael Starvik <starvik@axis.com>
Cc: David Howells <dhowells@redhat.com>
Cc: "Luck, Tony" <tony.luck@intel.com>
Cc: Hirokazu Takata <takata@linux-m32r.org>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Matthew Wilcox <willy@debian.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Kazumoto Kojima <kkojima@rr.iij4u.or.jp>
Cc: Richard Curnow <rc@rc0.org.uk>
Cc: Miles Bader <uclinux-v850@lsi.nec.co.jp>
Cc: Chris Zankel <chris@zankel.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoMake common helpers for seq_files that work with list_heads
Pavel Emelianov [Wed, 11 Jul 2007 00:22:26 +0000 (17:22 -0700)]
Make common helpers for seq_files that work with list_heads

Many places in kernel use seq_file API to iterate over a regular list_head.
The code for such iteration is identical in all the places, so it's worth
introducing a common helpers.

This makes code about 300 lines smaller:

The first version of this patch made the helper functions static inline
in the seq_file.h header. This patch moves them to the fs/seq_file.c as
Andrew proposed. The vmlinux .text section sizes are as follows:

2.6.22-rc1-mm1:              0x001794d5
with the previous version:   0x00179505
with this patch:             0x00179135

The config file used was make allnoconfig with the "y" inclusion of all
the possible options to make the files modified by the patch compile plus
drivers I have on the test node.

This patch:

Many places in kernel use seq_file API to iterate over a regular list_head.
The code for such iteration is identical in all the places, so it's worth
introducing a common helpers.

Signed-off-by: Pavel Emelianov <xemul@openvz.org>
Cc: "David S. Miller" <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agosx: switch subven and subid values
Jiri Slaby [Wed, 11 Jul 2007 00:22:25 +0000 (17:22 -0700)]
sx: switch subven and subid values

sx.c is failing to locate Graham's card.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Graham Murray <gmurray@webwayone.co.uk>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoAdd LZO1X algorithm to the kernel
Richard Purdie [Wed, 11 Jul 2007 00:22:24 +0000 (17:22 -0700)]
Add LZO1X algorithm to the kernel

This is a hybrid version of the patch to add the LZO1X compression
algorithm to the kernel.  Nitin and myself have merged the best parts of
the various patches to form this version which we're both happy with (and
are jointly signing off).

The performance of this version is equivalent to the original minilzo code
it was based on.  Bytecode comparisons have also been made on ARM, i386 and
x86_64 with favourable results.

There are several users of LZO lined up including jffs2, crypto and reiser4
since its much faster than zlib.

Signed-off-by: Nitin Gupta <nitingupta910@gmail.com>
Signed-off-by: Richard Purdie <rpurdie@openedhand.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
16 years agoMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
Linus Torvalds [Tue, 10 Jul 2007 21:57:52 +0000 (14:57 -0700)]
Merge branch 'for-linus' of git://git./linux/kernel/git/drzeus/mmc

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
  mmc: at91_mci: fix hanging and rework to match flowcharts
  mmc: at91_mci typo
  sdhci: Fix "Unexpected interrupt" handling
  mmc: fix silly copy-and-paste error
  mmc: move layer init and workqueue to core file
  mmc: refactor host class handling
  mmc: refactor bus operations
  sdhci: add ene controller id
  mmc: bounce requests for simple hosts

16 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Tue, 10 Jul 2007 21:56:22 +0000 (14:56 -0700)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/netdev-2.6

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (40 commits)
  bonding/bond_main.c: make 2 functions static
  ps3: gigabit ethernet driver for PS3, take3
  [netdrvr] Fix dependencies for ax88796 ne2k clone driver
  eHEA: Capability flag for DLPAR support
  Remove sk98lin ethernet driver.
  sunhme.c:quattro_pci_find() must be __devinit
  bonding / ipv6: no addrconf for slaves separately from master
  atl1: remove write-only var in tx handler
  macmace: use "unsigned long flags;"
  Cleanup usbnet_probe() return value handling
  netxen: deinline and sparse fix
  eeprom_93cx6: shorten pulse timing to match spec (bis)
  phylib: Add Marvell 88E1112 phy id
  phylib: cleanup marvell.c a bit
  AX88796 network driver
  IOC3: Switch to pci refcounting safe APIs
  e100: Fix Tyan motherboard e100 not receiving IPMI commands
  QE Ethernet driver writes to wrong register to mask interrupts
  rrunner.c:rr_init() must be __devinit
  tokenring/3c359.c:xl_init() must be __devinit
  ...

16 years agoMerge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
Linus Torvalds [Tue, 10 Jul 2007 21:50:16 +0000 (14:50 -0700)]
Merge branch 'upstream-linus' of /linux/kernel/git/jgarzik/libata-dev

* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev: (32 commits)
  [libata] sata_mv: print out additional chip info during probe
  [libata] Use ATA_UDMAx standard masks when filling driver's udma_mask info
  [libata] AHCI: Add support for Marvell AHCI-like chips (initially 6145)
  [libata] Clean up driver udma_mask initializers
  libata: Support chips with 64K PRD quirk
  Add a PCI ID for santa rosa's PATA controller.
  sata_sil24: sil24_interrupt() micro-optimisation
  Add irq_flags to struct pata_platform_info
  sata_promise: cleanups
  [libata] pata_ixp4xx: kill unused var
  ata_piix: fix pio/mwdma programming
  [libata] ahci: minor internal cleanups
  [ATA] Add named constant for ATAPI command DEVICE RESET
  [libata] sata_sx4, sata_via: minor documentation updates
  [libata] ahci: minor internal cleanups
  [libata] ahci: Factor out SATA port init into a separate function
  [libata] pata_sil680: minor cleanups from benh
  [libata] sata_sx4: named constant cleanup
  [libata] pata_ixp4xx: convert to new EH
  [libata] pdc_adma: Reorder initializers with a couple structs
  ...

16 years agoMerge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus
Linus Torvalds [Tue, 10 Jul 2007 21:48:43 +0000 (14:48 -0700)]
Merge branch 'upstream' of git://ftp.linux-mips.org/upstream-linus

* 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (62 commits)
  [MIPS] PNX8550: Cleanup proc code.
  [MIPS] WRPPMC: Fix build.
  [MIPS] Yosemite: Fix modpost warnings.
  [MIPS] Change names of local variables to silence sparse
  [MIPS] SB1: Fix modpost warning.
  [MIPS] PNX: Fix modpost warnings.
  [MIPS] Alchemy: Fix modpost warnings.
  [MIPS] Non-FPAFF: Fix warning.
  [MIPS] DEC: Fix modpost warning.
  [MIPS] MIPSsim: Enable MIPSsim virtual network driver.
  [MIPS] Delete Ocelot 3 support.
  [MIPS] remove LASAT Networks platforms support
  [MIPS] Early check for SMTC kernel on non-MT processor
  [MIPS] Add debugfs files to show fpuemu statistics
  [MIPS] Add some debugfs files to debug unaligned accesses
  [MIPS] rbtx4938: Fix secondary PCIC and glue internal NICs
  [MIPS] tc35815: Load MAC address via platform_device
  [MIPS] Move FPU affinity code into separate file.
  [MIPS] Make ioremap() work on TX39/49 special unmapped segment
  [MIPS] rbtx4938: Update and minimize defconfig
  ...

16 years agoMerge git://git.infradead.org/~dwmw2/battery-2.6
Linus Torvalds [Tue, 10 Jul 2007 21:47:59 +0000 (14:47 -0700)]
Merge git://git.infradead.org/~dwmw2/battery-2.6

* git://git.infradead.org/~dwmw2/battery-2.6:
  [BATTERY] ds2760 W1 slave
  [BATTERY] One Laptop Per Child power/battery driver
  [BATTERY] Apple PMU driver
  [BATTERY] 1-Wire ds2760 chip battery driver
  [BATTERY] APM emulation driver for class batteries
  [BATTERY] pda_power platform driver
  [BATTERY] Universal power supply class (was: battery class)

16 years agoMerge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
Linus Torvalds [Tue, 10 Jul 2007 21:46:09 +0000 (14:46 -0700)]
Merge branch 'for-linus' of git://git390.osdl.marist.edu/linux-2.6

* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] vmlogrdr function annotation.
  [S390] s390: rename CPU_IDLE to S390_CPU_IDLE
  [S390] cio: Remove prototype for non-existing function cmf_reset().
  [S390] zcrypt: fix request timeout handling
  [S390] system call optimization.
  [S390] dasd: Avoid compile warnings on !CONFIG_DASD_PROFILE
  [S390] Remove volatile from atomic_t
  [S390] Program check in diag 210 under 31 bit
  [S390] Bogomips calculation for 64 bit.
  [S390] smp: Merge smp_count_cpus() and smp_get_save_areas().
  [S390] zcore: Fix __user annotation.
  [S390] fixed cdl-format detection.
  [S390] sclp: Test facility list before executing a service call.
  [S390] sclp: introduce some new interfaces.
  [S390] Fixed comment typo.
  [S390] vmcp cleanup

16 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw
Linus Torvalds [Tue, 10 Jul 2007 20:56:13 +0000 (13:56 -0700)]
Merge git://git./linux/kernel/git/steve/gfs2-2.6-nmw

* git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-nmw: (57 commits)
  [GFS2] Accept old format NFS filehandles
  [GFS2] Small fixes to logging code
  [DLM] dump more lock values
  [GFS2] Remove i_mode passing from NFS File Handle
  [GFS2] Obtaining no_formal_ino from directory entry
  [GFS2] git-gfs2-nmw-build-fix
  [GFS2] System won't suspend with GFS2 file system mounted
  [GFS2] remounting w/o acl option leaves acls enabled
  [GFS2] inode size inconsistency
  [DLM] Telnet to port 21064 can stop all lockspaces
  [GFS2] Fix gfs2_block_truncate_page err return
  [GFS2] Addendum to the journaled file/unmount patch
  [GFS2] Simplify multiple glock aquisition
  [GFS2] assertion failure after writing to journaled file, umount
  [GFS2] Use zero_user_page() in stuffed_readpage()
  [GFS2] Remove bogus '\0' in rgrp.c
  [GFS2] Journaled file write/unstuff bug
  [DLM] don't require FS flag on all nodes
  [GFS2] Fix deallocation issues
  [GFS2] return conflicts for GETLK
  ...

16 years agoMerge branch 'splice-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block
Linus Torvalds [Tue, 10 Jul 2007 20:51:06 +0000 (13:51 -0700)]
Merge branch 'splice-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block

* 'splice-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block:
  pipe: add documentation and comments
  pipe: change the ->pin() operation to ->confirm()
  Remove remnants of sendfile()
  xip sendfile removal
  splice: completely document external interface with kerneldoc
  sendfile: remove bad_sendfile() from bad_file_ops
  shmem: convert to using splice instead of sendfile()
  relay: use splice_to_pipe() instead of open-coding the pipe loop
  pipe: allow passing around of ops private pointer
  splice: divorce the splice structure/function definitions from the pipe header
  splice: relay support
  sendfile: convert nfsd to splice_direct_to_actor()
  sendfile: convert nfs to using splice_read()
  loop: convert to using splice_direct_to_actor() instead of sendfile()
  splice: add void cookie to the actor data
  sendfile: kill generic_file_sendfile()
  sendfile: remove .sendfile from filesystems that use generic_file_sendfile()
  sys_sendfile: switch to using ->splice_read, if available
  vmsplice: add vmsplice-to-user support
  splice: abstract out actor data

16 years agoMerge branch 'trivial-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block
Linus Torvalds [Tue, 10 Jul 2007 20:49:46 +0000 (13:49 -0700)]
Merge branch 'trivial-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block

* 'trivial-2.6.23' of git://git.kernel.dk/data/git/linux-2.6-block:
  Documentation/block/barrier.txt is not in sync with the actual code: - blk_queue_ordered() no longer has a gfp_mask parameter - blk_queue_ordered_locked() no longer exists - sd_prepare_flush() looks slightly different
  Use list_for_each_entry() instead of list_for_each() in the block device
  Make a "menuconfig" out of the Kconfig objects "menu, ..., endmenu",
  block/Kconfig already has its own "menuconfig" so remove these
  Use menuconfigs instead of menus, so the whole menu can be disabled at once
  cfq-iosched: fix async queue behaviour
  unexport bio_{,un}map_user
  Remove legacy CDROM drivers
  [PATCH] fix request->cmd == INT cases
  cciss: add new controller support for P700m
  [PATCH] Remove acsi.c
  [BLOCK] drop unnecessary bvec rewinding from flush_dry_bio_endio
  [PATCH] cdrom_sysctl_info fix
  blk_hw_contig_segment(): bad segment size checks
  [TRIVIAL PATCH] Kill blk_congestion_wait() stub for !CONFIG_BLOCK

16 years agobonding/bond_main.c: make 2 functions static
Adrian Bunk [Mon, 9 Jul 2007 18:51:12 +0000 (11:51 -0700)]
bonding/bond_main.c: make 2 functions static

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Chad Tindel <ctindel@users.sourceforge.net>
Cc: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agops3: gigabit ethernet driver for PS3, take3
Masakazu Mokuno [Thu, 5 Jul 2007 11:11:16 +0000 (20:11 +0900)]
ps3: gigabit ethernet driver for PS3, take3

Hi,

This is the third submission of the network driver for PS3.
The differences from the previous one are:

  - renamed source file names so that their prefix can match
    with the module name
  - added cbe-oss-dev@ozlabs.org line for MAINTAINER file
  - changed some in copyright comments

If there are no more comments, please apply for 2.6.23.

Thank you

--
Subject: PS3: Ethernet driver

From: Masakazu Mokuno <mokuno@sm.sony.co.jp>

Add Gigabit Ethernet support for the PS3 game console.  The module will
be called ps3_gelic.

CC: Geoff Levand <geoffrey.levand@am.sony.com>
Signed-off-by: Masakazu Mokuno <mokuno@sm.sony.co.jp>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years ago[netdrvr] Fix dependencies for ax88796 ne2k clone driver
Jeff Garzik [Tue, 10 Jul 2007 18:06:48 +0000 (14:06 -0400)]
[netdrvr] Fix dependencies for ax88796 ne2k clone driver

It needs writesb(), not available on all platforms.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoeHEA: Capability flag for DLPAR support
Jan-Bernd Themann [Thu, 5 Jul 2007 07:26:25 +0000 (09:26 +0200)]
eHEA: Capability flag for DLPAR support

This patch introduces a capability flag that is used by the DLPAR userspace
tool to check which DLPAR features are supported by the eHEA driver.

Missing goto has been included.

Signed-off-by: Jan-Bernd Themann <themann@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoRemove sk98lin ethernet driver.
Jeff Garzik [Tue, 10 Jul 2007 16:58:33 +0000 (12:58 -0400)]
Remove sk98lin ethernet driver.

Unmaintained, superceded by skge.

Prodded to deletion by Adrian Bunk.  Acked by Stephen Hemminger.

Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agosunhme.c:quattro_pci_find() must be __devinit
Adrian Bunk [Tue, 10 Jul 2007 12:44:49 +0000 (14:44 +0200)]
sunhme.c:quattro_pci_find() must be __devinit

This patch fixes the following section mismatch:

<--  snip  -->

...
  MODPOST vmlinux
WARNING: drivers/built-in.o(.text+0x272f8b): Section mismatch: reference to .init.text:quattro_pci_find (between 'happy_meal_pci_probe' and 'happy_meal_pci_remove')
...

<--  snip  -->

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agobonding / ipv6: no addrconf for slaves separately from master
Jay Vosburgh [Mon, 9 Jul 2007 17:42:47 +0000 (10:42 -0700)]
bonding / ipv6: no addrconf for slaves separately from master

At present, when a device is enslaved to bonding, if ipv6 is
active then addrconf will be initated on the slave (because it is closed
then opened during the enslavement processing).  This causes DAD and RS
packets to be sent from the slave.  These packets in turn can confuse
switches that perform ipv6 snooping, causing them to incorrectly update
their forwarding tables (if, e.g., the slave being added is an inactve
backup that won't be used right away) and direct traffic away from the
active slave to a backup slave (where the incoming packets will be
dropped).

This patch alters the behavior so that addrconf will only run on
the master device itself.  I believe this is logically correct, as it
prevents slaves from having an IPv6 identity independent from the
master.  This is consistent with the IPv4 behavior for bonding.

This is accomplished by (a) having bonding set IFF_SLAVE sooner
in the enslavement processing than currently occurs (before open, not
after), and (b) having ipv6 addrconf ignore UP and CHANGE events on
slave devices.

The eql driver also uses the IFF_SLAVE flag.  I inspected eql,
and I believe this change is reasonable for its usage of IFF_SLAVE, but
I did not test it.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoatl1: remove write-only var in tx handler
Alexey Dobriyan [Fri, 6 Jul 2007 15:05:25 +0000 (19:05 +0400)]
atl1: remove write-only var in tx handler

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agomacmace: use "unsigned long flags;"
Alexey Dobriyan [Fri, 6 Jul 2007 14:57:13 +0000 (18:57 +0400)]
macmace: use "unsigned long flags;"

Code will do local_irq_save() on it.

Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoCleanup usbnet_probe() return value handling
Peter Korsgaard [Mon, 2 Jul 2007 22:46:42 +0000 (00:46 +0200)]
Cleanup usbnet_probe() return value handling

usbnet_probe() handles a positive return value from the driver bind()
function as success, but will later only setup the status handler if the
return value was zero, leading to confusion. Patch adjusts this to accept
positive values as success in both checks.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agonetxen: deinline and sparse fix
Stephen Hemminger [Thu, 5 Jul 2007 23:13:55 +0000 (16:13 -0700)]
netxen: deinline and sparse fix

Get rid of dubious casts to (void *) which causes a sparse warning.
And move largeish function from inline to the one file that uses the code,
the compiler can then decide to inline it.

Compile tested only.

Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoeeprom_93cx6: shorten pulse timing to match spec (bis)
Francois Romieu [Tue, 3 Jul 2007 22:31:44 +0000 (00:31 +0200)]
eeprom_93cx6: shorten pulse timing to match spec (bis)

Based on an original idea by John W. Linville.

It is the missing part of 42d45ccd60636c28e35c2016f091783bc14ad99c

Signed-off-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agophylib: Add Marvell 88E1112 phy id
Olof Johansson [Tue, 3 Jul 2007 21:24:32 +0000 (16:24 -0500)]
phylib: Add Marvell 88E1112 phy id

Add 88E1112 PHY ID to the marvell driver. Seems to do fine with the
88E1111 inits.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agophylib: cleanup marvell.c a bit
Olof Johansson [Tue, 3 Jul 2007 21:23:46 +0000 (16:23 -0500)]
phylib: cleanup marvell.c a bit

Simplify the marvell driver init a bit: Make the supported devices an
array instead of explicitly registering each structure. This makes it
considerably easier to add new devices down the road.

Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
16 years agoAX88796 network driver
Ben Dooks [Tue, 3 Jul 2007 15:53:09 +0000 (16:53 +0100)]
AX88796 network driver

Support for the Asix AX88796 network controller, an
NE2000 compatible 10/100 ethernet device with internal
PHY.

The driver supports PHY settings via either ioctl() or
the ethtool driver ops.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Jeff Garzik <jeff@garzik.org>