24 Jan, 2008

2 commits

  • I've verified (on my Initio 9100 with a DAT drive) that the
    2.6.24-rc8-git6 initio module still hangs on loading.

    These fixes (other than the printk) are needed to get the module to load
    ok (and work correctly) with my adapter & tape drive.

    a) printk cosmetic fix

    b) cblk->sglen needs setting for later DMA I/O routines to use

    c) host->bios_addr needs setting for debug output correctness

    d) semaph & semaph_lock initialisation had got lost since 2.6.22

    e) since 2.6.22 the bios data address was truncated to 16 bits (needs 20
    when shifted left)

    Signed-off-by: James Bottomley

    Stuart Swales
     
  • Update ctime and mtime for memory-mapped files at a write access on
    a present, read-only PTE, as well as at a write on a non-present PTE.

    Signed-off-by: Anton Salikhmetov
    Signed-off-by: Linus Torvalds

    Anton Salikhmetov
     

23 Jan, 2008

8 commits

  • When we set the MFGPT timer tick, there is a chance that we'll
    immediately assert an event. If for some reason the IRQ routing
    for this clock has been setup for some other purpose, then we
    could end up firing an interrupt into the SMM handler or worse.

    This rearranges the timer tick init function to initalize the handler
    before we set up the MFGPT clock to make sure that even if we get
    an event, it will go to the handler.

    Furthermore, in the handler we need to make sure that we clear the
    event, even if the timer isn't running.

    Signed-off-by: Jordan Crouse
    Signed-off-by: Thomas Gleixner
    Acked-by: Ingo Molnar
    Tested-by: Arnd Hannemann

    Jordan Crouse
     
  • Fix typo in arch/powerpc/boot/flatdevtree_env.h.
    There is no Documentation/networking/ixgbe.txt.

    README.cycladesZ is now in Documentation/.
    wavelan.p.h is now in drivers/net/wireless/.
    HFS.txt is now Documentation/filesystems/hfs.txt.
    OSS-files are now in sound/oss/.

    Signed-off-by: Johann Felix Soden
    Acked-by: Randy Dunlap
    Signed-off-by: Linus Torvalds

    Johann Felix Soden
     
  • * 'release' of git://lm-sensors.org/kernel/mhoffman/hwmon-2.6:
    hwmon: (it87) request only Environment Controller ports

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/x86/linux-2.6-x86:
    Revert "x86: fix NMI watchdog & 'stopped time' problem"

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mingo/linux-2.6-sched:
    sched: group scheduler, set uid share fix

    Linus Torvalds
     
  • rcu_online_cpu() should be __cpuinit instead of __devinit.

    WARNING: vmlinux.o(.text+0x4b6d5): Section mismatch: reference to .init.text: (between 'rcu_cpu_notify' and 'wakeme_after_rcu')

    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Acked-by: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • The extra rom[0] check is flagging valid temperatures as invalid when
    there is already a CRC data transmission check.

    w1_therm_read_bin()
    if (rom[8] == crc && rom[0])
    verdict = 1;

    Requiring rom[0] to be non-zero will flag as invalid temperature
    conversions when the low byte is zero, specifically the temperatures 0C,
    16C, 32C, 48C, -16C, -32C, and -48C.

    The CRC check is produced on the device for the previous 8 bytes and is
    required to ensure the data integrity in transmission. I don't see why the
    extra check for rom[0] being non-zero is in there. Evgeniy Polyakov didn't
    know either. Just for a check I unplugged the sensor, executed a
    temperature conversion, and read the results. The read was all ff's, which
    also failed the CRC, so it doesn't need to protect against a disconnected
    sensor.

    I have more extensive patches in the work, but these two trivial ones will
    do for today. I would like to hear from people who use the ds2490 USB to
    one wire dongle. 1 if you would be willing to test the patches as I
    currently only have the one sensor on a short parisite powered wire, 2 if
    there is any cheap sources for the ds2490.

    Signed-off-by: David Fries
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Fries
     
  • Correct the decoding of negative C temperatures. The code did a binary OR
    of two bytes to make a 16 bit value, but assignd it to an integer. This
    caused the value to not be sign extended and to loose that it was a
    negative number in the assignment.

    Before the patch (in my freezer),
    w1_slave
    ed fe 4b 46 7f ff 03 10 e4 : crc=e4 YES
    ed fe 4b 46 7f ff 03 10 e4 t=4078
    With the patch,
    e3 fe 4b 46 7f ff 0d 10 81 : crc=81 YES
    e3 fe 4b 46 7f ff 0d 10 81 t=-17

    Signed-off-by: David Fries
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Fries
     

