<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/arch/cris/include, branch v4.4.20</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.4.20</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v4.4.20'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2015-11-02T19:03:05Z</updated>
<entry>
<title>CRIS: Drop code related to obsolete or unused kconfigs</title>
<updated>2015-11-02T19:03:05Z</updated>
<author>
<name>Jesper Nilsson</name>
<email>jespern@axis.com</email>
</author>
<published>2015-10-02T09:22:55Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e301a08be4e4ad349b6195562197950d74c86e8a'/>
<id>urn:sha1:e301a08be4e4ad349b6195562197950d74c86e8a</id>
<content type='text'>
Drop all code related to Kconfigs that don't exist.
Fix one Kconfig where it was actually typo:ed (ETRAX_KGB_PORT2)
Drop content related to CRIS v32 SoCs from etraxgpio.h headerfile,
all use of GPIO for both ETRAX FS and ARTPEC-3 should now be through
standard gpiolib instead.

Signed-off-by: Jesper Nilsson &lt;jesper.nilsson@axis.com&gt;
</content>
</entry>
<entry>
<title>CRIS v32: remove old GPIO and LEDs code</title>
<updated>2015-11-02T19:03:05Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-08-03T18:19:24Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ab28e96fd1cf1db1579854931890e5613efc5021'/>
<id>urn:sha1:ab28e96fd1cf1db1579854931890e5613efc5021</id>
<content type='text'>
Since we now have a gpiolib driver, remove this code:

The gpio-etraxfs driver (along with things like gpio-keys-polled for
polling support) replaces the GIO driver implementations in mach-a3 and
mach-fs.  The various generic external chip drivers replace the "virtual
gpio" parts.

The generic gpio-leds driver replaces the LED handling.

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jespern@axis.com&gt;
</content>
</entry>
<entry>
<title>CRIS v32: increase NR_IRQS</title>
<updated>2015-11-02T19:03:04Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-08-03T18:19:19Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=df90c338087fdec88727a025a8d6400ecb7fe4bd'/>
<id>urn:sha1:df90c338087fdec88727a025a8d6400ecb7fe4bd</id>
<content type='text'>
Increase NR_IQRS so we can fit in GPIO interrupts.

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jespern@axis.com&gt;
</content>
</entry>
<entry>
<title>Merge branch 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile</title>
<updated>2015-10-04T15:31:13Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2015-10-04T15:31:13Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=30c44659f4a3e7e1f9f47e895591b4b40bf62671'/>
<id>urn:sha1:30c44659f4a3e7e1f9f47e895591b4b40bf62671</id>
<content type='text'>
Pull strscpy string copy function implementation from Chris Metcalf.

Chris sent this during the merge window, but I waffled back and forth on
the pull request, which is why it's going in only now.

The new "strscpy()" function is definitely easier to use and more secure
than either strncpy() or strlcpy(), both of which are horrible nasty
interfaces that have serious and irredeemable problems.

strncpy() has a useless return value, and doesn't NUL-terminate an
overlong result.  To make matters worse, it pads a short result with
zeroes, which is a performance disaster if you have big buffers.

strlcpy(), by contrast, is a mis-designed "fix" for strlcpy(), lacking
the insane NUL padding, but having a differently broken return value
which returns the original length of the source string.  Which means
that it will read characters past the count from the source buffer, and
you have to trust the source to be properly terminated.  It also makes
error handling fragile, since the test for overflow is unnecessarily
subtle.

strscpy() avoids both these problems, guaranteeing the NUL termination
(but not excessive padding) if the destination size wasn't zero, and
making the overflow condition very obvious by returning -E2BIG.  It also
doesn't read past the size of the source, and can thus be used for
untrusted source data too.

So why did I waffle about this for so long?

Every time we introduce a new-and-improved interface, people start doing
these interminable series of trivial conversion patches.

And every time that happens, somebody does some silly mistake, and the
conversion patch to the improved interface actually makes things worse.
Because the patch is mindnumbing and trivial, nobody has the attention
span to look at it carefully, and it's usually done over large swatches
of source code which means that not every conversion gets tested.

