20 Feb, 2010

1 commit


19 Feb, 2010

1 commit


18 Feb, 2010

1 commit

  • Most laptops have keys that are intended to toggle all device state, not
    just wifi. These are currently generally mapped to KEY_WLAN. As a result,
    rfkill will only kill or enable wifi in response to the key press. This
    confuses users and can make it difficult for them to enable bluetooth
    and wwan devices.

    This patch adds a new keycode, KEY_RFKILL. It indicates that the system
    should toggle the state of all rfkillable devices.

    Signed-off-by: Matthew Garrett
    Acked-by: Marcel Holtmann
    Signed-off-by: Dmitry Torokhov

    Matthew Garrett
     

17 Feb, 2010

1 commit

  • This patch fixes following sparse warnings:

    include/linux/kfifo.h:127:25: warning: Using plain integer as NULL pointer
    kernel/kfifo.c:83:21: warning: Using plain integer as NULL pointer

    Signed-off-by: Anton Vorontsov
    Acked-by: Stefani Seibold
    Signed-off-by: Greg Kroah-Hartman

    Anton Vorontsov
     

16 Feb, 2010

1 commit


11 Feb, 2010

3 commits

  • * 'nouveau/for-airlied' of /home/airlied/kernel/drm-next:
    nouveau: fix state detection with switchable graphics
    drm/nouveau: move dereferences after null checks
    drm/nv50: make the pgraph irq handler loop like the pre-nv50 version
    drm/nv50: delete ramfc object after disabling fifo, not before
    drm/nv50: avoid unloading pgraph context when ctxprog is running
    drm/nv50: align size of buffer object to the right boundaries.
    drm/nv50: disregard dac outputs in nv50_sor_dpms()
    drm/nv50: prevent multiple init tables being parsed at the same time
    drm/nouveau: make dp auxch xfer len check for reads only
    drm/nv40: make INIT_COMPUTE_MEM a NOP, just like nv50
    drm/nouveau: Add proper vgaarb support.
    drm/nouveau: Fix fbcon on mixed pre-NV50 + NV50 multicard.
    drivers/gpu/drm/nouveau/nouveau_grctx.c: correct NULL test
    drm/nouveau: call ttm_bo_wait with the bo lock held to prevent hang
    drm/nouveau: Fixup semaphores on pre-nv50 cards.
    drm/nouveau: Add getparam to get available PGRAPH units.
    drm/nouveau: Add module options to disable acceleration.
    drm/nouveau: fix non-vram notifier blocks

    Dave Airlie
     
  • Even if this bumps the version to 1 it does not mean the driver is
    out of staging. From what we know this is the last backwards
    incompatible change to the driver.

    Signed-off-by: Jakob Bornecrantz
    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Dave Airlie

    Jakob Bornecrantz
     
  • When time-based throttling is implemented, we need to bump minor.
    When the old way of detecting scanout is removed, we need to bump major.
    In the meantime, this change should not break existing user-space.

    Signed-off-by: Thomas Hellstrom
    Signed-off-by: Jakob Bornecrantz
    Signed-off-by: Dave Airlie

    Thomas Hellstrom
     

10 Feb, 2010

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (29 commits)
    drivers/net: Correct NULL test
    MAINTAINERS: networking drivers - Add git net-next tree
    net/sched: Fix module name in Kconfig
    cxgb3: fix GRO checksum check
    dst: call cond_resched() in dst_gc_task()
    netfilter: nf_conntrack: fix hash resizing with namespaces
    netfilter: xtables: compat out of scope fix
    netfilter: nf_conntrack: restrict runtime expect hashsize modifications
    netfilter: nf_conntrack: per netns nf_conntrack_cachep
    netfilter: nf_conntrack: fix memory corruption with multiple namespaces
    Bluetooth: Keep a copy of each HID device's report descriptor
    pktgen: Fix freezing problem
    igb: make certain to reassign legacy interrupt vectors after reset
    irda: add missing BKL in irnet_ppp ioctl
    irda: unbalanced lock_kernel in irnet_ppp
    ixgbe: Fix return of invalid txq
    ixgbe: Fix ixgbe_tx_map error path
    netxen: protect resource cleanup by rtnl lock
    netxen: fix tx timeout recovery for NX2031 chip
    Bluetooth: Enter active mode before establishing a SCO link.
    ...

    Linus Torvalds
     