22 Jan, 2008

17 commits

  • The IT8705F and related parts are Super I/O controllers that contain
    many separate devices.

    Some BIOSes describe IT8705F I/O port usage under a motherboard device
    (PNP0C02) with overlapping regions, e.g., 0x290-0x29f and 0x290-0x294.

    The it87 driver supports only the Environment Controller, which requires
    only two ISA ports, but it used to request an eight-port range. If that
    range exceeds a range reported by the BIOS, as 0x290-0x297 would, the
    request fails, and the it87 driver cannot claim the device.

    This patch makes the it87 driver request only the two ports used for the
    Environment Controller device.

    Systems where this problem has been reported:
    Gigabyte GA-K8N Ultra 9
    Gigabyte M56S-S3
    Gigabyte GA-965G-DS3

    Kernel bug reports:
    http://bugzilla.kernel.org/show_bug.cgi?id=9514
    http://lkml.org/lkml/2007/12/4/466

    Related change:
    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a7839e960675b549f06209d18283d5cee2ce9261

    The patch above increases the number of PNP port resources we support.
    Prior to this patch, we ignored some port resources, which masked the
    it87 problem.

    Signed-off-by: Bjorn Helgaas
    Signed-off-by: Mark M. Hoffman

    Bjorn Helgaas
     
  • setting cpu share to 1 causes hangs, as reported in:

    http://bugzilla.kernel.org/show_bug.cgi?id=9779

    as the default share is 1024, the values of 0 and 1 can indeed
    cause problems. Limit it to 2 or higher values.

    These values can only be set by the root user - but still it
    makes sense to protect against nonsensical values.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • This reverts commit d4d25deca49ec2527a634557bf5a6cf449f85deb.

    It tried to fix long standing bugzilla entries, but the solution was
    reported to break other systems. The reporter of

    http://bugzilla.kernel.org/show_bug.cgi?id=9791

    tracked it down to this commit and confirmed that reverting the patch
    restores the correct behaviour. It's too late in the release cycle to
    find a better solution than reverting the commit to avoid regressions.

    Signed-off-by: Thomas Gleixner
    Acked-by: Ingo Molnar

    Thomas Gleixner
     
  • Change two occurances of "behavour" to "behaviour".

    Signed-off-by: Linus Nilsson
    Signed-off-by: Linus Torvalds

    Linus Nilsson
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/selinux-2.6:
    selinux: fix memory leak in netlabel code

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
    [ICMP]: ICMP_MIB_OUTMSGS increment duplicated
    [IPV6]: RFC 2011 compatibility broken
    [IPV6]: ICMP6_MIB_OUTMSGS increment duplicated
    [NET]: rtnl_link: fix use-after-free
    [AF_KEY]: Fix skb leak on pfkey_send_migrate() error
    [ATM] atm/suni.c: Fix section mismatch.
    [ATM] atm/idt77105.c: Fix section mismatch.
    [IrDA]: af_irda memory leak fixes
    [NEIGH]: Revert 'Fix race between neigh_parms_release and neightbl_fill_parms'
    [NETFILTER]: bridge-netfilter: fix net_device refcnt leaks
    [IPV6] ROUTE: Make sending algorithm more friendly with RFC 4861.
    [IPV4] FIB_HASH : Avoid unecessary loop in fn_hash_dump_zone()
    [NET]: Fix interrupt semaphore corruption in Intel drivers.
    [IPV4] fib_trie: fix duplicated route issue
    [IPV4] fib_hash: fix duplicated route issue
    [IPV6]: Mischecked tw match in __inet6_check_established.
    rfkill: call rfkill_led_trigger_unregister() on error

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    tc35815: Use irq number for tc35815-mac platform device id
    [MIPS] Malta: Fix reading the PCI clock frequency on big-endian
    [MIPS] SMTC: Fix build error.

    Linus Torvalds
     
  • In linux-2.6.24-rc1, security/commoncap.c:cap_inh_is_capped() was
    introduced. It has the exact reverse of its intended behavior. This
    led to an unintended privilege esculation involving a process'
    inheritable capability set.

    To be exposed to this bug, you need to have Filesystem Capabilities
    enabled and in use. That is:

    - CONFIG_SECURITY_FILE_CAPABILITIES must be defined for the buggy code
    to be compiled in.

    - You also need to have files on your system marked with fI bits raised.

    Signed-off-by: Andrew G. Morgan

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

    Andrew G. Morgan
     
  • Fix line length calculation. var->width is the size of the display in mm. We
    like to use the pixel size.

    Without this fix, dynamic (fbset) based resolution and depths changes with
    s3c2410_fb don't work at all.

    Spotted by john cass

    Signed-off-by: Stefan Schmidt
    Signed-off-by: Harald Welte
    Acked-by: Ben Dooks
    Acked-by: Arnaud Patard
    Acked-by: Krzysztof Helt
    Cc: "Antonino A. Daplas"
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Stefan Schmidt
     
  • Signed-off-by: Cyrill Gorcunov
    Acked-by: Jesper Nilsson
    Cc: Mikael Starvik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Cyrill Gorcunov
     
  • The caller is __cpuinit.
    Also, this code block and its caller are inside #ifdef CONFIG_HOTPLUG_CPU
    blocks, so this code should reflect that config symbol's usage.

    WARNING: vmlinux.o(.text+0x4252f): Section mismatch: reference to .init.text: (between 'timer_cpu_notify' and 'msleep')

    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Fix section mismatch in hrtimer.c:

    WARNING: vmlinux.o(.text+0x50c61): Section mismatch: reference to .init.text: (between 'hrtimer_cpu_notify' and 'down_read_trylock')

    Noticed by Johannes Berg and confirmed by Sam Ravnborg.

    Signed-off-by: Randy Dunlap
    Cc: Sam Ravnborg
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • If we get a data URB back from the hardware after we have put the tty to
    bed we go kaboom. Fortunately all we need to do is process the URB without
    trying to ram its contents down the throat of an ex-tty.

    Signed-off-by: Alan Cox
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alan Cox
     
  • The tc35815-mac platform device used a pci bus number and a devfn to
    identify its target device, but the pci bus number may vary if some
    bus-bridges are found. Use irq number which is be unique for embedded
    controllers.

    Signed-off-by: Atsushi Nemoto
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • The JMPRS register on Malta boards keeps a 32-bit CPU-endian
    value. The readw() function assumes that the value it reads is a
    little-endian 16-bit number. Therefore, using readw() to obtain
    the value of the JMPRS register is a mistake. This error leads
    to incorrect reading of the PCI clock frequency on big-endian
    during board start-up.

    Change readw() to __raw_readl().

    This was tested by injecting a call to printk() and verifying
    that the value of the jmpr variable was consistent with current
    setting of the JP4 "PCI CLK" jumper.

    Signed-off-by: Dmitri Vorobiev
    Signed-off-by: Ralf Baechle

    Dmitri Vorobiev
     
  • Fix compile warning (which becomes compile error due to -Werror). Type of
    argument "flags" for spin_lock_irqsave() was incorrect in some functions.

    Signed-off-by: Frank Rowand
    Signed-off-by: Ralf Baechle

    Frank Rowand
     
  • Fix a memory leak in security_netlbl_sid_to_secattr() as reported here:
    * https://bugzilla.redhat.com/show_bug.cgi?id=352281

    Signed-off-by: Paul Moore
    Signed-off-by: James Morris

    Paul Moore
     

