10 Aug, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (59 commits)
    igbvf.txt: Add igbvf Documentation
    igb.txt: Add igb documentation
    e100/e1000*/igb*/ixgb*: Add missing read memory barrier
    ixgbe: fix build error with FCOE_CONFIG without DCB_CONFIG
    netxen: protect tx timeout recovery by rtnl lock
    isdn: gigaset: use after free
    isdn: gigaset: add missing unlock
    solos-pci: Fix race condition in tasklet RX handling
    pkt_sched: Fix sch_sfq vs tcf_bind_filter oops
    net: disable preemption before call smp_processor_id()
    tcp: no md5sig option size check bug
    iwlwifi: fix locking assertions
    iwlwifi: fix TX tracer
    isdn: fix information leak
    net: Fix napi_gro_frags vs netpoll path
    usbnet: remove noisy and hardly useful printk
    rtl8180: avoid potential NULL deref in rtl8180_beacon_work
    ath9k: Remove myself from the MAINTAINERS list
    libertas: scan before assocation if no BSSID was given
    libertas: fix association with some APs by using extended rates
    ...

    Linus Torvalds
     

08 Aug, 2010

5 commits

  • Since there was added ->tcf_chain() method without ->bind_tcf() to
    sch_sfq class options, there is oops when a filter is added with
    the classid parameter.

    Fixes commit 7d2681a6ff4f9ab5e48d02550b4c6338f1638998
    netdev thread: null pointer at cls_api.c

    Signed-off-by: Jarek Poplawski
    Reported-by: Franchoze Eric
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • Although netif_rx() isn't expected to be called in process context with
    preemption enabled, it'd better handle this case. And this is why get_cpu()
    is used in the non-RPS #ifdef branch. If tree RCU is selected,
    rcu_read_lock() won't disable preemption, so preempt_disable() should be
    called explictly.

    Signed-off-by: Changli Gao
    Signed-off-by: David S. Miller

    Changli Gao
     
  • tcp_parse_md5sig_option doesn't check md5sig option (TCPOPT_MD5SIG)
    length, but tcp_v[46]_inbound_md5_hash assume that it's at least 16
    bytes long.

    Signed-off-by: Dmitry Popov
    Signed-off-by: David S. Miller

    Dmitry Popov
     
  • * 'for-2.6.36' of git://linux-nfs.org/~bfields/linux: (34 commits)
    nfsd4: fix file open accounting for RDWR opens
    nfsd: don't allow setting maxblksize after svc created
    nfsd: initialize nfsd versions before creating svc
    net: sunrpc: removed duplicated #include
    nfsd41: Fix a crash when a callback is retried
    nfsd: fix startup/shutdown order bug
    nfsd: minor nfsd read api cleanup
    gcc-4.6: nfsd: fix initialized but not read warnings
    nfsd4: share file descriptors between stateid's
    nfsd4: fix openmode checking on IO using lock stateid
    nfsd4: miscellaneous process_open2 cleanup
    nfsd4: don't pretend to support write delegations
    nfsd: bypass readahead cache when have struct file
    nfsd: minor nfsd_svc() cleanup
    nfsd: move more into nfsd_startup()
    nfsd: just keep single lockd reference for nfsd
    nfsd: clean up nfsd_create_serv error handling
    nfsd: fix error handling in __write_ports_addxprt
    nfsd: fix error handling when starting nfsd with rpcbind down
    nfsd4: fix v4 state shutdown error paths
    ...

    Linus Torvalds
     
  • * 'nfs-for-2.6.36' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (42 commits)
    NFS: NFSv4.1 is no longer a "developer only" feature
    NFS: NFS_V4 is no longer an EXPERIMENTAL feature
    NFS: Fix /proc/mount for legacy binary interface
    NFS: Fix the locking in nfs4_callback_getattr
    SUNRPC: Defer deleting the security context until gss_do_free_ctx()
    SUNRPC: prevent task_cleanup running on freed xprt
    SUNRPC: Reduce asynchronous RPC task stack usage
    SUNRPC: Move the bound cred to struct rpc_rqst
    SUNRPC: Clean up of rpc_bindcred()
    SUNRPC: Move remaining RPC client related task initialisation into clnt.c
    SUNRPC: Ensure that rpc_exit() always wakes up a sleeping task
    SUNRPC: Make the credential cache hashtable size configurable
    SUNRPC: Store the hashtable size in struct rpc_cred_cache
    NFS: Ensure the AUTH_UNIX credcache is allocated dynamically
    NFS: Fix the NFS users of rpc_restart_call()
    SUNRPC: The function rpc_restart_call() should return success/failure
    NFSv4: Get rid of the bogus RPC_ASSASSINATED(task) checks
    NFSv4: Clean up the process of renewing the NFSv4 lease
    NFSv4.1: Handle NFS4ERR_DELAY on SEQUENCE correctly
    NFS: nfs_rename() should not have to flush out writebacks
    ...

    Linus Torvalds
     

