10 Jan, 2012

3 commits


09 Jan, 2012

2 commits

  • so move it there. Fixes build errors when CONFIG_INET is not defined:

    In file included from include/linux/tcp.h:211:0,
    from include/linux/ipv6.h:221,
    from include/net/ipv6.h:16,
    from include/linux/sunrpc/clnt.h:26,
    from include/linux/nfs_fs.h:50,
    from init/do_mounts.c:20:
    include/net/sock.h: In function 'sk_update_clone':
    include/net/sock.h:1109:3: error: implicit declaration of function 'sock_update_memcg' [-Werror=implicit-function-declaration]

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

    Stephen Rothwell
     
  • The driver uses __napi_complete and napi_gro_receive. Without it, the
    driver hits the BUG_ON(n->gro_list) assertion hard in __napi_complete.

    Signed-off-by: Francois Romieu
    Tested-by: Marin Glibic
    Signed-off-by: David S. Miller

    françois romieu
     

08 Jan, 2012

6 commits

  • In 882716604ec "pktgen: fix multiple queue warning" we added special
    logic to handle the case where ntxq is zero. It's not clear to me that
    ntxq can actually be zero. But if it were then we would set
    ->queue_map_min and ->queue_map_max to USHRT_MAX when probably we want
    to set them to zero?

    Signed-off-by: David S. Miller

    Dan Carpenter
     
  • The energy detect enable/disable code in the driver uses some
    register defines in this header unconditionally, so guarding
    the smscphy.h header include with CONFIG_SMSC_PHY leads to
    build failures in some configurations.

    Reported-by: Shawn Guo
    Signed-off-by: David S. Miller

    David S. Miller
     
  • At this point if skb->len happens to be 2, the subsequant skb_pull(skb, 4)
    call won't work and the skb->len won't be decreased and won't ever reach 0,
    resulting in an infinite loop.

    With an ASIX 88772 under heavy load, without this patch, rx_fixup() reaches
    an infinite loop in less than a minute. With this patch applied,
    no infinite loop even after hours of heavy load.

    Signed-off-by: Aurelien Jacobs
    Signed-off-by: David S. Miller

    Aurelien Jacobs
     
  • Signed-off-by: David S. Miller

    David S. Miller
     
  • Commit 4e16d6ebd65b4f2c4e3f780b4c5704beef64019c (r6040: define more MCR0
    register bits) added #define values for MCR0 register bits and converted
    uses of hardcoded magic values to uses of these defines.

    However, one of the conversions looks suspicious:

    #define MCR0 0x00 /* Control register 0 */
    +#define MCR0_RCVEN 0x0002 /* Receive enable */
    +#define MCR0_XMTEN 0x1000 /* Transmission enable */

    /* Init RDC private data */
    - lp->mcr0 = 0x1002;
    + lp->mcr0 = MCR0_XMTEN | MCR0;

    I believe what was meant here was MCR0_XMTEN | MCR0_RCVEN, which makes
    sense and matches the original values.

    Signed-off-by: Cesar Eduardo Barros
    Signed-off-by: David S. Miller

    Cesar Eduardo Barros
     
  • Sockets can also be created through sock_clone. Because it copies
    all data in the sock structure, it also copies the memcg-related pointer,
    and all should be fine. However, since we now use reference counts in
    socket creation, we are left with some sockets that have no reference
    counts. It matters when we destroy them, since it leads to a mismatch.

    Signed-off-by: Glauber Costa
    CC: David S. Miller
    CC: Greg Thelen
    CC: Hiroyouki Kamezawa
    CC: Laurent Chavey
    Signed-off-by: David S. Miller

    Glauber Costa
     

07 Jan, 2012

