15 Jan, 2013

1 commit

  • Pull networking fixes from David Miller:

    1) Fix regression allowing IP_TTL setting of zero, fix from Cong Wang.

    2) Fix leak regressions in tunap, from Jason Wang.

    3) be2net driver always returns IRQ_HANDLED in INTx handler, fix from
    Sathya Perla.

    4) qlge doesn't really support NETIF_F_TSO6, don't set that flag. Fix
    from Amerigo Wang.

    5) Add 802.11ad Atheros wil6210 driver, from Vladimir Kondratiev.

    6) Fix MTU calculations in mac80211 layer, from T Krishna Chaitanya.

    7) Station info layer of mac80211 needs to use del_timer_sync(), from
    Johannes Berg.

    8) tcp_read_sock() can loop forever, because we don't immediately stop
    when recv_actor() returns zero. Fix from Eric Dumazet.

    9) Fix WARN_ON() in tcp_cleanup_rbuf(). We have to use sk_eat_skb() in
    tcp_recv_skb() to handle the case where a large GRO packet is split
    up while it is use by a splice() operation. Fix also from Eric
    Dumazet.

    10) addrconf_get_prefix_route() in ipv6 tests flags incorrectly, it
    does:

    if (X && (p->flags & Y) != 0)

    when it really meant to go:

    if (X && (p->flags & X) != 0)

    fix from Romain Kuntz.

    11) Fix lost Kconfig dependency for bfin_mac driver hardware
    timestamping. From Lars-Peter Clausen.

    12) Fix regression in handling of RST without ACK in TCP, from Eric
    Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (37 commits)
    be2net: fix unconditionally returning IRQ_HANDLED in INTx
    tuntap: fix leaking reference count
    tuntap: forbid calling TUNSETIFF when detached
    tuntap: switch to use rtnl_dereference()
    net, wireless: overwrite default_ethtool_ops
    qlge: remove NETIF_F_TSO6 flag
    tcp: accept RST without ACK flag
    net: ethernet: xilinx: Do not use NO_IRQ in axienet
    net: ethernet: xilinx: Do not use axienet on PPC
    bnx2x: Allow management traffic after boot from SAN
    bnx2x: Fix fastpath structures when memory allocation fails
    bfin_mac: Restore hardware time-stamping dependency on BF518
    tun: avoid owner checks on IFF_ATTACH_QUEUE
    bnx2x: move debugging code before the return
    tuntap: refuse to re-attach to different tun_struct
    ipv6: use addrconf_get_prefix_route for prefix route lookup [v2]
    ipv6: fix the noflags test in addrconf_get_prefix_route
    tcp: fix splice() and tcp collapsing interaction
    tcp: splice: fix an infinite loop in tcp_read_sock()
    net: prevent setting ttl=0 via IP_TTL
    ...

    Linus Torvalds
     

12 Jan, 2013

2 commits

  • Since:

    commit 2c60db037034d27f8c636403355d52872da92f81
    Author: Eric Dumazet
    Date: Sun Sep 16 09:17:26 2012 +0000

    net: provide a default dev->ethtool_ops

    wireless core does not correctly assign ethtool_ops.

    After alloc_netdev*() call, some cfg80211 drivers provide they own
    ethtool_ops, but some do not. For them, wireless core provide generic
    cfg80211_ethtool_ops, which is assigned in NETDEV_REGISTER notify call:

    if (!dev->ethtool_ops)
    dev->ethtool_ops = &cfg80211_ethtool_ops;

    But after Eric's commit, dev->ethtool_ops is no longer NULL (on cfg80211
    drivers without custom ethtool_ops), but points to &default_ethtool_ops.

    In order to fix the problem, provide function which will overwrite
    default_ethtool_ops and use it by wireless core.

    Signed-off-by: Stanislaw Gruszka
    Acked-by: Johannes Berg
    Acked-by: Ben Hutchings
    Signed-off-by: David S. Miller

    Stanislaw Gruszka
     
  • Pull NFS client bugfix from Trond Myklebust:

    - Fix a socket lock leak in net/sunrpc/xprt.c

    * tag 'nfs-for-3.8-3' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
    SUNRPC: Ensure we release the socket write lock if the rpc_task exits early

    Linus Torvalds
     

