17 Oct, 2007

40 commits

  • 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
     
  • Signed-off-by: Yann Dirson
    Signed-off-by: Stefan Richter (update)

    Yann Dirson
     
  • fw_node() is not used (and not useful) outside fw-topology.c.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • This duplicates the read cycle timer feature of raw1394 (added in Linux
    2.6.21) in firewire-core's userspace ABI. The argument to the ioctl is
    reordered though to ensure 32/64 bit compatibility.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • Check NodeID.nodeNumber as per OHCI 1.1 clause 7.2.3.2. See also IEEE
    1394a table 5B-1.

    Also, demote the "node ID not valid" message from error to notification
    as it is not an error condition.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • at_context_queue_packet() didn't clean up in an early exit path.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Add used includes, remove unused includes.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • It seems unlikely, but access to self_id_cpu[0] could at least in theory
    be deferred until after the loop over self_id_cpu[1..n] or even after
    the subsequent reg_read. Enforce the desired order by a read barrier.

    Also prevent the reg_read from being reordered relative to the for loop.
    This isn't necessary if the loop's conditional printk counts as an
    implicit barrier, but better make it explicit.

    (self_id_cpu[] is a coherent DMA buffer.)

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Firewire-sbp2 did very uncooperative things in the kernel's shared
    workqueue: Sleeping until reception of management status from the
    target for up to 2 seconds, and performing SCSI inquiry and all of the
    setup of SCSI command set drivers via scsi_add_device. If there were
    transient or permanent error conditions, this caused long blockage of
    the kernel's events process, noticeable e.g. by blocked keyboard input.

    We now allocate a workqueue process exclusive to fw-sbp2. As a side
    effect, this also increases parallelism of fw-sbp2's login and reconnect
    work versus fw-core's device discovery and device update work which is
    performed in the shared workqueue.

    Signed-off-by: Stefan Richter
    Signed-off-by: Kristian Høgsberg

    Stefan Richter
     
  • On rare occasions, the ability to set one of the workaround flags at
    runtime may save the day.

    People who experience I/O errors with firewire-sbp2 while the old sbp2
    driver worked for them should try workarounds=1 and report to the devel
    mailinglist whether that improves things. Firewire-sbp2 defaults to the
    SCSI stack's maximum transfer size per command, while sbp2 limits them
    to 128 kBytes. Flag 1 accomplishes just that.

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • Fixes "New firewire stack only recognizing half of a chain of drives",
    https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=242254

    Signed-off-by: Stefan Richter

    Stefan Richter
     
  • On IOMMU-less noncoherent architectures, orb->callback will memcpy the
    whole SCSI command buffer for READ-like SCSI commands. It is therefore
    friendlier to enable IRQs before the call, like before patch "Add
    ref-counting for sbp2 orbs".

    Signed-off-by: Stefan Richter
    Acked-by: Kristian Høgsberg

    Stefan Richter