11 Oct, 2007

1 commit

  • This patch makes most of the generic device layer network
    namespace safe. This patch makes dev_base_head a
    network namespace variable, and then it picks up
    a few associated variables. The functions:
    dev_getbyhwaddr
    dev_getfirsthwbytype
    dev_get_by_flags
    dev_get_by_name
    __dev_get_by_name
    dev_get_by_index
    __dev_get_by_index
    dev_ioctl
    dev_ethtool
    dev_load
    wireless_process_ioctl

    were modified to take a network namespace argument, and
    deal with it.

    vlan_ioctl_set and brioctl_set were modified so their
    hooks will receive a network namespace argument.

    So basically anthing in the core of the network stack that was
    affected to by the change of dev_base was modified to handle
    multiple network namespaces. The rest of the network stack was
    simply modified to explicitly use &init_net the initial network
    namespace. This can be fixed when those components of the network
    stack are modified to handle multiple network namespaces.

    For now the ifindex generator is left global.

    Fundametally ifindex numbers are per namespace, or else
    we will have corner case problems with migration when
    we get that far.

    At the same time there are assumptions in the network stack
    that the ifindex of a network device won't change. Making
    the ifindex number global seems a good compromise until
    the network stack can cope with ifindex changes when
    you change namespaces, and the like.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: David S. Miller

    Eric W. Biederman
     

05 Oct, 2007

2 commits


04 Oct, 2007

3 commits


03 Oct, 2007

1 commit


02 Oct, 2007

1 commit

  • For the case where the source is not aligned modulo 8
    we don't use load-twins to suck the data in and this
    kills performance since normal loads allocate in the
    L1 cache (unlike load-twin) and thus big memcpys swipe
    the entire L1 D-cache.

    We need to allocate a register window to implement this
    properly, but that actually simplifies a lot of things
    as a nice side-effect.

    Signed-off-by: David S. Miller

    David S. Miller
     

01 Oct, 2007

1 commit


28 Sep, 2007

1 commit


17 Sep, 2007

3 commits

  • When NR_CPUS is smaller than the cpu probed, let the user
    know that the cpu won't be used.

    Suggested by Al Viro.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • As noted by Al Viro, when we try to call prom_set_trap_table()
    in the SMP trampoline code we try to take the PROM call spinlock
    which doesn't work because the current thread pointer isn't
    valid yet and lockdep depends upon that being correct.

    Furthermore, we cannot set the current thread pointer register
    because it can't be properly dereferenced until we return from
    prom_set_trap_table(). Kernel TLB misses only work after that
    call.

    So do the PROM call to set the trap table directly instead of
    going through the OBP library C code, and thus avoid the lock
    altogether.

    These calls are guarenteed to be serialized fully.

    Since there are now no calls to the prom_set_trap_table{_sun4v}()
    library functions, they can be deleted.

    Signed-off-by: David S. Miller

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

    David S. Miller
     

12 Sep, 2007

1 commit

  • On the root PCI bus, the OBP device tree lists device 3 twice.
    Once as 'pm' and once as 'lomp'.

    Everything goes downhill from there.

    Ignore the second instance to workaround this.

    Thanks to Kövedi_Krisztián for the bug report and
    testing the fix.

    Signed-off-by: David S. Miller

    David S. Miller
     

31 Aug, 2007

3 commits

  • For hugepage mappings, the file offset, like the address and size, needs to
    be aligned to the size of a hugepage.

    In commit 68589bc353037f233fe510ad9ff432338c95db66, the check for this was
    moved into prepare_hugepage_range() along with the address and size checks.
    But since BenH's rework of the get_unmapped_area() paths leading up to
    commit 4b1d89290b62bb2db476c94c82cf7442aab440c8, prepare_hugepage_range()
    is only called for MAP_FIXED mappings, not for other mappings. This means
    we're no longer ever checking for an aligned offset - I've confirmed that
    mmap() will (apparently) succeed with a misaligned offset on both powerpc
    and i386 at least.

    This patch restores the check, removing it from prepare_hugepage_range()
    and putting it back into hugetlbfs_file_mmap(). I'm putting it there,
    rather than in the get_unmapped_area() path so it only needs to go in one
    place, than separately in the half-dozen or so arch-specific
    implementations of hugetlb_get_unmapped_area().

    Signed-off-by: David Gibson
    Cc: Adam Litke
    Cc: Andi Kleen
    Cc: "David S. Miller"
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Gibson
     
  • 1) sun4{u,v}_build_msi() have improper return value handling.

    We should always return negative error codes, instead of
    using the magic value "0" which could in fact be a valid
    MSI number.

    2) sun4{u,v}_build_msi() should return -ENOMEM instead of
    calling prom_prom() halt with kzalloc() of the interrupt
    data fails.

    3) We 'remembered' the MSI number using a singleton in the
    struct device archdata area, this doesn't work for MSI-X
    which can cause multiple MSIs assosciated with one device.

    Delete that archdata member, and instead store the MSI
    number in the IRQ chip data area.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Sometimes we were using 32-bit values and the top bits were
    getting inadvertantly chopped off. This will matter for the
    forthcoming Fire controller MSI support.

    Signed-off-by: David S. Miller

    David S. Miller
     