07 Aug, 2010

2 commits


06 Aug, 2010

6 commits

  • CC: Dave Howells
    Signed-off-by: Steve French

    Steve French
     
  • Fixes for the DNS query module, including:

    (1) Use 'negative' instead of '-ve' in the documentation.

    (2) Mark the kdoc comment with '/**' on dns_query().

    Reported-by: Randy Dunlap
    Signed-off-by: David Howells
    Signed-off-by: Steve French

    David Howells
     
  • Fixes build errors:

    net/dns_resolver/dns_key.c: In function 'init_dns_resolver':
    net/dns_resolver/dns_key.c:170: error: implicit declaration of function 'IS_ERR'
    net/dns_resolver/dns_key.c:171: error: implicit declaration of function 'PTR_ERR'
    net/dns_resolver/dns_query.c: In function 'dns_query':
    net/dns_resolver/dns_query.c:126: error: implicit declaration of function 'IS_ERR'
    net/dns_resolver/dns_query.c:127: error: implicit declaration of function 'PTR_ERR'

    Signed-off-by: Stephen Rothwell
    Signed-off-by: David Howells
    Signed-off-by: Steve French

    Stephen Rothwell
     
  • The netpoll_rx_on() check in __napi_gro_receive() skips part of the
    "common" GRO_NORMAL path, especially "pull:" in dev_gro_receive(),
    where at least eth header should be copied for entirely paged skbs.

    Signed-off-by: Jarek Poplawski
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Jarek Poplawski
     
  • John W. Linville
     
  • Separate out the DNS resolver key type from the CIFS filesystem into its own
    module so that it can be made available for general use, including the AFS
    filesystem module.

    This facility makes it possible for the kernel to upcall to userspace to have
    it issue DNS requests, package up the replies and present them to the kernel
    in a useful form. The kernel is then able to cache the DNS replies as keys
    can be retained in keyrings.

    Resolver keys are of type "dns_resolver" and have a case-insensitive
    description that is of the form "[:]". The optional
    indicates the particular DNS lookup and packaging that's required. The
    is the query to be made.

    If isn't given, a basic hostname to IP address lookup is made, and the
    result is stored in the key in the form of a printable string consisting of a
    comma-separated list of IPv4 and IPv6 addresses.

    This key type is supported by userspace helpers driven from /sbin/request-key
    and configured through /etc/request-key.conf. The cifs.upcall utility is
    invoked for UNC path server name to IP address resolution.

    The CIFS functionality is encapsulated by the dns_resolve_unc_to_ip() function,
    which is used to resolve a UNC path to an IP address for CIFS filesystem. This
    part remains in the CIFS module for now.

    See the added Documentation/networking/dns_resolver.txt for more information.

    Signed-off-by: Wang Lei
    Signed-off-by: David Howells
    Acked-by: Jeff Layton
    Signed-off-by: Steve French

    Wang Lei
     

05 Aug, 2010