11 Jan, 2013

7 commits

  • commit c3ae62af8e755 (tcp: should drop incoming frames without ACK flag
    set) added a regression on the handling of RST messages.

    RST should be allowed to come even without ACK bit set. We validate
    the RST by checking the exact sequence, as requested by RFC 793 and
    5961 3.2, in tcp_validate_incoming()

    Reported-by: Eric Wong
    Signed-off-by: Eric Dumazet
    Acked-by: Neal Cardwell
    Tested-by: Eric Wong
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Fix new kernel-doc warnings in clnt.c:

    Warning(net/sunrpc/clnt.c:561): No description found for parameter 'flavor'
    Warning(net/sunrpc/clnt.c:561): Excess function parameter 'auth' description in 'rpc_clone_client_set_auth'

    Signed-off-by: Randy Dunlap
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Cc: linux-nfs@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Replace ip6_route_lookup() with addrconf_get_prefix_route() when
    looking up for a prefix route. This ensures that the connected prefix
    is looked up in the main table, and avoids the selection of other
    matching routes located in different tables as well as blackhole
    or prohibited entries.

    In addition, this fixes an Opps introduced by commit 64c6d08e (ipv6:
    del unreachable route when an addr is deleted on lo), that would occur
    when a blackhole or prohibited entry is selected by ip6_route_lookup().
    Such entries have a NULL rt6i_table argument, which is accessed by
    __ip6_del_rt() when trying to lock rt6i_table->tb6_lock.

    The function addrconf_is_prefix_route() is not used anymore and is
    removed.

    [v2] Minor indentation cleanup and log updates.

    Signed-off-by: Romain Kuntz
    Acked-by: Nicolas Dichtel
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    Romain Kuntz
     
  • The tests on the flags in addrconf_get_prefix_route() does no make
    much sense: the 'noflags' parameter contains the set of flags that
    must not match with the route flags, so the test must be done
    against 'noflags', and not against 'flags'.

    Signed-off-by: Romain Kuntz
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    Romain Kuntz
     
  • Under unusual circumstances, TCP collapse can split a big GRO TCP packet
    while its being used in a splice(socket->pipe) operation.

    skb_splice_bits() releases the socket lock before calling
    splice_to_pipe().

    [ 1081.353685] WARNING: at net/ipv4/tcp.c:1330 tcp_cleanup_rbuf+0x4d/0xfc()
    [ 1081.371956] Hardware name: System x3690 X5 -[7148Z68]-
    [ 1081.391820] cleanup rbuf bug: copied AD3BCF1 seq AD370AF rcvnxt AD3CF13

    To fix this problem, we must eat skbs in tcp_recv_skb().

    Remove the inline keyword from tcp_recv_skb() definition since
    it has three call sites.

    Reported-by: Christian Becker
    Cc: Willy Tarreau
    Signed-off-by: Eric Dumazet
    Tested-by: Willy Tarreau
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • commit 02275a2ee7c0 (tcp: don't abort splice() after small transfers)
    added a regression.

    [ 83.843570] INFO: rcu_sched self-detected stall on CPU
    [ 83.844575] INFO: rcu_sched detected stalls on CPUs/tasks: { 6} (detected by 0, t=21002 jiffies, g=4457, c=4456, q=13132)
    [ 83.844582] Task dump for CPU 6:
    [ 83.844584] netperf R running task 0 8966 8952 0x0000000c
    [ 83.844587] 0000000000000000 0000000000000006 0000000000006c6c 0000000000000000
    [ 83.844589] 000000000000006c 0000000000000096 ffffffff819ce2bc ffffffffffffff10
    [ 83.844592] ffffffff81088679 0000000000000010 0000000000000246 ffff880c4b9ddcd8
    [ 83.844594] Call Trace:
    [ 83.844596] [] ? vprintk_emit+0x1c9/0x4c0
    [ 83.844601] [] ? schedule+0x29/0x70
    [ 83.844606] [] ? tcp_splice_data_recv+0x42/0x50
    [ 83.844610] [] ? tcp_read_sock+0xda/0x260
    [ 83.844613] [] ? tcp_prequeue_process+0xb0/0xb0
    [ 83.844615] [] ? tcp_splice_read+0xc0/0x250
    [ 83.844618] [] ? sock_splice_read+0x22/0x30
    [ 83.844622] [] ? do_splice_to+0x7b/0xa0
    [ 83.844627] [] ? sys_splice+0x59c/0x5d0
    [ 83.844630] [] ? putname+0x2b/0x40
    [ 83.844633] [] ? do_sys_open+0x174/0x1e0
    [ 83.844636] [] ? system_call_fastpath+0x16/0x1b

    if recv_actor() returns 0, we should stop immediately,
    because looping wont give a chance to drain the pipe.

    Signed-off-by: Eric Dumazet
    Cc: Willy Tarreau
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Pull s390 patches from Martin Schwidefsky:
    "Add the finit_module system call, fix the irq statistics in
    /proc/stat, fix a s390dbf lockdep problem, a patch revert for a
    problem that is not 100% understood yet, and a few patches to
    fix warnings."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/pci: define read*_relaxed functions
    s390/topology: export cpu_topology
    s390/pm: export pm_power_off
    s390/pci: define isa_dma_bridge_buggy
    s390/3215: partially revert tty close handling fix
    s390/irq: count cpu restart events
    s390/irq: remove split irq fields from /proc/stat
    s390/irq: enable irq sum accounting for /proc/stat again
    s390/syscalls: wire up finit_module syscall
    s390/pci: remove dead code
    s390/smp: fix section mismatch for smp_add_present_cpu()
    s390/debug: Fix s390dbf lockdep problem in debug_(un)register_view()

    Linus Torvalds
     

10 Jan, 2013

1 commit


09 Jan, 2013

2 commits

  • A regression is introduced by the following commit:

    commit 4d52cfbef6266092d535237ba5a4b981458ab171
    Author: Eric Dumazet
    Date: Tue Jun 2 00:42:16 2009 -0700

    net: ipv4/ip_sockglue.c cleanups

    Pure cleanups

    but it is not a pure cleanup...

    - if (val != -1 && (val < 1 || val>255))
    + if (val != -1 && (val < 0 || val > 255))

    Since there is no reason provided to allow ttl=0, change it back.

    Reported-by: nitin padalia
    Cc: nitin padalia
    Cc: Eric Dumazet
    Cc: David S. Miller
    Signed-off-by: Cong Wang
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Cong Wang
     
  • If the rpc_task exits while holding the socket write lock before it has
    allocated an rpc slot, then the usual mechanism for releasing the write
    lock in xprt_release() is defeated.

    The problem occurs if the call to xprt_lock_write() initially fails, so
    that the rpc_task is put on the xprt->sending wait queue. If the task
    exits after being assigned the lock by __xprt_lock_write_func, but
    before it has retried the call to xprt_lock_and_alloc_slot(), then
    it calls xprt_release() while holding the write lock, but will
    immediately exit due to the test for task->tk_rqstp != NULL.

    Reported-by: Chris Perl
    Signed-off-by: Trond Myklebust
    Cc: stable@vger.kernel.org [>= 3.1]

    Trond Myklebust
     

08 Jan, 2013

4 commits

  • Pull networking fixes from David Miller:

    1) New sysctl ndisc_notify needs some documentation, from Hanns
    Frederic Sowa.

    2) Netfilter REJECT target doesn't set transport header of SKB
    correctly, from Mukund Jampala.

    3) Forcedeth driver needs to check for DMA mapping failures, from Larry
    Finger.

    4) brcmsmac driver can't use usleep_range while holding locks, use
    udelay instead. From Niels Ole Salscheider.

    5) Fix unregister of netlink bridge multicast database handlers, from
    Vlad Yasevich and Rami Rosen.

    6) Fix checksum calculations in netfilter's ipv6 network prefix
    translation module.

    7) Fix high order page allocation failures in netfilter xt_recent, from
    Eric Dumazet.

    8) mac802154 needs to use netif_rx_ni() instead of netif_rx() because
    mac802154_process_data() can execute in process rather than
    interrupt context. From Alexander Aring.

    9) Fix splice handling of MSG_SENDPAGE_NOTLAST, otherwise we elide one
    tcp_push() too many. From Eric Dumazet and Willy Tarreau.

    10) Fix skb->truesize tracking in XEN netfront driver, from Ian
    Campbell.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (46 commits)
    xen/netfront: improve truesize tracking
    ipv4: fix NULL checking in devinet_ioctl()
    tcp: fix MSG_SENDPAGE_NOTLAST logic
    net/ipv4/ipconfig: really display the BOOTP/DHCP server's address.
    ip-sysctl: fix spelling errors
    mac802154: fix NOHZ local_softirq_pending 08 warning
    ipv6: document ndisc_notify in networking/ip-sysctl.txt
    ath9k: Fix Kconfig for ATH9K_HTC
    netfilter: xt_recent: avoid high order page allocations
    netfilter: fix missing dependencies for the NOTRACK target
    netfilter: ip6t_NPT: fix IPv6 NTP checksum calculation
    bridge: add empty br_mdb_init() and br_mdb_uninit() definitions.
    vxlan: allow live mac address change
    bridge: Correctly unregister MDB rtnetlink handlers
    brcmfmac: fix parsing rsn ie for ap mode.
    brcmsmac: add copyright information for Canonical
    rtlwifi: rtl8723ae: Fix warning for unchecked pci_map_single() call
    rtlwifi: rtl8192se: Fix warning for unchecked pci_map_single() call
    rtlwifi: rtl8192de: Fix warning for unchecked pci_map_single() call
    rtlwifi: rtl8192ce: Fix warning for unchecked pci_map_single() call
    ...

    Linus Torvalds
     
  • Now that irq sum accounting for /proc/stat's "intr" line works again we
    have the oddity that the sum field (first field) contains only the sum
    of the second (external irqs) and third field (I/O interrupts).
    The reason for that is that these two fields are already sums of all other
    fields. So if we would sum up everything we would count every interrupt
    twice.
    This is broken since the split interrupt accounting was merged two years
    ago: 052ff461c8427629aee887ccc27478fc7373237c "[S390] irq: have detailed
    statistics for interrupt types".
    To fix this remove the split interrupt fields from /proc/stat's "intr"
    line again and only have them in /proc/interrupts.

    This restores the old behaviour, seems to be the only sane fix and mimics
    a behaviour from other architectures where /proc/interrupts also contains
    more than /proc/stat's "intr" line does.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Martin Schwidefsky

    Heiko Carstens
     
  • Pablo Neira Ayuso says:

    ====================
    The following batch contains Netfilter fixes for 3.8-rc2, they are:

    * Fix IPv6 stateless network/port translation (NPT) checksum
    calculation, from Ulrich Weber.

    * Fix for xt_recent to avoid memory allocation failures if large
    hashtables are used, from Eric Dumazet.

    * Fix missing dependencies in Kconfig for the deprecated NOTRACK,
    from myself.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Commit 0d0863b02002 ("sctp: Change defaults on cookie hmac selection")
    added a "choice" to the sctp Kconfig file. It introduced a bug which
    led to an infinite loop when while running "make oldconfig".

    The problem is that the wrong symbol was defined as the default value
    for the choice. Using the correct value gets rid of the infinite loop.

    Note: if CONFIG_SCTP_COOKIE_HMAC_SHA1=y was present in the input
    config file, both that and CONFIG_SCTP_COOKIE_HMAC_MD5=y be present
    in the generated config file.

    Signed-off-by: Alex Elder
    Signed-off-by: Linus Torvalds

    Alex Elder
     