So I'm pulling the strscpy() support because it *is* a better interface.
But I will refuse to pull mindless conversion patches.  Use this in
places where it makes sense, but don't do trivial patches to fix things
that aren't actually known to be broken.

* 'strscpy' of git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:
  tile: use global strscpy() rather than private copy
  string: provide strscpy()
  Make asm/word-at-a-time.h available on all architectures
</content>
</entry>
<entry>
<title>CRIS: fix switch_mm() lockdep splat</title>
<updated>2015-09-04T22:56:50Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-02-20T18:35:16Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=7f0144e7779a8c62e3177301d4b2179432ce5460'/>
<id>urn:sha1:7f0144e7779a8c62e3177301d4b2179432ce5460</id>
<content type='text'>
With lockdep support implemented on CRISv32, we get the following splat.
switch_mm() can be called both from the scheduler() (with interrupts
disabled) and from flush_old_exec (via activate_mm()), with interrupts
enabled.  Fix it by disabling interrupts in activate_mm(), similar to
powerpc and hexagon.

 t======================================================
 [ INFO: HARDIRQ-safe -&gt; HARDIRQ-unsafe lock order detected ]
 3.19.0-08802-g20bc9f1-dirty #323 Not tainted
 ------------------------------------------------------
 init/1 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire:
  (mmu_context_lock){+.+...}, at: [&lt;c0009290&gt;] switch_mm+0x22/0xc6

 and this task is already holding:
  (&amp;rq-&gt;lock){-.-.-.}, at: [&lt;c01a0756&gt;] __schedule+0x5e/0x648
 which would create a new lock dependency:
  (&amp;rq-&gt;lock){-.-.-.} -&gt; (mmu_context_lock){+.+...}

 but this new dependency connects a HARDIRQ-irq-safe lock:
  (&amp;rq-&gt;lock){-.-.-.}
 ... which became HARDIRQ-irq-safe at:
   [&lt;c002b03c&gt;] scheduler_tick+0x28/0x5e
   [&lt;c0007c6c&gt;] timer_interrupt+0x4e/0x6a
   [&lt;c0043ac4&gt;] handle_irq_event_percpu+0x54/0x13c
   [&lt;c004343c&gt;] generic_handle_irq+0x2a/0x36

 to a HARDIRQ-irq-unsafe lock:
  (mmu_context_lock){+.+...}
 ... which became HARDIRQ-irq-unsafe at:
 ...  [&lt;c0039e60&gt;] __lock_acquire+0x8f8/0x1d9c
   [&lt;c0009290&gt;] switch_mm+0x22/0xc6
   [&lt;c009c260&gt;] flush_old_exec+0x500/0x5d4
   [&lt;c00da4c6&gt;] load_elf_phdrs+0x7a/0x84
   [&lt;c00dbdb0&gt;] load_elf_binary+0x21c/0x13b4
   [&lt;c009cdb6&gt;] do_execve+0x22/0x2c
   [&lt;c001dcf2&gt;] ____call_usermodehelper+0x0/0x154
   [&lt;c000581e&gt;] ret_from_kernel_thread+0xe/0x14

 other info that might help us debug this:

  Possible interrupt unsafe locking scenario:

        CPU0                    CPU1
        ----                    ----
   lock(mmu_context_lock);
                                local_irq_disable();
                                lock(&amp;rq-&gt;lock);
                                lock(mmu_context_lock);
   &lt;Interrupt&gt;
     lock(&amp;rq-&gt;lock);

  *** DEADLOCK ***

 1 lock held by init/1:
  #0:  (&amp;rq-&gt;lock){-.-.-.}, at: [&lt;c01a0756&gt;] __schedule+0x5e/0x648

 Call Trace:
 [&lt;c019fe9e&gt;] printk+0x0/0x4e
 [&lt;c00368f8&gt;] print_shortest_lock_dependencies+0x0/0x15c
 [&lt;c0048628&gt;] print_stack_trace+0x0/0x88
 [&lt;c0038912&gt;] __lock_is_held+0x3e/0x5e
 [&lt;c003b894&gt;] lock_acquire+0x8a/0xcc
 [&lt;c01a50c4&gt;] _raw_spin_lock+0x44/0x7a
 [&lt;c0009290&gt;] switch_mm+0x22/0xc6
 [&lt;c01a06f8&gt;] __schedule+0x0/0x648
 [&lt;c01a0d76&gt;] schedule+0x36/0x7c
 [&lt;c0037d04&gt;] trace_hardirqs_on+0x0/0x1e
 [&lt;c0004e18&gt;] do_work_pending+0x30/0xd4
 [&lt;c000591a&gt;] _work_pending+0xe/0x12

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jesper.nilsson@axis.com&gt;
</content>
</entry>
<entry>
<title>CRIS: add STACKTRACE_SUPPORT</title>
<updated>2015-09-04T22:56:50Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-05-14T16:19:03Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=aa6f4d2b6547a9949d87c9b09a872a7015366588'/>
<id>urn:sha1:aa6f4d2b6547a9949d87c9b09a872a7015366588</id>
<content type='text'>
Add stacktrace support, which is required for lockdep and tracing.  The
stack tracing simply looks at all kernel text symbols found on the
stack, similar to the trap stack dumping code, which can also be
converted to use this.

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jesper.nilsson@axis.com&gt;
</content>
</entry>
<entry>
<title>CRIS: UAPI: use generic types.h</title>
<updated>2015-09-04T22:56:48Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-02-28T22:59:50Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=20ae24739968ae7f94d0e73215d444042f91df78'/>
<id>urn:sha1:20ae24739968ae7f94d0e73215d444042f91df78</id>
<content type='text'>
CRIS' types.h is functionally identical to the asm-generic version.