10 commits

  • The PPP channel ops structure should be const.
    Cleanup the declarations to use standard C99 format.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    stephen hemminger
     
  • RxRPC can potentially deadlock as rxrpc_resend_time_expired() wants to get
    call->state_lock so that it can alter the state of an RxRPC call. However, its
    caller (call_timer_fn()) has an apparent lock on the timer struct.

    The problem is that rxrpc_resend_time_expired() isn't permitted to lock
    call->state_lock as this could cause a deadlock against rxrpc_send_abort() as
    that takes state_lock and then attempts to delete the resend timer by calling
    del_timer_sync().

    The deadlock can occur because del_timer_sync() will sit there forever waiting
    for rxrpc_resend_time_expired() to return, but the latter may then wait for
    call->state_lock, which rxrpc_send_abort() holds around del_timer_sync()...

    This leads to a warning appearing in the kernel log that looks something like
    the attached.

    It should be sufficient to simply dispense with the locks. It doesn't matter
    if we set the resend timer expired event bit and queue the event processor
    whilst we're changing state to one where the resend timer is irrelevant as the
    event can just be ignored by the processor thereafter.

    =======================================================
    [ INFO: possible circular locking dependency detected ]
    2.6.35-rc3-cachefs+ #115
    -------------------------------------------------------
    swapper/0 is trying to acquire lock:
    (&call->state_lock){++--..}, at: [] rxrpc_resend_time_expired+0x56/0x96 [af_rxrpc]

    but task is already holding lock:
    (&call->resend_timer){+.-...}, at: [] run_timer_softirq+0x182/0x2a5

    which lock already depends on the new lock.

    the existing dependency chain (in reverse order) is:

    -> #1 (&call->resend_timer){+.-...}:
    [] __lock_acquire+0x889/0x8fa
    [] lock_acquire+0x57/0x6d
    [] del_timer_sync+0x3c/0x86
    [] rxrpc_send_abort+0x50/0x97 [af_rxrpc]
    [] rxrpc_kernel_abort_call+0xa1/0xdd [af_rxrpc]
    [] afs_deliver_to_call+0x129/0x368 [kafs]
    [] afs_process_async_call+0x54/0xff [kafs]
    [] worker_thread+0x1ef/0x2e2
    [] kthread+0x7a/0x82
    [] kernel_thread_helper+0x4/0x10

    -> #0 (&call->state_lock){++--..}:
    [] validate_chain+0x727/0xd23
    [] __lock_acquire+0x889/0x8fa
    [] lock_acquire+0x57/0x6d
    [] _raw_read_lock_bh+0x34/0x43
    [] rxrpc_resend_time_expired+0x56/0x96 [af_rxrpc]
    [] run_timer_softirq+0x1f3/0x2a5
    [] __do_softirq+0xa2/0x13e
    [] call_softirq+0x1c/0x28
    [] do_softirq+0x38/0x80
    [] irq_exit+0x45/0x47
    [] smp_apic_timer_interrupt+0x88/0x96
    [] apic_timer_interrupt+0x13/0x20
    [] cpu_idle+0x4d/0x83
    [] start_secondary+0x1bd/0x1c1

    other info that might help us debug this:

    1 lock held by swapper/0:
    #0: (&call->resend_timer){+.-...}, at: [] run_timer_softirq+0x182/0x2a5

    stack backtrace:
    Pid: 0, comm: swapper Not tainted 2.6.35-rc3-cachefs+ #115
    Call Trace:
    [] print_circular_bug+0xae/0xbd
    [] validate_chain+0x727/0xd23
    [] __lock_acquire+0x889/0x8fa
    [] ? mark_lock+0x42f/0x51f
    [] lock_acquire+0x57/0x6d
    [] ? rxrpc_resend_time_expired+0x56/0x96 [af_rxrpc]
    [] _raw_read_lock_bh+0x34/0x43
    [] ? rxrpc_resend_time_expired+0x56/0x96 [af_rxrpc]
    [] rxrpc_resend_time_expired+0x56/0x96 [af_rxrpc]
    [] run_timer_softirq+0x1f3/0x2a5
    [] ? run_timer_softirq+0x182/0x2a5
    [] ? rxrpc_resend_time_expired+0x0/0x96 [af_rxrpc]
    [] ? __do_softirq+0x69/0x13e
    [] __do_softirq+0xa2/0x13e
    [] call_softirq+0x1c/0x28
    [] do_softirq+0x38/0x80
    [] irq_exit+0x45/0x47
    [] smp_apic_timer_interrupt+0x88/0x96
    [] apic_timer_interrupt+0x13/0x20
    [] ? __atomic_notifier_call_chain+0x0/0x86
    [] ? mwait_idle+0x6e/0x78
    [] ? mwait_idle+0x65/0x78
    [] cpu_idle+0x4d/0x83
    [] start_secondary+0x1bd/0x1c1

    Signed-off-by: David Howells
    Signed-off-by: David S. Miller

    David Howells
     
  • The packet length should be checked before the packet data is dereferenced.

    Signed-off-by: Changli Gao
    Signed-off-by: David S. Miller

    Changli Gao
     
  • The packet length should be checked before the packet data is dereferenced.

    Signed-off-by: Changli Gao
    Signed-off-by: David S. Miller

    Changli Gao
     
  • The packet length should be checked before the packet data is dereferenced.

    Signed-off-by: Changli Gao
    Acked-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Changli Gao
     
  • On the TX path, skb->data points to the ethernet header, not the network
    header. So when validating the packet length for accessing we should
    take the ethernet header into account.

    Signed-off-by: Changli Gao
    Acked-by: Herbert Xu
    Signed-off-by: David S. Miller

    Changli Gao
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (48 commits)
    Documentation: update broken web addresses.
    fix comment typo "choosed" -> "chosen"
    hostap:hostap_hw.c Fix typo in comment
    Fix spelling contorller -> controller in comments
    Kconfig.debug: FAIL_IO_TIMEOUT: typo Faul -> Fault
    fs/Kconfig: Fix typo Userpace -> Userspace
    Removing dead MACH_U300_BS26
    drivers/infiniband: Remove unnecessary casts of private_data
    fs/ocfs2: Remove unnecessary casts of private_data
    libfc: use ARRAY_SIZE
    scsi: bfa: use ARRAY_SIZE
    drm: i915: use ARRAY_SIZE
    drm: drm_edid: use ARRAY_SIZE
    synclink: use ARRAY_SIZE
    block: cciss: use ARRAY_SIZE
    comment typo fixes: charater => character
    fix comment typos concerning "challenge"
    arm: plat-spear: fix typo in kerneldoc
    reiserfs: typo comment fix
    update email address
    ...

    Linus Torvalds
     
  • The warning is:
    net/mac80211/main.c:688: warning: label ‘fail_ifa’ defined but not used

    Signed-off-by: Juuso Oikarinen
    Signed-off-by: John W. Linville

    Juuso Oikarinen
     
  • Releasing the scan mutex while starting scans
    can lead to unexpected things happening, so
    we shouldn't do that. Fix that and hold the
    mutex across the scan triggering.

    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1443 commits)
    phy/marvell: add 88ec048 support
    igb: Program MDICNFG register prior to PHY init
    e1000e: correct MAC-PHY interconnect register offset for 82579
    hso: Add new product ID
    can: Add driver for esd CAN-USB/2 device
    l2tp: fix export of header file for userspace
    can-raw: Fix skb_orphan_try handling
    Revert "net: remove zap_completion_queue"
    net: cleanup inclusion
    phy/marvell: add 88e1121 interface mode support
    u32: negative offset fix
    net: Fix a typo from "dev" to "ndev"
    igb: Use irq_synchronize per vector when using MSI-X
    ixgbevf: fix null pointer dereference due to filter being set for VLAN 0
    e1000e: Fix irq_synchronize in MSI-X case
    e1000e: register pm_qos request on hardware activation
    ip_fragment: fix subtracting PPPOE_SES_HLEN from mtu twice
    net: Add getsockopt support for TCP thin-streams
    cxgb4: update driver version
    cxgb4: add new PCI IDs
    ...

    Manually fix up conflicts in:
    - drivers/net/e1000e/netdev.c: due to pm_qos registration
    infrastructure changes
    - drivers/net/phy/marvell.c: conflict between adding 88ec048 support
    and cleaning up the IDs
    - drivers/net/wireless/ipw2x00/ipw2100.c: trivial ipw2100_pm_qos_req
    conflict (registration change vs marking it static)

    Linus Torvalds
     

04 Aug, 2010

14 commits


03 Aug, 2010

2 commits

  • Commit fc6055a5ba31e2c14e36e8939f9bf2b6d586a7f5 (net: Introduce
    skb_orphan_try()) allows an early orphan of the skb and takes care on
    tx timestamping, which needs the sk-reference in the skb on driver level.
    So does the can-raw socket, which has not been taken into account here.

    The patch below adds a 'prevent_sk_orphan' bit in the skb tx shared info,
    which fixes the problem discovered by Matthias Fuchs here:

    http://marc.info/?t=128030411900003&r=1&w=2

    Even if it's not a primary tx timestamp topic it fits well into some skb
    shared tx context. Or should be find a different place for the information to
    protect the sk reference until it reaches the driver level?

    Signed-off-by: Oliver Hartkopp
    Signed-off-by: David S. Miller

    Oliver Hartkopp
     
  • This reverts commit 15e83ed78864d0625e87a85f09b297c0919a4797.

    As explained by Johannes Berg, the optimization made here is
    invalid. Or, at best, incomplete.

    Not only destructor invocation, but conntract entry releasing
    must be executed outside of hw IRQ context.

    So just checking "skb->destructor" is insufficient.

    Signed-off-by: David S. Miller

    David S. Miller