07 Jan, 2013

1 commit

  • The NULL pointer check `!ifa' should come before its first use.

    [ Bug origin : commit fd23c3b31107e2fc483301ee923d8a1db14e53f4
    (ipv4: Add hash table of interface addresses) in linux-2.6.39 ]

    Signed-off-by: Xi Wang
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Xi Wang
     

05 Jan, 2013

7 commits

  • Up to now, the debug and info messages from the ipconfig subsytem
    claim to display the IP address of the DHCP/BOOTP server but
    display instead the IP address of the bootserver. Fix that.

    Signed-off-by: Philippe De Muyter
    Signed-off-by: David S. Miller

    Philippe De Muyter
     
  • When using nanosleep() in an userspace application we get a
    ratelimit warning

    NOHZ: local_softirq_pending 08

    for 10 times.

    This patch replaces netif_rx() with netif_rx_ni() which has
    to be used from process/softirq context.
    The process/softirq context will be called from fakelb driver.

    See linux-kernel commit 481a819 for similar fix.

    Signed-off-by: Alexander Aring
    Signed-off-by: David S. Miller

    Alexander Aring
     
  • xt_recent can try high order page allocations and this can fail.

    iptables: page allocation failure: order:9, mode:0xc0d0

    It also wastes about half the allocated space because of kmalloc()
    power-of-two roundups and struct recent_table layout.

    Use vmalloc() instead to save space and be less prone to allocation
    errors when memory is fragmented.

    Reported-by: Miroslav Kratochvil
    Reported-by: Dave Jones
    Reported-by: Harald Reindl
    Signed-off-by: Eric Dumazet
    Signed-off-by: Pablo Neira Ayuso

    Eric Dumazet
     
  • warning: (NETFILTER_XT_TARGET_NOTRACK) selects NETFILTER_XT_TARGET_CT which has unmet direct
    +dependencies (NET && INET && NETFILTER && NETFILTER_XTABLES && NF_CONNTRACK && (IP_NF_RAW ||
    +IP6_NF_RAW) && NETFILTER_ADVANCED)

    Reported-by: Randy Dunlap
    Reported-by: kbuild test robot
    Acked-by: Randy Dunlap
    Signed-off-by: Pablo Neira Ayuso

    Pablo Neira Ayuso
     
  • csum16_add() has a broken carry detection, should be:
    sum += sum < (__force u16)b;

    Instead of fixing csum16_add, remove the custom checksum
    functions and use the generic csum_add/csum_sub ones.

    Signed-off-by: Ulrich Weber
    Acked-by: Patrick McHardy
    Signed-off-by: Pablo Neira Ayuso

    Ulrich Weber
     
  • Partially revert commit (SUNRPC: add WARN_ON_ONCE for potential deadlock).
    The looping behaviour has been tracked down to a knownn issue with
    workqueues, and a workaround has now been implemented.

    Signed-off-by: Trond Myklebust
    Cc: Weston Andros Adamson
    Cc: Tejun Heo
    Cc: Bruce Fields
    Cc: stable@vger.kernel.org [>= 3.7]

    Trond Myklebust
     
  • This patch ensures that we free the rpc_task after the cleanup callbacks
    are done in order to avoid a deadlock problem that can be triggered if
    the callback needs to wait for another workqueue item to complete.

    Signed-off-by: Trond Myklebust
    Cc: Weston Andros Adamson
    Cc: Tejun Heo
    Cc: Bruce Fields
    Cc: stable@vger.kernel.org

    Trond Myklebust
     

03 Jan, 2013

11 commits

  • The maximum MTU shouldn't take the headers into account,
    the maximum MSDU size is exactly the maximum MTU.

    Signed-off-by: T Krishna Chaitanya
    Signed-off-by: Johannes Berg

    Chaitanya
     
  • When AP's SSID is hidden the BSS can appear several times in
    cfg80211's BSS list: once with a zero-length SSID that comes
    from the beacon, and once for each SSID from probe reponses.

    Since the mac80211 stores its data in ieee80211_bss which
    is embedded into cfg80211_bss, mac80211's data will be
    duplicated too.

    This becomes a problem when a driver needs the dtim_period
    since this data exists only in the beacon's instance in
    cfg80211 bss table which isn't the instance that is used
    when associating.

    Remove the DTIM period from the BSS table and track it
    explicitly to avoid this problem.

    Cc: stable@vger.kernel.org
    Tested-by: Efi Tubul
    Signed-off-by: Emmanuel Grumbach
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • This is a very old bug, but there's nothing that prevents the
    timer from running while the module is being removed when we
    only do del_timer() instead of del_timer_sync().

    The timer should normally not be running at this point, but
    it's not clearly impossible (or we could just remove this.)

    Cc: stable@vger.kernel.org
    Tested-by: Ben Greear
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Unfortunately, commit b22cfcfcae5b, intended to speed up roaming
    by avoiding the synchronize_rcu() broke AP/mesh modes as it moved
    some code into that work item that will still call into the driver
    at a time where it's no longer expected to handle this: after the
    AP or mesh has been stopped.

    To fix this problem remove the per-station work struct, maintain a
    station cleanup list instead and flush this list when stations are
    flushed. To keep this patch smaller for stable, do this when the
    stations are flushed (sta_info_flush()). This unfortunately brings
    back the original roaming delay; I'll fix that again in a separate
    patch.

    Also, Ben reported that the original commit could sometimes (with
    many interfaces) cause long delays when an interface is set down,
    due to blocking on flush_workqueue(). Since we now maintain the
    cleanup list, this particular change of the original patch can be
    reverted.

    Cc: stable@vger.kernel.org [3.7]
    Reported-by: Ben Greear
    Tested-by: Ben Greear
    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • The array of rmc_entrys is redundant since only the
    list_head is used. Make this an array of list_heads
    instead and save ~6k per vif at runtime :D

    Signed-off-by: Thomas Pedersen
    Signed-off-by: Johannes Berg

    Thomas Pedersen
     
  • Make AP_VLAN type interfaces track the AP master channel
    context so they have one assigned for the various lookups.
    Don't give them their own refcount etc. since they're just
    slaves to the AP master.

    Signed-off-by: Johannes Berg

    Johannes Berg
     
  • Signed-off-by: Felix Fietkau
    [change to flush stations with AP flush in second loop]
    Signed-off-by: Johannes Berg

    Felix Fietkau
     
  • Do not scan on no-IBSS and disabled channels in IBSS mode. Doing this
    can trigger Microcode errors on iwlwifi and iwlegacy drivers.

    Also rename ieee80211_request_internal_scan() function since it is only
    used in IBSS mode and simplify calling it from ieee80211_sta_find_ibss().

    This patch should address:
    https://bugzilla.redhat.com/show_bug.cgi?id=883414
    https://bugzilla.kernel.org/show_bug.cgi?id=49411

    Reported-by: Jesse Kahtava
    Reported-by: Mikko Rapeli
    Cc: stable@vger.kernel.org
    Signed-off-by: Stanislaw Gruszka
    Signed-off-by: Johannes Berg

    Stanislaw Gruszka
     
  • This patch adds empty br_mdb_init() and br_mdb_uninit() definitions in
    br_private.h to avoid build failure when CONFIG_BRIDGE_IGMP_SNOOPING is not set.
    These methods were moved from br_multicast.c to br_netlink.c by
    commit 3ec8e9f085bcaef0de1077f555c2c5102c223390

    Signed-off-by: Rami Rosen
    Signed-off-by: David S. Miller

    Rami Rosen
     
  • Commit 63233159fd4e596568f5f168ecb0879b61631d47:
    bridge: Do not unregister all PF_BRIDGE rtnl operations
    introduced a bug where a removal of a single bridge from a
    multi-bridge system would remove MDB netlink handlers.
    The handlers should only be removed once all bridges are gone, but
    since we don't keep track of the number of bridge interfaces, it's
    simpler to do it when the bridge module is unloaded. To make it
    consistent, move the registration code into module initialization
    code path.

    Signed-off-by: Vlad Yasevich
    Signed-off-by: David S. Miller

    Vlad Yasevich
     
  • Pull Ceph fixes from Sage Weil:
    "Two of Alex's patches deal with a race when reseting server
    connections for open RBD images, one demotes some non-fatal BUGs to
    WARNs, and my patch fixes a protocol feature bit failure path."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    libceph: fix protocol feature mismatch failure path
    libceph: WARN, don't BUG on unexpected connection states
    libceph: always reset osds when kicking
    libceph: move linger requests sooner in kick_requests()

    Linus Torvalds
     

29 Dec, 2012

1 commit

  • Pablo Neira Ayuso says:

    ====================
    The following batch contains Netfilter fixes for 3.8-rc1. They are
    a mixture of old bugs that have passed unnoticed (I'll pass these to
    stable) and more fresh ones from the previous merge window, they are:

    * Fix for MAC address in 6in4 tunnels via NFLOG that results in ulogd
    showing up wrong address, from Bob Hockney.

    * Fix a comment in nf_conntrack_ipv6, from Florent Fourcot.

    * Fix a leak an error path in ctnetlink while creating an expectation,
    from Jesper Juhl.

    * Fix missing ICMP time exceeded in the IPv6 defragmentation code, from
    Haibo Xi.

    * Fix inconsistent handling of routing changes in MASQUERADE for the
    new connections case, from Andrew Collins.

    * Fix a missing skb_reset_transport in ip[6]t_REJECT that leads to
    crashes in the ixgbe driver (since it seems to access the transport
    header with TSO enabled), from Mukund Jampala.

    * Recover obsoleted NOTRACK target by including it into the CT and spot
    a warning via printk about being obsoleted. Many people don't check the
    scheduled to be removal file under Documentation, so we follow some
    less agressive approach to kill this in a year or so. Spotted by Florian
    Westphal, patch from myself.

    * Fix race condition in xt_hashlimit that allows to create two or more
    entries, from myself.

    * Fix crash if the CT is used due to the recently added facilities to
    consult the dying and unconfirmed conntrack lists, from myself.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     

28 Dec, 2012

3 commits

  • We should not set con->state to CLOSED here; that happens in
    ceph_fault() in the caller, where it first asserts that the state
    is not yet CLOSED. Avoids a BUG when the features don't match.

    Since the fail_protocol() has become a trivial wrapper, replace
    calls to it with direct calls to reset_connection().

    Signed-off-by: Sage Weil
    Reviewed-by: Alex Elder

    Sage Weil
     
  • A number of assertions in the ceph messenger are implemented with
    BUG_ON(), killing the system if connection's state doesn't match
    what's expected. At this point our state model is (evidently) not
    well understood enough for these assertions to trigger a BUG().
    Convert all BUG_ON(con->state...) calls to be WARN_ON(con->state...)
    so we learn about these issues without killing the machine.

    We now recognize that a connection fault can occur due to a socket
    closure at any time, regardless of the state of the connection. So
    there is really nothing we can assert about the state of the
    connection at that point so eliminate that assertion.

    Reported-by: Ugis
    Tested-by: Ugis
    Signed-off-by: Alex Elder
    Reviewed-by: Sage Weil

    Alex Elder
     
  • When ceph_osdc_handle_map() is called to process a new osd map,
    kick_requests() is called to ensure all affected requests are
    updated if necessary to reflect changes in the osd map. This
    happens in two cases: whenever an incremental map update is
    processed; and when a full map update (or the last one if there is
    more than one) gets processed.

    In the former case, the kick_requests() call is followed immediately
    by a call to reset_changed_osds() to ensure any connections to osds
    affected by the map change are reset. But for full map updates
    this isn't done.

    Both cases should be doing this osd reset.

    Rather than duplicating the reset_changed_osds() call, move it into
    the end of kick_requests().

    Signed-off-by: Alex Elder
    Reviewed-by: Sage Weil

    Alex Elder