15 Jan, 2006
11 commits
-
Patch from Nicolas Pitre
We need NWFPE if we want to support execution of legacy binaries with
an EABI kernel.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
This patch adds the required code to support both user space ABIs at
the same time. A second syscall table is created to include legacy ABI
syscalls that need an ABI compat wrapper.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
The difference between EABI and the legacy ABI may affect either
structure member alignment and/or argument register selection.The patch has the details.
Included are wrappers for the following syscalls:
sys_stat64
sys_lstat64
sys_fstat64
sys_fcntl64
sys_epoll_ctl
sys_epoll_wait
sys_ipc
sys_semop
sys_semtimedop
sys_pread64
sys_pwrite64
sys_truncate64
sys_ftruncate64
sys_readaheadSigned-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
struct statfs64 has extra padding with EABI growing its size from 84 to
88. This struct is now __attribute__((packed,aligned(4))) with a small
assembly wrapper to force the sz argument to 84 if it is 88 to avoid
copying the extra padding over user space memory unexpecting it.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
This adds the configuration option, and disables any FPA floating point
emulators which are not EABI compatible.It also disables Acorn RISC OS/Arthur binary support when CONFIG_EABI=y
since it is incompatible with an EABI kernel.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
Fix a few syscalls for EABI requirements. They were sys_pread64 and
sys_pwrite64 where the last argument is now entirely pushed on stack,
but since commit 567bd98017d9c9f2ac1c148ddc78c062e8abd398 they don't
require any fixup. Remains only the stat64 structure. Non EABI kernels
are unaffected.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
For a while we wanted to change the way syscalls were called on ARM.
Instead of encoding the syscall number in the swi instruction which
requires reading back the instruction from memory to extract that number
and polluting the data cache, it was decided that simply storing the
syscall number into r7 would be more efficient. Since this represents
an ABI change then making that change at the same time as EABI support
is the right thing to do.It is now expected that EABI user space binaries put the syscall number
into r7 and use "swi 0" to call the kernel. Syscall register argument
are also expected to have "EABI arrangement" i.e. 64-bit arguments
should be put in a pair of registers from an even register number.Example with long ftruncate64(unsigned int fd, loff_t length):
legacy ABI:
- put fd into r0
- put length into r1-r2
- use "swi #(0x900000 + 194)" to call the kernelnew ARM EABI:
- put fd into r0
- put length into r2-r3 (skipping over r1)
- put 194 into r7
- use "swi 0" to call the kernelNote that it is important to use 0 for the swi argument as backward
compatibility with legacy ABI user space relies on this.
The syscall macros in asm-arm/unistd.h were also updated to support
both ABIs and implement the right call method automatically.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
The ARM EABI defines new names for GCC helper functions.
Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
We must make sure that assembly code that modifies the stack pointer
before calling a C function does it so it remains 64-bit aligned.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
The ARM EABI says that the stack pointer has to be 64-bit aligned for
reasons already mentioned in patch #3101 when calling C functions.We therefore must verify and adjust sp accordingly when taking an
exception from kernel mode since sp might not necessarily be 64-bit
aligned if the exception occurs in the middle of a kernel function.If the exception occurs while in user mode then no sp fixup is needed as
long as sizeof(struct pt_regs) as well as any additional syscall data
stack space remain multiples of 8.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
Although ARM is still using 32-bit pointers, version 5 and later
versions of the ARM architecture introduced the ldrd and strd
instructions to move 64-bit data which must be 64-bit aligned in memory,
and the EABI includes new constraints on structure data alignment to
allow for the compiler to use those instructions. This means that any
slab allocation must start on a 64-bit boundary which is not equivalent
to BYTES_PER_WORD, especially on those architecture versions that
implements the ldrd/strd instructions.Overriding the default alignment disables some slab debug features. If
those debug features are really needed then the kernel will have to be
compiled for version 4 of the ARM architecture.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King
14 Jan, 2006
8 commits
-
Other machines may wish to make use of the VIC support code, so
move it to arch/arm/common.Signed-off-by: Russell King
-
The default is already 'n' so there's no need to explicitly state it.
Signed-off-by: Russell King
-
This patch adds register switch support in nommu mode.
Signed-off-by: Hyok S. Choi
Signed-off-by: Russell King -
This patch supports start_thread in nommu mode which requires the
base index register.Signed-off-by: Hyok S. Choi
Signed-off-by: Russell King -
Patch from Nicolas Pitre
This field is redundent since it must be equal to PHYS_OFFSET anyway.
Now that no code uses it anymore, mark it deprecated and remove all
initializations from the tree.Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Nicolas Pitre
This field is redundent since it must be equal to PHYS_OFFSET anyway.
First, let's use PHYS_OFFSET directly instead.
Signed-off-by: Nicolas Pitre
Signed-off-by: Russell King -
Patch from Matt Reimer
IMX serial parity generation doesn't work because of a simple logic error. This patch fixes it and now Bluetooth works on R1000.
Signed-off-by: Matt Reimer
Signed-off-by: Russell King -
Patch from Lennert Buytenhek
For the ixp2000 netdev driver, we need to map in a chunk of SRAM (to
store the transmit and receive descriptors) and the scratch get/put
area (so that we can use the scratchpad rings in the cpu for managing
the descriptors.) These are the final two mappings needed for the
netdev driver and the last missing piece for the driver in mainline
to work.Signed-off-by: Lennert Buytenhek
Signed-off-by: Russell King
13 Jan, 2006
21 commits
-
At least some versions of the via-velocity hardware only support
checksumming IPv4 frames in hardware. However, the driver is currently
setting the NETIF_F_HW_CSUM flag, which indicates support for more than
just IPv4. This results in errors when trying to use IPv6 over
via-velocity hardware.Signed-off-by: John W. Linville
Signed-off-by: Jeff Garzik -
The comments in ieee80211.h claim that one doesn't need to set the len
parameter of the stats struct. But if one doesn't, the management frames
are read far over the memory they actually occupy causing badness.Signed-Off-By: Johannes Berg
Signed-off-by: Jeff Garzik
-
I believe I see the race Michael refers to (tlb_choose_channel
may set head, which tlb_init_slave clears), although I was not able to
reproduce it. I have updated his patch for the current netdev-2.6.git
tree and added a version update. His original comment follows:Our systems have been crashing during testing of PCI HotPlug
support in the various networking components. We've faulted in
the bonding driver due to a bug in bond_alb.c:tlb_clear_slave()In that routine, the last modification to the TLB hash table is
made without protection of the lock, allowing a race that can lead
tlb_choose_channel() to select an invalid table element.-J
Signed-off-by: Jeff Garzik
-
This patch allows the Atmel driver to work correctly with wpa_supplicant
and other programs that require some conformance with WEXT-18. It
should not affect current behavior of the driver. The patch does four
things:1) Implements SIOCSIWENCODEEXT, SIOCGIWENCODEEXT, SIOCSIWAUTH, and
SIOCGIWAUTH calls for unencrypted and WEP operation2) Accepts zero-filled addresses for SIOCSIWAP, which are legal and
should turn off any previous forced WAP address3) Sends association and de-association events to userspace at most of
the appropriate times4) Fixes erroneous order of CIPHER_SUITE_WEP_* arguments in one location
which are actually unused anywaySigned-off-by: Dan Williams
Signed-off-by: Jeff Garzik -
Replace the MODULE_PARM usage in uli526x.c with module_param.
Signed-off-by: Eric Sesterhenn
Signed-off-by: Jeff Garzik -
Make the driver produce the string used by phy_connect and have board specific
code pass the integer mii bus id and phy device id for the specific controller
instance.Signed-off-by: Kumar Gala
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
Add the PHY_ID_FMT macro to ensure that the format of the id string used by a
driver to match to its specific phy is consistent between the mdio_bus and the
driver.Signed-off-by: Kumar Gala
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
We can now have the gianfar mii platform device have a proper resource for the
IO memory region for its registers. Previously we passed this information
that the platform_data structure because we couldn't handle overlapping memory
regions for platform devices.Signed-off-by: Kumar Gala
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
Missing include of to get definition of IPPROTO_UDP.
Signed-off-by: Kumar Gala
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
airo.c currently has MICSUPPORT enabled, which requires CONFIG_CRYPTO. A
user reported a build failure which is due to the lack of a Kconfig
dependency. See http://bugs.debian.org/344205.This patch makes Kconfig enforce this dependency.
Signed-off-by: dann frazier
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
We have identified two related bugs in the e100 driver.
Both bugs are related to manipulation of the MDI control register.
The first problem is that the Ready bit is being ignored when writing to
the Control register; we noticed this because the Linux bonding driver
would occasionally come to the spurious conclusion that the link was down
when querying Link State. It turned out that by failing to wait for a
previous command to complete it was selecting what was essentially a random
register in the MDI register set. When we added code that waits for the
Ready bit (as shown in the patch file below) all such problems ceased.The second problem is that, although access to the MDI registers involves
multiple steps which must not be intermixed, nothing was defending against
two or more threads attempting simultaneous access. The most obvious
situation where such interference could occur involves the watchdog versus
ioctl paths, but there are probably others, so we recommend the locking
shown in our patch file.Signed-off-by: Michael O'Donnell
Cc: "David S. Miller"
Cc: Jeff Garzik
Cc: John Ronciak
Cc: Ganesh Venkatesan
Cc: Jesse Brandeburg
Signed-off-by: Andrew Morton
Signed-off-by: Jeff Garzik -
There's a problem with the REQ_BLOCK_PC handling as well (bad ->data_len
handling) where it could actually complete a request ahead of time. I
suggest we just back this out for now, I will resubmit it later when I'm
fully confident in it.This reverts commit 8672d57138b34447719cd7749f3d21070e1175a1
Signed-off-by: Jens Axboe
Signed-off-by: Linus Torvalds -
Turn several drivers/serial/ semaphores-used-as-mutex into mutexes
Signed-off-by: Arjan van de Ven
Signed-off-by: Russell King -
convert mfd and mmc to mutexes
Signed-off-by: Arjan van de Ven
Signed-off-by: Russell King -
The arm clock semaphores are strict mutexes, convert them to the new
mutex implementationSigned-off-by: Arjan van de Ven
Signed-off-by: Russell King