08 Nov, 2007

24 commits

  • When I fixed the windfarm freezer interaction first in commit
    1ed2ddf380e19dafeec2150ca709ef7f4a67cd21, an earlier patch than the one
    I came up with after comments was committed. This has come back to haunt
    us now because commit d5d8c5976d6adeddb8208c240460411e2198b393 changed
    the freezer to no long send signals. Fix it by removing the windfarm
    thread's signal logic and restoring the original try_to_freeze().

    We could simply revert 1ed2ddf380e19dafeec2150ca709ef7f4a67cd21 now
    but I feel that the assertion that no signal is delivered to the
    windfarm thread needs not be there.

    Signed-off-by: Johannes Berg
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Paul Mackerras

    Johannes Berg
     
  • If the low level MMU hash table insertion returns an error (which
    can happen in some rare circumstances when the hypervisor refuses
    the insertion of a PTE, typically if you try to access junk via
    /dev/mem), the generated signal had an incorrect si_addr value due
    to a bug in the assembly, which was loading it as a 32 bits quantity
    instead of a 64 bits quantity.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • Refresh ppc64_defconfig, add PPC_PASEMI and various options that the
    common boards there need:

    * Chip drivers (iommu, ethernet, IDE, CF, EDAC, MDIO/PHY)
    * PCMCIA
    * PATA_PCMCIA
    * RTC_CLASS
    * SATA_MV
    * SATA_SIL24
    * IP_PNP + NFS_ROOT for diskless booting

    + possibly some other things I might have missed to list

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Olof Johansson
     
  • Update pasemi_defconfig. Add a few missing options for default devices
    on electra boards, enable tickless and hrtimers, etc, etc.

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Olof Johansson
     
  • Signed-off-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Stephen Rothwell
     
  • The size passing to memset is wrong.

    Signed-off-by Li Zefan
    Acked-by: Benjamin Herrenschmidt

    Signed-off-by: Paul Mackerras

    Li Zefan
     
  • An allyesconfig build creates a .text section that is so big that the
    .text.init.refok and .fixup sections are too far away for the relocations
    to be fixed up correctly. This patch fixes that by linking all the
    relevent text sections for each file together.

    Suggested by Paul Mackerras.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Stephen Rothwell
     
  • ppc_md.init_IRQ is not called if it is NULL, so we don't need an empty
    routine in the non PCI case.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Stephen Rothwell
     
  • Fix the fallocate system call on powerpc to match its unistd.h.

    This implies none of these system calls are currently working with the
    unistd.h sys call values:
    fallocate
    signalfd
    timerfd
    eventfd
    sync_file_range2

    Signed-off-by: Patrick Mansfield
    Acked-by: Anton Blanchard
    Signed-off-by: Paul Mackerras

    Patrick Mansfield
     
  • Bugfix: avoid crash if there's no PCI device for a given
    openfirmware node.

    Signed-off-by: Linas Vepstas
    Signed-off-by: Paul Mackerras

    Linas Vepstas
     
  • Bugfix: if a driver controlling one part of a multi-function PCI card
    has asked for a reset, honor that request above all others.

    Signed-off-by: Linas Vepstas
    Signed-off-by: Paul Mackerras

    Linas Vepstas
     
  • Clean up commentary, remove dead code.

    Signed-off-by Linas Vepstas

    Signed-off-by: Paul Mackerras

    Linas Vepstas
     
  • The decrementer in Book E and 4xx processors interrupts on the
    transition from 1 to 0, rather than on the 0 to -1 transition as on
    64-bit server and 32-bit "classic" (6xx/7xx/7xxx) processors. At the
    moment we subtract 1 from the count of how many decrementer ticks are
    required before the next interrupt before putting it into the
    decrementer, which is correct for server/classic processors, but could
    possibly cause the interrupt to happen too early on Book E and 4xx if
    the timebase/decrementer frequency is low.

    This fixes the problem by making set_dec subtract 1 from the count for
    server and classic processors, instead of having the callers subtract
    1. Since set_dec already had a bunch of ifdefs to handle different
    processor types, there is no net increase in ugliness. :)

    Note that calling set_dec(0) may not generate an interrupt on some
    processors. To make sure that decrementer_set_next_event always calls
    set_dec with an interval of at least 1 tick, we set min_delta_ns of
    the decrementer_clockevent to correspond to 2 ticks (2 rather than 1
    to compensate for truncations in the conversions between ticks and
    ns).

    This also removes a redundant call to set the decrementer to
    0x7fffffff - it was already set to that earlier in timer_interrupt.

    Signed-off-by: Paul Mackerras

    Paul Mackerras
     
  • Now that we have 1TB segment size support, we need to be using the
    GET_ESID_1T macro when comparing ESID values for pc, stack, and
    unmapped_base within switch_slb(). A new helper function called
    esids_match() contains the logic for deciding when to call GET_ESID
    and GET_ESID_1T.

    This fixes a duplicate-slb-entry inspired machine-check exception I
    was seeing when trying to run java on a power6 partition.

    Tested on power6 and power5.

    Signed-off-by: Will Schmidt
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    will schmidt
     
  • Without this patch I get the following build failure
    CC arch/powerpc/platforms/celleb/setup.o
    arch/powerpc/platforms/celleb/setup.c:151: error: 'generic_calibrate_decr' undeclared here (not in a function)

    Signed-off-by: Tony Breeds
    Acked-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Tony Breeds
     
  • This fixes the error
    error: implicit declaration of function "udbg_printf"

    We have a few spots where we reference udbg_printf() without #including
    udbg.h. These are within #ifdef DEBUG blocks, so unnoticed until we do
    a #define DEBUG or #define DEBUG_LOW nearby.

    Signed-off-by: Will Schmidt
    Signed-off-by: Paul Mackerras

    will schmidt
     
  • We had an historical confusion in the kernel between cache line
    and cache block size. The former is an implementation detail of
    the L1 cache which can be useful for performance optimisations,
    the later is the actual size on which the cache control
    instructions operate, which can be different.

    For some reason, we had a weird hack reading the right property
    on powermac and the wrong one on any other 64 bits (32 bits is
    unaffected as it only uses the cputable for cache block size
    infos at this stage).

    This fixes the booting-without-of.txt documentation to mention
    the right properties, and fixes the 64 bits initialization code
    to look for the block size first, with a fallback to the line
    size if the property is missing.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • kernel was marked with 0755. Everywhere else it's 0555.

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Paul Mackerras

    Alexey Dobriyan
     
  • Fix two build errors on powerpc allyesconfig + CONFIG_SMP=n:

    arch/powerpc/platforms/built-in.o: In function `cpu_affinity_set':
    arch/powerpc/platforms/cell/spu_priv1_mmio.c:78: undefined reference to `.iic_get_target_id'
    arch/powerpc/platforms/built-in.o: In function `iic_init_IRQ':
    arch/powerpc/platforms/cell/interrupt.c:397: undefined reference to `.iic_setup_cpu'

    Signed-off-by: Olof Johansson
    Acked-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Olof Johansson
     
  • The ps3 target produces two images, and the binary one is not the
    "primary" image that corresponds to the -o flag; thus, it no longer
    uses the generic binary flag.

    On platforms which do use the binary flag, it no longer produces a
    .bin suffix, so that the output file matches what was passed to the -o flag.

    This should fix the zImage ln problems for the ps3 target.

    Signed-off-by: Scott Wood
    Acked-by: Geert Uytterhoeven
    Signed-off-by: Paul Mackerras

    Scott Wood
     
  • Commit 91a69029 introduced an additional parameter to the .read and .write
    methods for sysfs binary attributes. Two mv64x60_pci functions
    were missed in that patch, resulting in these errors:
    /cache/git/linux-2.6/arch/powerpc/sysdev/mv64x60_pci.c:77: warning: initialization from incompatible pointer type
    /cache/git/linux-2.6/arch/powerpc/sysdev/mv64x60_pci.c:78: warning: initialization from incompatible pointer type

    Add the missing "struct bin_attribute *" parameter.

    Signed-off-by: Dale Farnsworth
    Signed-off-by: Paul Mackerras

    Dale Farnsworth
     
  • Since commit 76d2160147f43f982dfe881404cfde9fd0a9da21, the NE2000 card
    is not working anymore on PPC and POWERPC and produces WATCHDOG
    timeouts.

    The patch below fixes that the same way it has been done on x86, x86_64
    and MIPS.

    Signed-off-by: Aurelien Jarno
    Signed-off-by: Paul Mackerras

    Aurelien Jarno
     
  • There are plans afoot to use pci_restore_msi_state() to restore MSI
    state after a device reset. In order for this to work for the RTAS MSI
    backend, we need to read back the MSI message from config space after
    it has been setup by firmware.

    This should be sufficient for restoring the MSI state after a device
    reset, however we will need to revisit this for suspend to disk if that
    is ever implemented on pseries.

    Signed-off-by: Michael Ellerman
    Acked-by: Linas Vepstas
    Signed-off-by: Paul Mackerras

    Michael Ellerman
     
  • Fix build break and warnings in current mainline git:

    arch/ppc/syslib/m8260_setup.c: In function 'm8260_setup_arch':
    arch/ppc/syslib/m8260_setup.c:63: error: implicit declaration of function 'identify_ppc_sys_by_name_and_id'
    arch/ppc/syslib/m8260_setup.c:64: warning: passing argument 1 of 'in_be32' makes pointer from integer without a cast
    arch/ppc/syslib/m8260_setup.c: In function 'm8260_show_cpuinfo':
    arch/ppc/syslib/m8260_setup.c:158: warning: format '%08x' expects type 'unsigned int', but argument 5 has type 'long unsigned int'
    arch/ppc/syslib/m8260_setup.c:158: warning: format '%d' expects type 'int', but argument 6 has type 'long unsigned int'
    arch/ppc/syslib/m8260_setup.c:158: warning: format '%u' expects type 'unsigned int', but argument 7 has type 'long unsigned int'
    arch/ppc/syslib/m8260_setup.c:158: warning: format '%u' expects type 'unsigned int', but argument 8 has type 'long unsigned int'
    arch/ppc/syslib/m8260_setup.c:158: warning: format '%u' expects type 'unsigned int', but argument 9 has type 'long unsigned int'
    make[1]: *** [arch/ppc/syslib/m8260_setup.o] Error 1
    make[1]: *** Waiting for unfinished jobs....

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Olof Johansson
     