16 Aug, 2007

4 commits


09 Aug, 2007

2 commits


08 Aug, 2007

2 commits


30 Jul, 2007

6 commits

  • It didn't handle that case at all, and now dump_stack()
    can be implemented directly as show_stack(current, NULL)

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Fully unify all of the DMA ops so that subordinate bus types to
    the DMA operation providers (such as ebus, isa, of_device) can
    work transparently.

    Basically, we just make sure that for every system device we
    create, the dev->archdata 'iommu' and 'stc' fields are filled
    in.

    Then we have two platform variants of the DMA ops, one for SUN4U which
    actually programs the real hardware, and one for SUN4V which makes
    hypervisor calls.

    This also fixes the crashes in parport_pc on sparc64, reported by
    Meelis Roos.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Now that drivers/sbus/char/rtc.c is sparc32 only, we need this.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Don't provide fake PCI config space for sun4u.

    Also, put back the funny host controller space handling that
    at least Sabre needs. You have to read PCI host controller
    registers at their nature size otherwise you get zeros instead
    of correct values.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Remove fs.h from mm.h. For this,
    1) Uninline vma_wants_writenotify(). It's pretty huge anyway.
    2) Add back fs.h or less bloated headers (err.h) to files that need it.

    As result, on x86_64 allyesconfig, fs.h dependencies cut down from 3929 files
    rebuilt down to 3444 (-12.3%).

    Cross-compile tested without regressions on my two usual configs and (sigh):

    alpha arm-mx1ads mips-bigsur powerpc-ebony
    alpha-allnoconfig arm-neponset mips-capcella powerpc-g5
    alpha-defconfig arm-netwinder mips-cobalt powerpc-holly
    alpha-up arm-netx mips-db1000 powerpc-iseries
    arm arm-ns9xxx mips-db1100 powerpc-linkstation
    arm-assabet arm-omap_h2_1610 mips-db1200 powerpc-lite5200
    arm-at91rm9200dk arm-onearm mips-db1500 powerpc-maple
    arm-at91rm9200ek arm-picotux200 mips-db1550 powerpc-mpc7448_hpc2
    arm-at91sam9260ek arm-pleb mips-ddb5477 powerpc-mpc8272_ads
    arm-at91sam9261ek arm-pnx4008 mips-decstation powerpc-mpc8313_rdb
    arm-at91sam9263ek arm-pxa255-idp mips-e55 powerpc-mpc832x_mds
    arm-at91sam9rlek arm-realview mips-emma2rh powerpc-mpc832x_rdb
    arm-ateb9200 arm-realview-smp mips-excite powerpc-mpc834x_itx
    arm-badge4 arm-rpc mips-fulong powerpc-mpc834x_itxgp
    arm-carmeva arm-s3c2410 mips-ip22 powerpc-mpc834x_mds
    arm-cerfcube arm-shannon mips-ip27 powerpc-mpc836x_mds
    arm-clps7500 arm-shark mips-ip32 powerpc-mpc8540_ads
    arm-collie arm-simpad mips-jazz powerpc-mpc8544_ds
    arm-corgi arm-spitz mips-jmr3927 powerpc-mpc8560_ads
    arm-csb337 arm-trizeps4 mips-malta powerpc-mpc8568mds
    arm-csb637 arm-versatile mips-mipssim powerpc-mpc85xx_cds
    arm-ebsa110 i386 mips-mpc30x powerpc-mpc8641_hpcn
    arm-edb7211 i386-allnoconfig mips-msp71xx powerpc-mpc866_ads
    arm-em_x270 i386-defconfig mips-ocelot powerpc-mpc885_ads
    arm-ep93xx i386-up mips-pb1100 powerpc-pasemi
    arm-footbridge ia64 mips-pb1500 powerpc-pmac32
    arm-fortunet ia64-allnoconfig mips-pb1550 powerpc-ppc64
    arm-h3600 ia64-bigsur mips-pnx8550-jbs powerpc-prpmc2800
    arm-h7201 ia64-defconfig mips-pnx8550-stb810 powerpc-ps3
    arm-h7202 ia64-gensparse mips-qemu powerpc-pseries
    arm-hackkit ia64-sim mips-rbhma4200 powerpc-up
    arm-integrator ia64-sn2 mips-rbhma4500 s390
    arm-iop13xx ia64-tiger mips-rm200 s390-allnoconfig
    arm-iop32x ia64-up mips-sb1250-swarm s390-defconfig
    arm-iop33x ia64-zx1 mips-sead s390-up
    arm-ixp2000 m68k mips-tb0219 sparc
    arm-ixp23xx m68k-amiga mips-tb0226 sparc-allnoconfig
    arm-ixp4xx m68k-apollo mips-tb0287 sparc-defconfig
    arm-jornada720 m68k-atari mips-workpad sparc-up
    arm-kafa m68k-bvme6000 mips-wrppmc sparc64
    arm-kb9202 m68k-hp300 mips-yosemite sparc64-allnoconfig
    arm-ks8695 m68k-mac parisc sparc64-defconfig
    arm-lart m68k-mvme147 parisc-allnoconfig sparc64-up
    arm-lpd270 m68k-mvme16x parisc-defconfig um-x86_64
    arm-lpd7a400 m68k-q40 parisc-up x86_64
    arm-lpd7a404 m68k-sun3 powerpc x86_64-allnoconfig
    arm-lubbock m68k-sun3x powerpc-cell x86_64-defconfig
    arm-lusl7200 mips powerpc-celleb x86_64-up
    arm-mainstone mips-atlas powerpc-chrp32

    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Replace CONFIG_SOFTWARE_SUSPEND with CONFIG_HIBERNATION to avoid
    confusion (among other things, with CONFIG_SUSPEND introduced in the
    next patch).

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