09 Feb, 2010

3 commits

  • On nv50, this will be needed by applications using CUDA to know
    how much stack/local memory to allocate.

    Signed-off-by: Marcin Kościelnicki
    Signed-off-by: Ben Skeggs

    Marcin Kościelnicki
     
  • As noticed by Jon Masters , the conntrack hash
    size is global and not per namespace, but modifiable at runtime through
    /sys/module/nf_conntrack/hashsize. Changing the hash size will only
    resize the hash in the current namespace however, so other namespaces
    will use an invalid hash size. This can cause crashes when enlarging
    the hashsize, or false negative lookups when shrinking it.

    Move the hash size into the per-namespace data and only use the global
    hash size to initialize the per-namespace value when instanciating a
    new namespace. Additionally restrict hash resizing to init_net for
    now as other namespaces are not handled currently.

    Cc: stable@kernel.org
    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • nf_conntrack_cachep is currently shared by all netns instances, but
    because of SLAB_DESTROY_BY_RCU special semantics, this is wrong.

    If we use a shared slab cache, one object can instantly flight between
    one hash table (netns ONE) to another one (netns TWO), and concurrent
    reader (doing a lookup in netns ONE, 'finding' an object of netns TWO)
    can be fooled without notice, because no RCU grace period has to be
    observed between object freeing and its reuse.

    We dont have this problem with UDP/TCP slab caches because TCP/UDP
    hashtables are global to the machine (and each object has a pointer to
    its netns).

    If we use per netns conntrack hash tables, we also *must* use per netns
    conntrack slab caches, to guarantee an object can not escape from one
    namespace to another one.

    Signed-off-by: Eric Dumazet
    [Patrick: added unique slab name allocation]
    Cc: stable@kernel.org
    Signed-off-by: Patrick McHardy

    Eric Dumazet
     

07 Feb, 2010

2 commits

  • ima_path_check actually deals with files! call it ima_file_check instead.

    Signed-off-by: Eric Paris
    Acked-by: Mimi Zohar
    Signed-off-by: Al Viro

    Mimi Zohar
     
  • The "Untangling ima mess, part 2 with counters" patch messed
    up the counters. Based on conversations with Al Viro, this patch
    streamlines ima_path_check() by removing the counter maintaince.
    The counters are now updated independently, from measuring the file,
    in __dentry_open() and alloc_file() by calling ima_counts_get().
    ima_path_check() is called from nfsd and do_filp_open().
    It also did not measure all files that should have been measured.
    Reason: ima_path_check() got bogus value passed as mask.
    [AV: mea culpa]
    [AV: add missing nfsd bits]

    Signed-off-by: Mimi Zohar
    Signed-off-by: Al Viro

    Mimi Zohar
     

05 Feb, 2010

3 commits


04 Feb, 2010

2 commits

  • The value we get from the low byte of the ATA_ID_SECTOR_SIZE word is not not
    a plain multiple, but the log of it, so fix the helper to give the correct
    answer. Without this we'll get an incorrect minimal I/O size in the block
    limits VPD page for 4k sector drives.

    Also change the return value of ata_id_logical_per_physical_sectors to u16
    for the unlikely case of very large logical sectors.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Jeff Garzik

    Christoph Hellwig
     
  • Change 'bp_len' type to __u64 to make it work across archs as
    the s390 architecture watch point length can be upto 2^64.

    reference:
    http://lkml.org/lkml/2010/1/25/212

    This is an ABI change that is not backward compatible with
    the previous hardware breakpoint info layout integrated in this
    development cycle, a rebuilt of perf tools is necessary for
    versions based on 2.6.33-rc1 - 2.6.33-rc6 to work with a
    kernel based on this patch.

    Signed-off-by: Mahesh Salgaonkar
    Acked-by: Peter Zijlstra
    Cc: Ananth N Mavinakayanahalli
    Cc: "K. Prasad"
    Cc: Maneesh Soni
    Cc: Heiko Carstens
    Cc: Martin
    LKML-Reference:
    Signed-off-by: Frederic Weisbecker

    Mahesh Salgaonkar
     

