The driver triggers a BUG_ON() when allocating DMA buffers because the
arch/powerpc dma_ops aren't in the net_device's struct device. This
patch fixes the problem by using the parent of_device which does have
the correct dma_ops set.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Reviewed-by: Becky Bruce <beckyb@kernel.crashing.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Commit 784544739a
(netfilter: iptables: lock free counters) forgot to disable BH
in arpt_do_table(), ipt_do_table() and ip6t_do_table()
Use rcu_read_lock_bh() instead of rcu_read_lock() cures the problem.
Reported-and-bisected-by: Roman Mindalev <r000n@r000n.net>
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Acked-by: Patrick McHardy <kaber@trash.net>
Acked-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
We have a 64bit value that needs to be set atomically.
This is easy and quick on all 64bit archs, and can also be done
on x86/32 with set_64bit() (uses cmpxchg8b). However other
32b archs don't have this.
I actually changed this to the current state in preparation for
mainline because the old way (using a spinlock on 32b) resulted in
unsightly #ifdefs in the code. But obviously, being correct takes
precedence.
Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This fixes a bug where a connection was unexpectedly
not on *any* list while being destroyed. It also
cleans up some code duplication and regularizes some
function names.
* Grab appropriate lock in conn_free() and explain in comment
* Ensure via locking that a conn is never not on either
a dev's list or the nodev list
* Add rds_xx_remove_conn() to match rds_xx_add_conn()
* Make rds_xx_add_conn() return void
* Rename remove_{,nodev_}conns() to
destroy_{,nodev_}conns() and unify their implementation
in a helper function
* Document lock ordering as nodev conn_lock before
dev_conn_lock
Reported-by: Yosef Etigin <yosefe@voltaire.com>
Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
rs_send_drop_to() is called during socket close. If it takes
m_rs_lock without disabling interrupts, then
rds_send_remove_from_sock() can run from the rx completion
handler and thus deadlock.
Signed-off-by: Andy Grover <andy.grover@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
- Kconfig and Makefile related changes for vxge driver.
- No changes in current submission.
- Changes from previous submission -
- Incorporated the following review comments as per Bill Flink:
- Add dependancy on INET along with PCI
- Remove dependancy on INET_LRO and add GRO support.
- Made this patch as last patch as per Ben Hutchings comments.
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This patch implements all ethtool related entry point functions for the driver.
- Changes in this submission -
- Removed redundant #include statements
- Changes in previous submissions -
- Removed unused statistics.
- General clean up - removed unused variables and macros.
- Incorporated following comments from Ben Hutchings
- No need to restart the interface in vxge_ethtool_sset
- Do not use #ifdef ADVERTISED_XX
- Remove unnecessart intermediate copy in vxge_ethtool_gdrvinfo
- Use strlcpy() to ensure null-termination.
- Use ethtool_op_get_tso, ethtool_op_set_tx_hw_csum instead
of redefining the same code.
- Implement get_strings_count instead of deprecated get_stats_count.
- Don't report reporting the EEPROM length as we don't supprt
get/set eeprom.
- Don't set self_test_count as we don't support any self tests.
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This patch implements all the driver entry point functions.
- Definition of all module loadable paramters.
- Implementation of all driver entry point functions.
- Changes in this submission -
- Fixed compilation error when enabling debug statements
- Fixed few warnings when CONFIG_PCI_MSI is not defined
- Removed unnecessary volatile variables
- Removed compare_ether_addr as it causes unaligned memory access on
the sparc64 platform.
- Changes in previous submissions -
- As per Stephen Hemminger's comments removed the following loadable
parameters - gro, rx_& tx max_indicate_pkts, exec_mode, rx & tx
pause_enable, tx_steering_type and intr_type.
- Added Device ID definition in vxge-main.h instead of
include/linux/pci_ids.h file - Reported by David Miller
- Incorporated following review comments from Ben Hutchings
- NAPI is always enabled (no option to turn it OFF).
- Loadable parameters
rx_steering_type: This loadable option is removed.
ring_blocks: This loadable option is removed.
The driver default settings work well in most if not all cases.
Another patch to configure these parameters with ethtool will be
released in the future.
- LRO has been deprecated in favour of GRO - Bill Fink & Dave Miller's comment
- Fixed sparse warnings - Reported by Andi Kleen
- Removed unused variables
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This patch takes care of trafic handling related APIS.
- Interrupt Enable and disable
- Mask / Unmask Interrupt
- Traffic Interrupt handling.
- Alarm Interrupt handling.
- Changes in this submission -
- General clean up - removed redundant includes, defines and macros.
- Changes in previous submissions -
- General cleanup - removed unused functions and variables.
- Use asserts where necessary - Reported by Andi Kleen
- Fixed sparse warnings - Reported by Andi Kleen
- Use a prefix, "__vxge" in front of hw functions to make them globally
unique - Ben Hutchings
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This patch takes care of Initialization and configuration steps of
Neterion Inc's X3100 Series 10GbE PCIe I/O Virtualized Server Adapter.
- Device Initialization.
- Verification and setting of device config parameters.
- Allocation of Tx FIFO and Rx Ring descriptors (DTR).
- APIs to get various type of hw stats
- APIs to configure RTS (Receive Traffic Steering)
- Changes in this submission -
- Include vmalloc header without which a compilation error occured
on sparc64, ppc64 and IA64 plaforms.
- Fixed compilation warning in register_poll, write32_upper,
write32_lower and the special write64 functions on ppc64.
- General cleanup - removed redundant includes and defines.
- Changes in previous submissions -
- Add readq/writeq implementation for the driver for 32 bit systems -
reported by Dave Miller.
- Incorporated following comments from Ben Hutchings
- Start a comment with "/**" to make it a kernel-doc comment.
- Use prefix, "__vxge" in front of hw functions to make them globally
unique.
- Fixed unnecessary clearing members of *channel just before freeing
- Use backslashes only for macro definitions and not in multi-line
statements.
- Used pci_find_capability instead of redefining it.
- Used device and revision ids that are already in pdev - no need to
read them again.
- Used pci_save_state() and pci_restore_state() around resets.
- Used udelay and mdelay directly instead of wrapper.
- In __vxge_hw_device_register_poll() reset i to 0 after the
microsecond delay loop to commence the millisecond delay loop.
- Corrected spelling "sapper" - should be "swapper"
- Remove too much vertical whitespace.
- Replaced magic numbers with appropriate macros
- Incorporated following comments from Andi Kleen [andi@firstfloor.org]
- Reduced the arguments in functions or refactored them into smaller
functions.
- Allocate page sized memories used in slow path with vmalloc.
- Use asserts where necessary.
- Use macros instead of magic numbers.
- Use the pci layer code instead of defining own functions
- Remove driver wrappers such as xge_hw_device_private_set().
- Fixed sparse warnings.
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
- Complete Register map details of Neterion Inc's X3100 Series 10GbE PCIe I/O
Virtualized Server Adapter.
- No change from previous submission.
- Changes in previous submissions -
- Incorporated following comments from Ben Hutchings
- Use original macros for endian checks
- Remove VXGE_OS_PLATFORM_* macros as they are unused.
- Converted multiple bVALX macros into single with additional
width parameter and renamed it to vxge_bVALn.
- Using __packed instead of pragma pack(1)
- Added a comment of the use of a hw swapper so driver code is
portable (does not have to change the byte order for register
access as well as dma operations) on different ENDIAN platforms.
- Using the <linux/pci_regs.h> definitions instead of redefing them.
- Using the PCI capabilities registers in <linux/pci_regs.h>
instead of redefing them.
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
- vxge driver help text file.
- No change from previous submission.
- Changes in previous submissions -
Removed the performance tuning section with instructions to disable
time stamps and change sysctl settings - Reported by Dave Miller
General clean up.
- Removed tx/rx_pause, exec_mode, tx_steering_type, rx_steering_type, gro,
intr_type, rx & tx max_indicate_pkts and exec_mode loadable parameters. The
driver default settings work well in most if not all cases. Another patch
to configure these parameters with ethtool will be released in the future -
Reported by Stephen Hemminger.
- Incorporated following fixes based on comments from Ben Hutchings
Removed references to earlier kernel versions.
Removed sections that are similar for all drivers -
Load/Unload
Identifying the adapter/interface
Boot time configuration
Removed loadable parameter -
NAPI - Napi is always enabled.
rx_steering_type & ring_blocks - The driver default settings
work well in most if not all cases. Another patch to configure
these parameters with ethtool will be released in the future.
Removed ethtool support section - No need to duplicate ethtool
docs here.
Removed Known Issue on SUSE 9 - Doesn't apply when using a
current kernel.
Removed Common Problems section - These don't apply to in-tree modules.
Removed Available Downloads section - Not sure this belongs in-tree.
Removed Copyright information - This notice doesn't belong in
the kernel.
Signed-off-by: Sivakumar Subramani <sivakumar.subramani@neterion.com>
Signed-off-by: Rastapur Santosh <santosh.rastapur@neterion.com>
Signed-off-by: Ramkrishna Vepa <ram.vepa@neterion.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Commit deac93df26 fixed up printing
of %pF on parisc, but added the dereference_function_descriptor
prototype to module.c... this isn't a particularly wise idea as
module.c might not always be compiled.
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
elf.h probably won't be exported to userspace, but play it safe
and cram it in a #ifdef __KERNEL__ guard.
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
setup_percpu_remap() is for NUMA machines yet it bailed out with
-EINVAL if pcpu_need_numa(). Fix the inverted condition.
This problem was reported by David Miller and verified by Yinhai Lu.
Reported-by: David Miller <davem@davemloft.net>
Reported-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
LKML-Reference: <49D30469.8020006@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
When we build for PA8X00, we define ARCH_HAS_KMAP, which results in
the kmap_types.h include in highmem.h getting skipped...
In file included from include/linux/pagemap.h:10,
from include/linux/mempolicy.h:62,
from init/main.c:52:
include/linux/highmem.h:196: warning: 'enum km_type' declared inside parameter list
include/linux/highmem.h:196: warning: its scope is only this definition or declaration, which is probably not what you want
include/linux/highmem.h:196: error: parameter 1 ('type') has incomplete type
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
PowerPC has been a long time user of the generic RTC abstraction, so hook up
rtc-generic:
- Create the "rtc-generic" platform device if ppc_md.get_rtc_time is set,
- Kill rtc-ppc, as rtc-generic offers the same functionality in a more
generic way, and supports autoloading through udev.
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: David Woodhouse <David.Woodhouse@intel.com>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
m68k has been a long time user of the generic RTC abstraction, so hook up
rtc-generic:
- Create the "rtc-generic" platform device if mach_hwclk is set,
- Add checks for mach_hwclk, in anticipation of RTC chip drivers being moved
to drivers/rtc/.
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
The rtc-parisc driver is not PA-RISC specific at all, as it uses the existing
(but deprecated) generic RTC infrastructure ([gs]et_rtc_time()).
Rename the driver from rtc-parisc to rtc-generic.
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
When using platform_driver_probe(), it's not needed to setup a .probe
function, and .remove should be marked __exit_p(), not __devexit_p().
Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
Acked-by: Alessandro Zummo <a.zummo@towertech.it>
Cc: dann frazier <dannf@hp.com>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
ccio-dma.c:456: warning: overflow in implicit constant conversion
ccio-dma.c:459: warning: overflow in implicit constant conversion
ccio-dma.c:1032: warning: unused variable 'j'
ccio-dma.c:1031: warning: unused variable 'max'
ccio-dma.c:1031: warning: unused variable 'min'
ccio-dma.c:1031: warning: unused variable 'avg'
ccio-dma.c:1403: warning: format '%08lx' expects type 'long unsigned int', but argument 3 has type 'resource_size_t'
ccio-dma.c:1403: warning: format '%08lx' expects type 'long unsigned int', but argument 4 has type 'resource_size_t'
ccio-dma.c:1554: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'resource_size_t'
dino.c:822: warning: format '%lx' expects type 'long unsigned int', but argument 4 has type 'resource_size_t'
dino.c:822: warning: format '%lx' expects type 'long unsigned int', but argument 5 has type 'resource_size_t'
dino.c:902: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'resource_size_t'
dino.c:902: warning: format '%lx' expects type 'long unsigned int', but argument 4 has type 'resource_size_t'
asp.c:84: warning: format '%lx' expects type 'long unsigned int', but argument 4 has type 'resource_size_t'
eisa.c:317: warning: format '%08lx' expects type 'long unsigned int', but argument 3 has type 'resource_size_t'
eisa_enumerator.c:101: warning: format '%lx' expects type 'long unsigned int', but argument 2 has type 'resource_size_t'
eisa_enumerator.c:101: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'resource_size_t'
eisa_enumerator.c:191: warning: format '%lx' expects type 'long unsigned int', but argument 2 has type 'resource_size_t'
eisa_enumerator.c:191: warning: format '%lx' expects type 'long unsigned int', but argument 3 has type 'resource_size_t'
Signed-off-by: Alexander Beregalov <a.beregalov@gmail.com>
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
On Wed, Mar 25, 2009 at 05:02:21PM +0300, Alexander Beregalov wrote:
> arch/parisc/kernel/traps.c:321: error: 'PARISC_BUG_BREAK_INSN'
> undeclared (first use in this function)
>
> # CONFIG_BUG is not set
> CONFIG_EMBEDDED=y
>
> Is it a reasonable config?
imho, no.
Signed-off-by: Kyle McMartin <kyle@mcmartin.ca>
This patch adds a cyclic DMA interface to the DW DMA driver. This is
very useful if you want to use the DMA controller in combination with a
sound device which uses cyclic buffers.
Using a DMA channel for cyclic DMA will disable the possibility to use
it as a normal DMA engine until the user calls the cyclic free function
on the DMA channel. Also a cyclic DMA list can not be prepared if the
channel is already active.
Signed-off-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Acked-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
Acked-by: Maciej Sosnowski <maciej.sosnowski@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
This is a baby-step in the direction of having finer-grained
locking than the struct_mutex. Specifically, this will enable
new debugging code to read the active list for printing out
GPU state when the GPU is wedged, (while the struct_mutex is
held, of course).
Signed-off-by: Carl Worth <cworth@cworth.org>
[anholt: indentation fix]
Signed-off-by: Eric Anholt <eric@anholt.net>
This brings SDVO TV support from 2D driver, including origin
fix f1ca56e17d0 and later fix 2fcf4fcccfe. Also fix wrong modeline
definitions for SDVO TV.
Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Fix compile error of intel_sdvo_debug_response(),
and explicit use KERN_DEBUG for printk.
Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Only set TV DAC in property change seems doesn't work, we have to
setup whole crtc pipe which assigned to TV alone.
Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
[anholt: Note that this should also fix the oops at startup with new 2D]
Signed-off-by: Eric Anholt <eric@anholt.net>
If there's no real property change, don't need to set TV mode again.
Signed-off-by: Zhenyu Wang <zhenyu.z.wang@intel.com>
[anholt: checkpatch.pl fix]
Signed-off-by: Eric Anholt <eric@anholt.net>
udelay() of 20 milliseconds really ought to just use mdelay(), that avoids
the various wrap scenarios and also is more readable
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Add VGA port hotplug detection to the i915 driver. When KMS is enabled,
plugging in or removing a VGA cable from the VGA connector will
generate a uevent, which indicates to userspace that it should re-probe
outputs on this device (to determine modes, etc.).
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
[anholt: dropped extra PORT_HOTPLUG_STAT clear with ack from jbarnes]
Signed-off-by: Eric Anholt <eric@anholt.net>
"struct tty_driver *" lies in m->private not in v which is
SEQ_TOKEN_START which is 1 which is enough to trigger NULL dereference
next line:
BUG: unable to handle kernel NULL pointer dereference at 000000ad
IP: [<c040d689>] uart_proc_show+0xe/0x2b0
Noticed by Linus.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Change pr_debug to pr_err on error paths in the AT91 power management
code. All of the errors will result in the cpu not going into the
suspend state. This patch makes it possible to identify problems with
suspend when power management debugging is not enabled.
Signed-off-by: Ryan Mallon <ryan@bluewatersys.com>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
We've observed that ARM VFP state can be corrupted during VFP exception
handling when PREEMPT is enabled. The exact conditions are difficult
to reproduce but appear to occur during VFP exception handling when a
task causes a VFP exception which is handled via VFP_bounce and is then
preempted by yet another task which in turn causes yet another VFP
exception. Since the VFP_bounce code is not preempt safe, VFP state then
becomes corrupt. In order to prevent preemption from occuring while
handling a VFP exception, this patch disables preemption while handling
VFP exceptions.
Signed-off-by: George G. Davis <gdavis@mvista.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Because of an ARM1136 erratum (326103), the current v6_early_abort
function needs to set the correct FSR[11] value which determines whether
the data abort was caused by a read or write. For legacy reasons (bit 10
not handled by software), bit 10 was also cleared masking out imprecise
aborts on ARMv6 CPUs. This patch removes the clearing of bit 10 of FSR.
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This fixes a compile error caused by a mismerge while rebasing the patch:
linux-2.6/arch/arm/mach-omap2/board-rx51-peripherals.c:354:
undefined reference to `twl4030_mmc_init'
Looks like I need to also update my build scripts, just grepping for error:
in the logs is not obviously enough..
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>