24 Feb, 2008

1 commit


28 Jan, 2008

1 commit


24 Jan, 2008

3 commits


13 Jan, 2008

1 commit

  • Otherwise oops will happen if ethernet device has not been opened:

    Unable to handle kernel paging request for data at address 0x0000014c
    Faulting instruction address: 0xc016f7f0
    Oops: Kernel access of bad area, sig: 11 [#1]
    MPC85xx
    NIP: c016f7f0 LR: c01722a0 CTR: 00000000
    REGS: c79ddc70 TRAP: 0300 Not tainted (2.6.24-rc3-g820a386b)
    MSR: 00029000 CR: 20004428 XER: 20000000
    DEAR: 0000014c, ESR: 00000000
    TASK = c789f5e0[999] 'snmpd' THREAD: c79dc000
    GPR00: c01aceb8 c79ddd20 c789f5e0 00000000 c79ddd3c 00000000 c79ddd64 00000000
    GPR08: 00000000 c7845b60 c79dde3c c01ace80 20004422 200249fc 000002a0 100da728
    GPR16: 100c0000 00000000 00000000 00000000 20022078 00000009 200220e0 bfc85558
    GPR24: c79ddd3c 00000000 00000000 c02e0e70 c022fc64 ffffffff c7845800 bfc85498
    NIP [c016f7f0] phy_ethtool_gset+0x0/0x4c
    LR [c01722a0] fs_get_settings+0x18/0x28
    Call Trace:
    [c79ddd20] [c79dde38] 0xc79dde38 (unreliable)
    [c79ddd30] [c01aceb8] dev_ethtool+0x294/0x11ec
    [c79dde30] [c01aaa44] dev_ioctl+0x454/0x6a8
    [c79ddeb0] [c019b9d4] sock_ioctl+0x84/0x230
    [c79dded0] [c007ded8] do_ioctl+0x34/0x8c
    [c79ddee0] [c007dfbc] vfs_ioctl+0x8c/0x41c
    [c79ddf10] [c007e38c] sys_ioctl+0x40/0x74
    [c79ddf40] [c000d4c0] ret_from_syscall+0x0/0x3c
    Instruction dump:
    81630000 800b0030 2f800000 419e0010 7c0803a6 4e800021 7c691b78 80010014
    7d234b78 38210010 7c0803a6 4e800020 7c6b1b78 38600000 90040004

    Signed-off-by: Anton Vorontsov
    Acked-by: Vitaly Bordug
    Signed-off-by: Jeff Garzik

    Anton Vorontsov
     

09 Jan, 2008

1 commit


21 Dec, 2007

1 commit


14 Dec, 2007

2 commits

  • This patch moves the CPM command handling into commproc.c
    for CPM1 and cpm2_common.c. This is yet another preparation
    to get rid of drivers accessing the CPM via the global cpmp.

    Signed-off-by: Jochen Friedrich
    Acked-by: Scott Wood
    Acked-by: Arnd Bergmann
    Signed-off-by: Vitaly Bordug

    Jochen Friedrich
     
  • fpi->cp_command should be overwritten only if CONFIG_PPC_CPM_NEW_BINDING
    is NOT set. Otherwise it is already set from the device tree.

    Signed-off-by: Jochen Friedrich
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Vitaly Bordug
    Signed-off-by: Kumar Gala

    Jochen Friedrich
     

15 Nov, 2007

1 commit

  • If fs_enet is build as module, on PPC_CPM_NEW_BINDING platforms
    mii-fec/mii-bitbang should be build as module, as well. On other
    platforms, mii-fec/mii-bitbang must be included into the main module.
    Otherwise some symbols remain undefined. Additionally, fs_enet uses
    libphy, so add a select PHYLIB.

    Building modules, stage 2.
    MODPOST 5 modules
    ERROR: "fs_scc_ops" [drivers/net/fs_enet/fs_enet.ko] undefined!
    make[1]: *** [__modpost] Error 1
    make: *** [modules] Error 2

    Signed-off-by: Jochen Friedrich
    Signed-off-by: David S. Miller

    Jochen Friedrich
     

18 Oct, 2007

1 commit

  • This driver was recently broken by several changes for which this
    driver was not (or was improperly) updated:

    1. SET_MODULE_OWNER() was removed.
    2. netif_napi_add() was only being called when building with
    the old CPM binding.
    3. The received/budget test was backwards.
    4. to_net_dev() was wrong -- the device struct embedded in
    the net_device struct is not the same as the of_platform
    device in the private struct.
    5. napi_disable/napi_enable was being called even when napi
    was not being used.

    These changes have been fixed, and napi is now on by default.

    Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     

11 Oct, 2007

13 commits

  • Mostly a bunch of __iomem annotations.

    Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     
  • Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     
  • The existing OF glue code was crufty and broken. Rather than fix it, it
    will be removed, and the ethernet driver now talks to the device tree
    directly.

    The old, non-CONFIG_PPC_CPM_NEW_BINDING code can go away once CPM
    platforms are dropped from arch/ppc (which will hopefully be soon), and
    existing arch/powerpc boards that I wasn't able to test on for this
    patchset get converted (which should be even sooner).

    Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     
  • At least some hardware driven by this driver needs receive buffers
    to be aligned on a 16-byte boundary. This usually happens by chance,
    but it breaks if slab debugging is enabled.

    Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     
  • These macros accomplish nothing other than defeating type checking.

    This patch also fixes one instance of the wrong register size being
    used that was revealed by enabling type checking.

    Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     
  • Signed-off-by: Scott Wood
    Signed-off-by: Jeff Garzik

    Scott Wood
     
  • Signed-off-by: Vitaly Bordug
    Signed-off-by: Jeff Garzik

    Vitaly Bordug
     
  • Signed-off-by: Vitaly Bordug
    Signed-off-by: Jeff Garzik

    Vitaly Bordug
     
  • For the operations
    get-tx-csum
    get-sg
    get-tso
    get-ufo
    the default ethtool_op_xxx behavior is fine for all drivers, so we
    permit op==NULL to imply the default behavior.

    This provides a more uniform behavior across all drivers, eliminating
    ethtool(8) "ioctl not supported" errors on older drivers that had
    not been updated for the latest sub-ioctls.

    The ethtool_op_xxx() functions are left exported, in case anyone
    wishes to call them directly from a driver-private implementation --
    a not-uncommon case. Should an ethtool_op_xxx() helper remain unused
    for a while, except by net/core/ethtool.c, we can un-export it at a
    later date.

    [ Resolved conflicts with set/get value ethtool patch... -DaveM ]

    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Jeff Garzik
     
  • It's been a useless no-op for long enough in 2.6 so I figured it's time to
    remove it. The number of people that could object because they're
    maintaining unified 2.4 and 2.6 drivers is probably rather small.

    [ Handled drivers added by netdev tree and some missed IRDA cases... -DaveM ]

    Signed-off-by: Ralf Baechle
    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Ralf Baechle
     
  • This patch covers something like this:

    dev = alloc_*dev(...
    ...
    priv = netdev_priv(dev);
    memset(priv, 0, sizeof(*priv));

    The memset() here is superfluous. alloc_netdev() uses kzalloc()
    to allocate needed memory so there is no need to zero the priv region
    twice.

    Signed-off-by: Mariusz Kozlowski
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik
    Signed-off-by: David S. Miller

    Mariusz Kozlowski
     
  • This patch cleans up duplicate includes in
    drivers/net/

    Signed-off-by: Jesper Juhl
    Acked-by: "John W. Linville"
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Jesper Juhl
     
  • Several devices have multiple independant RX queues per net
    device, and some have a single interrupt doorbell for several
    queues.

    In either case, it's easier to support layouts like that if the
    structure representing the poll is independant from the net
    device itself.

    The signature of the ->poll() call back goes from:

    int foo_poll(struct net_device *dev, int *budget)

    to

    int foo_poll(struct napi_struct *napi, int budget)

    The caller is returned the number of RX packets processed (or
    the number of "NAPI credits" consumed if you want to get
    abstract). The callee no longer messes around bumping
    dev->quota, *budget, etc. because that is all handled in the
    caller upon return.

    The napi_struct is to be embedded in the device driver private data
    structures.

    Furthermore, it is the driver's responsibility to disable all NAPI
    instances in it's ->stop() device close handler. Since the
    napi_struct is privatized into the driver's private data structures,
    only the driver knows how to get at all of the napi_struct instances
    it may have per-device.

    With lots of help and suggestions from Rusty Russell, Roland Dreier,
    Michael Chan, Jeff Garzik, and Jamal Hadi Salim.

    Bug fixes from Thomas Graf, Roland Dreier, Peter Zijlstra,
    Joseph Fannin, Scott Wood, Hans J. Koch, and Michael Chan.

    [ Ported to current tree and all drivers converted. Integrated
    Stephen's follow-on kerneldoc additions, and restored poll_list
    handling to the old style to fix mutual exclusion issues. -DaveM ]

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

    Stephen Hemminger
     

09 Jul, 2007

1 commit

  • CONFIG_NETDEVICES, CONFIG_NET_ETHERNET:
    Change Kconfig objects from "menu, config" into "menuconfig" so
    that the user can disable the whole feature without having to
    enter the menu first.

    CONFIG_SMC9194:
    Move it so that it appears correctly in menuconfig.

    Signed-off-by: Jan Engelhardt
    Cc: Jeff Garzik
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Jan Engelhardt
     

10 May, 2007

1 commit

  • The rheap allocation functions return a pointer, but the actual value is based
    on how the heap was initialized, and so it can be anything, e.g. an offset
    into a buffer. A ulong is a better representation of the value returned by
    the allocation functions.

    This patch changes all of the relevant rheap functions to use a unsigned long
    integers instead of a pointer. In case of an error, the value returned is
    a negative error code that has been cast to an unsigned long. The caller can
    use the IS_ERR_VALUE() macro to check for this.

    All code which calls the rheap functions is updated accordingly. Macros
    IS_MURAM_ERR() and IS_DPERR(), have been deleted in favor of IS_ERR_VALUE().

    Also added error checking to rh_attach_region().

    Signed-off-by: Timur Tabi
    Signed-off-by: Kumar Gala

    Timur Tabi
     

03 May, 2007

1 commit

  • I noticed that many source files include while they do
    not appear to need it. Here is an attempt to clean it all up.

    In order to find all possibly affected files, I searched for all
    files including but without any other occurence of "pci"
    or "PCI". I removed the include statement from all of these, then I
    compiled an allmodconfig kernel on both i386 and x86_64 and fixed the
    false positives manually.

    My tests covered 66% of the affected files, so there could be false
    positives remaining. Untested files are:

    arch/alpha/kernel/err_common.c
    arch/alpha/kernel/err_ev6.c
    arch/alpha/kernel/err_ev7.c
    arch/ia64/sn/kernel/huberror.c
    arch/ia64/sn/kernel/xpnet.c
    arch/m68knommu/kernel/dma.c
    arch/mips/lib/iomap.c
    arch/powerpc/platforms/pseries/ras.c
    arch/ppc/8260_io/enet.c
    arch/ppc/8260_io/fcc_enet.c
    arch/ppc/8xx_io/enet.c
    arch/ppc/syslib/ppc4xx_sgdma.c
    arch/sh64/mach-cayman/iomap.c
    arch/xtensa/kernel/xtensa_ksyms.c
    arch/xtensa/platform-iss/setup.c
    drivers/i2c/busses/i2c-at91.c
    drivers/i2c/busses/i2c-mpc.c
    drivers/media/video/saa711x.c
    drivers/misc/hdpuftrs/hdpu_cpustate.c
    drivers/misc/hdpuftrs/hdpu_nexus.c
    drivers/net/au1000_eth.c
    drivers/net/fec_8xx/fec_main.c
    drivers/net/fec_8xx/fec_mii.c
    drivers/net/fs_enet/fs_enet-main.c
    drivers/net/fs_enet/mac-fcc.c
    drivers/net/fs_enet/mac-fec.c
    drivers/net/fs_enet/mac-scc.c
    drivers/net/fs_enet/mii-bitbang.c
    drivers/net/fs_enet/mii-fec.c
    drivers/net/ibm_emac/ibm_emac_core.c
    drivers/net/lasi_82596.c
    drivers/parisc/hppb.c
    drivers/sbus/sbus.c
    drivers/video/g364fb.c
    drivers/video/platinumfb.c
    drivers/video/stifb.c
    drivers/video/valkyriefb.c
    include/asm-arm/arch-ixp4xx/dma.h
    sound/oss/au1550_ac97.c

    I would welcome test reports for these files. I am fine with removing
    the untested files from the patch if the general opinion is that these
    changes aren't safe. The tested part would still be nice to have.

    Note that this patch depends on another header fixup patch I submitted
    to LKML yesterday:
    [PATCH] scatterlist.h needs types.h
    http://lkml.org/lkml/2007/3/01/141

    Signed-off-by: Jean Delvare
    Cc: Badari Pulavarty
    Signed-off-by: Greg Kroah-Hartman

    Jean Delvare
     

26 Apr, 2007

2 commits


15 Feb, 2007

1 commit

  • After Al Viro (finally) succeeded in removing the sched.h #include in module.h
    recently, it makes sense again to remove other superfluous sched.h includes.
    There are quite a lot of files which include it but don't actually need
    anything defined in there. Presumably these includes were once needed for
    macros that used to live in sched.h, but moved to other header files in the
    course of cleaning it up.

    To ease the pain, this time I did not fiddle with any header files and only
    removed #includes from .c-files, which tend to cause less trouble.

    Compile tested against 2.6.20-rc2 and 2.6.20-rc2-mm2 (with offsets) on alpha,
    arm, i386, ia64, mips, powerpc, and x86_64 with allnoconfig, defconfig,
    allmodconfig, and allyesconfig as well as a few randconfigs on x86_64 and all
    configs in arch/arm/configs on arm. I also checked that no new warnings were
    introduced by the patch (actually, some warnings are removed that were emitted
    by unnecessarily included header files).

    Signed-off-by: Tim Schmielau
    Acked-by: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Tim Schmielau
     

07 Feb, 2007

2 commits

  • Paul Mackerras
     
  • Recent update of asm-powerpc/io.h caused cpm-related stuff to break in the
    current kernel. Current patch fixes it, as well as other inconsistencies
    expressed, that do not permit targets from working properly:

    - Updated dts with a chosen node with interrupt controller,
    - fixed messed device IDs among CPM2 SoC devices,
    - corrected odd header name and fixed type in defines,
    - Added 82xx subdir to the powerpc/platforms Makefile, missed during
    initial commit,
    - new solely-powerpc header file for 8260 family (was using one from
    arch/ppc, this one cleaned up from the extra stuff), in fact for now
    a placeholder to get the board-specific includes for stuff not yet
    capable to live with devicetree peeks only
    - Fixed couple of misprints in reference mpc8272 dts.

    Signed-off-by: Vitaly Bordug
    Signed-off-by: Paul Mackerras

    Vitaly Bordug
     

30 Jan, 2007

1 commit

  • Updated direct resource pass with ioremap call, make it grant proper IRQ
    mapping, stuff incompatible with the new approach were respectively put
    under #ifndef CONFIG_PPC_MERGE. It is required so that both ppc and
    powerpc could utilize fs_enet effectively.

    Signed-off-by: Vitaly Bordug
    Signed-off-by: Andrew Morton
    Signed-off-by: Jeff Garzik

    Vitaly Bordug
     

02 Dec, 2006

1 commit

  • Most PHYs connect to an ethernet controller over a GMII or MII
    interface. However, a growing number are connected over
    different interfaces, such as RGMII or SGMII.

    The ethernet driver will tell the PHY what type of connection it
    is by setting it manually, or passing it in through phy_connect
    (or phy_attach).

    Changes include:
    * Updates to documentation
    * Updates to PHY Lib consumers
    * Changes to PHY Lib to add interface support
    * Some minor changes to whitespace in phy.h
    * gianfar driver now detects interface and passes appropriate
    value to PHY Lib
    Signed-off-by: Andrew Fleming
    Signed-off-by: Jeff Garzik

    Andy Fleming
     

05 Oct, 2006

1 commit

  • Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
    of passing regs around manually through all ~1800 interrupt handlers in the
    Linux kernel.

    The regs pointer is used in few places, but it potentially costs both stack
    space and code to pass it around. On the FRV arch, removing the regs parameter
    from all the genirq function results in a 20% speed up of the IRQ exit path
    (ie: from leaving timer_interrupt() to leaving do_IRQ()).

    Where appropriate, an arch may override the generic storage facility and do
    something different with the variable. On FRV, for instance, the address is
    maintained in GR28 at all times inside the kernel as part of general exception
    handling.

    Having looked over the code, it appears that the parameter may be handed down
    through up to twenty or so layers of functions. Consider a USB character
    device attached to a USB hub, attached to a USB controller that posts its
    interrupts through a cascaded auxiliary interrupt controller. A character
    device driver may want to pass regs to the sysrq handler through the input
    layer which adds another few layers of parameter passing.

    I've build this code with allyesconfig for x86_64 and i386. I've runtested the
    main part of the code on FRV and i386, though I can't test most of the drivers.
    I've also done partial conversion for powerpc and MIPS - these at least compile
    with minimal configurations.

    This will affect all archs. Mostly the changes should be relatively easy.
    Take do_IRQ(), store the regs pointer at the beginning, saving the old one:

    struct pt_regs *old_regs = set_irq_regs(regs);

    And put the old one back at the end:

    set_irq_regs(old_regs);

    Don't pass regs through to generic_handle_irq() or __do_IRQ().

    In timer_interrupt(), this sort of change will be necessary:

    - update_process_times(user_mode(regs));
    - profile_tick(CPU_PROFILING, regs);
    + update_process_times(user_mode(get_irq_regs()));
    + profile_tick(CPU_PROFILING);

    I'd like to move update_process_times()'s use of get_irq_regs() into itself,
    except that i386, alone of the archs, uses something other than user_mode().

    Some notes on the interrupt handling in the drivers:

    (*) input_dev() is now gone entirely. The regs pointer is no longer stored in
    the input_dev struct.

    (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking. It does
    something different depending on whether it's been supplied with a regs
    pointer or not.

    (*) Various IRQ handler function pointers have been moved to type
    irq_handler_t.

    Signed-Off-By: David Howells
    (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)

    David Howells
     

04 Oct, 2006

1 commit


03 Oct, 2006

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (29 commits)
    [POWERPC] Fix rheap alignment problem
    [POWERPC] Use check_legacy_ioport() for ISAPnP
    [POWERPC] Avoid NULL pointer in gpio1_interrupt
    [POWERPC] Enable generic rtc hook for the MPC8349 mITX
    [POWERPC] Add powerpc get/set_rtc_time interface to new generic rtc class
    [POWERPC] Create a "wrapper" script and use it in arch/powerpc/boot
    [POWERPC] fix spin lock nesting in hvc_iseries
    [POWERPC] EEH failure to mark pci slot as frozen.
    [POWERPC] update powerpc defconfig files after libata kconfig breakage
    [POWERPC] enable sysrq in pmac32_defconfig
    [POWERPC] UPIO_TSI cleanup
    [POWERPC] rewrite mkprep and mkbugboot in sane C
    [POWERPC] maple/pci iomem annotations
    [POWERPC] powerpc oprofile __user annotations
    [POWERPC] cell spufs iomem annotations
    [POWERPC] NULL noise removal: spufs
    [POWERPC] ppc math-emu needs -fno-builtin-fabs for math.c and fabs.c
    [POWERPC] update mpc8349_itx_defconfig and remove some debug settings
    [POWERPC] Always call cede in pseries dedicated idle loop
    [POWERPC] Fix loop logic in irq_alloc_virt()
    ...

    Linus Torvalds
     

30 Sep, 2006

1 commit


28 Sep, 2006

1 commit