03 Feb, 2010

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (23 commits)
    connector: Delete buggy notification code.
    be2net: use eq-id to calculate cev-isr reg offset
    Bluetooth: Use the control channel for raw HID reports
    Bluetooth: Add DFU driver for Atheros Bluetooth chipset AR3011
    Bluetooth: Redo checks in IRQ handler for shared IRQ support
    Bluetooth: Fix memory leak in L2CAP
    Bluetooth: Remove double free of SKB pointer in L2CAP
    cdc_ether: Partially revert "usbnet: Set link down initially ..."
    be2net: Fix memset() arg ordering.
    bonding: bond_open error return value
    ixgbe: if ixgbe_copy_dcb_cfg is going to fail learn about it early
    ixgbe: set the correct DCB bit for pg tx settings
    igbvf: fix issue w/ mapped_as_page being left set after unmap
    drivers/net: ks8851_mll ethernet network driver
    be2net: Bug fix to support newer generation of BE ASIC
    starfire: clean up properly if firmware loading fails
    mac80211: fix NULL pointer dereference when ftrace is enabled
    netfilter: ctnetlink: fix expectation mask dump
    ipv6: conntrack: Add member of user to nf_ct_frag6_queue structure
    ath9k: fix eeprom INI values override for 2GHz-only cards
    ...

    Linus Torvalds
     
  • On Tue, Feb 02, 2010 at 02:57:14PM -0800, Greg KH (gregkh@suse.de) wrote:
    > > There are at least two ways to fix it: using a big cannon and a small
    > > one. The former way is to disable notification registration, since it is
    > > not used by anyone at all. Second way is to check whether calling
    > > process is root and its destination group is -1 (kind of priveledged
    > > one) before command is dispatched to workqueue.
    >
    > Well if no one is using it, removing it makes the most sense, right?
    >
    > No objection from me, care to make up a patch either way for this?

    Getting it is not used, let's drop support for notifications about
    (un)registered events from connector.
    Another option was to check credentials on receiving, but we can always
    restore it without bugs if needed, but genetlink has a wider code base
    and none complained, that userspace can not get notification when some
    other clients were (un)registered.

    Kudos for Sebastian Krahmer , who found a bug in the
    code.

    Signed-off-by: Evgeniy Polyakov
    Acked-by: Greg Kroah-Hartman
    Signed-off-by: David S. Miller

    Evgeniy Polyakov
     

02 Feb, 2010

3 commits

  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/radeon/kms: Fix oops after radeon_cs_parser_init() failure.
    drm/radeon/kms: move radeon KMS on/off switch out of staging.
    drm/radeon/kms: Bailout of blit if error happen & protect with mutex V3
    drm/vmwgfx: Don't send bad flags to the host
    drm/vmwgfx: Request SVGA version 2 and bail if not found
    drm/vmwgfx: Correctly detect 3D
    drm/ttm: remove unnecessary save_flags and ttm_flag_masked in ttm_bo_util.c
    drm/kms: Remove incorrect comment in struct drm_mode_modeinfo
    drm/ttm: remove padding from ttm_ref_object on 64bit builds
    drm/radeon/kms: release agp on error.
    drm/kms/radeon/agp: Move the check of the aper_size after drm_acp_acquire and drm_agp_info
    drm/kms/radeon/agp: Fix warning, format ‘%d’ expects type ‘int’, but argument 4 has type ‘size_t’
    drm/ttm: Avoid conflicting reserve_memtype during ttm_tt_set_page_caching.
    drm/kms/radeon: pick digitial encoders smarter. (v3)
    drm/radeon/kms: use active device to pick connector for encoder
    drm/radeon/kms: fix incorrect logic in DP vs eDP connector checking.

    Linus Torvalds
     
  • …/git/tip/linux-2.6-tip

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    perf, hw_breakpoint, kgdb: Do not take mutex for kernel debugger
    x86, hw_breakpoints, kgdb: Fix kgdb to use hw_breakpoint API
    hw_breakpoints: Release the bp slot if arch_validate_hwbkpt_settings() fails.
    perf: Ignore perf.data.old
    perf report: Fix segmentation fault when running with '-g none'

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
    powerpc: TIF_ABI_PENDING bit removal
    powerpc/pseries: Fix xics build without CONFIG_SMP
    powerpc/4xx: Add pcix type 1 transactions
    powerpc/pci: Add missing call to header fixup
    powerpc/pci: Add missing hookup to pci_slot
    powerpc/pci: Add calls to set_pcie_port_type() and set_pcie_hotplug_bridge()
    powerpc/40x: Update the PowerPC 40x board defconfigs
    powerpc/44x: Update PowerPC 44x board defconfigs

    Linus Torvalds
     

