1. 30 6月, 2008 1 次提交
  2. 22 5月, 2008 1 次提交
    • J
      drivers/net/fs_enet: remove null pointer dereference · 4ecc8c06
      Julia Lawall 提交于
      The following code appears in the function fs_init_instance in the file drivers/net/fs_enet/fs_enet-main.c.
      
      	if (fep->ops == NULL) {
      		printk(KERN_ERR DRV_MODULE_NAME
      		       ": %s No matching ops found (%d).\n",
      		       ndev->name, fpi->fs_no);
      		err = -EINVAL;
      		goto err;
      	}
      
      This code implies that at the point of err, fep->ops can be NULL, so an
      extra test is needed before dereferencing this value.
      
      This problem was found using the following semantic match
      (http://www.emn.fr/x-info/coccinelle/)
      
      // <smpl>
      @@
      expression E, E1;
      identifier f;
      statement S1,S2,S3;
      @@
      
      * if (E == NULL)
      {
        ... when != if (E == NULL) S1 else S2
            when != E = E1
      * E->f
        ... when any
        return ...;
      }
      else S3
      // </smpl>
      Signed-off-by: NJulia Lawall <julia@diku.dk>
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      4ecc8c06
  3. 17 4月, 2008 1 次提交
  4. 12 4月, 2008 1 次提交
  5. 24 2月, 2008 1 次提交
  6. 24 1月, 2008 1 次提交
  7. 13 1月, 2008 1 次提交
    • A
      fs_enet: check for phydev existence in the ethtool handlers · dfd9a421
      Anton Vorontsov 提交于
      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 <EE,ME>  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 <8003014c> 7c6b1b78 38600000 90040004
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Acked-by: NVitaly Bordug <vitb@kernel.crashing.org>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      dfd9a421
  8. 09 1月, 2008 1 次提交
  9. 18 10月, 2007 1 次提交
    • S
      fs_enet: Update for API changes · f860f49e
      Scott Wood 提交于
      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: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      f860f49e
  10. 11 10月, 2007 11 次提交
  11. 03 5月, 2007 1 次提交
    • J
      PCI: Cleanup the includes of <linux/pci.h> · 6473d160
      Jean Delvare 提交于
      I noticed that many source files include <linux/pci.h> 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 <linux/pci.h> 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/141Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Cc: Badari Pulavarty <pbadari@us.ibm.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      6473d160
  12. 26 4月, 2007 2 次提交
  13. 15 2月, 2007 1 次提交
    • T
      [PATCH] remove many unneeded #includes of sched.h · cd354f1a
      Tim Schmielau 提交于
      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: NTim Schmielau <tim@physik3.uni-rostock.de>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      cd354f1a
  14. 02 12月, 2006 1 次提交
    • A
      [PATCH] PHY: Add support for configuring the PHY connection interface · e8a2b6a4
      Andy Fleming 提交于
      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: NAndrew Fleming <afleming@freescale.com>
      Signed-off-by: NJeff Garzik <jeff@garzik.org>
      e8a2b6a4
  15. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      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: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  16. 22 9月, 2006 2 次提交
    • V
      POWERPC: Bring the fs_no calculation to the relevant SoC enumeration · 611a15af
      Vitaly Bordug 提交于
      The fs_no mean used to be fs_enet driver driven, hence it was an
      enumeration across all the possible fs_enet "users" in the SoC. Now, with
      QE on the pipeline, and to make DTS descriptions more clear, fs_no features
      relevant SoC part number, with additional field to describe the SoC type.
      
      Another reason for that is now not only fs_enet is going to utilize those
      stuff. There might be UART, HLDC, and even USB, so to prevent confusion and
      be ready for upcoming OF_device transfer, fs_enet and cpm_uart drivers were
      updated in that concern, as well as the relevant DTS.
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      611a15af
    • V
      POWERPC: overhaul with cpm2_map mechanism · d3465c92
      Vitaly Bordug 提交于
      Incorporating the new way of cpm2 immr access, introduced in the previous
      patch, into CPM2 peripheral devices (fs_enet and cpm_uart). Both ppc and
      powerpc approved working( real actions taken in powerpc only, ppc just
      has a wrapper to keep init stuff consistent).
      Signed-off-by: NVitaly Bordug <vbordug@ru.mvista.com>
      d3465c92
  17. 14 9月, 2006 1 次提交
  18. 20 8月, 2006 1 次提交
  19. 03 7月, 2006 1 次提交
  20. 01 7月, 2006 1 次提交
  21. 26 3月, 2006 1 次提交
  22. 10 11月, 2005 1 次提交
  23. 30 10月, 2005 1 次提交
  24. 29 10月, 2005 1 次提交