<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/arcnet/arcnet.c, branch linux-4.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2023-12-13T16:42:16Z</updated>
<entry>
<title>net: arcnet: Fix RESET flag handling</title>
<updated>2023-12-13T16:42:16Z</updated>
<author>
<name>Ahmed S. Darwish</name>
</author>
<published>2021-01-28T19:48:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=eea423aa8cfef1b1309eb26a9b092379f841b6ef'/>
<id>urn:sha1:eea423aa8cfef1b1309eb26a9b092379f841b6ef</id>
<content type='text'>
[ Upstream commit 01365633bd1c836240f9bbf86bbeee749795480a ]

The main arcnet interrupt handler calls arcnet_close() then
arcnet_open(), if the RESET status flag is encountered.

This is invalid:

  1) In general, interrupt handlers should never call -&gt;ndo_stop() and
     -&gt;ndo_open() functions. They are usually full of blocking calls and
     other methods that are expected to be called only from drivers
     init and exit code paths.

  2) arcnet_close() contains a del_timer_sync(). If the irq handler
     interrupts the to-be-deleted timer, del_timer_sync() will just loop
     forever.

  3) arcnet_close() also calls tasklet_kill(), which has a warning if
     called from irq context.

  4) For device reset, the sequence "arcnet_close(); arcnet_open();" is
     not complete.  Some children arcnet drivers have special init/exit
     code sequences, which then embed a call to arcnet_open() and
     arcnet_close() accordingly. Check drivers/net/arcnet/com20020.c.

Run the device RESET sequence from a scheduled workqueue instead.

Signed-off-by: Ahmed S. Darwish &lt;a.darwish@linutronix.de&gt;
Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Link: https://lore.kernel.org/r/20210128194802.727770-1-a.darwish@linutronix.de
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
Stable-dep-of: 6b17a597fc2f ("arcnet: restoring support for multiple Sohard Arcnet cards")
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>net: arcnet: Do not call kfree_skb() under local_irq_disable()</title>
<updated>2023-09-23T08:48:01Z</updated>
<author>
<name>Jinjie Ruan</name>
</author>
<published>2023-08-24T06:43:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d943efd794cf930cfd3c33363a2893b1c6f81149'/>
<id>urn:sha1:d943efd794cf930cfd3c33363a2893b1c6f81149</id>
<content type='text'>
[ Upstream commit 786c96e92fb9e854cb8b0cb7399bb2fb28e15c4b ]

It is not allowed to call kfree_skb() from hardware interrupt
context or with hardware interrupts being disabled.
So replace kfree_skb() with dev_kfree_skb_irq() under
local_irq_disable(). Compile tested only.

Fixes: 05fcd31cc472 ("arcnet: add err_skb package for package status feedback")
Signed-off-by: Jinjie Ruan &lt;ruanjinjie@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>arcnet: provide a buffer big enough to actually receive packets</title>
<updated>2019-10-05T11:09:26Z</updated>
<author>
<name>Uwe Kleine-König</name>
</author>
<published>2019-09-20T14:08:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0bf79588586c806e048ecef286bcb837814927fc'/>
<id>urn:sha1:0bf79588586c806e048ecef286bcb837814927fc</id>
<content type='text'>
[ Upstream commit 108639aac35eb57f1d0e8333f5fc8c7ff68df938 ]

struct archdr is only big enough to hold the header of various types of
arcnet packets. So to provide enough space to hold the data read from
hardware provide a buffer large enough to hold a packet with maximal
size.

The problem was noticed by the stack protector which makes the kernel
oops.

Signed-off-by: Uwe Kleine-König &lt;u.kleine-koenig@pengutronix.de&gt;
Acked-by: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drivers/net: arcnet: Convert timers to use timer_setup()</title>
<updated>2017-10-27T03:09:16Z</updated>
<author>
<name>Kees Cook</name>
</author>
<published>2017-10-25T10:54:06Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c58320de5194b57858b829b8f204ca6bc1e38e10'/>
<id>urn:sha1:c58320de5194b57858b829b8f204ca6bc1e38e10</id>
<content type='text'>
In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly.