27 Jul, 2007

1 commit


25 Jul, 2007

3 commits


22 Jul, 2007

4 commits

  • * 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6:
    [SPARC64]: ERROR: "sys_ioctl" [arch/sparc64/solaris/solaris.ko] undefined!
    [SPARC32]: Make PAGE_SHARED a read-mostly variable.
    [SPARC32]: Take enable_irq/disable_irq out of line.
    [SPARC32]: clean include/asm-sparc/irq.h
    [SPARC32]: Fix rounding errors in ndelay/udelay implementation.

    Linus Torvalds
     
  • From: Christoph Hellwig

    On Fri, Jul 20, 2007 at 09:24:42AM -0400, Horst H. von Brand wrote:
    > When building v2.6.22-3478-g275afca on sparc64 (.config attached) I get:
    >
    > MODPOST vmlinux
    > Building modules, stage 2.
    > MODPOST 463 modules
    > ERROR: "sys_ioctl" [arch/sparc64/solaris/solaris.ko] undefined!

    Sorry, my fault.

    It looked to me like sparc64 exports sys_ioctl on it's own, but it
    only exports compat_sys_ioctl on it's own.

    Signed-off-by: David S. Miller

    Christoph Hellwig
     
  • i386 and sparc64 have the identical code to update the cmos clock. Move it
    into kernel/time/ntp.c as there are other architectures coming along with the
    same requirements.

    [akpm@linux-foundation.org: build fixes]
    Signed-off-by: Thomas Gleixner
    Cc: Chris Wright
    Cc: Ingo Molnar
    Cc: john stultz
    Cc: David Miller
    Cc: Roman Zippel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     
  • We need to make sure, that the clockevent devices are resumed, before
    the tick is resumed. The current resume logic does not guarantee this.

    Add CLOCK_EVT_MODE_RESUME and call the set mode functions of the clock
    event devices before resuming the tick / oneshot functionality.

    Fixup the existing users.

    Thanks to Nigel Cunningham for tracking down a long standing thinko,
    which affected the jinxed VAIO.

    [akpm@linux-foundation.org: xen build fix]
    Signed-off-by: Thomas Gleixner
    Cc: john stultz
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thomas Gleixner
     

21 Jul, 2007

1 commit

  • Fix following warning:
    WARNING: vmlinux.o(.text+0x35264): Section mismatch: reference to .init.text:__alloc_bootmem (between 'mdesc_bootmem_alloc' and 'mdesc_bootmem_free')

    Rename mdesc_mem_ops to *_ops so modpost ignores __init references
    and declare mdesc_bootmem_alloc __init since it is only used
    during __init context.

    Signed-off-by: Sam Ravnborg
    Signed-off-by: David S. Miller

    Sam Ravnborg