03 Jun, 2011
1 commit
-
The jump to 4f will cause the NUL padding loop to run at least one time,
so if string length is zero just jump to the end. Otherwise we wrongly
write one NUL byte when size==0.Signed-off-by: Steven Miao
Signed-off-by: Mike Frysinger
31 Mar, 2011
1 commit
-
Fixes generated by 'codespell' and manually reviewed.
Signed-off-by: Lucas De Marchi
04 Mar, 2011
1 commit
-
Some devices will use the outs* funcs with a length of zero, so make sure
we do not write any data in that case.Reported-by: Gilbert Inho
Signed-off-by: Mike Frysinger
23 May, 2010
2 commits
-
Add a little strncpy optimization which can easily cut boot time by 20%.
When the kernel is booting with initramfs, it builds up the filesystem
from a cpio archive by calling strncpy_from_user() via fs/namei.c's
do_getname() on every file in the archive (which can be lots) with a
length of PATH_MAX (1024). This causes the dest of the strncpy to be
padded with many NUL bytes.This optimization mostly causes these NUL bytes to be padded with a call
to memset() which is already optimized for filling memory quickly, but
the hardware loop helps a little bit as well.Boot time measured with 'loglevel=0' so UART speed doesn't get in the way.
Signed-off-by: Robin Getz
Signed-off-by: Mike Frysinger -
Since 'extern inline' doesn't work correctly in the context of the Linux
kernel (too many overriding defines), move the string functions to normal
lib/ assembly files (like the existing mem funcs). This avoids the forced
inline all over the kernel and allows us to place them constantly in L1.This also avoids some module failures when gcc inserts calls to string
functions but the kernel build system doesn't fully consult the library
archives.Signed-off-by: Robin Getz
Signed-off-by: Mike Frysinger
15 Dec, 2009
1 commit
-
The Blackfin port only implemented an optimized version of the
csum_tcpudp_nofold function, so convert everything else to the new
generic code.Signed-off-by: Mike Frysinger
07 Oct, 2009
1 commit
-
Bill Gatliff & David Brownell pointed out we were missing some
copyrights, and licensing terms in some of the files in
./arch/blackfin, so this fixes things, and cleans them up.It also removes:
- verbose GPL text(refer to the top level ./COPYING file)
- file names (you are looking at the file)
- bug url (it's in the ./MAINTAINERS file)
- "or later" on GPL-2, when we did not have that rightIt also allows some Blackfin-specific assembly files to be under a BSD
like license (for people to use them outside of Linux).Signed-off-by: Robin Getz
Signed-off-by: Mike Frysinger
17 Sep, 2009
1 commit
-
__ipipe_{stall, unstall}_root_raw() identifiers may leave the reader
under the impression that only the virtual state is affected by these
operations, which is wrong. Pick names following the convention used
throughout the interrupt pipeline code.Signed-off-by: Philippe Gerum
Signed-off-by: Mike Frysinger
16 Jul, 2009
1 commit
-
The code used in the Blackfin lshrdi3 utilizes gcc constructs. However,
the structures declared don't line up with the code gcc generates, so
under certain optimizations, we get bad code and things crap out in fun
random ways. So rather than trying to maintain different gcc definitions
ourselves, just use the ones available in gcclib.h.URL: http://blackfin.uclinux.org/gf/tracker/5286
Signed-off-by: Jie Zhang
Signed-off-by: Mike Frysinger
13 Jun, 2009
1 commit
-
All other arches do this, and some places like the net/scsi code will fail
as modules without them.Signed-off-by: Mike Frysinger
27 May, 2009
1 commit
-
Fix some more fallout of the string changes:
CC arch/blackfin/lib/strncmp.o
In file included from include/linux/bitmap.h:9,
from include/linux/nodemask.h:90,
from include/linux/mmzone.h:17,
from include/linux/gfp.h:5,
from include/linux/kmod.h:23,
from include/linux/module.h:14,
from arch/blackfin/lib/strncmp.c:14:
include/linux/string.h: In function ‘strstarts’:
include/linux/string.h:132: error: implicit declaration of function ‘strncmp’
make[1]: *** [arch/blackfin/lib/strncmp.o] Error 1Signed-off-by: Mike Frysinger
CC: Rusty Russell
07 Jan, 2009
3 commits
-
this also fixes some errors in the ipipe merge
Signed-off-by: Mike Frysinger
Signed-off-by: Bryan Wu -
[Mike Frysinger :
- handle bf531/bf532/bf534/bf536 variants in ipipe.h
- cleanup IPIPE logic for bfin_set_irq_handler()
- cleanup ipipe asm code a bit and add missing ENDPROC()
- simplify IPIPE code in trap_c
- unify some of the IPIPE code and fix style
- simplify DO_IRQ_L1 handling with ipipe code
- revert IRQ_SW_INT# addition from ipipe merge
- remove duplicate get_{c,s}clk() prototypes
]Signed-off-by: Yi Li
Signed-off-by: Mike Frysinger
Signed-off-by: Bryan Wu -
Signed-off-by: Bernd Schmidt
Signed-off-by: Bryan Wu
28 Oct, 2008
1 commit
-
- kernel_thread
- irq_flags
- checksumSigned-off-by: Mike Frysinger
Signed-off-by: Bryan Wu
14 Aug, 2008
1 commit
-
Signed-off-by: Robin Getz
Signed-off-by: Bryan Wu
20 May, 2008
1 commit
-
Signed-off-by: Bryan Wu
17 May, 2008
1 commit
-
Signed-off-by: Michael Hennerich
Signed-off-by: Bryan Wu
12 May, 2008
1 commit
-
FSVOtest in this case, since I don't have the hardware...
However, all changes seen by gcc are actually
- explicit cast to unsigned short in return expression of functions
returning unsigned short
- csum_fold() return type changed from unsigned int to __sum16
(unsigned short), same as for all other architecture and as net/* expects;
expression actually returned is ((~(sum << 16)) >> 16) with sum being
unsigned 32bit, so it's (a) going to fit into the range of unsigned short
and (b) had been unsigned all along, so no sign expansion mess happened.Tested-by: Bryan Wu
Signed-off-by: Al Viro
Signed-off-by: David Miller
Signed-off-by: Bryan Wu
21 Dec, 2007
1 commit
-
The memcpy() function returns the src pointer instead of the dst pointer.
This patch fix this bug.Signed-off-by: Yi Li
Signed-off-by: Bryan Wu
23 Nov, 2007
1 commit
-
If you need a 64 bit divide in the kernel, use asm/div64.h.
Revert the addition of udivdi3.Cc: Bernd Schmidt
Signed-off-by: Mike Frysinger
Signed-off-by: Bryan Wu
21 Nov, 2007
1 commit
-
Signed-off-by: Mike Frysinger
Signed-off-by: Bryan Wu
17 Nov, 2007
1 commit
-
/*
* CPUs often take a performance hit when accessing unaligned memory
* locations. The actual performance hit varies, it can be small if the
* hardware handles it or large if we have to take an exception and fix
* it
* in software.
*
* Since an ethernet header is 14 bytes network drivers often end up
* with
* the IP header at an unaligned offset. The IP header can be aligned by
* shifting the start of the packet by 2 bytes. Drivers should do this
* with:
*
* skb_reserve(NET_IP_ALIGN);
*
* The downside to this alignment of the IP header is that the DMA is
* now
* unaligned. On some architectures the cost of an unaligned DMA is high
* and this cost outweighs the gains made by aligning the IP header.
*
* Since this trade off varies between architectures, we allow
* NET_IP_ALIGN
* to be overridden.
*/This new function insl_16 allows to read form 32-bit IO and writes to
16-bit aligned memory. This is useful in above described scenario -
In particular with the AXIS AX88180 Gigabit Ethernet MAC.
Once the device is in 32-bit mode, reads from the RX FIFO always
decrements 4bytes.
While on the other side the destination address in SDRAM is always
16-bit aligned.
If we use skb_reserve(0) the receive buffer is 32-bit aligned but later
we hit a unaligned exception in the IP code.Signed-off-by: Michael Hennerich
Signed-off-by: Bryan Wu
21 Oct, 2007
1 commit
-
Signed-off-by: Mike Frysinger
Signed-off-by: Bryan Wu
25 Jul, 2007
1 commit
-
revise anomaly handling by basing things on the compiler not the kconfig defines,
so the header is stable and usable outside of the kernel. This also allows us to
move some code from preprocessing to compiling (gcc culls dead code)
which should help with code quality (readability, catch minor bugs, etc...).Signed-off-by: Mike Frysinger
Signed-off-by: Bryan Wu
12 Jul, 2007
1 commit
-
Signed-off-by: Mike Frysinger
Signed-off-by: Bryan Wu
21 Jun, 2007
1 commit
-
update lists for 533, 537, and add SSYNC workaround into assembly files.
Signed-off-by: Robin Getz
Signed-off-by: Bryan Wu
11 Jun, 2007
1 commit
-
add proper ENDPROC() to close out assembly functions
so size/type is set properly in the final ELF imageSigned-off-by: Mike Frysinger
Signed-off-by: Bryan Wu
22 May, 2007
1 commit
-
Signed-off-by: Michael Hennerich
Signed-off-by: Bryan Wu
Signed-off-by: Linus Torvalds
08 May, 2007
1 commit
-
This adds support for the Analog Devices Blackfin processor architecture, and
currently supports the BF533, BF532, BF531, BF537, BF536, BF534, and BF561
(Dual Core) devices, with a variety of development platforms including those
avaliable from Analog Devices (BF533-EZKit, BF533-STAMP, BF537-STAMP,
BF561-EZKIT), and Bluetechnix! Tinyboards.The Blackfin architecture was jointly developed by Intel and Analog Devices
Inc. (ADI) as the Micro Signal Architecture (MSA) core and introduced it in
December of 2000. Since then ADI has put this core into its Blackfin
processor family of devices. The Blackfin core has the advantages of a clean,
orthogonal,RISC-like microprocessor instruction set. It combines a dual-MAC
(Multiply/Accumulate), state-of-the-art signal processing engine and
single-instruction, multiple-data (SIMD) multimedia capabilities into a single
instruction-set architecture.The Blackfin architecture, including the instruction set, is described by the
ADSP-BF53x/BF56x Blackfin Processor Programming Reference
http://blackfin.uclinux.org/gf/download/frsrelease/29/2549/Blackfin_PRM.pdfThe Blackfin processor is already supported by major releases of gcc, and
there are binary and source rpms/tarballs for many architectures at:
http://blackfin.uclinux.org/gf/project/toolchain/frs There is complete
documentation, including "getting started" guides available at:
http://docs.blackfin.uclinux.org/ which provides links to the sources and
patches you will need in order to set up a cross-compiling environment for
bfin-linux-uclibcThis patch, as well as the other patches (toolchain, distribution,
uClibc) are actively supported by Analog Devices Inc, at:
http://blackfin.uclinux.org/We have tested this on LTP, and our test plan (including pass/fails) can
be found at:
http://docs.blackfin.uclinux.org/doku.php?id=testing_the_linux_kernel[m.kozlowski@tuxland.pl: balance parenthesis in blackfin header files]
Signed-off-by: Bryan Wu
Signed-off-by: Mariusz Kozlowski
Signed-off-by: Aubrey Li
Signed-off-by: Jie Zhang
Signed-off-by: Andrew Morton
Signed-off-by: Linus Torvalds