1. 13 10月, 2007 7 次提交
  2. 12 10月, 2007 33 次提交
    • L
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc · e8690861
      Linus Torvalds 提交于
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (408 commits)
        [POWERPC] Add memchr() to the bootwrapper
        [POWERPC] Implement logging of unhandled signals
        [POWERPC] Add legacy serial support for OPB with flattened device tree
        [POWERPC] Use 1TB segments
        [POWERPC] XilinxFB: Allow fixed framebuffer base address
        [POWERPC] XilinxFB: Add support for custom screen resolution
        [POWERPC] XilinxFB: Use pdata to pass around framebuffer parameters
        [POWERPC] PCI: Add 64-bit physical address support to setup_indirect_pci
        [POWERPC] 4xx: Kilauea defconfig file
        [POWERPC] 4xx: Kilauea DTS
        [POWERPC] 4xx: Add AMCC Kilauea eval board support to platforms/40x
        [POWERPC] 4xx: Add AMCC 405EX support to cputable.c
        [POWERPC] Adjust TASK_SIZE on ppc32 systems to 3GB that are capable
        [POWERPC] Use PAGE_OFFSET to tell if an address is user/kernel in SW TLB handlers
        [POWERPC] 85xx: Enable FP emulation in MPC8560 ADS defconfig
        [POWERPC] 85xx: Killed <asm/mpc85xx.h>
        [POWERPC] 85xx: Add cpm nodes for 8541/8555 CDS
        [POWERPC] 85xx: Convert mpc8560ads to the new CPM binding.
        [POWERPC] mpc8272ads: Remove muram from the CPM reg property.
        [POWERPC] Make clockevents work on PPC601 processors
        ...
      
      Fixed up conflict in Documentation/powerpc/booting-without-of.txt manually.
      e8690861
    • L
      Merge branch 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev · 54730742
      Linus Torvalds 提交于
      * 'upstream-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev:
        [libata] sata_mv: more S/G fixes
      54730742
    • J
      [libata] sata_mv: more S/G fixes · 6c08772e
      Jeff Garzik 提交于
      * corruption fix: we only want the lower 16 bits of length (0 == 64kb)
      
      * ditto: the upper layer sets max-phys-segments to LIBATA_MAX_PRD,
        so we must reset it to own hw-specific length.
      
      * delete unused mv_fill_sg() return value
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      6c08772e
    • J
      JFS: fix bio-related build breakage · e30408b2
      Jeff Garzik 提交于
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      e30408b2
    • D
      [POWERPC] Add memchr() to the bootwrapper · 9b4b8feb
      David Gibson 提交于
      This adds a memchr() implementation to the bootwrapper, which will
      be needed when libfdt is merged in.
      Signed-off-by: NDavid Gibson <david@gibson.dropbear.id.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      9b4b8feb
    • O
      [POWERPC] Implement logging of unhandled signals · d0c3d534
      Olof Johansson 提交于
      Implement show_unhandled_signals sysctl + support to print when a process
      is killed due to unhandled signals just as i386 and x86_64 does.
      
      Default to having it off, unlike x86 that defaults on.
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      d0c3d534
    • V
      [POWERPC] Add legacy serial support for OPB with flattened device tree · b63db45c
      Valentine Barshak 提交于
      Currently find_legacy_serial_ports() can find no serial ports on the
      OPB with flattened device tree.  Thus no legacy boot console can be
      initialized.  Just the early udbg console works, which is initialized
      with udbg_init_44x_as1 on the UART's physical address specified in
      kernel config.  This happens because we look for ns16750 serial
      devices only and expect opb node to have a device type property.  This
      patch makes it look for ns16550-compatible devices and use
      of_device_is_compatible() for opb in case device type is not
      specified.
      Signed-off-by: NValentine Barshak <vbarshak@ru.mvista.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b63db45c
    • P
      [POWERPC] Use 1TB segments · 1189be65
      Paul Mackerras 提交于
      This makes the kernel use 1TB segments for all kernel mappings and for
      user addresses of 1TB and above, on machines which support them
      (currently POWER5+, POWER6 and PA6T).
      
      We detect that the machine supports 1TB segments by looking at the
      ibm,processor-segment-sizes property in the device tree.
      
      We don't currently use 1TB segments for user addresses < 1T, since
      that would effectively prevent 32-bit processes from using huge pages
      unless we also had a way to revert to using 256MB segments.  That
      would be possible but would involve extra complications (such as
      keeping track of which segment size was used when HPTEs were inserted)
      and is not addressed here.
      
      Parts of this patch were originally written by Ben Herrenschmidt.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      1189be65
    • G
      [POWERPC] XilinxFB: Allow fixed framebuffer base address · 287e5d6f
      Grant Likely 提交于
      Allow a fixed framebuffer address to be assigned to the framebuffer device
      instead of allocating the framebuffer from the consistent memory pool.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      287e5d6f
    • G
      [POWERPC] XilinxFB: Add support for custom screen resolution · b4d6a726
      Grant Likely 提交于
      Some custom implementations of the xilinx fb can use resolutions other
      than 640x480.  This patch allows the resolution to be specified in the
      device tree or the xilinx_platform_data structure.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      b4d6a726
    • G
      [POWERPC] XilinxFB: Use pdata to pass around framebuffer parameters · 01ba1e9d
      Grant Likely 提交于
      The call to xilinxfb_assign is getting unwieldy when adding features
      to the Xilinx framebuffer driver.  Change xilinxfb_assign() to accept
      a pointer to a xilinxfb_platform_data structure to prepare for adding
      additition configuration options.
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      01ba1e9d
    • V
      [POWERPC] PCI: Add 64-bit physical address support to setup_indirect_pci · d94bad82
      Valentine Barshak 提交于
      Add 64-bit physical address support to setup_indirect_pci().
      Signed-off-by: NValentine Barshak <vbarshak@ru.mvista.com>
      Acked-by: NKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      d94bad82
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband · ce9d3c9a
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (87 commits)
        mlx4_core: Fix section mismatches
        IPoIB: Allow setting policy to ignore multicast groups
        IB/mthca: Mark error paths as unlikely() in post_srq_recv functions
        IB/ipath: Minor fix to ordering of freeing and zeroing of tid pages.
        IB/ipath: Remove redundant link state checks
        IB/ipath: Fix IB_EVENT_PORT_ERR event
        IB/ipath: Better handling of unexpected GPIO interrupts
        IB/ipath: Maintain active time on all chips
        IB/ipath: Fix QHT7040 serial number check
        IB/ipath: Indicate a couple of chip bugs to userspace
        IB/ipath: iba6110 rev4 no longer needs recv header overrun workaround
        IB/ipath: Use counters in ipath_poll and cleanup interrupts in ipath_close
        IB/ipath: Remove duplicate copy of LMC
        IB/ipath: Add ability to set the LMC via the sysfs debugging interface
        IB/ipath: Optimize completion queue entry insertion and polling
        IB/ipath: Implement IB_EVENT_QP_LAST_WQE_REACHED
        IB/ipath: Generate flush CQE when QP is in error state
        IB/ipath: Remove redundant code
        IB/ipath: Future proof eeprom checksum code (contents reading)
        IB/ipath: UC RDMA WRITE with IMMEDIATE doesn't send the immediate
        ...
      ce9d3c9a
    • L
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 · 038a5008
      Linus Torvalds 提交于
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (867 commits)
        [SKY2]: status polling loop (post merge)
        [NET]: Fix NAPI completion handling in some drivers.
        [TCP]: Limit processing lost_retrans loop to work-to-do cases
        [TCP]: Fix lost_retrans loop vs fastpath problems
        [TCP]: No need to re-count fackets_out/sacked_out at RTO
        [TCP]: Extract tcp_match_queue_to_sack from sacktag code
        [TCP]: Kill almost unused variable pcount from sacktag
        [TCP]: Fix mark_head_lost to ignore R-bit when trying to mark L
        [TCP]: Add bytes_acked (ABC) clearing to FRTO too
        [IPv6]: Update setsockopt(IPV6_MULTICAST_IF) to support RFC 3493, try2
        [NETFILTER]: x_tables: add missing ip6t_modulename aliases
        [NETFILTER]: nf_conntrack_tcp: fix connection reopening
        [QETH]: fix qeth_main.c
        [NETLINK]: fib_frontend build fixes
        [IPv6]: Export userland ND options through netlink (RDNSS support)
        [9P]: build fix with !CONFIG_SYSCTL
        [NET]: Fix dev_put() and dev_hold() comments
        [NET]: make netlink user -> kernel interface synchronious
        [NET]: unify netlink kernel socket recognition
        [NET]: cleanup 3rd argument in netlink_sendskb
        ...
      
      Fix up conflicts manually in Documentation/feature-removal-schedule.txt
      and my new least favourite crap, the "mod_devicetable" support in the
      files include/linux/mod_devicetable.h and scripts/mod/file2alias.c.
      
      (The latter files seem to be explicitly _designed_ to get conflicts when
      different subsystems work with them - that have an absolutely horrid
      lack of subsystem separation!)
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      038a5008
    • L
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · dd6d1844
      Linus Torvalds 提交于
      * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (80 commits)
        [MIPS] tlbex.c: Cleanup __init usage.
        [MIPS] WRPPMC serial support move to platform device
        [MIPS] R1: Fix hazard barriers to make kernels work on R2 also.
        [MIPS] VPE: reimplement ELF loader.
        [MIPS] cleanup WRPPMC include files
        [MIPS] Add BUG_ON assertion for attempt to run kernel on the wrong CPU type.
        [MIPS] SMP: Use ISO C struct initializer for local structs.
        [MIPS] SMP: Kill useless casts.
        [MIPS] Kill num_online_cpus() loops.
        [MIPS] SMP: Implement smp_call_function_mask().
        [MIPS] Make facility to convert CPU types to strings generally available.
        [MIPS] Convert list of CPU types from #define to enum.
        [MIPS] Optimize get_unaligned / put_unaligned implementations.
        [MIPS] checkfiles: Fix "need space after that ','" errors.
        [MIPS] Fix "no space between function name and open parenthesis" warnings.
        [MIPS] Allow hardwiring of the CPU type to a single type for optimization.
        [MIPS] tlbex: Size optimize code by declaring a few functions inline.
        [MIPS] pg-r4k.c: Dump the generated code
        [MIPS] Cobalt: Remove cobalt_machine_power_off()
        [MIPS] Cobalt: Move reset port definition to arch/mips/cobalt/reset.c
        ...
      dd6d1844
    • L
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6 · 19f71153
      Linus Torvalds 提交于
      * git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6: (24 commits)
        ide: use only ->set_pio_mode method for programming PIO modes (take 2)
        sis5513: don't change UDMA settings when programming PIO
        it8213/piix/slc90e66: don't change DMA settings when programming PIO
        alim15x3: PIO mode setup fixes
        siimage: fix ->set_pio_mode method to select PIO data transfer
        cs5520: don't enable VDMA in ->speedproc
        sc1200: remove redundant warning message from sc1200_tune_chipset()
        ide-pmac: PIO mode setup fixes (take 3)
        icside: fix ->speedproc to return on unsupported modes (take 5)
        sgiioc4: use ide_tune_dma()
        amd74xx/via82cxxx: use ide_tune_dma()
        ide: add ide_set{_max}_pio() (take 4)
        ide: Kconfig face-lift
        ide: move ide_rate_filter() calls to the upper layer (take 2)
        sis5513: add ->udma_filter method for chipset_family >= ATA_133
        ide: mode limiting fixes for user requested speed changes
        ide: add missing ide_rate_filter() calls to ->speedproc()-s
        ide: call udma_filter() before resorting to the UltraDMA mask
        ide: make jmicron match vendor and device class
        pdc202xx_new: switch to using pci_get_slot() (take 2)
        ...
      19f71153
    • L
      Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds · e6005a85
      Linus Torvalds 提交于
      * 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds:
        leds: Update Cobalt Qube series front LED support
        leds: Add Cobalt Raq series LEDs support
        leds: Rename leds-cobalt driver
      e6005a85
    • L
      Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight · 6f35308c
      Linus Torvalds 提交于
      * 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight:
        backlight: Convert corgi backlight driver into a more generic driver
        backlight: Add Samsung LTV350QV LCD driver
        backlight: Fix cr_bllcd allocations and error paths
        backlight/leds: Make two structs static
      6f35308c
    • L
      Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 · 19ad7ae4
      Linus Torvalds 提交于
      * 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6:
        drivers/firmware: const-ify DMI API and internals
      19ad7ae4
    • L
      Merge branch 'block-2.6.24' of git://git.kernel.dk/data/git/linux-2.6-block · 1ce48904
      Linus Torvalds 提交于
      * 'block-2.6.24' of git://git.kernel.dk/data/git/linux-2.6-block: (37 commits)
        [BLOCK] Fix failing compile with BLK_DEV_IO_TRACE=n
        compat_ioctl: move floppy handlers to block/compat_ioctl.c
        compat_ioctl: move cdrom handlers to block/compat_ioctl.c
        compat_ioctl: move BLKPG handling to block/compat_ioctl.c
        compat_ioctl: move hdio calls to block/compat_ioctl.c
        compat_ioctl: handle blk_trace ioctls
        compat_ioctl: add compat_blkdev_driver_ioctl()
        compat_ioctl: move common block ioctls to compat_blkdev_ioctl
        Sysace: Don't enable IRQ until after interrupt handler is registered
        Sysace: sparse fixes
        Sysace: Minor coding convention fixup
        drivers/block/umem: use DRIVER_NAME where appropriate
        drivers/block/umem: trim trailing whitespace
        drivers/block/umem: minor cleanups
        drivers/block/umem: use dev_printk()
        drivers/block/umem: move private include away from include/linux
        Sysace: Labels in C code should not be indented.
        Sysace: Add of_platform_bus binding
        Sysace: Move IRQ handler registration to occur after FSM is initialized
        Sysace: minor rework and cleanup changes
        ...
      1ce48904
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6 · 55982fd1
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
        [AVR32] Fix random segfault with preemption
        [AVR32] Don't use __builtin_xchg()
        [AVR32] ngw100 i2c-gpio tweaks
        [AVR32] Ignore a few irrelevant syscalls
        [AVR32] SMC configuration in clock cycles
        [AVR32] Drop support for redundant "keepinitrd" boot-time parm.
        [AVR32] Make dma_sync_*_for_cpu no-ops
        [AVR32] Remove unneeded 8K alignment of .text section
        [AVR32] Kill a few hardcoded constants in vmlinux.lds
        [AVR32] rename vmlinux.lds
        [AVR32] fix command line parsing in early_parse_fbmem
        [AVR32] checkstack support
        [AVR32] Wire up USBA device
        [AVR32] add multidrive support for pio driver
        [AVR32] /sys/kernel/debug/at32ap_clk
        [AVR32] Move AT32_PM_BASE definition into pm.h
      55982fd1
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6 · 1ef3e362
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (74 commits)
        Blackfin serial driver: pending a unique anomaly id, tie the break flood issue to ANOMALY_05000230
        blackfin enable arbitary speed serial setting
        Blackfin arch: Remove cruft - CONFIG_DEBUG_SERIAL_EARLY_INIT and DEBUG_KERNEL_START
        Blackfin arch: fix typo in register name
        Blackfin arch: trim the Blackfin arch MAINTAINERS list
        Blackfin arch: fix bug libstdc++ calling writev with an iovec containing { NULL, 0 } fails on Blackfin
        Blackfin arch: Export strcpy - occasionally get module link failures otherwise
        Blackfin arch: the load address is not safe to point to as a workaround for ANOMALY 05000281
        Blackfin arch: show_mem can not be marked as init, since it is called during OOM condition
        Blackfin arch: flush/inv the correct range when using write back cache and fix bugs find by dmacopy
        Blackfin arch: update kgdb patch
        Blackfin arch: Comply with revised Anomaly Workarounds for BF533 05000311 and BF561 05000323
        Blackfin arch: Print out debug info, as early as possible
        Blackfin arch: Enable earlyprintk earlier - so any error after our interrupt tables are set up will print out
        Blackfin arch: fix endless loop bug when a double fault happens
        Blackfin arch: Initial patch to add earlyprintk support
        Blackfin arch: add TWIx_REGBASE and SPIx_REGBASE to specific CPU header files, use the new REGBASE for board platform resources
        Blackfin arch: modify the insX/outsX and dma_insX/dma_outsX to be compatible with other archs
        Blackfin arch: add more common defines for output sections
        Blackfin arch: cleanup IO and DMA_IO API function definitions according to other arches
        ...
      1ef3e362
    • L
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb · c634920a
      Linus Torvalds 提交于
      * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (310 commits)
        V4L/DVB (6316): Change list_for_each+list_entry to list_for_each_entry
        V4L/DVB (6315): pvrusb2: Change list_for_each+list_entry to list_for_each_entry
        V4L/DVB (6314): saa7134: Replace list_for_each+list_entry with list_for_each_entry
        V4L/DVB (6313): ivtv: Replace list_for_each+list_entry with list_for_each_entry
        V4L/DVB (6312): cx88: Replace list_for_each+list_entry with list_for_each_entry
        V4L/DVB (6311): dvb: Replace list_for_each+list_entry with list_for_each_entry
        V4L/DVB (6308): V4L: zc0301, remove bad usage of ERESTARTSYS
        V4L/DVB (6307): V4L: w9968cf, remove bad usage of ERESTARTSYS
        V4L/DVB (6306): Few clenups for saa7134 resume code
        V4L/DVB (6305): V4L: videobuf-core.c avoid NULL dereferences in videobuf-core
        V4L/DVB (6301): pvrusb: Update DEBUGIFC sysfs to kernel 2.6.13+
        V4L/DVB (6300): CodingStyle cleanup
        V4L/DVB (6299): dvb: Add dependencies for VIDEOBUF_DVB
        V4L/DVB (6297): cx23885: remove wrong Kconfig selection of VIDEOBUF
        V4L/DVB (6296): dib0700: add support for AverMedia DVB-T Express card
        V4L/DVB (6295): saa7134: add autodetection for KWorld ATSC-115
        V4L/DVB (6293): V4L: convert struct class_device to struct device
        V4L/DVB (6292): videobuf_core init always require callback implementation
        V4L/DVB (6291): Fix: avoid oops on some SMP machines
        V4L/DVB (6290): remove videobuf_set_pci_ops
        ...
      c634920a
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc · 6abd2c86
      Linus Torvalds 提交于
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc: (67 commits)
        mmc: don't use weight32()
        pxamci: support arbitrary block size
        sdio: make the IRQ thread more resilient in the presence of bad states
        sdio: fix IRQ diagnostic message
        sdhci: remove old dma module params
        sdhci: add SDHCI_QUIRK_BROKEN_DMA quirk
        sdhci: remove DMA capability check from controller's PCI Class reg
        sdhci: fix a typo
        mmc: Disabler for Ricoh MMC controller
        sdio: adaptive interrupt polling
        mmc: pxamci: add SDIO card interrupt reporting capability
        mmc: pxamci: set proper buswidth capabilities according to PXA flavor
        mmc: pxamci: set proper block capabilities according to PXA flavor
        mmc: pxamci: better pending IRQ determination
        arm: i.MX/MX1 SDHC implements SD cards read-only switch read-back
        mmc: add led trigger
        mmc_spi host driver
        MMC core learns about SPI
        MMC/SD card driver learns SPI
        MMC headers learn about SPI
        ...
      6abd2c86
    • S
      [SKY2]: status polling loop (post merge) · 26691830
      Stephen Hemminger 提交于
      Handle the corner case where budget is exhausted correctly.
      And save unnecessary read of index register.
      Signed-off-by: NStephen Hemminger <shemminger@linux-foundation.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      26691830
    • D
      [NET]: Fix NAPI completion handling in some drivers. · 6f535763
      David S. Miller 提交于
      In order for the list handling in net_rx_action() to be
      correct, drivers must follow certain rules as stated by
      this comment in net_rx_action():
      
      		/* Drivers must not modify the NAPI state if they
      		 * consume the entire weight.  In such cases this code
      		 * still "owns" the NAPI instance and therefore can
      		 * move the instance around on the list at-will.
      		 */
      
      A few drivers do not do this because they mix the budget checks
      with reading hardware state, resulting in crashes like the one
      reported by takano@axe-inc.co.jp.
      
      BNX2 and TG3 are taken care of here, SKY2 fix is from Stephen
      Hemminger.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f535763
    • I
      [TCP]: Limit processing lost_retrans loop to work-to-do cases · b08d6cb2
      Ilpo Järvinen 提交于
      This addition of lost_retrans_low to tcp_sock might be
      unnecessary, it's not clear how often lost_retrans worker is
      executed when there wasn't work to do.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b08d6cb2
    • I
      [TCP]: Fix lost_retrans loop vs fastpath problems · f785a8e2
      Ilpo Järvinen 提交于
      Detection implemented with lost_retrans must work also when
      fastpath is taken, yet most of the queue is skipped including
      (very likely) those retransmitted skb's we're interested in.
      This problem appeared when the hints got added, which removed
      a need to always walk over the whole write queue head.
      Therefore decicion for the lost_retrans worker loop entry must
      be separated from the sacktag processing more than it was
      necessary before.
      
      It turns out to be problematic to optimize the worker loop
      very heavily because ack_seqs of skb may have a number of
      discontinuity points. Maybe similar approach as currently is
      implemented could be attempted but that's becoming more and
      more complex because the trend is towards less skb walking
      in sacktag marker. Trying a simple work until all rexmitted
      skbs heve been processed approach.
      
      Maybe after(highest_sack_end_seq, tp->high_seq) checking is not
      sufficiently accurate and causes entry too often in no-work-to-do
      cases. Since that's not known, I've separated solution to that
      from this patch.
      
      Noticed because of report against a related problem from TAKANO
      Ryousei <takano@axe-inc.co.jp>. He also provided a patch to
      that part of the problem. This patch includes solution to it
      (though this patch has to use somewhat different placement).
      TAKANO's description and patch is available here:
      
        http://marc.info/?l=linux-netdev&m=119149311913288&w=2
      
      ...In short, TAKANO's problem is that end_seq the loop is using
      not necessarily the largest SACK block's end_seq because the
      current ACK may still have higher SACK blocks which are later
      by the loop.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f785a8e2
    • I
      [TCP]: No need to re-count fackets_out/sacked_out at RTO · 4cd82999
      Ilpo Järvinen 提交于
      Both sacked_out and fackets_out are directly known from how
      parameter. Since fackets_out is accurate, there's no need for
      recounting (sacked_out was previously unnecessarily counted
      in the loop anyway).
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4cd82999
    • I
      [TCP]: Extract tcp_match_queue_to_sack from sacktag code · d1935942
      Ilpo Järvinen 提交于
      This is necessary for upcoming DSACK bugfix. Reduces sacktag
      length which is not very sad thing at all... :-)
      
      Notice that there's a need to handle out-of-mem at caller's
      place.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d1935942
    • I
      [TCP]: Kill almost unused variable pcount from sacktag · f6fb128d
      Ilpo Järvinen 提交于
      It's on the way for future cutting of that function.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f6fb128d
    • I
      [TCP]: Fix mark_head_lost to ignore R-bit when trying to mark L · 3eec0047
      Ilpo Järvinen 提交于
      This condition (plain R) can arise at least in recovery that
      is triggered after tcp_undo_loss. There isn't any reason why
      they should not be marked as lost, not marking makes in_flight
      estimator to return too large values.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3eec0047
    • I
      [TCP]: Add bytes_acked (ABC) clearing to FRTO too · 16e90681
      Ilpo Järvinen 提交于
      I was reading tcp_enter_loss while looking for Cedric's bug and
      noticed bytes_acked adjustment is missing from FRTO side.
      
      Since bytes_acked will only be used in tcp_cong_avoid, I think
      it's safe to assume RTO would be spurious. During FRTO cwnd
      will be not controlled by tcp_cong_avoid and if FRTO calls for
      conventional recovery, cwnd is adjusted and the result of wrong
      assumption is cleared from bytes_acked. If RTO was in fact
      spurious, we did normal ABC already and can continue without
      any additional adjustments.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      16e90681