20 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (21 commits)
    m68k/mac: Make CONFIG_HEARTBEAT unavailable on Mac
    m68k/serial: Remove references to obsolete serial config options
    m68k/net: Remove obsolete IRQ_FLG_* users
    m68k: Don't comment out syscalls used by glibc
    m68k/atari: Move declaration of atari_SCC_reset_done to header file
    m68k/serial: Remove references to obsolete CONFIG_SERIAL167
    m68k/hp300: Export hp300_ledstate
    m68k: Initconst section fixes
    m68k/mac: cleanup macro case
    mac_scsi: fix mac_scsi on some powerbooks
    m68k/mac: fix powerbook 150 adb_type
    m68k/mac: fix baboon irq disable and shutdown
    m68k/mac: oss irq fixes
    m68k/mac: fix nubus slot irq disable and shutdown
    m68k/mac: enable via_alt_mapping on performa 580
    m68k/mac: cleanup forward declarations
    m68k/mac: cleanup mac_irq_pending
    m68k/mac: cleanup mac_clear_irq
    m68k/mac: early console
    m68k/mvme16x: Add support for EARLY_PRINTK
    ...

    Fix up trivial conflict in arch/m68k/Kconfig.debug due to new
    EARLY_PRINTK config option addition clashing with movement of the
    BOOTPARAM options.

    Linus Torvalds
     
  • * 'for-linus' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm: (207 commits)
    ARM: 7267/1: Remove BUILD_BUG_ON from asm/bug.h
    ARM: 7269/1: mach-sa1100: fix sched_clock breakage
    ARM: 7198/1: arm/imx6: add restart support for imx6q
    ARM: restart: remove the now empty arch_reset()
    ARM: restart: remove comments about adding code to arch_reset()
    ARM: restart: lpc32xx & u300: remove unnecessary printk
    ARM: restart: plat-samsung: remove plat/reset.h and s5p_reset_hook
    ARM: restart: w90x900: use new restart hook
    ARM: restart: Versatile Express: use new restart hook
    ARM: restart: versatile: use new restart hook
    ARM: restart: u300: use new restart hook
    ARM: restart: tegra: use new restart hook
    ARM: restart: spear: use new restart hook
    ARM: restart: shark: use new restart hook
    ARM: restart: sa1100: use new restart hook
    ARM: 7252/1: restart: S5PV210: use new restart hook
    ARM: 7251/1: restart: S5PC100: use new restart hook
    ARM: 7250/1: restart: S5P64X0: use new restart hook
    ARM: 7266/1: restart: S3C64XX: use new restart hook
    ARM: 7265/1: restart: S3C24XX: use new restart hook
    ...

    Fix up trivial conflict in arch/arm/mm/init.c due to removal of
    memblock_init() clashing with the movement of the sorting of the meminfo
    array.

    Linus Torvalds
     
  • …git-cur/linux-2.6-arm

    * 'amba-modalias' of git://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    sound: aaci: Enable module alias autogeneration for AMBA drivers
    watchdog: sp805: Enable module alias autogeneration for AMBA drivers
    fbdev: amba: Enable module alias autogeneration for AMBA drivers
    serial: pl011: Enable module alias autogeneration for AMBA drivers
    serial: pl010: Enable module alias autogeneration for AMBA drivers
    spi: pl022: Enable module alias autogeneration for AMBA drivers
    rtc: pl031: Enable module alias autogeneration for AMBA drivers
    rtc: pl030: Enable module alias autogeneration for AMBA drivers
    mmc: mmci: Enable module alias autogeneration for AMBA drivers
    input: ambakmi: Enable module alias autogeneration for AMBA drivers
    gpio: pl061: Enable module alias autogeneration for AMBA drivers
    dmaengine: pl330: Enable module alias autogeneration for AMBA drivers
    dmaengine: pl08x: Enable module alias autogeneration for AMBA drivers
    hwrng: nomadik: Enable module alias autogeneration for AMBA drivers
    ARM: amba: Auto-generate AMBA driver module aliases during modpost
    ARM: amba: Move definition of struct amba_id to mod_devicetable.h

    Linus Torvalds
     
  • * 'pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    pstore: gracefully handle NULL pstore_info functions
    pstore: pass reason to backend write callback

    Linus Torvalds
     
  • * 'misc-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    ia64: pcibr: Use kmemdup rather than duplicating its implementation
    ia64: sn: Use kmemdup rather than duplicating its implementation
    ia64: tioca: Use kmemdup rather than duplicating its implementation
    [IA64] Merge overlapping reserved regions at boot

    Linus Torvalds
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu: (56 commits)
    m68k: allow ColdFire 547x and 548x CPUs to be built with MMU enabled
    m68k/Kconfig: Separate classic m68k and coldfire early
    m68k: add ColdFire with MMU enabled support to the m68k mem init code
    m68k: do not use m68k startup or interrupt code for ColdFire CPUs
    m68k: add ColdFire FPU support for the V4e ColdFire CPUs
    m68k: adjustments to stack frame for ColdFire with MMU enabled
    m68k: use non-MMU linker script for ColdFire MMU builds
    m68k: ColdFire with MMU enabled uses same clocking code as non-MMU
    m68k: add code to setup a ColdFire 54xx platform when MMU enabled
    m68k: use non-MMU entry.S code when compiling for ColdFire CPU
    m68k: create ColdFire MMU pgalloc code
    m68k: compile appropriate mm arch files for ColdFire MMU support
    m68k: ColdFire V4e MMU paging init code and miss handler
    m68k: use ColdFire MMU read/write bit flags when ioremapping
    m68k: modify cache push and clear code for ColdFire with MMU enable
    m68k: use tracehook_report_syscall_entry/exit for ColdFire MMU ptrace path
    m68k: ColdFire V4e MMU context support code
    m68k: MMU enabled ColdFire needs 8k ELF alignment
    m68k: set ColdFire MMU page size
    m68k: define PAGE_OFFSET_RAW for ColdFire CPU with MMU enabled
    ...

    Linus Torvalds
     
  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc: (185 commits)
    powerpc: fix compile error with 85xx/p1010rdb.c
    powerpc: fix compile error with 85xx/p1023_rds.c
    powerpc/fsl: add MSI support for the Freescale hypervisor
    arch/powerpc/sysdev/fsl_rmu.c: introduce missing kfree
    powerpc/fsl: Add support for Integrated Flash Controller
    powerpc/fsl: update compatiable on fsl 16550 uart nodes
    powerpc/85xx: fix PCI and localbus properties in p1022ds.dts
    powerpc/85xx: re-enable ePAPR byte channel driver in corenet32_smp_defconfig
    powerpc/fsl: Update defconfigs to enable some standard FSL HW features
    powerpc: Add TBI PHY node to first MDIO bus
    sbc834x: put full compat string in board match check
    powerpc/fsl-pci: Allow 64-bit PCIe devices to DMA to any memory address
    powerpc: Fix unpaired probe_hcall_entry and probe_hcall_exit
    offb: Fix setting of the pseudo-palette for >8bpp
    offb: Add palette hack for qemu "standard vga" framebuffer
    offb: Fix bug in calculating requested vram size
    powerpc/boot: Change the WARN to INFO for boot wrapper overlap message
    powerpc/44x: Fix build error on currituck platform
    powerpc/boot: Change the load address for the wrapper to fit the kernel
    powerpc/44x: Enable CRASH_DUMP for 440x
    ...

    Fix up a trivial conflict in arch/powerpc/include/asm/cputime.h due to
    the additional sparse-checking code for cputime_t.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1958 commits)
    net: pack skb_shared_info more efficiently
    net_sched: red: split red_parms into parms and vars
    net_sched: sfq: extend limits
    cnic: Improve error recovery on bnx2x devices
    cnic: Re-init dev->stats_addr after chip reset
    net_sched: Bug in netem reordering
    bna: fix sparse warnings/errors
    bna: make ethtool_ops and strings const
    xgmac: cleanups
    net: make ethtool_ops const
    vmxnet3" make ethtool ops const
    xen-netback: make ops structs const
    virtio_net: Pass gfp flags when allocating rx buffers.
    ixgbe: FCoE: Add support for ndo_get_fcoe_hbainfo() call
    netdev: FCoE: Add new ndo_get_fcoe_hbainfo() call
    igb: reset PHY after recovering from PHY power down
    igb: add basic runtime PM support
    igb: Add support for byte queue limits.
    e1000: cleanup CE4100 MDIO registers access
    e1000: unmap ce4100_gbe_mdio_base_virt in e1000_remove
    ...

    Linus Torvalds
     
  • * 'x86-mce-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: add IRQ context simulation in module mce-inject
    x86, mce, therm_throt: Don't report power limit and package level thermal throttle events in mcelog
    x86, MCE: Drain mcelog buffer
    x86, mce: Add wrappers for registering on the decode chain

    Linus Torvalds
     
  • * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, microcode, AMD: Update copyrights
    x86, microcode, AMD: Exit early on success
    x86, microcode, AMD: Simplify ucode verification
    x86, microcode, AMD: Add a reusable buffer
    x86, microcode, AMD: Add a vendor-specific exit function

    Linus Torvalds
     
  • * 'x86-rdrand-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    random: Use arch_get_random_int instead of cycle counter if avail

    Linus Torvalds
     
  • * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, centaur: Enable cx8 for VIA Eden too

    Linus Torvalds
     
  • * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Use "do { } while(0)" for empty lock_cmos()/unlock_cmos() macros
    x86: Use "do { } while(0)" for empty flush_tlb_fix_spurious_fault() macro
    x86, CPU: Drop superfluous get_cpu_cap() prototype
    arch/x86/mm/pageattr.c: Quiet sparse noise; local functions should be static
    arch/x86/kernel/ptrace.c: Quiet sparse noise
    x86: Use kmemdup() in copy_thread(), rather than duplicating its implementation
    x86: Replace the EVT_TO_HPET_DEV() macro with an inline function

    Linus Torvalds
     
  • * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (21 commits)
    x86: Fix atomic64_xxx_cx8() functions
    x86: Fix and improve cmpxchg_double{,_local}()
    x86_64, asm: Optimise fls(), ffs() and fls64()
    x86, bitops: Move fls64.h inside __KERNEL__
    x86: Fix and improve percpu_cmpxchg{8,16}b_double()
    x86: Report cpb and eff_freq_ro flags correctly
    x86/i386: Use less assembly in strlen(), speed things up a bit
    x86: Use the same node_distance for 32 and 64-bit
    x86: Fix rflags in FAKE_STACK_FRAME
    x86: Clean up and extend do_int3()
    x86: Call do_notify_resume() with interrupts enabled
    x86/div64: Add a micro-optimization shortcut if base is power of two
    x86-64: Cleanup some assembly entry points
    x86-64: Slightly shorten line system call entry and exit paths
    x86-64: Reduce amount of redundant code generated for invalidate_interruptNN
    x86-64: Slightly shorten int_ret_from_sys_call
    x86, efi: Convert efi_phys_get_time() args to physical addresses
    x86: Default to vsyscall=emulate
    x86-64: Set siginfo and context on vsyscall emulation faults
    x86: consolidate xchg and xadd macros
    ...

    Linus Torvalds
     
  • * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86: Skip cpus with apic-ids >= 255 in !x2apic_mode
    x86, x2apic: Allow "nox2apic" to disable x2apic mode setup by BIOS
    x86, x2apic: Fallback to xapic when BIOS doesn't setup interrupt-remapping
    x86, acpi: Skip acpi x2apic entries if the x2apic feature is not present
    x86, apic: Add probe() for apic_flat
    x86: Simplify code by removing a !SMP #ifdefs from 'struct cpuinfo_x86'
    x86: Convert per-cpu counter icr_read_retry_count into a member of irq_stat
    x86: Add per-cpu stat counter for APIC ICR read tries
    pci, x86/io-apic: Allow PCI_IOAPIC to be user configurable on x86
    x86: Fix the !CONFIG_NUMA build of the new CPU ID fixup code support
    x86: Add NumaChip support
    x86: Add x86_init platform override to fix up NUMA core numbering
    x86: Make flat_init_apic_ldr() available

    Linus Torvalds
     
  • * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, tsc: Skip TSC synchronization checks for tsc=reliable
    clocksource: Convert tcb_clksrc to use clocksource_register_hz/khz
    clocksource: cris: Convert to clocksource_register_khz
    clocksource: xtensa: Convert to clocksource_register_hz/khz
    clocksource: um: Convert to clocksource_register_hz/khz
    clocksource: parisc: Convert to clocksource_register_hz/khz
    clocksource: m86k: Convert to clocksource_register_hz/khz
    time: x86: Replace LATCH with PIT_LATCH in i8253 clocksource driver
    time: x86: Remove CLOCK_TICK_RATE from acpi_pm clocksource driver
    time: x86: Remove CLOCK_TICK_RATE from mach_timer.h
    time: x86: Remove CLOCK_TICK_RATE from tsc code
    time: Fix spelling mistakes in new comments
    time: fix bogus comment in timekeeping_get_ns_raw

    Linus Torvalds
     
  • * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
    sched/tracing: Add a new tracepoint for sleeptime
    sched: Disable scheduler warnings during oopses
    sched: Fix cgroup movement of waking process
    sched: Fix cgroup movement of newly created process
    sched: Fix cgroup movement of forking process
    sched: Remove cfs bandwidth period check in tg_set_cfs_period()
    sched: Fix load-balance lock-breaking
    sched: Replace all_pinned with a generic flags field
    sched: Only queue remote wakeups when crossing cache boundaries
    sched: Add missing rcu_dereference() around ->real_parent usage
    [S390] fix cputime overflow in uptime_proc_show
    [S390] cputime: add sparse checking and cleanup
    sched: Mark parent and real_parent as __rcu
    sched, nohz: Fix missing RCU read lock
    sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer
    sched, nohz: Fix the idle cpu check in nohz_idle_balance
    sched: Use jump_labels for sched_feat
    sched/accounting: Fix parameter passing in task_group_account_field
    sched/accounting: Fix user/system tick double accounting
    sched/accounting: Re-use scheduler statistics for the root cgroup
    ...

    Fix up conflicts in
    - arch/ia64/include/asm/cputime.h, include/asm-generic/cputime.h
    usecs_to_cputime64() vs the sparse cleanups
    - kernel/sched/fair.c, kernel/time/tick-sched.c
    scheduler changes in multiple branches

    Linus Torvalds
     
  • * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (106 commits)
    perf kvm: Fix copy & paste error in description
    perf script: Kill script_spec__delete
    perf top: Fix a memory leak
    perf stat: Introduce get_ratio_color() helper
    perf session: Remove impossible condition check
    perf tools: Fix feature-bits rework fallout, remove unused variable
    perf script: Add generic perl handler to process events
    perf tools: Use for_each_set_bit() to iterate over feature flags
    perf tools: Unify handling of features when writing feature section
    perf report: Accept fifos as input file
    perf tools: Moving code in some files
    perf tools: Fix out-of-bound access to struct perf_session
    perf tools: Continue processing header on unknown features
    perf tools: Improve macros for struct feature_ops
    perf: builtin-record: Document and check that mmap_pages must be a power of two.
    perf: builtin-record: Provide advice if mmap'ing fails with EPERM.
    perf tools: Fix truncated annotation
    perf script: look up thread using tid instead of pid
    perf tools: Look up thread names for system wide profiling
    perf tools: Fix comm for processes with named threads
    ...

    Linus Torvalds
     
  • * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)
    cpu: Export cpu_up()
    rcu: Apply ACCESS_ONCE() to rcu_boost() return value
    Revert "rcu: Permit rt_mutex_unlock() with irqs disabled"
    docs: Additional LWN links to RCU API
    rcu: Augment rcu_batch_end tracing for idle and callback state
    rcu: Add rcutorture tests for srcu_read_lock_raw()
    rcu: Make rcutorture test for hotpluggability before offlining CPUs
    driver-core/cpu: Expose hotpluggability to the rest of the kernel
    rcu: Remove redundant rcu_cpu_stall_suppress declaration
    rcu: Adaptive dyntick-idle preparation
    rcu: Keep invoking callbacks if CPU otherwise idle
    rcu: Irq nesting is always 0 on rcu_enter_idle_common
    rcu: Don't check irq nesting from rcu idle entry/exit
    rcu: Permit dyntick-idle with callbacks pending
    rcu: Document same-context read-side constraints
    rcu: Identify dyntick-idle CPUs on first force_quiescent_state() pass
    rcu: Remove dynticks false positives and RCU failures
    rcu: Reduce latency of rcu_prepare_for_idle()
    rcu: Eliminate RCU_FAST_NO_HZ grace-period hang
    rcu: Avoid needlessly IPIing CPUs at GP end
    ...

    Linus Torvalds
     
  • * 'core-printk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    printk, lockdep: Switch to tracked irq ops
    printk, lockdep: Remove superfluous preempt_disable()
    printk, lockdep: Disable lock debugging on zap_locks()

    Linus Torvalds
     