Effective diff:

 +#ifndef _ASM_GENERIC_TYPES_H
 +#define _ASM_GENERIC_TYPES_H
 +
  #include &lt;asm-generic/int-ll64.h&gt;
 +
 +#endif

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jesper.nilsson@axis.com&gt;
</content>
</entry>
<entry>
<title>CRIS: UAPI: use generic shmbuf.h</title>
<updated>2015-09-04T22:56:48Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-02-28T22:55:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=258a9ff66c30c830f6e2f06856878be4d4cc81af'/>
<id>urn:sha1:258a9ff66c30c830f6e2f06856878be4d4cc81af</id>
<content type='text'>
CRIS' shmbuf.h is equivalent to the asm-generic verison.

Effective diff:

 -#ifndef _CRIS_SHMBUF_H
 -#define _CRIS_SHMBUF_H
 +#ifndef __ASM_GENERIC_SHMBUF_H
 +#define __ASM_GENERIC_SHMBUF_H
 +
 +#include &lt;asm/bitsperlong.h&gt;

  	struct ipc64_perm	shm_perm;
  	size_t			shm_segsz;
  	__kernel_time_t		shm_atime;
 +#if __BITS_PER_LONG != 64
  	unsigned long		__unused1;
 +#endif
  	__kernel_time_t		shm_dtime;
 +#if __BITS_PER_LONG != 64
  	unsigned long		__unused2;
 +#endif
  	__kernel_time_t		shm_ctime;
 +#if __BITS_PER_LONG != 64
  	unsigned long		__unused3;
 +#endif
  	__kernel_pid_t		shm_cpid;
  	__kernel_pid_t		shm_lpid;
 -	unsigned long		shm_nattch;
 -	unsigned long		__unused4;
 -	unsigned long		__unused5;
 +	__kernel_ulong_t	shm_nattch;
 +	__kernel_ulong_t	__unused4;
 +	__kernel_ulong_t	__unused5;
  };

  struct shminfo64 {
 -	unsigned long	shmmax;
 -	unsigned long	shmmin;
 -	unsigned long	shmmni;
 -	unsigned long	shmseg;
 -	unsigned long	shmall;
 -	unsigned long	__unused1;
 -	unsigned long	__unused2;
 -	unsigned long	__unused3;
 -	unsigned long	__unused4;
 +	__kernel_ulong_t	shmmax;
 +	__kernel_ulong_t	shmmin;
 +	__kernel_ulong_t	shmmni;
 +	__kernel_ulong_t	shmseg;
 +	__kernel_ulong_t	shmall;
 +	__kernel_ulong_t	__unused1;
 +	__kernel_ulong_t	__unused2;
 +	__kernel_ulong_t	__unused3;
 +	__kernel_ulong_t	__unused4;
  };

  #endif

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jesper.nilsson@axis.com&gt;
</content>
</entry>
<entry>
<title>CRIS: UAPI: use generic msgbuf.h</title>
<updated>2015-09-04T22:56:48Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-02-28T22:53:37Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=74d94adb351161cc4027f94e878ac4e80adcfdc9'/>
<id>urn:sha1:74d94adb351161cc4027f94e878ac4e80adcfdc9</id>
<content type='text'>
CRIS' msgbuf.h is equivalent to the asm-generic version.