Cc: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;
Cc: netdev@vger.kernel.org
Signed-off-by: Kees Cook &lt;keescook@chromium.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>drivers: net: arcnet: use setup_timer() helper.</title>
<updated>2017-09-21T18:44:42Z</updated>
<author>
<name>Allen Pais</name>
</author>
<published>2017-09-21T17:04:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fe9bfe207e200f901361681bf1497386068f1df2'/>
<id>urn:sha1:fe9bfe207e200f901361681bf1497386068f1df2</id>
<content type='text'>
Use setup_timer function instead of initializing timer with the
    function and data fields.

Signed-off-by: Allen Pais &lt;allen.lkml@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2017-06-30T16:43:08Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2017-06-30T16:43:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b07911593719828cac023bdcf6bf4da1c9ba546f'/>
<id>urn:sha1:b07911593719828cac023bdcf6bf4da1c9ba546f</id>
<content type='text'>
A set of overlapping changes in macvlan and the rocker
driver, nothing serious.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>arcnet: add err_skb package for package status feedback</title>
<updated>2017-06-29T19:26:13Z</updated>
<author>
<name>Michael Grzeschik</name>
</author>
<published>2017-06-28T16:32:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=05fcd31cc472c5da6416d3bc2ab25599bbb9331f'/>
<id>urn:sha1:05fcd31cc472c5da6416d3bc2ab25599bbb9331f</id>
<content type='text'>
We need to track the status of our queued packages. This way the driving
process knows if failed packages need to be retransmitted. For this
purpose we queue the transferred/failed packages back into the err_skb
message queue added with some status information.

Signed-off-by: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>arcnet: change irq handler to lock irqsave</title>
<updated>2017-06-29T19:18:35Z</updated>
<author>
<name>Michael Grzeschik</name>
</author>
<published>2017-06-28T16:28:33Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b85840320151f61e04d83a23ef2567a07094503'/>
<id>urn:sha1:5b85840320151f61e04d83a23ef2567a07094503</id>
<content type='text'>
This patch prevents the arcnet driver from the following deadlock.

