Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: isci-fixes

Oct 06, 2011

  1. Linus Torvalds

    Merge git://github.com/davem330/net

    * git://github.com/davem330/net:
      net: fix typos in Documentation/networking/scaling.txt
      bridge: leave carrier on for empty bridge
      netfilter: Use proper rwlock init function
      tcp: properly update lost_cnt_hint during shifting
      tcp: properly handle md5sig_pool references
      macvlan/macvtap: Fix unicast between macvtap interfaces in bridge mode
    authored October 06, 2011
  2. paulepanter

    x86/PCI: use host bridge _CRS info on ASUS M2V-MX SE

    In summary, this DMI quirk uses the _CRS info by default for the ASUS
    M2V-MX SE by turning on `pci=use_crs` and is similar to the quirk
    added by commit 2491762 ("x86/PCI: use host bridge _CRS info on
    ASRock ALiveSATA2-GLAN") whose commit message should be read for further
    information.
    
    Since commit 3e3da00 ("x86/pci: AMD one chain system to use pci
    read out res") Linux gives the following oops:
    
        parport0: PC-style at 0x378, irq 7 [PCSPP,TRISTATE]
        HDA Intel 0000:20:01.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
        HDA Intel 0000:20:01.0: setting latency timer to 64
        BUG: unable to handle kernel paging request at ffffc90011c08000
        IP: [<ffffffffa0578402>] azx_probe+0x3ad/0x86b [snd_hda_intel]
        PGD 13781a067 PUD 13781b067 PMD 1300ba067 PTE 800000fd00000173
        Oops: 0009 [#1] SMP
        last sysfs file: /sys/module/snd_pcm/initstate
        CPU 0
        Modules linked in: snd_hda_intel(+) snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss snd_pcm snd_seq_midi snd_rawmidi snd_seq_midi_event tpm_tis tpm snd_seq tpm_bios psmouse parport_pc snd_timer snd_seq_device parport processor evdev snd i2c_viapro thermal_sys amd64_edac_mod k8temp i2c_core soundcore shpchp pcspkr serio_raw asus_atk0110 pci_hotplug edac_core button snd_page_alloc edac_mce_amd ext3 jbd mbcache sha256_generic cryptd aes_x86_64 aes_generic cbc dm_crypt dm_mod raid1 md_mod usbhid hid sg sd_mod crc_t10dif sr_mod cdrom ata_generic uhci_hcd sata_via pata_via libata ehci_hcd usbcore scsi_mod via_rhine mii nls_base [last unloaded: scsi_wait_scan]
        Pid: 1153, comm: work_for_cpu Not tainted 2.6.37-1-amd64 #1 M2V-MX SE/System Product Name
        RIP: 0010:[<ffffffffa0578402>]  [<ffffffffa0578402>] azx_probe+0x3ad/0x86b [snd_hda_intel]
        RSP: 0018:ffff88013153fe50  EFLAGS: 00010286
        RAX: ffffc90011c08000 RBX: ffff88013029ec00 RCX: 0000000000000006
        RDX: 0000000000000000 RSI: 0000000000000246 RDI: 0000000000000246
        RBP: ffff88013341d000 R08: 0000000000000000 R09: 0000000000000040
        R10: 0000000000000286 R11: 0000000000003731 R12: ffff88013029c400
        R13: 0000000000000000 R14: 0000000000000000 R15: ffff88013341d090
        FS:  0000000000000000(0000) GS:ffff8800bfc00000(0000) knlGS:00000000f7610ab0
        CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
        CR2: ffffc90011c08000 CR3: 0000000132f57000 CR4: 00000000000006f0
        DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
        DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
        Process work_for_cpu (pid: 1153, threadinfo ffff88013153e000, task ffff8801303c86c0)
        Stack:
         0000000000000005 ffffffff8123ad65 00000000000136c0 ffff88013029c400
         ffff8801303c8998 ffff88013341d000 ffff88013341d090 ffff8801322d9dc8
         ffff88013341d208 0000000000000000 0000000000000000 ffffffff811ad232
        Call Trace:
         [<ffffffff8123ad65>] ? __pm_runtime_set_status+0x162/0x186
         [<ffffffff811ad232>] ? local_pci_probe+0x49/0x92
         [<ffffffff8105afc5>] ? do_work_for_cpu+0x0/0x1b
         [<ffffffff8105afc5>] ? do_work_for_cpu+0x0/0x1b
         [<ffffffff8105afd0>] ? do_work_for_cpu+0xb/0x1b
         [<ffffffff8105fd3f>] ? kthread+0x7a/0x82
         [<ffffffff8100a824>] ? kernel_thread_helper+0x4/0x10
         [<ffffffff8105fcc5>] ? kthread+0x0/0x82
         [<ffffffff8100a820>] ? kernel_thread_helper+0x0/0x10
        Code: f4 01 00 00 ef 31 f6 48 89 df e8 29 dd ff ff 85 c0 0f 88 2b 03 00 00 48 89 ef e8 b4 39 c3 e0 8b 7b 40 e8 fc 9d b1 e0 48 8b 43 38 <66> 8b 10 66 89 14 24 8b 43 14 83 e8 03 83 f8 01 77 32 31 d2 be
        RIP  [<ffffffffa0578402>] azx_probe+0x3ad/0x86b [snd_hda_intel]
         RSP <ffff88013153fe50>
        CR2: ffffc90011c08000
        ---[ end trace 8d1f3ebc136437fd ]---
    
    Trusting the ACPI _CRS information (`pci=use_crs`) fixes this problem.
    
        $ dmesg | grep -i crs # with the quirk
        PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
    
    The match has to be against the DMI board entries though since the vendor entries are not populated.
    
        DMI: System manufacturer System Product Name/M2V-MX SE, BIOS 0304    10/30/2007
    
    This quirk should be removed when `pci=use_crs` is enabled for machines
    from 2006 or earlier or some other solution is implemented.
    
    Using coreboot [1] with this board the problem does not exist but this
    quirk also does not affect it either. To be safe though the check is
    tightened to only take effect when the BIOS from American Megatrends is
    used.
    
            15:13 < ruik> but coreboot does not need that
            15:13 < ruik> because i have there only one root bus
            15:13 < ruik> the audio is behind a bridge
    
            $ sudo dmidecode
            BIOS Information
                    Vendor: American Megatrends Inc.
                    Version: 0304
                    Release Date: 10/30/2007
    
    [1] http://www.coreboot.org/
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=30552
    
    Cc: stable@kernel.org (2.6.34)
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: x86@kernel.org
    Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    authored August 31, 2011 torvalds committed October 06, 2011
  3. Benjamin Poirier

    net: fix typos in Documentation/networking/scaling.txt

    The second hunk fixes rps_sock_flow_table but has to re-wrap the paragraph.
    
    Signed-off-by: Benjamin Poirier <benjamin.poirier@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored October 04, 2011 davem330 committed October 06, 2011
  4. bridge: leave carrier on for empty bridge

    This resolves a regression seen by some users of bridging.
    Some users use the bridge like a dummy device.
    They expect to be able to put an IPv6 address on the device
    with no ports attached. Although there are better ways of doing
    this, there is no reason to not allow it.
    
    Note: the bridge still will reflect the state of ports in the
    bridge if there are any added.
    
    Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored October 03, 2011 davem330 committed October 06, 2011
  5. Linus Torvalds

    Merge branch 'for-linus' of http://people.redhat.com/agk/git/linux-dm

    * 'for-linus' of http://people.redhat.com/agk/git/linux-dm:
      dm crypt: always disable discard_zeroes_data
      dm: raid fix write_mostly arg validation
      dm table: avoid crash if integrity profile changes
      dm: flakey fix corrupt_bio_byte error path
    authored October 06, 2011
  6. Linus Torvalds

    Merge branch 'for-linus' of git://neil.brown.name/md

    * 'for-linus' of git://neil.brown.name/md:
      md: Avoid waking up a thread after it has been freed.
    authored October 06, 2011

Oct 05, 2011

  1. netfilter: Use proper rwlock init function

    Replace the open coded initialization with the init function.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Hans Schillstrom <hans.schillstrom@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored October 05, 2011 davem330 committed October 05, 2011
  2. Linus Torvalds

    Merge branch 'for-linus' of git://github.com/dtor/input

    * 'for-linus' of git://github.com/dtor/input:
      Input: wacom - revert "Cintiq 21UX2 does not have menu strips"
    authored October 05, 2011
  3. Linus Torvalds

    Merge git://bedivere.hansenpartnership.com/git/scsi-rc-fixes-2.6

    * git://bedivere.hansenpartnership.com/git/scsi-rc-fixes-2.6:
      [SCSI] libsas: fix panic when single phy is disabled on a wide port
      [SCSI] qla2xxx: Fix crash in qla2x00_abort_all_cmds() on unload
    authored October 05, 2011
  4. Jason Gerecke

    Input: wacom - revert "Cintiq 21UX2 does not have menu strips"

    This reverts commit 71c86ce.
    The 21UX2 does have touchstrips, but they are in a somewhat-
    hidden location.
    
    Signed-off-by: Jason Gerecke <killertofu@gmail.com>
    Acked-by: Ping Cheng <pinglinux@gmail.com>
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
    authored October 04, 2011 dtor committed October 04, 2011
  5. Yan, Zheng

    tcp: properly update lost_cnt_hint during shifting

    lost_skb_hint is used by tcp_mark_head_lost() to mark the first unhandled skb.
    lost_cnt_hint is the number of packets or sacked packets before the lost_skb_hint;
    When shifting a skb that is before the lost_skb_hint, if tcp_is_fack() is ture,
    the skb has already been counted in the lost_cnt_hint; if tcp_is_fack() is false,
    tcp_sacktag_one() will increase the lost_cnt_hint. So tcp_shifted_skb() does not
    need to adjust the lost_cnt_hint by itself. When shifting a skb that is equal to
    lost_skb_hint, the shifted packets will not be counted by tcp_mark_head_lost().
    So tcp_shifted_skb() should adjust the lost_cnt_hint even tcp_is_fack(tp) is true.
    
    Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored October 02, 2011 davem330 committed October 04, 2011
  6. Yan, Zheng

    tcp: properly handle md5sig_pool references

    tcp_v4_clear_md5_list() assumes that multiple tcp md5sig peers
    only hold one reference to md5sig_pool. but tcp_v4_md5_do_add()
    increases use count of md5sig_pool for each peer. This patch
    makes tcp_v4_md5_do_add() only increases use count for the first
    tcp md5sig peer.
    
    Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored September 29, 2011 davem330 committed October 04, 2011
  7. David Ward

    macvlan/macvtap: Fix unicast between macvtap interfaces in bridge mode

    Packets should always be forwarded to the lowerdev using dev_forward_skb.
    vlan->forward is for packets being forwarded directly to another macvlan/
    macvtap device (used for multicast in bridge mode).
    
    Reported-and-tested-by: Shlomo Pongratz <shlomop@mellanox.com>
    Signed-off-by: David Ward <david.ward@ll.mit.edu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored September 18, 2011 davem330 committed October 04, 2011
  8. Linus Torvalds

    Linux 3.1-rc9

    authored October 04, 2011

Oct 04, 2011

  1. Linus Torvalds

    Merge git://github.com/davem330/net

    * git://github.com/davem330/net:
      pch_gbe: Fixed the issue on which a network freezes
      pch_gbe: Fixed the issue on which PC was frozen when link was downed.
      make PACKET_STATISTICS getsockopt report consistently between ring and non-ring
      net: xen-netback: correctly restart Tx after a VM restore/migrate
      bonding: properly stop queuing work when requested
      can bcm: fix incomplete tx_setup fix
      RDSRDMA: Fix cleanup of rds_iw_mr_pool
      net: Documentation: Fix type of variables
      ibmveth: Fix oops on request_irq failure
      ipv6: nullify ipv6_ac_list and ipv6_fl_list when creating new socket
      cxgb4: Fix EEH on IBM P7IOC
      can bcm: fix tx_setup off-by-one errors
      MAINTAINERS: tehuti: Alexander Indenbaum's address bounces
      dp83640: reduce driver noise
      ptp: fix L2 event message recognition
    authored October 04, 2011
  2. Linus Torvalds

    Merge branch 'fix/asoc' of git://github.com/tiwai/sound

    * 'fix/asoc' of git://github.com/tiwai/sound:
      ASoC: omap_mcpdm_remove cannot be __devexit
      ASoC: Fix setting update bits for WM8753_LADC and WM8753_RADC
      ASoC: use a valid device for dev_err() in Zylonite
    authored October 04, 2011
  3. Linus Torvalds

    Merge branch 'drm-fixes' of git://people.freedesktop.org/~airlied/linux

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
      drm/radeon/kms: fix channel_remap setup (v2)
      drm/radeon: Set cursor x/y to 0 when x/yorigin > 0.
      drm/radeon: Update AVIVO cursor coordinate origin before x/yorigin calculation.
      drm/radeon: Simplify cursor x/yorigin calculation.
      drm/radeon/kms: fix cursor image off-by-one error
      drm/radeon/kms: Fix logic error in DP HPD handler
      drm/radeon/kms: add retry limits for native DP aux defer
      drm/radeon/kms: fix regression in DP aux defer handling
    authored October 04, 2011
  4. Linus Torvalds

    Merge branch 'spi/merge' of git://git.secretlab.ca/git/linux-2.6

    * 'spi/merge' of git://git.secretlab.ca/git/linux-2.6:
      spi-topcliff-pch: Fix overrun issue
      spi-topcliff-pch: Add recovery processing in case FIFO overrun error occurs
      spi-topcliff-pch: Fix CPU read complete condition issue
      spi-topcliff-pch: Fix SSN Control issue
      spi-topcliff-pch: add tx-memory clear after complete transmitting
    authored October 04, 2011
  5. PCI: Disable MPS configuration by default

    Add the ability to disable PCI-E MPS turning and using the BIOS
    configured MPS defaults.  Due to the number of issues recently
    discovered on some x86 chipsets, make this the default behavior.
    
    Also, add the option for peer to peer DMA MPS configuration.  Peer to
    peer DMA is outside the scope of this patch, but MPS configuration could
    prevent it from working by having the MPS on one root port different
    than the MPS on another.  To work around this, simply make the system
    wide MPS the smallest possible value (128B).
    
    Signed-off-by: Jon Mason <mason@myri.com>
    Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    authored October 03, 2011 torvalds committed October 04, 2011
  6. drm/radeon/kms: fix channel_remap setup (v2)

    Most asics just use the hw default value which requires
    no explicit programming.  For those that need a different
    value, the vbios will program it properly.  As such,
    there's no need to program these registers explicitly
    in the driver.  Changing MC_SHARED_CHREMAP requires a reload
    of all data in vram otherwise its contents will be scambled.
    
    Fixes:
    https://bugs.freedesktop.org/show_bug.cgi?id=40103
    
    v2: drop now unused channel_remap functions.
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Cc: stable@kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    authored October 04, 2011 Dave Airlie committed October 04, 2011
  7. spi-topcliff-pch: Fix overrun issue

    We found that adding load, Rx data sometimes drops.(with DMA transfer mode)
    The cause is that before starting Rx-DMA processing, Tx-DMA processing starts.
    This causes FIFO overrun occurs.
    
    This patch fixes the issue by modifying FIFO tx-threshold and DMA descriptor
    size like below.
    
                          Current                   this patch
    Rx-descriptor   4Byte+12Byte*341    -->    12Byte*340-4Byte-12Byte
    Rx-threshold                   (Not modified)
    Tx-descriptor   4Byte+12Byte*341    -->    16Byte-12Byte*340
    Rx-threshold    12Byte              -->    2Byte
    
    Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    authored September 06, 2011 Grant Likely committed October 04, 2011
  8. spi-topcliff-pch: Add recovery processing in case FIFO overrun error …

    …occurs
    
    Add recovery processing in case FIFO overrun error occurs with DMA transfer mode.
    
    Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    authored September 06, 2011 Grant Likely committed October 04, 2011
  9. spi-topcliff-pch: Fix CPU read complete condition issue

    We found Rx data sometimes drops.(with non-DMA transfer mode)
    The cause is read complete condition is not true.
    
    This patch fixes the issue.
    
    Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    authored September 06, 2011 Grant Likely committed October 04, 2011
  10. spi-topcliff-pch: Fix SSN Control issue

    During processing 1 command/data series,
    SSN should keep LOW.
    However, currently, SSN becomes HIGH.
    This patch fixes the issue.
    
    Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    authored September 06, 2011 Grant Likely committed October 04, 2011
  11. spi-topcliff-pch: add tx-memory clear after complete transmitting

    Currently, in case of reading date from SPI flash,
    command is sent twice.
    The cause is that tx-memory clear processing is missing .
    This patch adds the tx-momory clear processing.
    
    Signed-off-by: Tomoya MORINAGA <tomoya-linux@dsn.okisemi.com>
    Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
    authored September 06, 2011 Grant Likely committed October 04, 2011
  12. Takashi Iwai

    lis3: fix regression of HP DriveGuard with 8bit chip

    Commit 2a7fade ("hwmon: lis3: Power on corrections") caused a
    regression on HP laptops with 8bit chip.  Writing CTRL2_BOOT_8B bit seems
    clearing the BIOS setup, and no proper interrupt for DriveGuard will be
    triggered any more.
    
    Since the init code there is basically only for embedded devices, put a
    pdata check so that the problematic initialization will be skipped for
    hp_accel stuff.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Cc: Eric Piel <eric.piel@tremplin-utc.net>
    Cc: Samu Onkalo <samu.p.onkalo@nokia.com>
    Cc: <stable@kernel.org>
    Signed-off-by: Andrew Morton <akpm@google.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    authored October 03, 2011 torvalds committed October 03, 2011

Oct 03, 2011

  1. Linus Torvalds

    Merge branch 'hwmon-for-linus' of git://github.com/groeck/linux

    * 'hwmon-for-linus' of git://github.com/groeck/linux:
      hwmon: (coretemp) Avoid leaving around dangling pointer
      hwmon: (coretemp) Fixup platform device ID change
    authored October 03, 2011
  2. Linus Torvalds

    Merge git://github.com/davem330/ide

    * git://github.com/davem330/ide:
      ide-disk: Fix request requeuing
    authored October 03, 2011
  3. Linus Torvalds

    Merge branch 'btrfs-3.0' of git://github.com/chrismason/linux

    * 'btrfs-3.0' of git://github.com/chrismason/linux:
      Btrfs: force a page fault if we have a shorty copy on a page boundary
    authored October 03, 2011
  4. ide-disk: Fix request requeuing

    Simon Kirby reported that on his RAID setup with idedisk underneath
    the box OOMs after a couple of days of runtime. Running with
    CONFIG_DEBUG_KMEMLEAK pointed to idedisk_prep_fn() which unconditionally
    allocates an ide_cmd struct. However, ide_requeue_and_plug() can be
    called more than once per request, either from the request issue or the
    IRQ handler path and do blk_peek_request() ends up in idedisk_prep_fn()
    repeatedly, allocating a struct ide_cmd everytime and "forgetting" the
    previous pointer.
    
    Make sure the code reuses the old allocated chunk.
    
    Reported-and-tested-by: Simon Kirby <sim@hostway.ca>
    Cc: <stable@kernel.org> [ 39.x, 3.0.x ]
    Link: http://marc.info/?l=linux-kernel&m=131667641517919
    Link: http://lkml.kernel.org/r/20110922072643.GA27232@hostway.ca
    Signed-off-by: Borislav Petkov <bp@alien8.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored October 03, 2011 davem330 committed October 03, 2011
  5. pch_gbe: Fixed the issue on which a network freezes

    The pch_gbe driver has an issue which a network stops,
    when receiving traffic is high.
    In the case, The link down and up are necessary to return a network.
    
    This patch fixed this issue.
    
    Signed-off-by: Toshiharu Okada <toshiharu-linux@dsn.okisemi.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored September 25, 2011 davem330 committed October 03, 2011
  6. pch_gbe: Fixed the issue on which PC was frozen when link was downed.

    When a link was downed during network use,
    there is an issue on which PC freezes.
    
    This patch fixed this issue.
    
    Signed-off-by: Toshiharu Okada <toshiharu-linux@dsn.okisemi.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored September 25, 2011 davem330 committed October 03, 2011
  7. make PACKET_STATISTICS getsockopt report consistently between ring an…

    …d non-ring
    
    This is a minor change.
    
    Up until kernel 2.6.32, getsockopt(fd, SOL_PACKET, PACKET_STATISTICS,
    ...) would return total and dropped packets since its last invocation. The
    introduction of socket queue overflow reporting [1] changed drop
    rate calculation in the normal packet socket path, but not when using a
    packet ring. As a result, the getsockopt now returns different statistics
    depending on the reception method used. With a ring, it still returns the
    count since the last call, as counts are incremented in tpacket_rcv and
    reset in getsockopt. Without a ring, it returns 0 if no drops occurred
    since the last getsockopt and the total drops over the lifespan of
    the socket otherwise. The culprit is this line in packet_rcv, executed
    on a drop:
    
    drop_n_acct:
            po->stats.tp_drops = atomic_inc_return(&sk->sk_drops);
    
    As it shows, the new drop number it taken from the socket drop counter,
    which is not reset at getsockopt. I put together a small example
    that demonstrates the issue [2]. It runs for 10 seconds and overflows
    the queue/ring on every odd second. The reported drop rates are:
    ring: 16, 0, 16, 0, 16, ...
    non-ring: 0, 15, 0, 30, 0, 46, 0, 60, 0 , 74.
    
    Note how the even ring counts monotonically increase. Because the
    getsockopt adds tp_drops to tp_packets, total counts are similarly
    reported cumulatively. Long story short, reinstating the original code, as
    the below patch does, fixes the issue at the cost of additional per-packet
    cycles. Another solution that does not introduce per-packet overhead
    is be to keep the current data path, record the value of sk_drops at
    getsockopt() at call N in a new field in struct packetsock and subtract
    that when reporting at call N+1. I'll be happy to code that, instead,
    it's just more messy.
    
    [1] http://patchwork.ozlabs.org/patch/35665/
    [2] http://kernel.googlecode.com/files/test-packetsock-getstatistics.c
    
    Signed-off-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored September 30, 2011 davem330 committed October 03, 2011
  8. David Vrabel

    net: xen-netback: correctly restart Tx after a VM restore/migrate

    If a VM is saved and restored (or migrated) the netback driver will no
    longer process any Tx packets from the frontend.  xenvif_up() does not
    schedule the processing of any pending Tx requests from the front end
    because the carrier is off.  Without this initial kick the frontend
    just adds Tx requests to the ring without raising an event (until the
    ring is full).
    
    This was caused by 4710304 (net:
    xen-netback: convert to hw_features) which reordered the calls to
    xenvif_up() and netif_carrier_on() in xenvif_connect().
    
    Signed-off-by: David Vrabel <david.vrabel@citrix.com>
    Cc: Ian Campbell <ian.campbell@citrix.com>
    Acked-by: Ian Campbell <ian.campbell@citrix.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored September 30, 2011 davem330 committed October 03, 2011
  9. bonding: properly stop queuing work when requested

    During a test where a pair of bonding interfaces using ARP monitoring
    were both brought up and torn down (with an rmmod) repeatedly, a panic
    in the timer code was noticed.  I tracked this down and determined that
    any of the bonding functions that ran as workqueue handlers and requeued
    more work might not properly exit when the module was removed.
    
    There was a flag protected by the bond lock called kill_timers that is
    set when the interface goes down or the module is removed, but many of
    the functions that monitor link status now unlock the bond lock to take
    rtnl first.  There is a chance that another CPU running the rmmod could
    get the lock and set kill_timers after the first check has passed.
    
    This patch does not allow any function to queue work that will make
    itself run unless kill_timers is not set.  I also noticed while doing
    this work that bond_resend_igmp_join_requests did not have a check for
    kill_timers, so I added the needed call there as well.
    
    Signed-off-by: Andy Gospodarek <andy@greyhouse.net>
    Reported-by: Liang Zheng <lzheng@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    authored September 23, 2011 davem330 committed October 03, 2011
Something went wrong with that request. Please try again.