21 Jan, 2008

13 commits

  • Commit "96793b482540f3a26e2188eaf75cb56b7829d3e3" (Add ICMPMsgStats
    MIB (RFC 4293)) made a mistake.

    In that patch, David L added a icmp_out_count() in
    ip_push_pending_frames(), remove icmp_out_count() from
    icmp_reply(). But he forgot to remove icmp_out_count() from
    icmp_send() too. Since icmp_send and icmp_reply will call
    icmp_push_reply, which will call ip_push_pending_frames, a duplicated
    increment happened in icmp_send.

    This patch remove the icmp_out_count from icmp_send too.

    Signed-off-by: Wang Chen
    Signed-off-by: David S. Miller

    Wang Chen
     
  • The snmp6 entry name was changed, and it broke compatibility
    to RFC 2011.

    Signed-off-by: Wang Chen
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    Wang Chen
     
  • icmpv6_send() calls ip6_push_pending_frames() indirectly.
    Both ip6_push_pending_frames() and icmpv6_send() increment
    counter ICMP6_MIB_OUTMSGS.

    This patch remove the increment from icmpv6_send.

    Signed-off-by: Wang Chen
    Acked-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    Wang Chen
     
  • When unregistering the rtnl_link_ops, all existing devices using
    the ops are destroyed. With nested devices this may lead to a
    use-after-free despite the use of for_each_netdev_safe() in case
    the upper device is next in the device list and is destroyed
    by the NETDEV_UNREGISTER notifier.

    The easy fix is to restart scanning the device list after removing
    a device. Alternatively we could add new devices to the front of
    the list to avoid having dependant devices follow the device they
    depend on. A third option would be to only restart scanning if
    dev->iflink of the next device matches dev->ifindex of the current
    one. For now this seems like the safest solution.

    With this patch, the veth rtnl_link_ops unregistration can use
    rtnl_link_unregister() directly since it now also handles destruction
    of multiple devices at once.

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • EXPORT_SYMBOL'ed code mustn't be __*init.

    Signed-off-by: Adrian Bunk
    Acked-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • EXPORT_SYMBOL'ed code mustn't be __*init.

    Signed-off-by: Adrian Bunk
    Acked-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Adrian Bunk
     
  • Here goes an IrDA patch against your latest net-2.6 tree.

    This patch fixes some af_irda memory leaks. It also checks for
    irias_new_obect() return value.

    Signed-off-by: Jesper Juhl
    Signed-off-by: Samuel Ortiz
    Signed-off-by: David S. Miller

    Jesper Juhl
     
  • Commit 9cd40029423701c376391da59d2c6469672b4bed (Fix race between
    neigh_parms_release and neightbl_fill_parms) introduced device
    reference counting regressions for several people, see:

    http://bugzilla.kernel.org/show_bug.cgi?id=9778

    for example.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • When packets are flood-forwarded to multiple output devices, the
    bridge-netfilter code reuses skb->nf_bridge for each clone to store
    the bridge port. When queueing packets using NFQUEUE netfilter takes
    a reference to skb->nf_bridge->physoutdev, which is overwritten
    when the packet is forwarded to the second port. This causes
    refcount unterflows for the first device and refcount leaks for all
    others. Additionally this provides incorrect data to the iptables
    physdev match.

    Unshare skb->nf_bridge by copying it if it is shared before assigning
    the physoutdev device.

    Reported, tested and based on initial patch by
    Jan Christoph Nordholz .

    Signed-off-by: Patrick McHardy
    Signed-off-by: David S. Miller

    Patrick McHardy
     
  • We omit (or delay) sending NSes for known-to-unreachable routers (in
    NUD_FAILED state) according to RFC 4191 (Default Router Preferences
    and More-Specific Routes). But this is not fully compatible with RFC
    4861 (Neighbor Discovery Protocol for IPv6), which does not remember
    unreachability of neighbors.

    So, let's avoid mixing sending algorithm of RFC 4191 and that of RFC
    4861, and make the algorithm more friendly with RFC 4861 if RFC 4191
    is disabled.

    Issue was found by IPv6 Ready Logo Core Self_Test 1.5.0b2 (by TAHI
    Project), and has been tracked down by Mitsuru Chinen
    .

    Signed-off-by: YOSHIFUJI Hideaki
    Signed-off-by: David S. Miller

    YOSHIFUJI Hideaki
     
  • I noticed "ip route list" was slower than "cat /proc/net/route" on a
    machine with a full Internet routing table (214392 entries : Special
    thanks to Robert ;) )

    This is similar to problem reported in commit
    d8c9283089287341c85a0a69de32c2287a990e71 ("[IPV4] ROUTE: ip_rt_dump()
    is unecessary slow")

    Fix is to avoid scanning the begining of fz_hash table, but directly
    seek to the right offset.

    Before patch :

    time ip route >/tmp/ROUTE

    real 0m1.285s
    user 0m0.712s
    sys 0m0.436s

    After patch

    # time ip route >/tmp/ROUTE

    real 0m0.835s
    user 0m0.692s
    sys 0m0.124s

    Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Several of the Intel ethernet drivers keep an atomic counter used to
    manage when to actually hit the hardware with a disable or an enable.

    The way the net_rx_work() breakout logic works during a pending
    napi_disable() is that it simply unschedules the poll even if it
    still has work.

    This can potentially leave interrupts disabled, but that is OK
    because all of the drivers are about to disable interrupts
    anyways in all such code paths that do a napi_disable().

    Unfortunately, this trips up the semaphore used here in the Intel
    drivers. If you hit this case, when you try to bring the interface
    back up it won't enable interrupts. A reload of the driver module
    fixes it of course.

    So what we do is make sure all the sequences now go:

    napi_disable();
    atomic_set(&adapter->irq_sem, 0);
    *_irq_disable();

    which makes sure the counter is always in the correct state.

    Reported by Robert Olsson.

    Signed-off-by: David S. Miller

    David S. Miller