<feed xmlns='http://www.w3.org/2005/Atom'>
<title>BMC/Intel-BMC/linux.git/arch/xtensa/platforms/iss/console.c, branch dev</title>
<subtitle>Intel OpenBMC Linux kernel source tree (mirror)</subtitle>
<id>https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev</id>
<link rel='self' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/atom?h=dev'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/'/>
<updated>2013-05-09T08:07:11+00:00</updated>
<entry>
<title>xtensa: ISS: fix timer_lock usage in rs_open</title>
<updated>2013-05-09T08:07:11+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2013-02-04T19:38:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=efefbcc50028fb025316a1a21dca5ce4fd90e881'/>
<id>urn:sha1:efefbcc50028fb025316a1a21dca5ce4fd90e881</id>
<content type='text'>
This fixes the following lockdep splat:

[   66.460000] =================================
[   66.460000] [ INFO: inconsistent lock state ]
[   66.460000] 3.9.0-rc5-00161-ga48dd49 #4 Not tainted
[   66.460000] ---------------------------------
[   66.460000] inconsistent {SOFTIRQ-ON-W} -&gt; {IN-SOFTIRQ-W} usage.
[   66.460000] swapper/1 [HC0[0]:SC1[1]:HE1:SE0] takes:
[   66.460000]  (timer_lock){+.?...}, at: [&lt;d0006cde&gt;] rs_poll+0x12/0xdc
[   66.460000] {SOFTIRQ-ON-W} state was registered at:
[   66.460000]   [&lt;d00421f0&gt;] lock_acquire+0xec/0x13c
[   66.460000]   [&lt;d01ea036&gt;] _raw_spin_lock+0x3a/0x84
[   66.460000]   [&lt;d0006c8c&gt;] rs_open+0x18/0x58
[   66.460000]   [&lt;d0139ea2&gt;] tty_open+0x262/0x3cc
[   66.460000]   [&lt;d00942e0&gt;] chrdev_open+0x8c/0xe0
[   66.460000]   [&lt;d00907b2&gt;] do_dentry_open$isra$16+0x10e/0x190
[   66.460000]   [&lt;d0091141&gt;] finish_open+0x39/0x48
[   66.460000]   [&lt;d009a0b4&gt;] do_last$isra$34+0x6c4/0x824
[   66.460000]   [&lt;d009a27a&gt;] path_openat+0x66/0x310
[   66.460000]   [&lt;d009a53a&gt;] do_filp_open+0x16/0x44
[   66.460000]   [&lt;d0091445&gt;] do_sys_open+0xd5/0x13c
[   66.460000]   [&lt;d00914be&gt;] sys_open+0x12/0x18
[   66.460000]   [&lt;d0413ffc&gt;] kernel_init_freeable+0xe4/0x12c
[   66.460000]   [&lt;d01e2a9c&gt;] kernel_init+0xc/0x9c
[   66.460000]   [&lt;d00044fc&gt;] ret_from_kernel_thread+0x8/0xc
[   66.460000] irq event stamp: 132542
[   66.460000] hardirqs last  enabled at (132542): [&lt;d01ea2ec&gt;] _raw_spin_unlock_irq+0x30/0x44
[   66.460000] hardirqs last disabled at (132541): [&lt;d01ea11e&gt;] _raw_spin_lock_irq+0xe/0x8c
[   66.460000] softirqs last  enabled at (132234): [&lt;d0017d32&gt;] __do_softirq+0x216/0x2a4
[   66.460000] softirqs last disabled at (132539): [&lt;d0018024&gt;] irq_exit+0x38/0x40
[   66.460000]
[   66.460000] other info that might help us debug this:
[   66.460000]  Possible unsafe locking scenario:
[   66.460000]
[   66.460000]        CPU0
[   66.460000]        ----
[   66.460000]   lock(timer_lock);
[   66.460000]   &lt;Interrupt&gt;
[   66.460000]     lock(timer_lock);
[   66.460000]
[   66.460000]  *** DEADLOCK ***
[   66.460000]
[   66.460000] 1 lock held by swapper/1:
[   66.460000]  #0:  (((&amp;serial_timer))){+.-...}, at: [&lt;d001c65c&gt;] call_timer_fn+0x0/0x1f0
[   66.460000]
Stack: d7c2fac0 00000018 00000004 00000001 d7c2faa0 00000004 00000006 d7c2fa90
       9003e87c d7c2fae0 d7c30000 d025a87c 00000001 0000000f 00000000 d7c2fac0
       9004005d d7c2fb10 d7c30000 d7c30338 00000001 00000001 00000000 d7c30338