01 Feb, 2010

2 commits

  • When CONFIG_HAVE_UNSTABLE_SCHED_CLOCK is set, sched_clock() gets
    the time from hardware such as the TSC on x86. In this
    configuration kgdb will report a softlock warning message on
    resuming or detaching from a debug session.

    Sequence of events in the problem case:

    1) "cpu sched clock" and "hardware time" are at 100 sec prior
    to a call to kgdb_handle_exception()

    2) Debugger waits in kgdb_handle_exception() for 80 sec and on
    exit the following is called ... touch_softlockup_watchdog() -->
    __raw_get_cpu_var(touch_timestamp) = 0;

    3) "cpu sched clock" = 100s (it was not updated, because the
    interrupt was disabled in kgdb) but the "hardware time" = 180 sec

    4) The first timer interrupt after resuming from
    kgdb_handle_exception updates the watchdog from the "cpu sched clock"

    update_process_times() { ... run_local_timers() -->
    softlockup_tick() --> check (touch_timestamp == 0) (it is "YES"
    here, we have set "touch_timestamp = 0" at kgdb) -->
    __touch_softlockup_watchdog() ***(A)--> reset "touch_timestamp"
    to "get_timestamp()" (Here, the "touch_timestamp" will still be
    set to 100s.) ...

    scheduler_tick() ***(B)--> sched_clock_tick() (update "cpu sched
    clock" to "hardware time" = 180s) ... }

    5) The Second timer interrupt handler appears to have a large
    jump and trips the softlockup warning.

    update_process_times() { ... run_local_timers() -->
    softlockup_tick() --> "cpu sched clock" - "touch_timestamp" =
    180s-100s > 60s --> printk "soft lockup error messages" ... }

    note: ***(A) reset "touch_timestamp" to
    "get_timestamp(this_cpu)"

    Why is "touch_timestamp" 100 sec, instead of 180 sec?

    When CONFIG_HAVE_UNSTABLE_SCHED_CLOCK is set, the call trace of
    get_timestamp() is:

    get_timestamp(this_cpu)
    -->cpu_clock(this_cpu)
    -->sched_clock_cpu(this_cpu)
    -->__update_sched_clock(sched_clock_data, now)

    The __update_sched_clock() function uses the GTOD tick value to
    create a window to normalize the "now" values. So if "now"
    value is too big for sched_clock_data, it will be ignored.

    The fix is to invoke sched_clock_tick() to update "cpu sched
    clock" in order to recover from this state. This is done by
    introducing the function touch_softlockup_watchdog_sync(). This
    allows kgdb to request that the sched clock is updated when the
    watchdog thread runs the first time after a resume from kgdb.

    [yong.zhang0@gmail.com: Use per cpu instead of an array]
    Signed-off-by: Jason Wessel
    Signed-off-by: Dongdong Deng
    Cc: kgdb-bugreport@lists.sourceforge.net
    Cc: peterz@infradead.org
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jason Wessel
     
  • Signed-off-by: Dave Airlie

    Marcin Kościelnicki
     

30 Jan, 2010

3 commits

  • This patch fixes the regression in functionality where the
    kernel debugger and the perf API do not nicely share hw
    breakpoint reservations.

    The kernel debugger cannot use any mutex_lock() calls because it
    can start the kernel running from an invalid context.

    A mutex free version of the reservation API needed to get
    created for the kernel debugger to safely update hw breakpoint
    reservations.

    The possibility for a breakpoint reservation to be concurrently
    processed at the time that kgdb interrupts the system is
    improbable. Should this corner case occur the end user is
    warned, and the kernel debugger will prohibit updating the
    hardware breakpoint reservations.

    Any time the kernel debugger reserves a hardware breakpoint it
    will be a system wide reservation.

    Signed-off-by: Jason Wessel
    Acked-by: Frederic Weisbecker
    Cc: kgdb-bugreport@lists.sourceforge.net
    Cc: K.Prasad
    Cc: Peter Zijlstra
    Cc: Alan Stern
    Cc: torvalds@linux-foundation.org
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Jason Wessel
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: update multi-touch protocol documentation
    Input: add the ABS_MT_PRESSURE event
    Input: winbond-cir - remove dmesg spam
    Input: lifebook - add another Lifebook DMI signature
    Input: ad7879 - support auxiliary GPIOs via gpiolib

    Linus Torvalds
     
  • 'flush_old_exec()' is the point of no return when doing an execve(), and
    it is pretty badly misnamed. It doesn't just flush the old executable
    environment, it also starts up the new one.

    Which is very inconvenient for things like setting up the new
    personality, because we want the new personality to affect the starting
    of the new environment, but at the same time we do _not_ want the new
    personality to take effect if flushing the old one fails.

    As a result, the x86-64 '32-bit' personality is actually done using this
    insane "I'm going to change the ABI, but I haven't done it yet" bit
    (TIF_ABI_PENDING), with SET_PERSONALITY() not actually setting the
    personality, but just the "pending" bit, so that "flush_thread()" can do
    the actual personality magic.

    This patch in no way changes any of that insanity, but it does split the
    'flush_old_exec()' function up into a preparatory part that can fail
    (still called flush_old_exec()), and a new part that will actually set
    up the new exec environment (setup_new_exec()). All callers are changed
    to trivially comply with the new world order.

    Signed-off-by: H. Peter Anvin
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

29 Jan, 2010

3 commits


28 Jan, 2010

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] aic79xx: check for non-NULL scb in ahd_handle_nonpkt_busfree
    [SCSI] zfcp: Set hardware timeout as requested by BSG request.
    [SCSI] zfcp: Introduce bsg_timeout callback.
    [SCSI] scsi_transport_fc: Allow LLD to reset FC BSG timeout
    [SCSI] zfcp: add missing compat ptr conversion
    [SCSI] zfcp: Fix linebreak in hba trace
    [SCSI] zfcp: Issue zfcp_fc_wka_port_put after FC CT BSG request
    [SCSI] qla2xxx: Update version number to 8.03.01-k10.
    [SCSI] fc-transport: Use packed modifier for fc_bsg_request structure.
    [SCSI] qla2xxx: Perform fast mailbox read of flash regardless of size nor address alignment.
    [SCSI] qla2xxx: Correct FCP2 recovery handling.
    [SCSI] scsi_lib: Fix bug in completion of bidi commands
    [SCSI] mptsas: Fix issue with chain pools allocation on katmai
    [SCSI] aacraid: fix File System going into read-only mode
    [SCSI] lpfc: fix file permissions

    Linus Torvalds
     
  • It's a simplified 'read_cache_page()' which takes a page allocation
    flag, so that different paths can control how aggressive the memory
    allocations are that populate a address space.

    In particular, the intel GPU object mapping code wants to be able to do
    a certain amount of own internal memory management by automatically
    shrinking the address space when memory starts getting tight. This
    allows it to dynamically use different memory allocation policies on a
    per-allocation basis, rather than depend on the (static) address space
    gfp policy.

    The actual new function is a one-liner, but re-organizing the helper
    functions to the point where you can do this with a single line of code
    is what most of the patch is all about.

    Tested-by: Chris Wilson
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