02 Nov, 2007

2 commits

  • Paul Mackerras
     
  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6:
    [IRDA] IRNET: Fix build when TCGETS2 is defined.
    [NET]: docbook fixes for netif_ functions
    [NET]: Hide the net_ns kmem cache
    [NET]: Mark the setup_net as __net_init
    [NET]: Hide the dead code in the net_namespace.c
    [NET]: Relax the reference counting of init_net_ns
    [NETNS]: Make the init/exit hooks checks outside the loop
    [NET]: Forget the zero_it argument of sk_alloc()
    [NET]: Remove bogus zero_it argument from sk_alloc
    [NET]: Make the sk_clone() lighter
    [NET]: Move some core sock setup into sk_prot_alloc
    [NET]: Auto-zero the allocated sock object
    [NET]: Cleanup the allocation/freeing of the sock object
    [NET]: Move the get_net() from sock_copy()
    [NET]: Move the sock_copy() from the header
    [TCP]: Another TAGBITS -> SACKED_ACKED|LOST conversion
    [TCP]: Process DSACKs that reside within a SACK block

    Linus Torvalds
     

01 Nov, 2007

14 commits

  • Signed-off-by: David S. Miller

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

    David S. Miller
     
  • Documentation updates for network interfaces.

    1. Add doc for netif_napi_add
    2. Remove doc for unused returns from netif_rx
    3. Add doc for netif_receive_skb

    [ Incorporated minor mods from Randy Dunlap -DaveM ]

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

    Stephen Hemminger
     
  • This cache is only required to create new namespaces,
    but we won't have them in CONFIG_NET_NS=n case.

    Hide it under the appropriate ifdef.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The setup_net is called for the init net namespace
    only (int the CONFIG_NET_NS=n of course) from the __init
    function, so mark it as __net_init to disappear with the
    caller after the boot.

    Yet again, in the perfect world this has to be under
    #ifdef CONFIG_NET_NS, but it isn't guaranteed that every
    subsystem is registered *after* the init_net_ns is set
    up. After we are sure, that we don't start registering
    them before the init net setup, we'll be able to move
    this code under the ifdef.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The namespace creation/destruction code is never called
    if the CONFIG_NET_NS is n, so it's OK to move it under
    appropriate ifdef.

    The copy_net_ns() in the "n" case checks for flags and
    returns -EINVAL when new net ns is requested. In a perfect
    world this stub must be in net_namespace.h, but this
    function need to know the CLONE_NEWNET value and thus
    requires sched.h. On the other hand this header is to be
    injected into almost every .c file in the networking code,
    and making all this code depend on the sched.h is a
    suicidal attempt.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • When the CONFIG_NET_NS is n there's no need in refcounting
    the initial net namespace. So relax this code by making a
    stupid stubs for the "n" case.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • When the new pernet something (subsys, device or operations) is
    being registered, the init callback is to be called for each
    namespace, that currently exitst in the system. During the
    unregister, the same is to be done with the exit callback.

    However, not every pernet something has both calls, but the
    check for the appropriate pointer to be not NULL is performed
    inside the for_each_net() loop.

    This is (at least) strange, so tune this.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • Finally, the zero_it argument can be completely removed from
    the callers and from the function prototype.

    Besides, fix the checkpatch.pl warnings about using the
    assignments inside if-s.

    This patch is rather big, and it is a part of the previous one.
    I splitted it wishing to make the patches more readable. Hope
    this particular split helped.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • At this point nobody calls the sk_alloc(() with zero_it == 0,
    so remove unneeded checks from it.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The sk_prot_alloc() already performs all the stuff needed by the
    sk_clone(). Besides, the sk_prot_alloc() requires almost twice
    less arguments than the sk_alloc() does, so call the sk_prot_alloc()
    saving the stack a bit.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The security_sk_alloc() and the module_get is a part of the
    object allocations - move it in the proper place.

    Note, that since we do not reset the newly allocated sock
    in the sk_alloc() (memset() is removed with the previous
    patch) we can safely do this.

    Also fix the error path in sk_prot_alloc() - release the security
    context if needed.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • We have a __GFP_ZERO flag that allocates a zeroed chunk of memory.
    Use it in the sk_alloc() and avoid a hand-made memset().

    This is a temporary patch that will help us in the nearest future :)

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov
     
  • The sock object is allocated either from the generic cache with
    the kmalloc, or from the proc->slab cache.

    Move this logic into an isolated set of helpers and make the
    sk_alloc/sk_free look a bit nicer.

    Signed-off-by: Pavel Emelyanov
    Signed-off-by: David S. Miller

    Pavel Emelyanov