[   66.460000] Call Trace:
[   66.460000]  [&lt;d01e4f93&gt;] print_usage_bug$part$26+0x1c3/0x1c8
[   66.460000]  [&lt;d003e87c&gt;] mark_lock+0x2b4/0x440
[   66.460000]  [&lt;d004005d&gt;] __lock_acquire+0x54d/0x16c4
[   66.460000]  [&lt;d00421f0&gt;] lock_acquire+0xec/0x13c
[   66.460000]  [&lt;d01ea036&gt;] _raw_spin_lock+0x3a/0x84
[   66.460000]  [&lt;d0006cde&gt;] rs_poll+0x12/0xdc
[   66.460000]  [&lt;d001c71a&gt;] call_timer_fn+0xbe/0x1f0
[   66.460000]  [&lt;d001cd90&gt;] run_timer_softirq+0x198/0x1f4
[   66.460000]  [&lt;d0017c30&gt;] __do_softirq+0x114/0x2a4
[   66.460000]  [&lt;d0018024&gt;] irq_exit+0x38/0x40
[   66.460000]  [&lt;d00046c0&gt;] do_IRQ+0x44/0x48
[   66.460000]  [&lt;d0005c58&gt;] do_interrupt+0x4c/0x54
[   66.460000]  [&lt;d0003c80&gt;] common_exception_return+0x0/0x5c
[   66.460000]  [&lt;d006682c&gt;] free_pcppages_bulk+0x254/0x308
[   66.460000]

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Chris Zankel &lt;chris@zankel.net&gt;
</content>
</entry>
<entry>
<title>xtensa: don't use a7 in simcalls</title>
<updated>2013-05-09T08:07:10+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2013-04-15T04:39:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=f4b93ba93184c23f7a903cc790b573195fb41c37'/>
<id>urn:sha1:f4b93ba93184c23f7a903cc790b573195fb41c37</id>
<content type='text'>
To support FRAME_POINTER avoid using a7 in __simc (none of the existing
simcalls needs it). Replace calls to __simc with more specific
simc_read, simc_write and simc_lseek calls.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Chris Zankel &lt;chris@zankel.net&gt;
</content>
</entry>
<entry>
<title>TTY: switch tty_flip_buffer_push</title>
<updated>2013-01-16T06:30:15+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2013-01-03T14:53:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=2e124b4a390ca85325fae75764bef92f0547fa25'/>
<id>urn:sha1:2e124b4a390ca85325fae75764bef92f0547fa25</id>
<content type='text'>
Now, we start converting tty buffer functions to actually use
tty_port. This will allow us to get rid of the need of tty in many
call sites. Only tty_port will needed and hence no more
tty_port_tty_get in those paths.

Now, the one where most of tty_port_tty_get gets removed:
tty_flip_buffer_push.

IOW we also closed all the races in drivers not using tty_port_tty_get
at all yet.

Also we move tty_flip_buffer_push declaration from include/linux/tty.h
to include/linux/tty_flip.h to all others while we are changing it
anyway.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>TTY: switch tty_insert_flip_char</title>
<updated>2013-01-16T06:21:36+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2013-01-03T14:53:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=92a19f9cec9a80ad93c06e115822deb729e2c6ad'/>
<id>urn:sha1:92a19f9cec9a80ad93c06e115822deb729e2c6ad</id>
<content type='text'>
Now, we start converting tty buffer functions to actually use
tty_port. This will allow us to get rid of the need of tty in many
call sites. Only tty_port will needed and hence no more
tty_port_tty_get in those paths.

tty_insert_flip_char is the next one to proceed. This one is used all
over the code, so the patch is huge.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>TTY: call tty_port_destroy in the rest of drivers</title>
<updated>2012-11-16T01:20:58+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2012-11-15T08:49:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=191c5f10275cfbb36802edadbdb10c73537327b4'/>
<id>urn:sha1:191c5f10275cfbb36802edadbdb10c73537327b4</id>
<content type='text'>
After commit "TTY: move tty buffers to tty_port", the tty buffers are
not freed in some drivers. This is because tty_port_destructor is not
called whenever a tty_port is freed. This was an assumption I counted
with but was unfortunately untrue. So fix the drivers to fulfil this
assumption.

To be sure, the TTY buffers (and later some stuff) are gone along with
the tty_port, we have to call tty_port_destroy at tear-down places.
This is mostly where the structure containing a tty_port is freed.
This patch does exactly that -- put tty_port_destroy at those places.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>xtensa: ISS: fix rs_put_char</title>
<updated>2012-10-16T04:39:20+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2012-10-14T23:55:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=c88d8df0cc69fe0238f2c805a87cc67fb27a43fe'/>
<id>urn:sha1:c88d8df0cc69fe0238f2c805a87cc67fb27a43fe</id>
<content type='text'>
ISS serial console prints garbage instead of symbols printed via
rs_put_char. gcc optimizes away putting prined symbol into memory buffer
because there's no evidence that the buffer is used afterwards.

