17 Oct, 2007

40 commits

  • Because the current batch setup has an quadric error bound on the counter,
    allow for an alternative setup.

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Hugh spotted that some code does:
    percpu_counter_add(&counter, -unsignedlong)

    which, when the amount argument is of type s32, sort-of works thanks to
    two's-complement. However when we'd change the type to s64 this breaks on 32bit
    machines, because the promotion rules zero extend the unsigned number.

    Provide percpu_counter_sub() to hide the s64 cast. That is:
    percpu_counter_sub(&counter, foo)
    is equal to:
    percpu_counter_add(&counter, -(s64)foo);

    Signed-off-by: Peter Zijlstra
    Cc: Hugh Dickins
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • s/percpu_counter_mod/percpu_counter_add/

    Because its a better name, _mod implies modulo.

    Signed-off-by: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • These patches aim to improve balance_dirty_pages() and directly address three
    issues:
    1) inter device starvation
    2) stacked device deadlocks
    3) inter process starvation

    1 and 2 are a direct result from removing the global dirty limit and using
    per device dirty limits. By giving each device its own dirty limit is will
    no longer starve another device, and the cyclic dependancy on the dirty limit
    is broken.

    In order to efficiently distribute the dirty limit across the independant
    devices a floating proportion is used, this will allocate a share of the total
    limit proportional to the device's recent activity.

    3 is done by also scaling the dirty limit proportional to the current task's
    recent dirty rate.

    This patch:

    nfs: remove congestion_end(). It's redundant, clear_bdi_congested() already
    wakes the waiters.

    Signed-off-by: Peter Zijlstra
    Cc: Trond Myklebust
    Cc: "J. Bruce Fields"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Update dump_task_altivec() (which has so far never been put to use) so that
    it dumps the Altivec/VMX registers (VR[0] - VR[31], VSCR and VRSAVE) in the
    same format as the ptrace get_vrregs(), and add the appropriate glue
    typedef and #defines to make it work.

    A new note type of NT_PPC_VMX was chosen to be 0x100 (arbitrarily) because
    it allows the low range values to be used for more generic purposes and
    0x100 seems an adequate starting point for PowerPC extensions.

    Signed-off-by: Mark Nelson
    Signed-off-by: Paul Mackerras
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Nelson
     
  • Replace NT_PRXFPREG with ELF_CORE_XFPREG_TYPE in the coredump code which
    allows for more flexibility in the note type for the state of 'extended
    floating point' implementations in coredumps. New note types can now be
    added with an appropriate #define.

    This does #define ELF_CORE_XFPREG_TYPE to be NT_PRXFPREG in all
    current users so there's are no change in behaviour.

    This will let us use different note types on powerpc for the Altivec/VMX
    state that some PowerPC cpus have (G4, PPC970, POWER6) and for the SPE
    (signal processing extension) state that some embedded PowerPC cpus from
    Freescale have.

    Signed-off-by: Mark Nelson
    Cc: Paul Mackerras
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Andi Kleen
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Nelson
     
  • Try to fix the mess created by sysfs braindamage.

    - refactor code internal to fs/namei.c a little to avoid too much
    duplication:
    o __lookup_hash_kern is renamed back to __lookup_hash
    o the old __lookup_hash goes away, permission checks moves to
    the two callers
    o useless inline qualifiers on above functions go away
    - lookup_one_len_kern loses it's last argument and is renamed to
    lookup_one_noperm to make it's useage a little more clear
    - added kerneldoc comments to describe lookup_one_len aswell as
    lookup_one_noperm and make it very clear that no one should use
    the latter ever.

    Signed-off-by: Christoph Hellwig
    Cc: Josef 'Jeff' Sipek
    Cc: Miklos Szeredi
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • * 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
    WOL bugfix for 3c59x.c
    skge 1.12
    skge: add a debug interface
    skge: eeprom support
    skge: internal stats
    skge: XM PHY handling fixes
    skge: changing MTU while running causes problems
    skge: fix ram buffer size calculation
    gianfar: Fix compile regression caused by 09f75cd7
    net: Fix new EMAC driver for NAPI changes
    bonding: two small fixes for IPoIB support
    e1000e: don't poke PHY registers to retreive link status
    e1000e: fix error checks
    e1000e: Fix debug printk macro
    tokenring/3c359.c: fixed array index problem
    [netdrvr] forcedeth: remove in-driver copy of net_device_stats
    [netdrvr] forcedeth: improved probe info; dev_printk() cleanups
    forcedeth: fix NAPI rx poll function

    Linus Torvalds
     
  • AFAICS, fallout from repacing include of blkdev.h with include of bio.h.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • This fixes a lost 'key' variable declaration that went missing in a
    mismerge (commit b981d8b3f5e008ff10d993be633ad00564fc22cd)

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • Some NICs (3c905B) can not generate PME in power state PCI_D0, while others
    like 3c905C can. Call pci_enable_wake() with PCI_D3hot should give proper
    WOL for 3c905B.

    Signed-off-by: Steffen Klassert
    Tested-by: Harry Coin
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Steffen Klassert
     
  • version update

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Add a debugfs interface to look at internal ring state.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Add ability to read/write EEPROM

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Use internal stats structure

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Change how PHY is managed on SysKonnect fibre based boards.
    Poll for PHY coming up 1 per second, but use interrupt to detect loss.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Rather than bring network down/up when changing MTU,
    only need to impact receiver.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • This fixes problems with transmit hangs on older fiber based SysKonnect boards.

    Adjust ram buffer sizing calculation to make it correct on all boards
    and make it like the code in sky2 driver.

    Signed-off-by: Stephen Hemminger
    Signed-off-by: Jeff Garzik

    Stephen Hemminger
     
  • Signed-off-by: Li Yang
    Signed-off-by: Jeff Garzik

    Li Yang
     
  • net: Fix new EMAC driver for NAPI changes

    This fixes the new EMAC driver for the NAPI updates. The previous patch
    by Roland Dreier (already applied) to do that doesn't actually work. This
    applies on top of it makes it work on my test Ebony machine.

    This patch depends on "net: Add __napi_sycnhronize() to sync with napi poll"
    posted previously.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Jeff Garzik

    Benjamin Herrenschmidt
     
  • Two small fixes to IPoIB support for bonding:

    1- copy header_ops from slave to bonding for IPoIB slaves
    2- move release and destroy logic to UNREGISTER from GOING_DOWN
    notifier to avoid double release

    Set bonding to version 3.2.1.

    Signed-off-by: Moni Shoua
    Signed-off-by: Jay Vosburgh
    Signed-off-by: Jeff Garzik

    Jay Vosburgh
     
  • Apparently poking the link status registers when autonegotiation
    is running on the PHY might botch the PHY link on 80003es2lan
    devices. While this is a very rare condition we can completely
    avoid it alltogether by just using the MAC link bits to provide
    the proper information to ethtool.

    Signed-off-by: Auke Kok
    Signed-off-by: Jeff Garzik

    Auke Kok
     
  • Spotted by the Coverity checker.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Auke Kok
    Signed-off-by: Jeff Garzik

    Adrian Bunk
     
  • Spotted by Joe Perches.

    Signed-off-by: Auke Kok
    Signed-off-by: Jeff Garzik

    Auke Kok
     
  • The xl_laa array is just 6 bytes long, so we should substract
    10 from the index, like is also done some lines above already.

    Signed-Off-By: Marcus Meissner

    Signed-off-by: Jeff Garzik

    Marcus Meissner
     
  • A copy of struct net_device_stats now lives in struct net_device,
    making in-driver copies a waste of memory.

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • main change:
    * greatly improve per-NIC probe diagnostic output. Similar to other
    net drivers, print out MAC address, PHY info, and various hardware and
    software flags that may be relevant.

    other changes:
    * similar to other net drivers, only print the initial version message
    when we have found at least one board.

    * don't bother to print error message when pci_enable_device() fails,
    it will do so for us.

    * use dev_printk() rather than printk() in nv_probe(). This gives
    use a standardized output similar to the rest of the kernel, and
    eliminates the need to manually print out PCI bus id.

    * use DRV_NAME constant where appropriate

    * clean struct pci_driver indentation

    Signed-off-by: Jeff Garzik

    Jeff Garzik
     
  • fix the forcedeth NAPI poll function to not emit this warning:

    [ 186.635916] WARNING: at net/core/dev.c:2166 net_rx_action()
    [ 186.641351] [] net_rx_action+0x145/0x1b0
    [ 186.646191] [] __do_softirq+0x42/0x90
    [ 186.650784] [] do_softirq+0x26/0x30
    [ 186.655202] [] local_bh_enable+0x48/0xa0
    [ 186.660055] [] lock_sock_nested+0xa0/0xc0
    [ 186.664995] [] tcp_recvmsg+0x16/0xbc0
    [ 186.669588] [] __generic_file_aio_write_nolock+0x27b/0x520
    [ 186.676001] [] sock_common_recvmsg+0x45/0x70
    [ 186.681202] [] sock_aio_read+0x11f/0x140
    [ 186.686054] [] do_sync_read+0xc6/0x110
    [ 186.690735] [] autoremove_wake_function+0x0/0x40
    [ 186.696280] [] net_tx_action+0x3c/0xe0
    [ 186.700961] [] vfs_read+0x132/0x140
    [ 186.705378] [] sys_read+0x41/0x70
    [ 186.709625] [] sysenter_past_esp+0x5f/0x89
    [ 186.714651] =======================

    Signed-off-by: Ingo Molnar
    Signed-off-by: Jeff Garzik

    Ingo Molnar
     
  • * master.kernel.org:/pub/scm/linux/kernel/git/bart/ide-2.6: (33 commits)
    amd74xx: remove /proc/ide/amd74xx
    amd74xx/via82cxxx: don't initialize drive->dn
    sis5513: remove /proc/ide/sis
    ide: remove CONFIG_IDEDMA_ONLYDISK
    ide: add "hdx=nodma" kernel parameter
    ide: remove hwif->autodma and drive->autodma
    ide: remove "idex=dma" kernel parameter
    ide: remove CONFIG_BLK_DEV_IDEDMA_FORCED
    ide: use PCI_VDEVICE() macro
    sis5513: clear prefetch and postwrite for ATAPI devices
    it8213/piix/slc90e66: "de-couple" PIO and UDMA modes
    ide: unexport noautodma
    ide: unexport ide_tune_dma
    ide: remove ->ide_dma_check (take 2)
    ide-pmac: add PIO autotune fallback to ->ide_dma_check
    ide-cris: add PIO autotune fallback to ->ide_dma_check
    sl82c105: add PIO autotune fallback to ->ide_dma_check
    cs5530/sc1200: add PIO autotune fallback to ->ide_dma_check
    ide: remove ide_use_fast_pio()
    ide: remove drive->init_speed zeroing
    ...

    Linus Torvalds
     
  • Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6:
    SELinux: kills warnings in Improve SELinux performance when AVC misses
    SELinux: improve performance when AVC misses.
    SELinux: policy selectable handling of unknown classes and perms
    SELinux: Improve read/write performance
    SELinux: tune avtab to reduce memory usage

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (25 commits)
    firewire: fw-cdev: reorder wakeup vs. spinlock
    firewire: in-code doc updates.
    firewire: a header cleanup
    firewire: adopt read cycle timer ABI from raw1394
    firewire: fw-ohci: check for misconfigured bus (phyID == 63)
    firewire: fw-ohci: missing dma_unmap_single
    firewire: fw-ohci: log posted write errors
    firewire: fw-ohci: reorder includes
    firewire: fw-ohci: fix includes
    firewire: fw-ohci: enforce read order for selfID generation
    firewire: fw-sbp2: use an own workqueue (fix system responsiveness)
    firewire: fw-sbp2: expose module parameter for workarounds
    firewire: fw-sbp2: add support for multiple logical units per target
    firewire: fw-sbp2: always enable IRQs before calling command ORB callback
    firewire: fw-core: local variable shadows a global one
    firewire: optimize fw_core_add_address_handler
    ieee1394: ieee1394_core.c: use DEFINE_SPINLOCK for spinlock definition
    ieee1394: csr1212: proper refcounting
    ieee1394: nodemgr: fix leak of struct csr1212_keyval
    ieee1394: pcilynx: I2C cleanups
    ...

    Linus Torvalds
     
  • * ssh://master.kernel.org/pub/scm/linux/kernel/git/sam/kbuild:
    x86: fix boot error introduced by kbuild

    Linus Torvalds
     
  • * 'release' of ssh://master.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
    [IA64] Fix build for CONFIG_SMP=n

    Linus Torvalds
     
  • This patch kills ugly warnings when the "Improve SELinux performance
    when ACV misses" patch.

    Signed-off-by: KaiGai Kohei
    Signed-off-by: James Morris

    KaiGai Kohei
     
  • * We add ebitmap_for_each_positive_bit() which enables to walk on
    any positive bit on the given ebitmap, to improve its performance
    using common bit-operations defined in linux/bitops.h.
    In the previous version, this logic was implemented using a combination
    of ebitmap_for_each_bit() and ebitmap_node_get_bit(), but is was worse
    in performance aspect.
    This logic is most frequestly used to compute a new AVC entry,
    so this patch can improve SELinux performance when AVC misses are happen.
    * struct ebitmap_node is redefined as an array of "unsigned long", to get
    suitable for using find_next_bit() which is fasted than iteration of
    shift and logical operation, and to maximize memory usage allocated
    from general purpose slab.
    * Any ebitmap_for_each_bit() are repleced by the new implementation
    in ss/service.c and ss/mls.c. Some of related implementation are
    changed, however, there is no incompatibility with the previous
    version.
    * The width of any new line are less or equal than 80-chars.

    The following benchmark shows the effect of this patch, when we
    access many files which have different security context one after
    another. The number is more than /selinux/avc/cache_threshold, so
    any access always causes AVC misses.

    selinux-2.6 selinux-2.6-ebitmap
    AVG: 22.763 [s] 8.750 [s]
    STD: 0.265 0.019
    ------------------------------------------
    1st: 22.558 [s] 8.786 [s]
    2nd: 22.458 [s] 8.750 [s]
    3rd: 22.478 [s] 8.754 [s]
    4th: 22.724 [s] 8.745 [s]
    5th: 22.918 [s] 8.748 [s]
    6th: 22.905 [s] 8.764 [s]
    7th: 23.238 [s] 8.726 [s]
    8th: 22.822 [s] 8.729 [s]

    Signed-off-by: KaiGai Kohei
    Acked-by: Stephen Smalley
    Signed-off-by: James Morris

    KaiGai Kohei
     
  • Allow policy to select, in much the same way as it selects MLS support, how
    the kernel should handle access decisions which contain either unknown
    classes or unknown permissions in known classes. The three choices for the
    policy flags are

    0 - Deny unknown security access. (default)
    2 - reject loading policy if it does not contain all definitions
    4 - allow unknown security access

    The policy's choice is exported through 2 booleans in
    selinuxfs. /selinux/deny_unknown and /selinux/reject_unknown.

    Signed-off-by: Eric Paris
    Acked-by: Stephen Smalley
    Signed-off-by: James Morris

    Eric Paris
     
  • It reduces the selinux overhead on read/write by only revalidating
    permissions in selinux_file_permission if the task or inode labels have
    changed or the policy has changed since the open-time check. A new LSM
    hook, security_dentry_open, is added to capture the necessary state at open
    time to allow this optimization.

    (see http://marc.info/?l=selinux&m=118972995207740&w=2)

    Signed-off-by: Yuichi Nakamura
    Acked-by: Stephen Smalley
    Signed-off-by: James Morris

    Yuichi Nakamura
     
  • This patch reduces memory usage of SELinux by tuning avtab. Number of hash
    slots in avtab was 32768. Unused slots used memory when number of rules is
    fewer. This patch decides number of hash slots dynamically based on number
    of rules. (chain length)^2 is also printed out in avtab_hash_eval to see
    standard deviation of avtab hash table.

    Signed-off-by: Yuichi Nakamura
    Acked-by: Stephen Smalley
    Signed-off-by: James Morris

    Yuichi Nakamura
     
  • Signed-off-by: Jay Fenlason

    Prompted by https://bugzilla.redhat.com/show_bug.cgi?id=323411

    Signed-off-by: Stefan Richter

    Jay Fenlason