27 Jan, 2010

1 commit


26 Jan, 2010

3 commits

  • * 'kvm-updates/2.6.33' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init()
    KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks
    KVM: S390: fix potential array overrun in intercept handling
    KVM: fix spurious interrupt with irqfd
    eventfd - allow atomic read and waitqueue remove
    KVM: MMU: bail out pagewalk on kvm_read_guest error
    KVM: properly check max PIC pin in irq route setup
    KVM: only allow one gsi per fd
    KVM: x86: Fix host_mapping_level()
    KVM: powerpc: Show timing option only on embedded
    KVM: Fix race between APIC TMR and IRR

    Linus Torvalds
     
  • * 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: (95 commits)
    drm/radeon/kms: preface warning printk with driver name
    drm/radeon/kms: drop unnecessary printks.
    drm: fix regression in fb blank handling
    drm/radeon/kms: make hibernate work on IGPs
    drm/vmwgfx: Optimize memory footprint for DMA buffers.
    drm/ttm: Allow system memory as a busy placement.
    drm/ttm: Fix race condition in ttm_bo_delayed_delete (v3, final)
    drm/nv50: prevent switching off SOR when in use for DVI-over-DP
    drm/nv50: fail auxch transaction if reply count not what we expect
    drm/nouveau: fix failure path if userspace specifies no valid memtypes
    drm/nouveau: report LVDS as disconnected if lid closed
    drm/radeon/kms: fix legacy get_engine/memory clock
    drm/radeon/kms/atom: atom parser fixes
    drm/radeon/kms: clean up atombios pll code
    drm/radeon/kms: clean up pll struct
    drm/radeon/kms/atom: fix crtc lock ordering
    drm/radeon: r6xx/r7xx possible security issue, system ram access
    drm/radeon/kms: r600/r700 don't test ib if ib initialization fails
    drm/radeon/kms: Forbid creation of framebuffer with no valid GEM object
    drm/radeon/kms: r600 handle irq vector ring overflow
    ...

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (42 commits)
    virtio_net: Make delayed refill more reliable
    sfc: Use fixed-size buffers for MCDI NVRAM requests
    sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer
    tcp_probe: avoid modulus operation and wrap fix
    qlge: Only free resources if they were allocated
    netns xfrm: deal with dst entries in netns
    sky2: revert config space change
    vlan: fix vlan_skb_recv()
    netns xfrm: fix "ip xfrm state|policy count" misreport
    sky2: Enable/disable WOL per hardware device
    net: Fix IPv6 GSO type checks in Intel ethernet drivers
    igb/igbvf: cleanup exception handling in tx_map_adv
    MAINTAINERS: Add Intel igbvf maintainer
    e1000/e1000e: don't use small hardware rx buffers
    fmvj18x_cs: add new id (Panasonic lan & modem card)
    be2net: swap only first 2 fields of mcc_wrb
    Please add support for Microsoft MN-120 PCMCIA network card
    be2net: fix bug in rx page posting
    wimax/i2400m: Add support for more i6x50 SKUs
    e1000e: enhance frame fragment detection
    ...

    Linus Torvalds
     

25 Jan, 2010

2 commits

  • KVM needs a wait to atomically remove themselves from the eventfd ->poll()
    wait queue head, in order to handle correctly their IRQfd deassign
    operation.

    This patch introduces such API, plus a way to read an eventfd from its
    context.

    Signed-off-by: Davide Libenzi
    Signed-off-by: Avi Kivity

    Davide Libenzi
     
  • GC is non-existent in netns, so after you hit GC threshold, no new
    dst entries will be created until someone triggers cleanup in init_net.

    Make xfrm4_dst_ops and xfrm6_dst_ops per-netns.
    This is not done in a generic way, because it woule waste
    (AF_MAX - 2) * sizeof(struct dst_ops) bytes per-netns.

    Reorder GC threshold initialization so it'd be done before registering
    XFRM policies.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: David S. Miller

    Alexey Dobriyan