Make rs_put_char and rs_write use simc_write that has explicit wmb.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Chris Zankel &lt;chris@zankel.net&gt;
</content>
</entry>
<entry>
<title>Merge tag 'xtensa-next-20121008' of git://github.com/czankel/xtensa-linux</title>
<updated>2012-10-09T07:11:46+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2012-10-09T07:11:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=1ea4f4f8405cc1ceec23f2d261bc3775785e6712'/>
<id>urn:sha1:1ea4f4f8405cc1ceec23f2d261bc3775785e6712</id>
<content type='text'>
Pull Xtensa patchset from Chris Zankel:
 "The Xtensa tree has been broken for some time now, and this patchset
  brings it back to life.  It has been part of the linux-next tree for
  some time.

  Most changes are inside the xtensa subdirectory; the other changes
  mostly add another rule to already existing #ifdefs to exclude Xtensa,
  where required.  The only 'common' change is to add two more sections
  ('.xt.prop' and '.xt.lit') to the white list in modpost."

* tag 'xtensa-next-20121008' of git://github.com/czankel/xtensa-linux: (27 commits)
  xtensa: Setup CROSS_COMPILE at the top
  xtensa: drop CONFIG_EMBEDDED_RAMDISK
  xtensa: fix TIOCGSERIAL and TIOCSSERIAL definitions
  xtensa: provide dummy gcc intrinsics
  xtensa: add missing symbol exports
  parport: disable for xtensa arch
  xtensa: rename MISC SR definition to avoid name clashes
  hisax: disable build for big-endian xtensa
  xtensa: fix CODA build
  xtensa: fix parallel make
  xtensa: ISS: drop unused io.c
  xtensa: ISS: exit simulator in case of halt or poweroff
  xtensa: ISS: change keyboard polling rate
  xtensa: ISS: add platform_pcibios_init
  xtensa: ISS: add dummy serial.h for ISS platform
  xtensa: change default platform clock frequency to 10MHz
  xtensa: add ARCH_WANT_OPTIONAL_GPIOLIB to xtensa config
  xtensa: set NO_IOPORT to 'n' by default
  xtensa: adopt generic io routines
  xtensa: fix ioremap
  ...
</content>
</entry>
<entry>
<title>xtensa: ISS: change keyboard polling rate</title>
<updated>2012-10-03T22:12:14+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2012-09-17T01:44:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=8bac83289a061e9b080d500533f29b5822de5b80'/>
<id>urn:sha1:8bac83289a061e9b080d500533f29b5822de5b80</id>
<content type='text'>
Polling rate of once per 20 seconds seems to be too low. Increase it to
10 times per second.

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Chris Zankel &lt;chris@zankel.net&gt;
</content>
</entry>
<entry>
<title>xtensa: ISS: fix __simc implementation</title>
<updated>2012-10-03T22:11:25+00:00</updated>
<author>
<name>Max Filippov</name>
<email>jcmvbkbc@gmail.com</email>
</author>
<published>2012-09-17T01:44:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=717460ee3e8399eb66799cac0bb83217475b7027'/>
<id>urn:sha1:717460ee3e8399eb66799cac0bb83217475b7027</id>
<content type='text'>
Do not rely on compiler implicitly placing function arguments into
specifc registers, place them explicitly.

Move __simc and related helpers to platform/simcall.h

Signed-off-by: Max Filippov &lt;jcmvbkbc@gmail.com&gt;
Signed-off-by: Chris Zankel &lt;chris@zankel.net&gt;
</content>
</entry>
<entry>
<title>TTY: use tty_port_link_device</title>
<updated>2012-08-13T23:50:19+00:00</updated>
<author>
<name>Jiri Slaby</name>
<email>jslaby@suse.cz</email>
</author>
<published>2012-08-07T19:47:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/BMC/Intel-BMC/linux.git/commit/?id=b19e2ca77ee4becadc85341bb0c1cee454dd4fd5'/>
<id>urn:sha1:b19e2ca77ee4becadc85341bb0c1cee454dd4fd5</id>
<content type='text'>
So now for those drivers that can use neither tty_port_install nor
tty_port_register_driver but still have tty_port available before
tty_register_driver we use newly added tty_port_link_device.

The rest of the drivers that still do not provide tty_struct &lt;-&gt;
tty_port link will have to be converted to implement
tty-&gt;ops-&gt;install.

Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
Acked-by: Alan Cox &lt;alan@linux.intel.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