Effective diff:

 -#ifndef _CRIS_MSGBUF_H
 -#define _CRIS_MSGBUF_H
 -
 -
 +#ifndef __ASM_GENERIC_MSGBUF_H
 +#define __ASM_GENERIC_MSGBUF_H

 +#include &lt;asm/bitsperlong.h&gt;

  struct msqid64_ds {
  	struct ipc64_perm msg_perm;
  	__kernel_time_t msg_stime;
 +#if __BITS_PER_LONG != 64
  	unsigned long	__unused1;
 +#endif
  	__kernel_time_t msg_rtime;
 +#if __BITS_PER_LONG != 64
  	unsigned long	__unused2;
 +#endif
  	__kernel_time_t msg_ctime;
 +#if __BITS_PER_LONG != 64
  	unsigned long	__unused3;
 -	unsigned long  msg_cbytes;
 -	unsigned long  msg_qnum;
 -	unsigned long  msg_qbytes;
 +#endif
 +	__kernel_ulong_t msg_cbytes;
 +	__kernel_ulong_t msg_qnum;
 +	__kernel_ulong_t msg_qbytes;
  	__kernel_pid_t msg_lspid;
  	__kernel_pid_t msg_lrpid;
 -	unsigned long  __unused4;
 -	unsigned long  __unused5;
 +	__kernel_ulong_t __unused4;
 +	__kernel_ulong_t __unused5;
  };

  #endif

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jesper.nilsson@axis.com&gt;
</content>
</entry>
<entry>
<title>CRIS: UAPI: use generic socket.h</title>
<updated>2015-09-04T22:56:47Z</updated>
<author>
<name>Rabin Vincent</name>
<email>rabin@rab.in</email>
</author>
<published>2015-02-28T22:47:37Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=45266922510fcd1e55df483f41be8debd5df9de8'/>
<id>urn:sha1:45266922510fcd1e55df483f41be8debd5df9de8</id>
<content type='text'>
CRIS' socket.h is equivalent to the asm-generic version.

Effective diff:

 -#ifndef _ASM_SOCKET_H
 -#define _ASM_SOCKET_H
 -
 -
 +#ifndef __ASM_GENERIC_SOCKET_H
 +#define __ASM_GENERIC_SOCKET_H

  #include &lt;asm/sockios.h&gt;

  #define SO_LINGER	13
  #define SO_BSDCOMPAT	14
  #define SO_REUSEPORT	15
 +#ifndef SO_PASSCRED
  #define SO_PASSCRED	16
  #define SO_PEERCRED	17
  #define SO_RCVLOWAT	18
  #define SO_SNDLOWAT	19
  #define SO_RCVTIMEO	20
  #define SO_SNDTIMEO	21
 +#endif

 #define SO_SECURITY_AUTHENTICATION		22

Signed-off-by: Rabin Vincent &lt;rabin@rab.in&gt;
Signed-off-by: Jesper Nilsson &lt;jesper.nilsson@axis.com&gt;
</content>
</entry>
</feed>