[   41.273910] ======================================================
[   41.280397] [ INFO: SOFTIRQ-safe -&gt; SOFTIRQ-unsafe lock order detected ]
[   41.287433] 4.4.0-00034-gc0ae784 #536 Not tainted
[   41.292366] ------------------------------------------------------
[   41.298863] arcecho/233 [HC0[0]:SC0[2]:HE0:SE0] is trying to acquire:
[   41.305628]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.+...}, at: [&lt;bf083bc8&gt;] arcnet_send_packet+0x60/0x1c0 [arcnet]
[   41.315199]
[   41.315199] and this task is already holding:
[   41.321324]  (_xmit_ARCNET#2){+.-...}, at: [&lt;c06b934c&gt;] packet_direct_xmit+0xfc/0x1c8
[   41.329593] which would create a new lock dependency:
[   41.334893]  (_xmit_ARCNET#2){+.-...} -&gt; (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.+...}
[   41.341801]
[   41.341801] but this new dependency connects a SOFTIRQ-irq-safe lock:
[   41.350108]  (_xmit_ARCNET#2){+.-...}
... which became SOFTIRQ-irq-safe at:
[   41.357539]   [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.362677]   [&lt;c063ab8c&gt;] dev_watchdog+0x5c/0x264
[   41.367723]   [&lt;c0094edc&gt;] call_timer_fn+0x6c/0xf4
[   41.372759]   [&lt;c00950b8&gt;] run_timer_softirq+0x154/0x210
[   41.378340]   [&lt;c0036b30&gt;] __do_softirq+0x144/0x298
[   41.383469]   [&lt;c0036fb4&gt;] irq_exit+0xcc/0x130
[   41.388138]   [&lt;c0085c50&gt;] __handle_domain_irq+0x60/0xb4
[   41.393728]   [&lt;c0014578&gt;] __irq_svc+0x58/0x78
[   41.398402]   [&lt;c0010274&gt;] arch_cpu_idle+0x24/0x3c
[   41.403443]   [&lt;c007127c&gt;] cpu_startup_entry+0x1f8/0x25c
[   41.409029]   [&lt;c09adc90&gt;] start_kernel+0x3c0/0x3cc
[   41.414170]
[   41.414170] to a SOFTIRQ-irq-unsafe lock:
[   41.419931]  (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.+...}
... which became SOFTIRQ-irq-unsafe at:
[   41.427996] ...  [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.433409]   [&lt;bf083d54&gt;] arcnet_interrupt+0x2c/0x800 [arcnet]
[   41.439646]   [&lt;c0089120&gt;] handle_nested_irq+0x8c/0xec
[   41.445063]   [&lt;c03c1170&gt;] regmap_irq_thread+0x190/0x314
[   41.450661]   [&lt;c0087244&gt;] irq_thread_fn+0x1c/0x34
[   41.455700]   [&lt;c0087548&gt;] irq_thread+0x13c/0x1dc
[   41.460649]   [&lt;c0050f10&gt;] kthread+0xe4/0xf8
[   41.465158]   [&lt;c000f810&gt;] ret_from_fork+0x14/0x24
[   41.470207]
[   41.470207] other info that might help us debug this:
[   41.470207]
[   41.478627]  Possible interrupt unsafe locking scenario:
[   41.478627]
[   41.485763]        CPU0                    CPU1
[   41.490521]        ----                    ----
[   41.495279]   lock(&amp;(&amp;lp-&gt;lock)-&gt;rlock);
[   41.499414]                                local_irq_disable();
[   41.505636]                                lock(_xmit_ARCNET#2);
[   41.511967]                                lock(&amp;(&amp;lp-&gt;lock)-&gt;rlock);
[   41.518741]   &lt;Interrupt&gt;
[   41.521490]     lock(_xmit_ARCNET#2);
[   41.525356]
[   41.525356]  *** DEADLOCK ***
[   41.525356]
[   41.531587] 1 lock held by arcecho/233:
[   41.535617]  #0:  (_xmit_ARCNET#2){+.-...}, at: [&lt;c06b934c&gt;] packet_direct_xmit+0xfc/0x1c8
[   41.544355]
the dependencies between SOFTIRQ-irq-safe lock and the holding lock:
[   41.552362] -&gt; (_xmit_ARCNET#2){+.-...} ops: 27 {
[   41.557357]    HARDIRQ-ON-W at:
[   41.560664]                     [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.567445]                     [&lt;c063ba28&gt;] dev_deactivate_many+0x114/0x304
[   41.574866]                     [&lt;c063bc3c&gt;] dev_deactivate+0x24/0x38
[   41.581646]                     [&lt;c0630374&gt;] linkwatch_do_dev+0x40/0x74
[   41.588613]                     [&lt;c06305d8&gt;] __linkwatch_run_queue+0xec/0x140
[   41.596120]                     [&lt;c0630658&gt;] linkwatch_event+0x2c/0x34
[   41.602991]                     [&lt;c004af30&gt;] process_one_work+0x188/0x40c
[   41.610131]                     [&lt;c004b200&gt;] worker_thread+0x4c/0x480
[   41.616912]                     [&lt;c0050f10&gt;] kthread+0xe4/0xf8
[   41.623048]                     [&lt;c000f810&gt;] ret_from_fork+0x14/0x24
[   41.629735]    IN-SOFTIRQ-W at:
[   41.633039]                     [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.639820]                     [&lt;c063ab8c&gt;] dev_watchdog+0x5c/0x264
[   41.646508]                     [&lt;c0094edc&gt;] call_timer_fn+0x6c/0xf4
[   41.653190]                     [&lt;c00950b8&gt;] run_timer_softirq+0x154/0x210
[   41.660425]                     [&lt;c0036b30&gt;] __do_softirq+0x144/0x298
[   41.667201]                     [&lt;c0036fb4&gt;] irq_exit+0xcc/0x130
[   41.673518]                     [&lt;c0085c50&gt;] __handle_domain_irq+0x60/0xb4
[   41.680754]                     [&lt;c0014578&gt;] __irq_svc+0x58/0x78
[   41.687077]                     [&lt;c0010274&gt;] arch_cpu_idle+0x24/0x3c
[   41.693769]                     [&lt;c007127c&gt;] cpu_startup_entry+0x1f8/0x25c
[   41.701006]                     [&lt;c09adc90&gt;] start_kernel+0x3c0/0x3cc
[   41.707791]    INITIAL USE at:
[   41.711003]                    [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.717696]                    [&lt;c063ba28&gt;] dev_deactivate_many+0x114/0x304
[   41.725026]                    [&lt;c063bc3c&gt;] dev_deactivate+0x24/0x38
[   41.731718]                    [&lt;c0630374&gt;] linkwatch_do_dev+0x40/0x74
[   41.738593]                    [&lt;c06305d8&gt;] __linkwatch_run_queue+0xec/0x140
[   41.746011]                    [&lt;c0630658&gt;] linkwatch_event+0x2c/0x34
[   41.752789]                    [&lt;c004af30&gt;] process_one_work+0x188/0x40c
[   41.759847]                    [&lt;c004b200&gt;] worker_thread+0x4c/0x480
[   41.766541]                    [&lt;c0050f10&gt;] kthread+0xe4/0xf8
[   41.772596]                    [&lt;c000f810&gt;] ret_from_fork+0x14/0x24
[   41.779198]  }
[   41.780945]  ... key      at: [&lt;c124d620&gt;] netdev_xmit_lock_key+0x38/0x1c8
[   41.788192]  ... acquired at:
[   41.791309]    [&lt;c007bed8&gt;] lock_acquire+0x70/0x90
[   41.796361]    [&lt;c06f9140&gt;] _raw_spin_lock_irqsave+0x40/0x54
[   41.802324]    [&lt;bf083bc8&gt;] arcnet_send_packet+0x60/0x1c0 [arcnet]
[   41.808844]    [&lt;c06b9380&gt;] packet_direct_xmit+0x130/0x1c8
[   41.814622]    [&lt;c06bc7e4&gt;] packet_sendmsg+0x3b8/0x680
[   41.820034]    [&lt;c05fe8b0&gt;] sock_sendmsg+0x14/0x24
[   41.825091]    [&lt;c05ffd68&gt;] SyS_sendto+0xb8/0xe0
[   41.829956]    [&lt;c05ffda8&gt;] SyS_send+0x18/0x20
[   41.834638]    [&lt;c000f780&gt;] ret_fast_syscall+0x0/0x1c
[   41.839954]
[   41.841514]
the dependencies between the lock to be acquired and SOFTIRQ-irq-unsafe lock:
[   41.850302] -&gt; (&amp;(&amp;lp-&gt;lock)-&gt;rlock){+.+...} ops: 5 {
[   41.855644]    HARDIRQ-ON-W at:
[   41.858945]                     [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.865726]                     [&lt;bf083d54&gt;] arcnet_interrupt+0x2c/0x800 [arcnet]
[   41.873607]                     [&lt;c0089120&gt;] handle_nested_irq+0x8c/0xec
[   41.880666]                     [&lt;c03c1170&gt;] regmap_irq_thread+0x190/0x314
[   41.887901]                     [&lt;c0087244&gt;] irq_thread_fn+0x1c/0x34
[   41.894593]                     [&lt;c0087548&gt;] irq_thread+0x13c/0x1dc
[   41.901195]                     [&lt;c0050f10&gt;] kthread+0xe4/0xf8
[   41.907338]                     [&lt;c000f810&gt;] ret_from_fork+0x14/0x24
[   41.914025]    SOFTIRQ-ON-W at:
[   41.917328]                     [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.924106]                     [&lt;bf083d54&gt;] arcnet_interrupt+0x2c/0x800 [arcnet]
[   41.931981]                     [&lt;c0089120&gt;] handle_nested_irq+0x8c/0xec
[   41.939028]                     [&lt;c03c1170&gt;] regmap_irq_thread+0x190/0x314
[   41.946264]                     [&lt;c0087244&gt;] irq_thread_fn+0x1c/0x34
[   41.952954]                     [&lt;c0087548&gt;] irq_thread+0x13c/0x1dc
[   41.959548]                     [&lt;c0050f10&gt;] kthread+0xe4/0xf8
[   41.965689]                     [&lt;c000f810&gt;] ret_from_fork+0x14/0x24
[   41.972379]    INITIAL USE at:
[   41.975595]                    [&lt;c06f8fc8&gt;] _raw_spin_lock+0x30/0x40
[   41.982283]                    [&lt;bf083d54&gt;] arcnet_interrupt+0x2c/0x800 [arcnet]
[   41.990063]                    [&lt;c0089120&gt;] handle_nested_irq+0x8c/0xec
[   41.997027]                    [&lt;c03c1170&gt;] regmap_irq_thread+0x190/0x314
[   42.004172]                    [&lt;c0087244&gt;] irq_thread_fn+0x1c/0x34
[   42.010766]                    [&lt;c0087548&gt;] irq_thread+0x13c/0x1dc
[   42.017267]                    [&lt;c0050f10&gt;] kthread+0xe4/0xf8
[   42.023314]                    [&lt;c000f810&gt;] ret_from_fork+0x14/0x24
[   42.029903]  }
[   42.031648]  ... key      at: [&lt;bf0854cc&gt;] __key.42091+0x0/0xfffff0f8 [arcnet]
[   42.039255]  ... acquired at:
[   42.042372]    [&lt;c007bed8&gt;] lock_acquire+0x70/0x90
[   42.047413]    [&lt;c06f9140&gt;] _raw_spin_lock_irqsave+0x40/0x54
[   42.053364]    [&lt;bf083bc8&gt;] arcnet_send_packet+0x60/0x1c0 [arcnet]
[   42.059872]    [&lt;c06b9380&gt;] packet_direct_xmit+0x130/0x1c8
[   42.065634]    [&lt;c06bc7e4&gt;] packet_sendmsg+0x3b8/0x680
[   42.071030]    [&lt;c05fe8b0&gt;] sock_sendmsg+0x14/0x24
[   42.076069]    [&lt;c05ffd68&gt;] SyS_sendto+0xb8/0xe0
[   42.080926]    [&lt;c05ffda8&gt;] SyS_send+0x18/0x20
[   42.085601]    [&lt;c000f780&gt;] ret_fast_syscall+0x0/0x1c
[   42.090918]
[   42.092481]
[   42.092481] stack backtrace:
[   42.097065] CPU: 0 PID: 233 Comm: arcecho Not tainted 4.4.0-00034-gc0ae784 #536
[   42.104751] Hardware name: Generic AM33XX (Flattened Device Tree)
[   42.111183] [&lt;c0017ec8&gt;] (unwind_backtrace) from [&lt;c00139d0&gt;] (show_stack+0x10/0x14)
[   42.119337] [&lt;c00139d0&gt;] (show_stack) from [&lt;c02a82c4&gt;] (dump_stack+0x8c/0x9c)
[   42.126937] [&lt;c02a82c4&gt;] (dump_stack) from [&lt;c0078260&gt;] (check_usage+0x4bc/0x63c)
[   42.134815] [&lt;c0078260&gt;] (check_usage) from [&lt;c0078438&gt;] (check_irq_usage+0x58/0xb0)
[   42.142964] [&lt;c0078438&gt;] (check_irq_usage) from [&lt;c007aaa0&gt;] (__lock_acquire+0x1524/0x20b0)
[   42.151740] [&lt;c007aaa0&gt;] (__lock_acquire) from [&lt;c007bed8&gt;] (lock_acquire+0x70/0x90)
[   42.159886] [&lt;c007bed8&gt;] (lock_acquire) from [&lt;c06f9140&gt;] (_raw_spin_lock_irqsave+0x40/0x54)
[   42.168768] [&lt;c06f9140&gt;] (_raw_spin_lock_irqsave) from [&lt;bf083bc8&gt;] (arcnet_send_packet+0x60/0x1c0 [arcnet])
[   42.179115] [&lt;bf083bc8&gt;] (arcnet_send_packet [arcnet]) from [&lt;c06b9380&gt;] (packet_direct_xmit+0x130/0x1c8)
[   42.189182] [&lt;c06b9380&gt;] (packet_direct_xmit) from [&lt;c06bc7e4&gt;] (packet_sendmsg+0x3b8/0x680)
[   42.198059] [&lt;c06bc7e4&gt;] (packet_sendmsg) from [&lt;c05fe8b0&gt;] (sock_sendmsg+0x14/0x24)
[   42.206199] [&lt;c05fe8b0&gt;] (sock_sendmsg) from [&lt;c05ffd68&gt;] (SyS_sendto+0xb8/0xe0)
[   42.213978] [&lt;c05ffd68&gt;] (SyS_sendto) from [&lt;c05ffda8&gt;] (SyS_send+0x18/0x20)
[   42.221388] [&lt;c05ffda8&gt;] (SyS_send) from [&lt;c000f780&gt;] (ret_fast_syscall+0x0/0x1c)

Signed-off-by: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;

   ---
   v1 -&gt; v2: removed unneeded zero assignment of flags
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>lib/vsprintf.c: remove %Z support</title>
<updated>2017-02-28T02:43:47Z</updated>
<author>
<name>Alexey Dobriyan</name>
</author>
<published>2017-02-27T22:30:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b5e0928f742cfa853b2411400a1b19fa379d758'/>
<id>urn:sha1:5b5e0928f742cfa853b2411400a1b19fa379d758</id>
<content type='text'>
Now that %z is standartised in C99 there is no reason to support %Z.
Unlike %L it doesn't even make format strings smaller.

Use BUILD_BUG_ON in a couple ATM drivers.

In case anyone didn't notice lib/vsprintf.o is about half of SLUB which
is in my opinion is quite an achievement.  Hopefully this patch inspires
someone else to trim vsprintf.c more.

Link: http://lkml.kernel.org/r/20170103230126.GA30170@avx2
Signed-off-by: Alexey Dobriyan &lt;adobriyan@gmail.com&gt;
Cc: Andy Shevchenko &lt;andy.shevchenko@gmail.com&gt;
Cc: Rasmus Villemoes &lt;linux@rasmusvillemoes.dk&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>arcnet: add netif_carrier_on/off for reconnect</title>
<updated>2015-10-26T08:10:56Z</updated>
<author>
<name>Michael Grzeschik</name>
</author>
<published>2015-09-16T08:15:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=59fbcbc61e1f0fd9acdf3efb09faca0320049718'/>
<id>urn:sha1:59fbcbc61e1f0fd9acdf3efb09faca0320049718</id>
<content type='text'>
The arcnet device has no interrupt to detect if the link has changed
from disconnected to connected. This patch adds an timer to toggle the
link detection. The timer will get retriggered as long as the
reconnection interrupts accure. If the recon interrupts hold off
for &gt;1s we define the connection stable again.

Signed-off-by: Michael Grzeschik &lt;m.grzeschik@pengutronix.de&gt;
</content>
</entry>
</feed>
