14 Aug, 2010

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)
    ctcm: rename READ/WRITE defines to avoid redefinitions
    claw: rename READ/WRITE defines to avoid redefinitions
    phylib: available for any speed ethernet
    can: add limit for nframes and clean up signed/unsigned variables
    pkt_sched: Check .walk and .leaf class handlers
    pkt_sched: Fix sch_sfq vs tc_modify_qdisc oops
    caif-spi: Bugfix SPI_DATA_POS settings were inverted.
    caif: Bugfix - Increase default headroom size for control channel.
    net: make netpoll_rx return bool for !CONFIG_NETPOLL
    Bluetooth: Use 3-DH5 payload size for default ERTM max PDU size
    Bluetooth: Fix incorrect setting of remote_tx_win for L2CAP ERTM
    Bluetooth: Change default L2CAP ERTM retransmit timeout
    Bluetooth: Fix endianness issue with L2CAP MPS configuration
    net: Use NET_XMIT_SUCCESS where possible.
    isdn: mISDN: call pci_disable_device() if pci_probe() failed
    isdn: avm: call pci_disable_device() if pci_probe() failed
    isdn: avm: call pci_disable_device() if pci_probe() failed
    usbnet: rx_submit() should return an error code.
    pkt_sched: Add some basic qdisc class ops verification. Was: [PATCH] sfq: add dummy bind/unbind handles
    pkt_sched: sch_sfq: Add dummy unbind_tcf and put handles. Was: [PATCH] sfq: add dummy bind/unbind handles
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    [NFS] Set CONFIG_KEYS when CONFIG_NFS_USE_KERNEL_DNS is set
    AFS: Implement an autocell mount capability [ver #2]
    DNS: If the DNS server returns an error, allow that to be cached [ver #2]
    NFS: Use kernel DNS resolver [ver #2]
    cifs: update README to include details about 'fsc' option

    Linus Torvalds
     

13 Aug, 2010

2 commits

  • * 'params' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus: (22 commits)
    param: don't deref arg in __same_type() checks
    param: update drivers/acpi/debug.c to new scheme
    param: use module_param in drivers/message/fusion/mptbase.c
    ide: use module_param_named rather than module_param_call
    param: update drivers/char/ipmi/ipmi_watchdog.c to new scheme
    param: lock if_sdio's lbs_helper_name and lbs_fw_name against sysfs changes.
    param: lock myri10ge_fw_name against sysfs changes.
    param: simple locking for sysfs-writable charp parameters
    param: remove unnecessary writable charp
    param: add kerneldoc to moduleparam.h
    param: locking for kernel parameters
    param: make param sections const.
    param: use free hook for charp (fix leak of charp parameters)
    param: add a free hook to kernel_param_ops.
    param: silence .init.text references from param ops
    Add param ops struct for hvc_iucv driver.
    nfs: update for module_param_named API change
    AppArmor: update for module_param_named API change
    param: use ops in struct kernel_param, rather than get and set fns directly
    param: move the EXPORT_SYMBOL to after the definitions.
    ...

    Linus Torvalds
     
  • Add a dummy printk function for the maintenance of unused printks through gcc
    format checking, and also so that side-effect checking is maintained too.

    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    David Howells
     

12 Aug, 2010

3 commits

  • Several gigabit network drivers (SB1250_MAC, TIGON3, FSL, GIANFAR,
    UCC_GETH, MV643XX_ETH, XILINX_LL_TEMAC, S6GMAC, STMMAC_ETH, PASEMI_MAC,
    and OCTEON_ETHERNET) select PHYLIB. These drivers are not under
    NET_ETHERNET (10/100 mbit), so this warning is generated (long, irrelevant
    parts are omitted):

    warning: (NET_DSA && NET && EXPERIMENTAL && NET_ETHERNET && !S390 || ... || SB1250_MAC && NETDEVICES && NETDEV_1000 && SIBYTE_SB1xxx_SOC || TIGON3 && NETDEVICES && NETDEV_1000 && PCI || FSL_PQ_MDIO && NETDEVICES && NETDEV_1000 && FSL_SOC || GIANFAR && NETDEVICES && NETDEV_1000 && FSL_SOC || UCC_GETH && NETDEVICES && NETDEV_1000 && QUICC_ENGINE || MV643XX_ETH && NETDEVICES && NETDEV_1000 && (MV64X60 || PPC32 || PLAT_ORION) || XILINX_LL_TEMAC && NETDEVICES && NETDEV_1000 && (PPC || MICROBLAZE) || S6GMAC && NETDEVICES && NETDEV_1000 && XTENSA_VARIANT_S6000 || STMMAC_ETH && NETDEV_1000 && NETDEVICES && CPU_SUBTYPE_ST40 || PASEMI_MAC && NETDEVICES && NETDEV_10000 && PPC_PASEMI && PCI || OCTEON_ETHERNET && STAGING && !STAGING_EXCLUDE_BUILD && CPU_CAVIUM_OCTEON) selects PHYLIB which has unmet direct dependencies (!S390 && NET_ETHERNET)

    PHYLIB is used by non-10/100 mbit ethernet drivers, so change the dependencies
    to be NETDEVICES instead of NET_ETHERNET.

    Signed-off-by: Randy Dunlap
    Signed-off-by: David S. Miller

    Randy Dunlap
     
  • This patch adds a limit for nframes as the number of frames in TX_SETUP and
    RX_SETUP are derived from a single byte multiplex value by default.
    Use-cases that would require to send/filter more than 256 CAN frames should
    be implemented in userspace for complexity reasons anyway.

    Additionally the assignments of unsigned values from userspace to signed
    values in kernelspace and vice versa are fixed by using unsigned values in
    kernelspace consistently.

    Signed-off-by: Oliver Hartkopp
    Reported-by: Ben Hawkes
    Acked-by: Urs Thuermann
    Signed-off-by: David S. Miller

    Oliver Hartkopp
     
  • If the DNS server returns an error, allow that to be cached in the DNS resolver
    key in lieu of a value. Userspace passes the desired error number as an option
    in the payload:

    "#dnserror="

    Userspace must map h_errno from the name resolution routines to an appropriate
    Linux error before passing it up. Something like the following mapping is
    recommended:

    [HOST_NOT_FOUND] = ENODATA,
    [TRY_AGAIN] = EAGAIN,
    [NO_RECOVERY] = ECONNREFUSED,
    [NO_DATA] = ENODATA,

    in lieu of Linux errors specifically for representing name service errors. The
    filesystem must map these errors appropropriately before passing them to
    userspace. AFS is made to map ENODATA and EAGAIN to EDESTADDRREQ for the
    return to userspace; ECONNREFUSED is allowed to stand as is.

    The error can be seen in /proc/keys as a negative number after the description
    of the key. Compare, for example, the following key entries:

    2f97238c I--Q-- 1 53s 3f010000 0 0 dns_resol afsdb:grand.centrall.org: -61
    338bfbbe I--Q-- 1 59m 3f010000 0 0 dns_resol afsdb:grand.central.org: 37

    If the error option is supplied in the payload, the main part of the payload is
    discarded. The key should have an expiry time set by userspace.

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

    Wang Lei
     

11 Aug, 2010

8 commits


10 Aug, 2010

7 commits

  • remote_tx_win is intended to be set on receipt of an L2CAP
    configuration request. The value is used to determine the size of the
    transmit window on the remote side of an ERTM connection, so L2CAP
    can stop sending frames when that remote window is full.

    An incorrect remote_tx_win value will cause the stack to not fully
    utilize the tx window (performance impact), or to overfill the remote
    tx window (causing dropped frames or a disconnect).

    This patch removes an extra setting of remote_tx_win when a
    configuration response is received. The transmit window has a
    different meaning in a response - it is an informational value
    less than or equal to the local tx_win.

    Signed-off-by: Mat Martineau
    Signed-off-by: Marcel Holtmann

    Mat Martineau
     
  • Incoming configuration values must be converted to native CPU order
    before use. This fixes a bug where a little-endian MPS value is
    compared to a native CPU value. On big-endian processors, this
    can cause ERTM and streaming mode segmentation to produce PDUs
    that are larger than the remote stack is expecting, or that would
    produce fragmented skbs that the current FCS code cannot handle.

    Signed-off-by: Mat Martineau
    Signed-off-by: Marcel Holtmann

    Mat Martineau
     
  • This is based on work originally done by Patric McHardy.

    Signed-off-by: Ben Greear
    Signed-off-by: David S. Miller

    Ben Greear
     
  • …mmy bind/unbind handles

    Verify in register_qdisc() some basic qdisc class handlers are present.

    Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

    Jarek Poplawski
     
  • …dummy bind/unbind handles

    Add dummy .unbind_tcf and .put qdisc class ops for easier verification.
    (All other schedulers have it like this.)

    Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

    Jarek Poplawski
     
  • * 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
     
  • Accesses to "wdev->current_bss" must be
    locked with the wdev lock, which action
    frame transmission is missing.

    Cc: stable@kernel.org [2.6.33+]
    Signed-off-by: Johannes Berg
    Signed-off-by: John W. Linville

    Johannes Berg
     

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

5 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