06 Jan, 2012

9 commits

  • * 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
    memblock: Reimplement memblock allocation using reverse free area iterator
    memblock: Kill early_node_map[]
    score: Use HAVE_MEMBLOCK_NODE_MAP
    s390: Use HAVE_MEMBLOCK_NODE_MAP
    mips: Use HAVE_MEMBLOCK_NODE_MAP
    ia64: Use HAVE_MEMBLOCK_NODE_MAP
    SuperH: Use HAVE_MEMBLOCK_NODE_MAP
    sparc: Use HAVE_MEMBLOCK_NODE_MAP
    powerpc: Use HAVE_MEMBLOCK_NODE_MAP
    memblock: Implement memblock_add_node()
    memblock: s/memblock_analyze()/memblock_allow_resize()/ and update users
    memblock: Track total size of regions automatically
    powerpc: Cleanup memblock usage
    memblock: Reimplement memblock_enforce_memory_limit() using __memblock_remove()
    memblock: Make memblock functions handle overflowing range @size
    memblock: Reimplement __memblock_remove() using memblock_isolate_range()
    memblock: Separate out memblock_isolate_range() from memblock_set_node()
    memblock: Kill memblock_init()
    memblock: Kill sentinel entries at the end of static region arrays
    memblock: Add __memblock_dump_all()
    ...

    Linus Torvalds
     
  • * 'core-locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    lockdep/waitqueues: Add better annotation
    lockdep, bug: Exclude TAINT_OOT_MODULE from disabling lock debugging
    lockdep: Print lock name in lockdep_init_error()
    init/main.c: Execute lockdep_init() as early as possible
    lockdep, kmemcheck: Annotate ->lock in lockdep_init_map()
    lockdep, rtmutex, bug: Show taint flags on error
    lockdep, bug: Exclude TAINT_FIRMWARE_WORKAROUND from disabling lockdep
    lockdep: Always try to set ->class_cache in register_lock_class() lockdep_init_map()

    Linus Torvalds
     
  • * 'core-debugobjects-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    timer: Use debugobjects to catch deletion of uninitialized timers
    timer: Setup uninitialized timer with a stub callback
    debugobjects: Extend to assert that an object is initialized
    debugobjects: Be smarter about static objects

    Linus Torvalds
     
  • We're doing some odd things there, which already messes up various users
    (see the net/socket.c code that this removes), and it was going to add
    yet more crud to the block layer because of the incorrect error code
    translation.

    ENOIOCTLCMD is not an error return that should be returned to user mode
    from the "ioctl()" system call, but it should *not* be translated as
    EINVAL ("Invalid argument"). It should be translated as ENOTTY
    ("Inappropriate ioctl for device").

    That EINVAL confusion has apparently so permeated some code that the
    block layer actually checks for it, which is sad. We continue to do so
    for now, but add a big comment about how wrong that is, and we should
    remove it entirely eventually. In the meantime, this tries to keep the
    changes localized to just the EINVAL -> ENOTTY fix, and removing code
    that makes it harder to do the right thing.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • nr_frags can be 8 bits since 256 is plenty of fragments. This allows it to be
    packed with tx_flags.

    Also by moving ip6_frag_id and dataref (both 4 bytes) next to each other we can
    avoid a hole between ip6_frag_id and frag_list on 64 bit systems.

    Signed-off-by: Ian Campbell
    Acked-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Ian Campbell
     
  • This patch splits the red_parms structure into two components.

    One holding the RED 'constant' parameters, and one containing the
    variables.

    This permits a size reduction of GRED qdisc, and is a preliminary step
    to add an optional RED unit to SFQ.

    SFQRED will have a single red_parms structure shared by all flows, and a
    private red_vars per flow.

    Signed-off-by: Eric Dumazet
    CC: Dave Taht
    CC: Stephen Hemminger
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • SFQ as implemented in Linux is very limited, with at most 127 flows
    and limit of 127 packets. [ So if 127 flows are active, we have one
    packet per flow ]

    This patch brings to SFQ following features to cope with modern needs.

    - Ability to specify a smaller per flow limit of inflight packets.
    (default value being at 127 packets)

    - Ability to have up to 65408 active flows (instead of 127)

    - Ability to have head drops instead of tail drops
    (to drop old packets from a flow)

    Example of use : No more than 20 packets per flow, max 8000 flows, max
    20000 packets in SFQ qdisc, hash table of 65536 slots.

    tc qdisc add ... sfq \
    flows 8000 \
    depth 20 \
    headdrop \
    limit 20000 \
    divisor 65536

    Ram usage :

    2 bytes per hash table entry (instead of previous 1 byte/entry)
    32 bytes per flow on 64bit arches, instead of 384 for QFQ, so much
    better cache hit ratio.

    Signed-off-by: Eric Dumazet
    CC: Dave Taht
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • When a bnx2x device encounters parity errors, it will not respond to all
    SPQ messages. As a result, the shutdown sequence before reset can take
    a long time as the ulp drivers (bnx2i/bnx2fc) have to wait for timeout
    of all such messages.

    To improve this scenario, when bnx2x returns error on the SPQ, we'll send
    an immediate response to the ulp drivers to avoid such lengthy timeouts.

    Adjust the return code of relevant functions to return error only if
    the message cannot be sent on the SPQ so that we'll generate an error
    completion to the ulp drivers.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan
     
  • because bnx2x frees the old and allocates new memory during chip reset.

    Signed-off-by: Michael Chan
    Signed-off-by: David S. Miller

    Michael Chan