* Re: [PATCH net-next v7 05/10] landlock: Add LSM hooks related to filesystem
From: Mickaël Salaün @ 2017-08-27 13:31 UTC (permalink / raw)
To: Alexei Starovoitov
Cc: linux-kernel, Alexei Starovoitov, Andy Lutomirski,
Arnaldo Carvalho de Melo, Casey Schaufler, Daniel Borkmann,
David Drysdale, David S . Miller, Eric W . Biederman,
James Morris, Jann Horn, Jonathan Corbet, Matthew Garrett,
Michael Kerrisk, Kees Cook, Paul Moore, Sargun Dhillon,
Serge E . Hallyn, Shuah Khan, Tejun Heo, Thomas Graf
In-Reply-To: <20170826011614.iqya5dqii3n7dtdb@ast-mbp>
[-- Attachment #1.1: Type: text/plain, Size: 4034 bytes --]
On 26/08/2017 03:16, Alexei Starovoitov wrote:
> On Fri, Aug 25, 2017 at 10:16:39AM +0200, Mickaël Salaün wrote:
>>>
>>>> +/* a directory inode contains only one dentry */
>>>> +HOOK_NEW_FS(inode_create, 3,
>>>> + struct inode *, dir,
>>>> + struct dentry *, dentry,
>>>> + umode_t, mode,
>>>> + WRAP_ARG_INODE, dir,
>>>> + WRAP_ARG_RAW, LANDLOCK_ACTION_FS_WRITE
>>>> +);
>>>
>>> more general question: why you're not wrapping all useful
>>> arguments? Like in the above dentry can be acted upon
>>> by the landlock rule and it's readily available...
>>
>> The context used for the FS event must have the exact same types for all
>> calls. This event is meant to be generic but we can add more specific
>> ones if needed, like I do with FS_IOCTL.
>
> I see. So all FS events will have dentry as first argument
> regardless of how it is in LSM hook ?
All FS events will have a const struct bpf_handle_fs pointer as first
argument, which wrap either a struct file, a struct dentry, a struct
path or a struct inode. Having only one type (struct bpf_handle_fs) is
needed for the eBPF type checker to verify if a Landlock rule (tied to
an event) can access a context field and which operation is allowed
(with this pointer).
> I guess that will simplify the rules indeed.
> I suspect you're doing it to simplify the LSM->landlock shim layer as well, right?
That's right. This ABI is independent from the LSM API and much more
simpler to use.
>
>> The idea is to enable people to write simple rules, while being able to
>> write fine grain rules for special cases (e.g. IOCTL) if needed.
>>
>>>
>>> The limitation of only 2 args looks odd.
>>> Is it a hard limitation ? how hard to extend?
>>
>> It's not a hard limit at all. Actually, the FS_FNCTL event should have
>> three arguments (I'll add them in the next series): FS handle, FCNTL
>> command and FCNTL argument. I made sure that it's really easy to add
>> more arguments to the context of an event.
>
> The reason I'm asking, because I'm not completely convinced that
> adding another argument to existing event will be backwards compatible.
> It looks like you're expecting only two args for all FS events, right?
There is four events right now: FS, FS_IOCTL, FS_LOCK and FS_FCNTL. Each
of them are independent. Their context fields can be of the same or
different eBPF type (e.g. scalar, file handle) and numbers. Actually,
these four events have the same arg1 field (file handle) and the same
arg2 eBPF type (scalar), even if arg2 does not have the same semantic
(i.e. abstract FS action, IOCTL command…).
For example, if we want to extend the FS_FCNTL's context in the future,
we will just have to add an arg3. The check is performed in
landlock_is_valid_access() and landlock_decide(). If a field is not used
by an event, then this field will have a NOT_INIT type and accessing it
will be denied.
> How can you add 3rd argument? All FS events would have to get it,
> but in some LSM hooks such argument will be meaningless, whereas
> in other places it will carry useful info that rule can operate on.
> Would that mean that we'll have FS_3 event type and only few LSM
> hooks will be converted to it. That works, but then we'll lose
> compatiblity with old rules written for FS event and that given hook.
> Otherwise we'd need to have fancy logic to accept old FS event
> into FS_3 LSM hook.
If we want to add a third argument to the FS event, then it will become
accessible because its type will be different than NOT_INIT. This keep
the compatibility with old rules because this new field was then denied.
If we want to add a new argument but only for a subset of the hooks used
by the FS event, then we need to create a new event, like FS_FCNTL. For
example, we may want to add a FS_RENAME event to be able to tie the
source file and the destination file of a rename call.
Anyway, I added the subtype/ABI version as a safeguard in case of
unexpected future evolution.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply
* Re: [PATCH net-next 4/8] net: ethernet: add the Alpine Ethernet driver
From: Chocron, Jonathan @ 2017-08-27 13:47 UTC (permalink / raw)
To: Andrew Lunn, Antoine Tenart
Cc: netdev@vger.kernel.org, davem@davemloft.net,
linux-arm-kernel@lists.infradead.org,
thomas.petazzoni@free-electrons.com, arnd@arndb.de
In-Reply-To: <20170203205823.GA22572@lunn.ch>
This is a fixed version of my previous response (using proper indentation and leaving only the specific questions responded to).
> > +/* MDIO */
> > +#define AL_ETH_MDIO_C45_DEV_MASK 0x1f0000
> > +#define AL_ETH_MDIO_C45_DEV_SHIFT 16
> > +#define AL_ETH_MDIO_C45_REG_MASK 0xffff
> > +
> > +static int al_mdio_read(struct mii_bus *bp, int mii_id, int reg)
> > +{
> > + struct al_eth_adapter *adapter = bp->priv;
> > + u16 value = 0;
> > + int rc;
> > + int timeout = MDIO_TIMEOUT_MSEC;
> > +
> > + while (timeout > 0) {
> > + if (reg & MII_ADDR_C45) {
> > + netdev_dbg(adapter->netdev, "[c45]: dev %x reg %x val %x\n",
> > + ((reg & AL_ETH_MDIO_C45_DEV_MASK) >> AL_ETH_MDIO_C45_DEV_SHIFT),
> > + (reg & AL_ETH_MDIO_C45_REG_MASK), value);
> > + rc = al_eth_mdio_read(&adapter->hw_adapter, adapter->phy_addr,
> > + ((reg & AL_ETH_MDIO_C45_DEV_MASK) >> AL_ETH_MDIO_C45_DEV_SHIFT),
> > + (reg & AL_ETH_MDIO_C45_REG_MASK), &value);
> > + } else {
> > + rc = al_eth_mdio_read(&adapter->hw_adapter, adapter->phy_addr,
> > + MDIO_DEVAD_NONE, reg, &value);
> > + }
> > +
> > + if (rc == 0)
> > + return value;
> > +
> > + netdev_dbg(adapter->netdev,
> > + "mdio read failed. try again in 10 msec\n");
> > +
> > + timeout -= 10;
> > + msleep(10);
> > + }
>
> This is rather unusual, retrying MDIO operations. Are you working
> around a hardware bug? I suspect this also opens up race conditions,
> in particular with PHY interrupts, which can be clear on read.
The MDIO bus is shared between the ethernet units. There is a HW lock used to arbitrate between different interfaces trying to access the bus,
therefore there is a retry loop. The reg isn't accessed before obtaining the lock, so there shouldn't be any clear on read issues.
> > +/* al_eth_mdiobus_setup - initialize mdiobus and register to kernel */
> > +static int al_eth_mdiobus_setup(struct al_eth_adapter *adapter)
> > +{
> > + struct phy_device *phydev;
> > + int i;
> > + int ret = 0;
> > +
> > + adapter->mdio_bus = mdiobus_alloc();
> > + if (!adapter->mdio_bus)
> > + return -ENOMEM;
> > +
> > + adapter->mdio_bus->name = "al mdio bus";
> > + snprintf(adapter->mdio_bus->id, MII_BUS_ID_SIZE, "%x",
> > + (adapter->pdev->bus->number << 8) | adapter->pdev->devfn);
> > + adapter->mdio_bus->priv = adapter;
> > + adapter->mdio_bus->parent = &adapter->pdev->dev;
> > + adapter->mdio_bus->read = &al_mdio_read;
> > + adapter->mdio_bus->write = &al_mdio_write;
> > + adapter->mdio_bus->phy_mask = ~BIT(adapter->phy_addr);
>
> Why do this?
Since the MDIO bus is shared, we want each interface to probe only for the PHY associated with it.
> > + * acquire mdio interface ownership
> > + * when mdio interface shared between multiple eth controllers, this function waits until the ownership granted for this controller.
> > + * this function does nothing when the mdio interface is used only by this controller.
> > + *
> > + * @param adapter
> > + * @return 0 on success, -ETIMEDOUT on timeout.
> > + */
> > +static int al_eth_mdio_lock(struct al_hw_eth_adapter *adapter)
> > +{
> > + int count = 0;
> > + u32 mdio_ctrl_1;
> > +
> > + if (!adapter->shared_mdio_if)
> > + return 0; /* nothing to do when interface is not shared */
> > +
> > + do {
> > + mdio_ctrl_1 = readl(&adapter->mac_regs_base->gen.mdio_ctrl_1);
> > + if (mdio_ctrl_1 & BIT(0)) {
> > + if (count > 0)
> > + netdev_dbg(adapter->netdev,
> > + "eth %s mdio interface still busy!\n",
> > + adapter->name);
> > + } else {
> > + return 0;
> > + }
> > + udelay(AL_ETH_MDIO_DELAY_PERIOD);
> > + } while (count++ < (AL_ETH_MDIO_DELAY_COUNT * 4));
>
> This needs explaining. How can a read alone perform a lock? How is
> this race free?
This is how this HW lock works: when the bit is 0 this means the lock is free. When a read transaction arrives
to the lock, it changes its value to 1 but sends 0 as the response, basically taking ownership.
When the owner is done, it writes a 0 which essentially "frees" the lock.
> > + if (adapter->mdio_type == AL_ETH_MDIO_TYPE_CLAUSE_22)
> > + rc = al_eth_mdio_10g_mac_type22(adapter, 1, phy_addr,
> > + reg, val);
> > + else
> > + rc = al_eth_mdio_10g_mac_type45(adapter, 1, phy_addr,
> > + device, reg, val);
>
> This seems odd. My understanding is that the device on the MDIO bus,
> the PHY, is either c22 or c45. The PHY driver will tell you this, not
> the adaptor.
The current implementation sets mdio_type according to information which is originally deduced from the
DeviceTree (the bootloader parses the ethernet node of the DeviceTree and saves this data to HW registers, which are then read by this driver).
How can this information be obtained by the PHY driver?
> Andrew
Jonathan
^ permalink raw reply
* Re: [PATCH] DSA support for Micrel KSZ8895
From: Andrew Lunn @ 2017-08-27 13:59 UTC (permalink / raw)
To: Pavel Machek
Cc: Woojung.Huh, nathan.leigh.conrad, vivien.didelot, f.fainelli,
netdev, linux-kernel, Tristram.Ha
In-Reply-To: <20170827123658.GA727@amd>
On Sun, Aug 27, 2017 at 02:36:58PM +0200, Pavel Machek wrote:
> Hi!
>
> So I fought with the driver a bit more, and now I have something that
> kind-of-works.
Thanks for keeping on working on this.
> "great great hack" belows worries me.
>
> Yeah, disabled code needs to be removed before merge.
>
> No, tag_ksz part probably is not acceptable. Do you see solution
> better than just copying it into tag_ksz1 file?
>
> Any more comments, etc?
It would help with review if you split this up into multiple patches.
The change to the tagger should be one patch. The mdio emulation would
make a reasonable standalone patch etc.
I will do a more detailed review later.
Andrew
^ permalink raw reply
* Re: [PATCH v2 net-next 1/8] bpf: Add support for recursively running cgroup sock filters
From: David Ahern @ 2017-08-27 14:22 UTC (permalink / raw)
To: Daniel Borkmann, netdev, ast, tj, davem
In-Reply-To: <59A0D62F.3030806@iogearbox.net>
On 8/25/17 8:00 PM, Daniel Borkmann wrote:
> Can you elaborate on the semantical changes for the programs
> setting the new flag which are not using below cgroup_bpf_run_filter_sk()
> helper to walk back to root?
You mean other cgroup based programs -- BPF_CGROUP_* ? If so, any reason
not to allow the recursion model on those too?
^ permalink raw reply
* Re: [PATCH v2 net-next 1/8] bpf: Add support for recursively running cgroup sock filters
From: David Ahern @ 2017-08-27 14:49 UTC (permalink / raw)
To: Alexei Starovoitov; +Cc: netdev, daniel, ast, tj, davem, David Ahern (gmail)
In-Reply-To: <20170826024957.m5ita6usxihywmdd@ast-mbp>
On 8/25/17 8:49 PM, Alexei Starovoitov wrote:
>
>> + if (prog && curr_recursive && !new_recursive)
>> + /* if a parent has recursive prog attached, only
>> + * allow recursive programs in descendent cgroup
>> + */
>> + return -EINVAL;
>> +
>> old_prog = cgrp->bpf.prog[type];
>
> ... I'm struggling to completely understand how it interacts
> with BPF_F_ALLOW_OVERRIDE.
The 2 flags are completely independent. The existing override logic is
unchanged. If a program can not be overridden, then the new recursive
flag is irrelevant.
> By default we shouldn't allow overriding, so if default prog attached
> to a root, what happens if we try to attach F_RECURSIVE to a descendent?
> If I'm reading the code correctly it will not succeed, which is good.
> Could you add such scenario as test to test_cgrp2_attach2.c ?
Patch 7 adds test cases to cover scenarios. I will add more tests per
comments below and rename to convey it tests the recursive flag.
>
> Now say we attach overridable and !recursive to a root, another
> recursive prog will not be attached to a descedent, which is correct.
yes
>
> But if we attach !overridable + recursive to a root we cannot attach
> anything to a descendent right? Then why allow such combination at all?
Sure, we can not allow that combination to prevent the inefficiency of
recursively running through cgroups to run the base program.
> So only overridable + recursive combination makes sense, right?
>
> I think all these combinations must be documented and tests must be
> added. Sooner or later people will build security sensitive environment
> with it and we have to meticulous now.
Intentions below. I'll add more test cases to verify intentions agree
with code.
>
> Do you think it would make sense to split this patch out and
> push patches 2 and 3 with few tests in parallel, while we're review
> this change?
I thought about that but decided no. The 'ip vrf exec' use case would
break right of the gate if the other settings were used.
>
> Tejun needs to take a deep look into this patch as well.
>
This is the intended behavior:
The override flag is independent of the recursive flag. If the override
flag does not allow an override, the attempt to add a new program fails.
The recursive flag brings an additional constraint: once a cgroup has a
program with the recursive flag set it is inherited by all descendant
groups. Attempts to insert a program that changes that flag fails EINVAL.
Start with the root group at $MNT. No program is attached. By default
override is allowed and recursive is not set.
1. Group $MNT/a is created.
i. Default settings from $MNT are inherited; 'a' has override enabled
and recursive disabled.
ii. Program is attached. Override flag is set, recursive flag is not set.
iii. Process in 'a' opens a socket, program attached to 'a' is run.
2. $MNT/a/b is created
i. 'b' inherits the program and settings of 'a' (override enabled,
recursive disabled).
ii. Process in 'b' opens a socket. Program inherited from 'a' is run.
iii. Non-interesting case for this patch set: attaching a non-recursive
program to 'b' overrides the inherited one. process opens a socket only
the 'b' program is run.
iv. Program is attached to 'b', override flag set, recursive flag set.
v. Process in 'b' opens a socket. Program attached to 'b' is run and
then program from 'a' is run. Recursion stops here since 'a' does not
have the recursion flag set.
3. $MNT/a/b/c is created
i. 'c' inherits the settings of 'b' (override is allowed, recursive flag
is set)
ii. Process in 'c' opens a socket. No program from 'c' exists, so
nothing is run. Recursion flag is set, so program from 'b' is run, then
program from 'a' is run. Stop (recursive flag not set on 'a').
iii. Attaching a non-recursive program to 'c' fails because it inherited
the recursive flag from 'b' and that can not be reset by a descendant.
iv. Recursive program is attached to 'c'
v. Process in 'c' opens a socket. Program attached to 'c' is run, then
the program from 'b' and the program from 'a'. Stop.
etc.
To consider what happens on doubling back and changing programs in the
hierarchy, start with $MNT/a/b/c from 3 above (non-recursive on 'a',
recursive on 'b' and recursive on 'c') for each of the following cases:
1. Program attached to 'b' is detached, recursive flag is reset in the
request. Attempt fails EINVAL because the recursion flag has to be set.
2. Program attached to 'b' is detached, recursive flag is set. Allowed.
Process in 'b' opens a socket. No program attached to 'b' so no program
is run. Recursive flag is set to program from 'a' is run. Stop.
We should allow the recursive flag to be reset if the parent is not
recursive allowing an unwind of settings applied. I'll add that change.
^ permalink raw reply
* [PATCH 0/4] irda: move it to drivers/staging so we can delete it
From: Greg Kroah-Hartman @ 2017-08-27 15:03 UTC (permalink / raw)
To: davem, samuel; +Cc: netdev, linux-kernel, devel, Greg Kroah-Hartman
The IRDA code has long been obsolete and broken. So, to keep people
from trying to use it, and to prevent people from having to maintain it,
let's move it to drivers/staging/ so that we can delete it entirely from
the kernel in a few releases.
Greg Kroah-Hartman (4):
irda: move net/irda/ to drivers/staging/irda/net/
irda: move drivers/net/irda to drivers/staging/irda/drivers
irda: move include/net/irda into staging subdirectory
staging: irda: add a TODO file.
drivers/net/Makefile | 1 -
drivers/staging/Kconfig | 2 ++
drivers/staging/Makefile | 2 ++
drivers/staging/irda/TODO | 4 ++++
drivers/{net/irda => staging/irda/drivers}/Kconfig | 0
drivers/{net/irda => staging/irda/drivers}/Makefile | 2 ++
drivers/{net/irda => staging/irda/drivers}/act200l-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/actisys-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ali-ircc.c | 0
drivers/{net/irda => staging/irda/drivers}/ali-ircc.h | 0
drivers/{net/irda => staging/irda/drivers}/au1k_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/bfin_sir.c | 0
drivers/{net/irda => staging/irda/drivers}/bfin_sir.h | 0
drivers/{net/irda => staging/irda/drivers}/donauboe.c | 0
drivers/{net/irda => staging/irda/drivers}/donauboe.h | 0
drivers/{net/irda => staging/irda/drivers}/esi-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/girbil-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/irda-usb.c | 0
drivers/{net/irda => staging/irda/drivers}/irda-usb.h | 0
drivers/{net/irda => staging/irda/drivers}/irtty-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/irtty-sir.h | 0
drivers/{net/irda => staging/irda/drivers}/kingsun-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ks959-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ksdazzle-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/litelink-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ma600-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/mcp2120-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/mcs7780.c | 0
drivers/{net/irda => staging/irda/drivers}/mcs7780.h | 0
drivers/{net/irda => staging/irda/drivers}/nsc-ircc.c | 0
drivers/{net/irda => staging/irda/drivers}/nsc-ircc.h | 0
drivers/{net/irda => staging/irda/drivers}/old_belkin-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/pxaficp_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/sa1100_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/sh_sir.c | 0
drivers/{net/irda => staging/irda/drivers}/sir-dev.h | 0
drivers/{net/irda => staging/irda/drivers}/sir_dev.c | 0
drivers/{net/irda => staging/irda/drivers}/sir_dongle.c | 0
drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.c | 0
drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.h | 0
drivers/{net/irda => staging/irda/drivers}/smsc-sio.h | 0
drivers/{net/irda => staging/irda/drivers}/stir4200.c | 0
drivers/{net/irda => staging/irda/drivers}/tekram-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/toim3232-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/via-ircc.c | 0
drivers/{net/irda => staging/irda/drivers}/via-ircc.h | 0
drivers/{net/irda => staging/irda/drivers}/vlsi_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/vlsi_ir.h | 0
drivers/{net/irda => staging/irda/drivers}/w83977af.h | 0
drivers/{net/irda => staging/irda/drivers}/w83977af_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/w83977af_ir.h | 0
{include => drivers/staging/irda/include}/net/irda/af_irda.h | 0
{include => drivers/staging/irda/include}/net/irda/crc.h | 0
{include => drivers/staging/irda/include}/net/irda/discovery.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_core.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_event.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_lmp.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_param.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_ttp.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_tty.h | 0
.../staging/irda/include}/net/irda/ircomm_tty_attach.h | 0
{include => drivers/staging/irda/include}/net/irda/irda.h | 0
{include => drivers/staging/irda/include}/net/irda/irda_device.h | 0
{include => drivers/staging/irda/include}/net/irda/iriap.h | 0
{include => drivers/staging/irda/include}/net/irda/iriap_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irias_object.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_client.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_common.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_eth.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_filter.h | 0
.../staging/irda/include}/net/irda/irlan_provider.h | 0
{include => drivers/staging/irda/include}/net/irda/irlap.h | 0
{include => drivers/staging/irda/include}/net/irda/irlap_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irlap_frame.h | 0
{include => drivers/staging/irda/include}/net/irda/irlmp.h | 0
{include => drivers/staging/irda/include}/net/irda/irlmp_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irlmp_frame.h | 0
{include => drivers/staging/irda/include}/net/irda/irmod.h | 0
{include => drivers/staging/irda/include}/net/irda/irqueue.h | 0
{include => drivers/staging/irda/include}/net/irda/irttp.h | 0
{include => drivers/staging/irda/include}/net/irda/parameters.h | 0
{include => drivers/staging/irda/include}/net/irda/qos.h | 0
{include => drivers/staging/irda/include}/net/irda/timer.h | 0
{include => drivers/staging/irda/include}/net/irda/wrapper.h | 0
{net/irda => drivers/staging/irda/net}/Kconfig | 8 ++++----
{net/irda => drivers/staging/irda/net}/Makefile | 2 ++
{net/irda => drivers/staging/irda/net}/af_irda.c | 0
{net/irda => drivers/staging/irda/net}/discovery.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/Kconfig | 0
{net/irda => drivers/staging/irda/net}/ircomm/Makefile | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_core.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_event.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_lmp.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_param.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_ttp.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_attach.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_ioctl.c | 0
{net/irda => drivers/staging/irda/net}/irda_device.c | 0
{net/irda => drivers/staging/irda/net}/iriap.c | 0
{net/irda => drivers/staging/irda/net}/iriap_event.c | 0
{net/irda => drivers/staging/irda/net}/irias_object.c | 0
{net/irda => drivers/staging/irda/net}/irlan/Kconfig | 0
{net/irda => drivers/staging/irda/net}/irlan/Makefile | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_client.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_client_event.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_common.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_eth.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_event.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_filter.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_provider.c | 0
.../staging/irda/net}/irlan/irlan_provider_event.c | 0
{net/irda => drivers/staging/irda/net}/irlap.c | 0
{net/irda => drivers/staging/irda/net}/irlap_event.c | 0
{net/irda => drivers/staging/irda/net}/irlap_frame.c | 0
{net/irda => drivers/staging/irda/net}/irlmp.c | 0
{net/irda => drivers/staging/irda/net}/irlmp_event.c | 0
{net/irda => drivers/staging/irda/net}/irlmp_frame.c | 0
{net/irda => drivers/staging/irda/net}/irmod.c | 0
{net/irda => drivers/staging/irda/net}/irnet/Kconfig | 0
{net/irda => drivers/staging/irda/net}/irnet/Makefile | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet.h | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_irda.c | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_irda.h | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.c | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.h | 0
{net/irda => drivers/staging/irda/net}/irnetlink.c | 0
{net/irda => drivers/staging/irda/net}/irproc.c | 0
{net/irda => drivers/staging/irda/net}/irqueue.c | 0
{net/irda => drivers/staging/irda/net}/irsysctl.c | 0
{net/irda => drivers/staging/irda/net}/irttp.c | 0
{net/irda => drivers/staging/irda/net}/parameters.c | 0
{net/irda => drivers/staging/irda/net}/qos.c | 0
{net/irda => drivers/staging/irda/net}/timer.c | 0
{net/irda => drivers/staging/irda/net}/wrapper.c | 0
net/Kconfig | 1 -
net/Makefile | 1 -
138 files changed, 16 insertions(+), 7 deletions(-)
create mode 100644 drivers/staging/irda/TODO
rename drivers/{net/irda => staging/irda/drivers}/Kconfig (100%)
rename drivers/{net/irda => staging/irda/drivers}/Makefile (96%)
rename drivers/{net/irda => staging/irda/drivers}/act200l-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/actisys-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ali-ircc.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ali-ircc.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/au1k_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/bfin_sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/bfin_sir.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/donauboe.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/donauboe.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/esi-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/girbil-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/irda-usb.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/irda-usb.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/irtty-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/irtty-sir.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/kingsun-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ks959-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ksdazzle-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/litelink-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ma600-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/mcp2120-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/mcs7780.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/mcs7780.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/nsc-ircc.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/nsc-ircc.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/old_belkin-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/pxaficp_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sa1100_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sh_sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sir-dev.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/sir_dev.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sir_dongle.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/smsc-sio.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/stir4200.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/tekram-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/toim3232-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/via-ircc.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/via-ircc.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/vlsi_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/vlsi_ir.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/w83977af.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/w83977af_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/w83977af_ir.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/af_irda.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/crc.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/discovery.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_core.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_lmp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_param.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_ttp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_tty.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_tty_attach.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irda.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irda_device.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/iriap.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/iriap_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irias_object.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_client.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_common.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_eth.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_filter.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_provider.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlap.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlap_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlap_frame.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlmp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlmp_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlmp_frame.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irmod.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irqueue.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irttp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/parameters.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/qos.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/timer.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/wrapper.h (100%)
rename {net/irda => drivers/staging/irda/net}/Kconfig (94%)
rename {net/irda => drivers/staging/irda/net}/Makefile (88%)
rename {net/irda => drivers/staging/irda/net}/af_irda.c (100%)
rename {net/irda => drivers/staging/irda/net}/discovery.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/Kconfig (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/Makefile (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_core.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_lmp.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_param.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_ttp.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_attach.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_ioctl.c (100%)
rename {net/irda => drivers/staging/irda/net}/irda_device.c (100%)
rename {net/irda => drivers/staging/irda/net}/iriap.c (100%)
rename {net/irda => drivers/staging/irda/net}/iriap_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irias_object.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/Kconfig (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/Makefile (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_client.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_client_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_common.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_eth.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_filter.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_provider.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_provider_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlap.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlap_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlap_frame.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlmp.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlmp_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlmp_frame.c (100%)
rename {net/irda => drivers/staging/irda/net}/irmod.c (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/Kconfig (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/Makefile (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet.h (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_irda.c (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_irda.h (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.c (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.h (100%)
rename {net/irda => drivers/staging/irda/net}/irnetlink.c (100%)
rename {net/irda => drivers/staging/irda/net}/irproc.c (100%)
rename {net/irda => drivers/staging/irda/net}/irqueue.c (100%)
rename {net/irda => drivers/staging/irda/net}/irsysctl.c (100%)
rename {net/irda => drivers/staging/irda/net}/irttp.c (100%)
rename {net/irda => drivers/staging/irda/net}/parameters.c (100%)
rename {net/irda => drivers/staging/irda/net}/qos.c (100%)
rename {net/irda => drivers/staging/irda/net}/timer.c (100%)
rename {net/irda => drivers/staging/irda/net}/wrapper.c (100%)
--
2.14.1
^ permalink raw reply
* [PATCH 1/4] irda: move net/irda/ to drivers/staging/irda/net/
From: Greg Kroah-Hartman @ 2017-08-27 15:03 UTC (permalink / raw)
To: davem, samuel; +Cc: devel, netdev, linux-kernel, Greg Kroah-Hartman
In-Reply-To: <20170827150334.32495-1-gregkh@linuxfoundation.org>
It's time to get rid of IRDA. It's long been broken, and no one seems
to use it anymore. So move it to staging and after a while, we can
delete it from there.
To start, move the network irda core from net/irda to
drivers/staging/irda/net/
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/staging/Kconfig | 2 ++
drivers/staging/Makefile | 1 +
{net/irda => drivers/staging/irda/net}/Kconfig | 6 +++---
{net/irda => drivers/staging/irda/net}/Makefile | 0
{net/irda => drivers/staging/irda/net}/af_irda.c | 0
{net/irda => drivers/staging/irda/net}/discovery.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/Kconfig | 0
{net/irda => drivers/staging/irda/net}/ircomm/Makefile | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_core.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_event.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_lmp.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_param.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_ttp.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_attach.c | 0
{net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_ioctl.c | 0
{net/irda => drivers/staging/irda/net}/irda_device.c | 0
{net/irda => drivers/staging/irda/net}/iriap.c | 0
{net/irda => drivers/staging/irda/net}/iriap_event.c | 0
{net/irda => drivers/staging/irda/net}/irias_object.c | 0
{net/irda => drivers/staging/irda/net}/irlan/Kconfig | 0
{net/irda => drivers/staging/irda/net}/irlan/Makefile | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_client.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_client_event.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_common.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_eth.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_event.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_filter.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_provider.c | 0
{net/irda => drivers/staging/irda/net}/irlan/irlan_provider_event.c | 0
{net/irda => drivers/staging/irda/net}/irlap.c | 0
{net/irda => drivers/staging/irda/net}/irlap_event.c | 0
{net/irda => drivers/staging/irda/net}/irlap_frame.c | 0
{net/irda => drivers/staging/irda/net}/irlmp.c | 0
{net/irda => drivers/staging/irda/net}/irlmp_event.c | 0
{net/irda => drivers/staging/irda/net}/irlmp_frame.c | 0
{net/irda => drivers/staging/irda/net}/irmod.c | 0
{net/irda => drivers/staging/irda/net}/irnet/Kconfig | 0
{net/irda => drivers/staging/irda/net}/irnet/Makefile | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet.h | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_irda.c | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_irda.h | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.c | 0
{net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.h | 0
{net/irda => drivers/staging/irda/net}/irnetlink.c | 0
{net/irda => drivers/staging/irda/net}/irproc.c | 0
{net/irda => drivers/staging/irda/net}/irqueue.c | 0
{net/irda => drivers/staging/irda/net}/irsysctl.c | 0
{net/irda => drivers/staging/irda/net}/irttp.c | 0
{net/irda => drivers/staging/irda/net}/parameters.c | 0
{net/irda => drivers/staging/irda/net}/qos.c | 0
{net/irda => drivers/staging/irda/net}/timer.c | 0
{net/irda => drivers/staging/irda/net}/wrapper.c | 0
net/Kconfig | 1 -
net/Makefile | 1 -
55 files changed, 6 insertions(+), 5 deletions(-)
rename {net/irda => drivers/staging/irda/net}/Kconfig (95%)
rename {net/irda => drivers/staging/irda/net}/Makefile (100%)
rename {net/irda => drivers/staging/irda/net}/af_irda.c (100%)
rename {net/irda => drivers/staging/irda/net}/discovery.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/Kconfig (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/Makefile (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_core.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_lmp.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_param.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_ttp.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_attach.c (100%)
rename {net/irda => drivers/staging/irda/net}/ircomm/ircomm_tty_ioctl.c (100%)
rename {net/irda => drivers/staging/irda/net}/irda_device.c (100%)
rename {net/irda => drivers/staging/irda/net}/iriap.c (100%)
rename {net/irda => drivers/staging/irda/net}/iriap_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irias_object.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/Kconfig (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/Makefile (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_client.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_client_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_common.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_eth.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_filter.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_provider.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlan/irlan_provider_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlap.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlap_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlap_frame.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlmp.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlmp_event.c (100%)
rename {net/irda => drivers/staging/irda/net}/irlmp_frame.c (100%)
rename {net/irda => drivers/staging/irda/net}/irmod.c (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/Kconfig (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/Makefile (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet.h (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_irda.c (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_irda.h (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.c (100%)
rename {net/irda => drivers/staging/irda/net}/irnet/irnet_ppp.h (100%)
rename {net/irda => drivers/staging/irda/net}/irnetlink.c (100%)
rename {net/irda => drivers/staging/irda/net}/irproc.c (100%)
rename {net/irda => drivers/staging/irda/net}/irqueue.c (100%)
rename {net/irda => drivers/staging/irda/net}/irsysctl.c (100%)
rename {net/irda => drivers/staging/irda/net}/irttp.c (100%)
rename {net/irda => drivers/staging/irda/net}/parameters.c (100%)
rename {net/irda => drivers/staging/irda/net}/qos.c (100%)
rename {net/irda => drivers/staging/irda/net}/timer.c (100%)
rename {net/irda => drivers/staging/irda/net}/wrapper.c (100%)
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig
index ef28a1cb64ae..0c5086d878c6 100644
--- a/drivers/staging/Kconfig
+++ b/drivers/staging/Kconfig
@@ -24,6 +24,8 @@ menuconfig STAGING
if STAGING
+source "drivers/staging/irda/net/Kconfig"
+
source "drivers/staging/wlan-ng/Kconfig"
source "drivers/staging/comedi/Kconfig"
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 2918580bdb9e..509fbacf9a7e 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -2,6 +2,7 @@
obj-y += media/
obj-y += typec/
+obj-$(CONFIG_IRDA) += irda/net/
obj-$(CONFIG_PRISM2_USB) += wlan-ng/
obj-$(CONFIG_COMEDI) += comedi/
obj-$(CONFIG_FB_OLPC_DCON) += olpc_dcon/
diff --git a/net/irda/Kconfig b/drivers/staging/irda/net/Kconfig
similarity index 95%
rename from net/irda/Kconfig
rename to drivers/staging/irda/net/Kconfig
index c8671a7ffb3c..cd775e1ea0e9 100644
--- a/net/irda/Kconfig
+++ b/drivers/staging/irda/net/Kconfig
@@ -27,11 +27,11 @@ menuconfig IRDA
comment "IrDA protocols"
depends on IRDA
-source "net/irda/irlan/Kconfig"
+source "drivers/staging/irda/net/irlan/Kconfig"
-source "net/irda/irnet/Kconfig"
+source "drivers/staging/irda/net/irnet/Kconfig"
-source "net/irda/ircomm/Kconfig"
+source "drivers/staging/irda/net/ircomm/Kconfig"
config IRDA_ULTRA
bool "Ultra (connectionless) protocol"
diff --git a/net/irda/Makefile b/drivers/staging/irda/net/Makefile
similarity index 100%
rename from net/irda/Makefile
rename to drivers/staging/irda/net/Makefile
diff --git a/net/irda/af_irda.c b/drivers/staging/irda/net/af_irda.c
similarity index 100%
rename from net/irda/af_irda.c
rename to drivers/staging/irda/net/af_irda.c
diff --git a/net/irda/discovery.c b/drivers/staging/irda/net/discovery.c
similarity index 100%
rename from net/irda/discovery.c
rename to drivers/staging/irda/net/discovery.c
diff --git a/net/irda/ircomm/Kconfig b/drivers/staging/irda/net/ircomm/Kconfig
similarity index 100%
rename from net/irda/ircomm/Kconfig
rename to drivers/staging/irda/net/ircomm/Kconfig
diff --git a/net/irda/ircomm/Makefile b/drivers/staging/irda/net/ircomm/Makefile
similarity index 100%
rename from net/irda/ircomm/Makefile
rename to drivers/staging/irda/net/ircomm/Makefile
diff --git a/net/irda/ircomm/ircomm_core.c b/drivers/staging/irda/net/ircomm/ircomm_core.c
similarity index 100%
rename from net/irda/ircomm/ircomm_core.c
rename to drivers/staging/irda/net/ircomm/ircomm_core.c
diff --git a/net/irda/ircomm/ircomm_event.c b/drivers/staging/irda/net/ircomm/ircomm_event.c
similarity index 100%
rename from net/irda/ircomm/ircomm_event.c
rename to drivers/staging/irda/net/ircomm/ircomm_event.c
diff --git a/net/irda/ircomm/ircomm_lmp.c b/drivers/staging/irda/net/ircomm/ircomm_lmp.c
similarity index 100%
rename from net/irda/ircomm/ircomm_lmp.c
rename to drivers/staging/irda/net/ircomm/ircomm_lmp.c
diff --git a/net/irda/ircomm/ircomm_param.c b/drivers/staging/irda/net/ircomm/ircomm_param.c
similarity index 100%
rename from net/irda/ircomm/ircomm_param.c
rename to drivers/staging/irda/net/ircomm/ircomm_param.c
diff --git a/net/irda/ircomm/ircomm_ttp.c b/drivers/staging/irda/net/ircomm/ircomm_ttp.c
similarity index 100%
rename from net/irda/ircomm/ircomm_ttp.c
rename to drivers/staging/irda/net/ircomm/ircomm_ttp.c
diff --git a/net/irda/ircomm/ircomm_tty.c b/drivers/staging/irda/net/ircomm/ircomm_tty.c
similarity index 100%
rename from net/irda/ircomm/ircomm_tty.c
rename to drivers/staging/irda/net/ircomm/ircomm_tty.c
diff --git a/net/irda/ircomm/ircomm_tty_attach.c b/drivers/staging/irda/net/ircomm/ircomm_tty_attach.c
similarity index 100%
rename from net/irda/ircomm/ircomm_tty_attach.c
rename to drivers/staging/irda/net/ircomm/ircomm_tty_attach.c
diff --git a/net/irda/ircomm/ircomm_tty_ioctl.c b/drivers/staging/irda/net/ircomm/ircomm_tty_ioctl.c
similarity index 100%
rename from net/irda/ircomm/ircomm_tty_ioctl.c
rename to drivers/staging/irda/net/ircomm/ircomm_tty_ioctl.c
diff --git a/net/irda/irda_device.c b/drivers/staging/irda/net/irda_device.c
similarity index 100%
rename from net/irda/irda_device.c
rename to drivers/staging/irda/net/irda_device.c
diff --git a/net/irda/iriap.c b/drivers/staging/irda/net/iriap.c
similarity index 100%
rename from net/irda/iriap.c
rename to drivers/staging/irda/net/iriap.c
diff --git a/net/irda/iriap_event.c b/drivers/staging/irda/net/iriap_event.c
similarity index 100%
rename from net/irda/iriap_event.c
rename to drivers/staging/irda/net/iriap_event.c
diff --git a/net/irda/irias_object.c b/drivers/staging/irda/net/irias_object.c
similarity index 100%
rename from net/irda/irias_object.c
rename to drivers/staging/irda/net/irias_object.c
diff --git a/net/irda/irlan/Kconfig b/drivers/staging/irda/net/irlan/Kconfig
similarity index 100%
rename from net/irda/irlan/Kconfig
rename to drivers/staging/irda/net/irlan/Kconfig
diff --git a/net/irda/irlan/Makefile b/drivers/staging/irda/net/irlan/Makefile
similarity index 100%
rename from net/irda/irlan/Makefile
rename to drivers/staging/irda/net/irlan/Makefile
diff --git a/net/irda/irlan/irlan_client.c b/drivers/staging/irda/net/irlan/irlan_client.c
similarity index 100%
rename from net/irda/irlan/irlan_client.c
rename to drivers/staging/irda/net/irlan/irlan_client.c
diff --git a/net/irda/irlan/irlan_client_event.c b/drivers/staging/irda/net/irlan/irlan_client_event.c
similarity index 100%
rename from net/irda/irlan/irlan_client_event.c
rename to drivers/staging/irda/net/irlan/irlan_client_event.c
diff --git a/net/irda/irlan/irlan_common.c b/drivers/staging/irda/net/irlan/irlan_common.c
similarity index 100%
rename from net/irda/irlan/irlan_common.c
rename to drivers/staging/irda/net/irlan/irlan_common.c
diff --git a/net/irda/irlan/irlan_eth.c b/drivers/staging/irda/net/irlan/irlan_eth.c
similarity index 100%
rename from net/irda/irlan/irlan_eth.c
rename to drivers/staging/irda/net/irlan/irlan_eth.c
diff --git a/net/irda/irlan/irlan_event.c b/drivers/staging/irda/net/irlan/irlan_event.c
similarity index 100%
rename from net/irda/irlan/irlan_event.c
rename to drivers/staging/irda/net/irlan/irlan_event.c
diff --git a/net/irda/irlan/irlan_filter.c b/drivers/staging/irda/net/irlan/irlan_filter.c
similarity index 100%
rename from net/irda/irlan/irlan_filter.c
rename to drivers/staging/irda/net/irlan/irlan_filter.c
diff --git a/net/irda/irlan/irlan_provider.c b/drivers/staging/irda/net/irlan/irlan_provider.c
similarity index 100%
rename from net/irda/irlan/irlan_provider.c
rename to drivers/staging/irda/net/irlan/irlan_provider.c
diff --git a/net/irda/irlan/irlan_provider_event.c b/drivers/staging/irda/net/irlan/irlan_provider_event.c
similarity index 100%
rename from net/irda/irlan/irlan_provider_event.c
rename to drivers/staging/irda/net/irlan/irlan_provider_event.c
diff --git a/net/irda/irlap.c b/drivers/staging/irda/net/irlap.c
similarity index 100%
rename from net/irda/irlap.c
rename to drivers/staging/irda/net/irlap.c
diff --git a/net/irda/irlap_event.c b/drivers/staging/irda/net/irlap_event.c
similarity index 100%
rename from net/irda/irlap_event.c
rename to drivers/staging/irda/net/irlap_event.c
diff --git a/net/irda/irlap_frame.c b/drivers/staging/irda/net/irlap_frame.c
similarity index 100%
rename from net/irda/irlap_frame.c
rename to drivers/staging/irda/net/irlap_frame.c
diff --git a/net/irda/irlmp.c b/drivers/staging/irda/net/irlmp.c
similarity index 100%
rename from net/irda/irlmp.c
rename to drivers/staging/irda/net/irlmp.c
diff --git a/net/irda/irlmp_event.c b/drivers/staging/irda/net/irlmp_event.c
similarity index 100%
rename from net/irda/irlmp_event.c
rename to drivers/staging/irda/net/irlmp_event.c
diff --git a/net/irda/irlmp_frame.c b/drivers/staging/irda/net/irlmp_frame.c
similarity index 100%
rename from net/irda/irlmp_frame.c
rename to drivers/staging/irda/net/irlmp_frame.c
diff --git a/net/irda/irmod.c b/drivers/staging/irda/net/irmod.c
similarity index 100%
rename from net/irda/irmod.c
rename to drivers/staging/irda/net/irmod.c
diff --git a/net/irda/irnet/Kconfig b/drivers/staging/irda/net/irnet/Kconfig
similarity index 100%
rename from net/irda/irnet/Kconfig
rename to drivers/staging/irda/net/irnet/Kconfig
diff --git a/net/irda/irnet/Makefile b/drivers/staging/irda/net/irnet/Makefile
similarity index 100%
rename from net/irda/irnet/Makefile
rename to drivers/staging/irda/net/irnet/Makefile
diff --git a/net/irda/irnet/irnet.h b/drivers/staging/irda/net/irnet/irnet.h
similarity index 100%
rename from net/irda/irnet/irnet.h
rename to drivers/staging/irda/net/irnet/irnet.h
diff --git a/net/irda/irnet/irnet_irda.c b/drivers/staging/irda/net/irnet/irnet_irda.c
similarity index 100%
rename from net/irda/irnet/irnet_irda.c
rename to drivers/staging/irda/net/irnet/irnet_irda.c
diff --git a/net/irda/irnet/irnet_irda.h b/drivers/staging/irda/net/irnet/irnet_irda.h
similarity index 100%
rename from net/irda/irnet/irnet_irda.h
rename to drivers/staging/irda/net/irnet/irnet_irda.h
diff --git a/net/irda/irnet/irnet_ppp.c b/drivers/staging/irda/net/irnet/irnet_ppp.c
similarity index 100%
rename from net/irda/irnet/irnet_ppp.c
rename to drivers/staging/irda/net/irnet/irnet_ppp.c
diff --git a/net/irda/irnet/irnet_ppp.h b/drivers/staging/irda/net/irnet/irnet_ppp.h
similarity index 100%
rename from net/irda/irnet/irnet_ppp.h
rename to drivers/staging/irda/net/irnet/irnet_ppp.h
diff --git a/net/irda/irnetlink.c b/drivers/staging/irda/net/irnetlink.c
similarity index 100%
rename from net/irda/irnetlink.c
rename to drivers/staging/irda/net/irnetlink.c
diff --git a/net/irda/irproc.c b/drivers/staging/irda/net/irproc.c
similarity index 100%
rename from net/irda/irproc.c
rename to drivers/staging/irda/net/irproc.c
diff --git a/net/irda/irqueue.c b/drivers/staging/irda/net/irqueue.c
similarity index 100%
rename from net/irda/irqueue.c
rename to drivers/staging/irda/net/irqueue.c
diff --git a/net/irda/irsysctl.c b/drivers/staging/irda/net/irsysctl.c
similarity index 100%
rename from net/irda/irsysctl.c
rename to drivers/staging/irda/net/irsysctl.c
diff --git a/net/irda/irttp.c b/drivers/staging/irda/net/irttp.c
similarity index 100%
rename from net/irda/irttp.c
rename to drivers/staging/irda/net/irttp.c
diff --git a/net/irda/parameters.c b/drivers/staging/irda/net/parameters.c
similarity index 100%
rename from net/irda/parameters.c
rename to drivers/staging/irda/net/parameters.c
diff --git a/net/irda/qos.c b/drivers/staging/irda/net/qos.c
similarity index 100%
rename from net/irda/qos.c
rename to drivers/staging/irda/net/qos.c
diff --git a/net/irda/timer.c b/drivers/staging/irda/net/timer.c
similarity index 100%
rename from net/irda/timer.c
rename to drivers/staging/irda/net/timer.c
diff --git a/net/irda/wrapper.c b/drivers/staging/irda/net/wrapper.c
similarity index 100%
rename from net/irda/wrapper.c
rename to drivers/staging/irda/net/wrapper.c
diff --git a/net/Kconfig b/net/Kconfig
index 7d57ef34b79c..992a5b8f72d7 100644
--- a/net/Kconfig
+++ b/net/Kconfig
@@ -364,7 +364,6 @@ endmenu
source "net/ax25/Kconfig"
source "net/can/Kconfig"
-source "net/irda/Kconfig"
source "net/bluetooth/Kconfig"
source "net/rxrpc/Kconfig"
source "net/kcm/Kconfig"
diff --git a/net/Makefile b/net/Makefile
index bed80fa398b7..3d3feff3643b 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -31,7 +31,6 @@ obj-$(CONFIG_NETROM) += netrom/
obj-$(CONFIG_ROSE) += rose/
obj-$(CONFIG_AX25) += ax25/
obj-$(CONFIG_CAN) += can/
-obj-$(CONFIG_IRDA) += irda/
obj-$(CONFIG_BT) += bluetooth/
obj-$(CONFIG_SUNRPC) += sunrpc/
obj-$(CONFIG_AF_RXRPC) += rxrpc/
--
2.14.1
^ permalink raw reply related
* [PATCH 2/4] irda: move drivers/net/irda to drivers/staging/irda/drivers
From: Greg Kroah-Hartman @ 2017-08-27 15:03 UTC (permalink / raw)
To: davem, samuel; +Cc: netdev, linux-kernel, devel, Greg Kroah-Hartman
In-Reply-To: <20170827150334.32495-1-gregkh@linuxfoundation.org>
Move the irda drivers from drivers/net/irda/ to
drivers/staging/irda/drivers as they will be deleted in a future kernel
release.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/Makefile | 1 -
drivers/staging/Makefile | 1 +
drivers/{net/irda => staging/irda/drivers}/Kconfig | 0
drivers/{net/irda => staging/irda/drivers}/Makefile | 0
drivers/{net/irda => staging/irda/drivers}/act200l-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/actisys-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ali-ircc.c | 0
drivers/{net/irda => staging/irda/drivers}/ali-ircc.h | 0
drivers/{net/irda => staging/irda/drivers}/au1k_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/bfin_sir.c | 0
drivers/{net/irda => staging/irda/drivers}/bfin_sir.h | 0
drivers/{net/irda => staging/irda/drivers}/donauboe.c | 0
drivers/{net/irda => staging/irda/drivers}/donauboe.h | 0
drivers/{net/irda => staging/irda/drivers}/esi-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/girbil-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/irda-usb.c | 0
drivers/{net/irda => staging/irda/drivers}/irda-usb.h | 0
drivers/{net/irda => staging/irda/drivers}/irtty-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/irtty-sir.h | 0
drivers/{net/irda => staging/irda/drivers}/kingsun-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ks959-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ksdazzle-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/litelink-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/ma600-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/mcp2120-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/mcs7780.c | 0
drivers/{net/irda => staging/irda/drivers}/mcs7780.h | 0
drivers/{net/irda => staging/irda/drivers}/nsc-ircc.c | 0
drivers/{net/irda => staging/irda/drivers}/nsc-ircc.h | 0
drivers/{net/irda => staging/irda/drivers}/old_belkin-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/pxaficp_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/sa1100_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/sh_sir.c | 0
drivers/{net/irda => staging/irda/drivers}/sir-dev.h | 0
drivers/{net/irda => staging/irda/drivers}/sir_dev.c | 0
drivers/{net/irda => staging/irda/drivers}/sir_dongle.c | 0
drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.c | 0
drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.h | 0
drivers/{net/irda => staging/irda/drivers}/smsc-sio.h | 0
drivers/{net/irda => staging/irda/drivers}/stir4200.c | 0
drivers/{net/irda => staging/irda/drivers}/tekram-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/toim3232-sir.c | 0
drivers/{net/irda => staging/irda/drivers}/via-ircc.c | 0
drivers/{net/irda => staging/irda/drivers}/via-ircc.h | 0
drivers/{net/irda => staging/irda/drivers}/vlsi_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/vlsi_ir.h | 0
drivers/{net/irda => staging/irda/drivers}/w83977af.h | 0
drivers/{net/irda => staging/irda/drivers}/w83977af_ir.c | 0
drivers/{net/irda => staging/irda/drivers}/w83977af_ir.h | 0
drivers/staging/irda/net/Kconfig | 2 +-
50 files changed, 2 insertions(+), 2 deletions(-)
rename drivers/{net/irda => staging/irda/drivers}/Kconfig (100%)
rename drivers/{net/irda => staging/irda/drivers}/Makefile (100%)
rename drivers/{net/irda => staging/irda/drivers}/act200l-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/actisys-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ali-ircc.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ali-ircc.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/au1k_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/bfin_sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/bfin_sir.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/donauboe.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/donauboe.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/esi-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/girbil-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/irda-usb.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/irda-usb.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/irtty-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/irtty-sir.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/kingsun-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ks959-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ksdazzle-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/litelink-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/ma600-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/mcp2120-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/mcs7780.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/mcs7780.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/nsc-ircc.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/nsc-ircc.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/old_belkin-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/pxaficp_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sa1100_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sh_sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sir-dev.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/sir_dev.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/sir_dongle.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/smsc-ircc2.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/smsc-sio.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/stir4200.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/tekram-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/toim3232-sir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/via-ircc.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/via-ircc.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/vlsi_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/vlsi_ir.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/w83977af.h (100%)
rename drivers/{net/irda => staging/irda/drivers}/w83977af_ir.c (100%)
rename drivers/{net/irda => staging/irda/drivers}/w83977af_ir.h (100%)
diff --git a/drivers/net/Makefile b/drivers/net/Makefile
index b2f6556d8848..8dff900085d6 100644
--- a/drivers/net/Makefile
+++ b/drivers/net/Makefile
@@ -45,7 +45,6 @@ obj-$(CONFIG_ETHERNET) += ethernet/
obj-$(CONFIG_FDDI) += fddi/
obj-$(CONFIG_HIPPI) += hippi/
obj-$(CONFIG_HAMRADIO) += hamradio/
-obj-$(CONFIG_IRDA) += irda/
obj-$(CONFIG_PLIP) += plip/
obj-$(CONFIG_PPP) += ppp/
obj-$(CONFIG_PPP_ASYNC) += ppp/
diff --git a/drivers/staging/Makefile b/drivers/staging/Makefile
index 509fbacf9a7e..fced929a0e67 100644
--- a/drivers/staging/Makefile
+++ b/drivers/staging/Makefile
@@ -3,6 +3,7 @@
obj-y += media/
obj-y += typec/
obj-$(CONFIG_IRDA) += irda/net/
+obj-$(CONFIG_IRDA) += irda/drivers/
obj-$(CONFIG_PRISM2_USB) += wlan-ng/
obj-$(CONFIG_COMEDI) += comedi/
obj-$(CONFIG_FB_OLPC_DCON) += olpc_dcon/
diff --git a/drivers/net/irda/Kconfig b/drivers/staging/irda/drivers/Kconfig
similarity index 100%
rename from drivers/net/irda/Kconfig
rename to drivers/staging/irda/drivers/Kconfig
diff --git a/drivers/net/irda/Makefile b/drivers/staging/irda/drivers/Makefile
similarity index 100%
rename from drivers/net/irda/Makefile
rename to drivers/staging/irda/drivers/Makefile
diff --git a/drivers/net/irda/act200l-sir.c b/drivers/staging/irda/drivers/act200l-sir.c
similarity index 100%
rename from drivers/net/irda/act200l-sir.c
rename to drivers/staging/irda/drivers/act200l-sir.c
diff --git a/drivers/net/irda/actisys-sir.c b/drivers/staging/irda/drivers/actisys-sir.c
similarity index 100%
rename from drivers/net/irda/actisys-sir.c
rename to drivers/staging/irda/drivers/actisys-sir.c
diff --git a/drivers/net/irda/ali-ircc.c b/drivers/staging/irda/drivers/ali-ircc.c
similarity index 100%
rename from drivers/net/irda/ali-ircc.c
rename to drivers/staging/irda/drivers/ali-ircc.c
diff --git a/drivers/net/irda/ali-ircc.h b/drivers/staging/irda/drivers/ali-ircc.h
similarity index 100%
rename from drivers/net/irda/ali-ircc.h
rename to drivers/staging/irda/drivers/ali-ircc.h
diff --git a/drivers/net/irda/au1k_ir.c b/drivers/staging/irda/drivers/au1k_ir.c
similarity index 100%
rename from drivers/net/irda/au1k_ir.c
rename to drivers/staging/irda/drivers/au1k_ir.c
diff --git a/drivers/net/irda/bfin_sir.c b/drivers/staging/irda/drivers/bfin_sir.c
similarity index 100%
rename from drivers/net/irda/bfin_sir.c
rename to drivers/staging/irda/drivers/bfin_sir.c
diff --git a/drivers/net/irda/bfin_sir.h b/drivers/staging/irda/drivers/bfin_sir.h
similarity index 100%
rename from drivers/net/irda/bfin_sir.h
rename to drivers/staging/irda/drivers/bfin_sir.h
diff --git a/drivers/net/irda/donauboe.c b/drivers/staging/irda/drivers/donauboe.c
similarity index 100%
rename from drivers/net/irda/donauboe.c
rename to drivers/staging/irda/drivers/donauboe.c
diff --git a/drivers/net/irda/donauboe.h b/drivers/staging/irda/drivers/donauboe.h
similarity index 100%
rename from drivers/net/irda/donauboe.h
rename to drivers/staging/irda/drivers/donauboe.h
diff --git a/drivers/net/irda/esi-sir.c b/drivers/staging/irda/drivers/esi-sir.c
similarity index 100%
rename from drivers/net/irda/esi-sir.c
rename to drivers/staging/irda/drivers/esi-sir.c
diff --git a/drivers/net/irda/girbil-sir.c b/drivers/staging/irda/drivers/girbil-sir.c
similarity index 100%
rename from drivers/net/irda/girbil-sir.c
rename to drivers/staging/irda/drivers/girbil-sir.c
diff --git a/drivers/net/irda/irda-usb.c b/drivers/staging/irda/drivers/irda-usb.c
similarity index 100%
rename from drivers/net/irda/irda-usb.c
rename to drivers/staging/irda/drivers/irda-usb.c
diff --git a/drivers/net/irda/irda-usb.h b/drivers/staging/irda/drivers/irda-usb.h
similarity index 100%
rename from drivers/net/irda/irda-usb.h
rename to drivers/staging/irda/drivers/irda-usb.h
diff --git a/drivers/net/irda/irtty-sir.c b/drivers/staging/irda/drivers/irtty-sir.c
similarity index 100%
rename from drivers/net/irda/irtty-sir.c
rename to drivers/staging/irda/drivers/irtty-sir.c
diff --git a/drivers/net/irda/irtty-sir.h b/drivers/staging/irda/drivers/irtty-sir.h
similarity index 100%
rename from drivers/net/irda/irtty-sir.h
rename to drivers/staging/irda/drivers/irtty-sir.h
diff --git a/drivers/net/irda/kingsun-sir.c b/drivers/staging/irda/drivers/kingsun-sir.c
similarity index 100%
rename from drivers/net/irda/kingsun-sir.c
rename to drivers/staging/irda/drivers/kingsun-sir.c
diff --git a/drivers/net/irda/ks959-sir.c b/drivers/staging/irda/drivers/ks959-sir.c
similarity index 100%
rename from drivers/net/irda/ks959-sir.c
rename to drivers/staging/irda/drivers/ks959-sir.c
diff --git a/drivers/net/irda/ksdazzle-sir.c b/drivers/staging/irda/drivers/ksdazzle-sir.c
similarity index 100%
rename from drivers/net/irda/ksdazzle-sir.c
rename to drivers/staging/irda/drivers/ksdazzle-sir.c
diff --git a/drivers/net/irda/litelink-sir.c b/drivers/staging/irda/drivers/litelink-sir.c
similarity index 100%
rename from drivers/net/irda/litelink-sir.c
rename to drivers/staging/irda/drivers/litelink-sir.c
diff --git a/drivers/net/irda/ma600-sir.c b/drivers/staging/irda/drivers/ma600-sir.c
similarity index 100%
rename from drivers/net/irda/ma600-sir.c
rename to drivers/staging/irda/drivers/ma600-sir.c
diff --git a/drivers/net/irda/mcp2120-sir.c b/drivers/staging/irda/drivers/mcp2120-sir.c
similarity index 100%
rename from drivers/net/irda/mcp2120-sir.c
rename to drivers/staging/irda/drivers/mcp2120-sir.c
diff --git a/drivers/net/irda/mcs7780.c b/drivers/staging/irda/drivers/mcs7780.c
similarity index 100%
rename from drivers/net/irda/mcs7780.c
rename to drivers/staging/irda/drivers/mcs7780.c
diff --git a/drivers/net/irda/mcs7780.h b/drivers/staging/irda/drivers/mcs7780.h
similarity index 100%
rename from drivers/net/irda/mcs7780.h
rename to drivers/staging/irda/drivers/mcs7780.h
diff --git a/drivers/net/irda/nsc-ircc.c b/drivers/staging/irda/drivers/nsc-ircc.c
similarity index 100%
rename from drivers/net/irda/nsc-ircc.c
rename to drivers/staging/irda/drivers/nsc-ircc.c
diff --git a/drivers/net/irda/nsc-ircc.h b/drivers/staging/irda/drivers/nsc-ircc.h
similarity index 100%
rename from drivers/net/irda/nsc-ircc.h
rename to drivers/staging/irda/drivers/nsc-ircc.h
diff --git a/drivers/net/irda/old_belkin-sir.c b/drivers/staging/irda/drivers/old_belkin-sir.c
similarity index 100%
rename from drivers/net/irda/old_belkin-sir.c
rename to drivers/staging/irda/drivers/old_belkin-sir.c
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/staging/irda/drivers/pxaficp_ir.c
similarity index 100%
rename from drivers/net/irda/pxaficp_ir.c
rename to drivers/staging/irda/drivers/pxaficp_ir.c
diff --git a/drivers/net/irda/sa1100_ir.c b/drivers/staging/irda/drivers/sa1100_ir.c
similarity index 100%
rename from drivers/net/irda/sa1100_ir.c
rename to drivers/staging/irda/drivers/sa1100_ir.c
diff --git a/drivers/net/irda/sh_sir.c b/drivers/staging/irda/drivers/sh_sir.c
similarity index 100%
rename from drivers/net/irda/sh_sir.c
rename to drivers/staging/irda/drivers/sh_sir.c
diff --git a/drivers/net/irda/sir-dev.h b/drivers/staging/irda/drivers/sir-dev.h
similarity index 100%
rename from drivers/net/irda/sir-dev.h
rename to drivers/staging/irda/drivers/sir-dev.h
diff --git a/drivers/net/irda/sir_dev.c b/drivers/staging/irda/drivers/sir_dev.c
similarity index 100%
rename from drivers/net/irda/sir_dev.c
rename to drivers/staging/irda/drivers/sir_dev.c
diff --git a/drivers/net/irda/sir_dongle.c b/drivers/staging/irda/drivers/sir_dongle.c
similarity index 100%
rename from drivers/net/irda/sir_dongle.c
rename to drivers/staging/irda/drivers/sir_dongle.c
diff --git a/drivers/net/irda/smsc-ircc2.c b/drivers/staging/irda/drivers/smsc-ircc2.c
similarity index 100%
rename from drivers/net/irda/smsc-ircc2.c
rename to drivers/staging/irda/drivers/smsc-ircc2.c
diff --git a/drivers/net/irda/smsc-ircc2.h b/drivers/staging/irda/drivers/smsc-ircc2.h
similarity index 100%
rename from drivers/net/irda/smsc-ircc2.h
rename to drivers/staging/irda/drivers/smsc-ircc2.h
diff --git a/drivers/net/irda/smsc-sio.h b/drivers/staging/irda/drivers/smsc-sio.h
similarity index 100%
rename from drivers/net/irda/smsc-sio.h
rename to drivers/staging/irda/drivers/smsc-sio.h
diff --git a/drivers/net/irda/stir4200.c b/drivers/staging/irda/drivers/stir4200.c
similarity index 100%
rename from drivers/net/irda/stir4200.c
rename to drivers/staging/irda/drivers/stir4200.c
diff --git a/drivers/net/irda/tekram-sir.c b/drivers/staging/irda/drivers/tekram-sir.c
similarity index 100%
rename from drivers/net/irda/tekram-sir.c
rename to drivers/staging/irda/drivers/tekram-sir.c
diff --git a/drivers/net/irda/toim3232-sir.c b/drivers/staging/irda/drivers/toim3232-sir.c
similarity index 100%
rename from drivers/net/irda/toim3232-sir.c
rename to drivers/staging/irda/drivers/toim3232-sir.c
diff --git a/drivers/net/irda/via-ircc.c b/drivers/staging/irda/drivers/via-ircc.c
similarity index 100%
rename from drivers/net/irda/via-ircc.c
rename to drivers/staging/irda/drivers/via-ircc.c
diff --git a/drivers/net/irda/via-ircc.h b/drivers/staging/irda/drivers/via-ircc.h
similarity index 100%
rename from drivers/net/irda/via-ircc.h
rename to drivers/staging/irda/drivers/via-ircc.h
diff --git a/drivers/net/irda/vlsi_ir.c b/drivers/staging/irda/drivers/vlsi_ir.c
similarity index 100%
rename from drivers/net/irda/vlsi_ir.c
rename to drivers/staging/irda/drivers/vlsi_ir.c
diff --git a/drivers/net/irda/vlsi_ir.h b/drivers/staging/irda/drivers/vlsi_ir.h
similarity index 100%
rename from drivers/net/irda/vlsi_ir.h
rename to drivers/staging/irda/drivers/vlsi_ir.h
diff --git a/drivers/net/irda/w83977af.h b/drivers/staging/irda/drivers/w83977af.h
similarity index 100%
rename from drivers/net/irda/w83977af.h
rename to drivers/staging/irda/drivers/w83977af.h
diff --git a/drivers/net/irda/w83977af_ir.c b/drivers/staging/irda/drivers/w83977af_ir.c
similarity index 100%
rename from drivers/net/irda/w83977af_ir.c
rename to drivers/staging/irda/drivers/w83977af_ir.c
diff --git a/drivers/net/irda/w83977af_ir.h b/drivers/staging/irda/drivers/w83977af_ir.h
similarity index 100%
rename from drivers/net/irda/w83977af_ir.h
rename to drivers/staging/irda/drivers/w83977af_ir.h
diff --git a/drivers/staging/irda/net/Kconfig b/drivers/staging/irda/net/Kconfig
index cd775e1ea0e9..6abeae6c666a 100644
--- a/drivers/staging/irda/net/Kconfig
+++ b/drivers/staging/irda/net/Kconfig
@@ -92,5 +92,5 @@ config IRDA_DEBUG
If unsure, say Y (since it makes it easier to find the bugs).
-source "drivers/net/irda/Kconfig"
+source "drivers/staging/irda/drivers/Kconfig"
--
2.14.1
^ permalink raw reply related
* [PATCH 4/4] staging: irda: add a TODO file.
From: Greg Kroah-Hartman @ 2017-08-27 15:03 UTC (permalink / raw)
To: davem, samuel; +Cc: netdev, linux-kernel, devel, Greg Kroah-Hartman
In-Reply-To: <20170827150334.32495-1-gregkh@linuxfoundation.org>
The irda code will be deleted in a future kernel release, so no need to
have anyone do any new work on it.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/staging/irda/TODO | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 drivers/staging/irda/TODO
diff --git a/drivers/staging/irda/TODO b/drivers/staging/irda/TODO
new file mode 100644
index 000000000000..7d98a5cffaff
--- /dev/null
+++ b/drivers/staging/irda/TODO
@@ -0,0 +1,4 @@
+The irda code will be removed soon from the kernel tree as it is old and
+obsolete and broken.
+
+Don't worry about fixing up anything here, it's not needed.
--
2.14.1
^ permalink raw reply related
* [PATCH 3/4] irda: move include/net/irda into staging subdirectory
From: Greg Kroah-Hartman @ 2017-08-27 15:03 UTC (permalink / raw)
To: davem, samuel; +Cc: netdev, linux-kernel, devel, Greg Kroah-Hartman
In-Reply-To: <20170827150334.32495-1-gregkh@linuxfoundation.org>
And finally, move the irda include files into
drivers/staging/irda/include/net/irda. Yes, it's a long path, but it
makes it easy for us to just add a Makefile directory path addition and
all of the net and drivers code "just works".
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/staging/irda/drivers/Makefile | 2 ++
{include => drivers/staging/irda/include}/net/irda/af_irda.h | 0
{include => drivers/staging/irda/include}/net/irda/crc.h | 0
{include => drivers/staging/irda/include}/net/irda/discovery.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_core.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_event.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_lmp.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_param.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_ttp.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_tty.h | 0
{include => drivers/staging/irda/include}/net/irda/ircomm_tty_attach.h | 0
{include => drivers/staging/irda/include}/net/irda/irda.h | 0
{include => drivers/staging/irda/include}/net/irda/irda_device.h | 0
{include => drivers/staging/irda/include}/net/irda/iriap.h | 0
{include => drivers/staging/irda/include}/net/irda/iriap_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irias_object.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_client.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_common.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_eth.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_filter.h | 0
{include => drivers/staging/irda/include}/net/irda/irlan_provider.h | 0
{include => drivers/staging/irda/include}/net/irda/irlap.h | 0
{include => drivers/staging/irda/include}/net/irda/irlap_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irlap_frame.h | 0
{include => drivers/staging/irda/include}/net/irda/irlmp.h | 0
{include => drivers/staging/irda/include}/net/irda/irlmp_event.h | 0
{include => drivers/staging/irda/include}/net/irda/irlmp_frame.h | 0
{include => drivers/staging/irda/include}/net/irda/irmod.h | 0
{include => drivers/staging/irda/include}/net/irda/irqueue.h | 0
{include => drivers/staging/irda/include}/net/irda/irttp.h | 0
{include => drivers/staging/irda/include}/net/irda/parameters.h | 0
{include => drivers/staging/irda/include}/net/irda/qos.h | 0
{include => drivers/staging/irda/include}/net/irda/timer.h | 0
{include => drivers/staging/irda/include}/net/irda/wrapper.h | 0
drivers/staging/irda/net/Makefile | 2 ++
36 files changed, 4 insertions(+)
rename {include => drivers/staging/irda/include}/net/irda/af_irda.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/crc.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/discovery.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_core.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_lmp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_param.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_ttp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_tty.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/ircomm_tty_attach.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irda.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irda_device.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/iriap.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/iriap_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irias_object.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_client.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_common.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_eth.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_filter.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlan_provider.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlap.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlap_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlap_frame.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlmp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlmp_event.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irlmp_frame.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irmod.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irqueue.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/irttp.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/parameters.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/qos.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/timer.h (100%)
rename {include => drivers/staging/irda/include}/net/irda/wrapper.h (100%)
diff --git a/drivers/staging/irda/drivers/Makefile b/drivers/staging/irda/drivers/Makefile
index 4c344433dae5..e2901b135528 100644
--- a/drivers/staging/irda/drivers/Makefile
+++ b/drivers/staging/irda/drivers/Makefile
@@ -5,6 +5,8 @@
# Rewritten to use lists instead of if-statements.
#
+subdir-ccflags-y += -I$(srctree)/drivers/staging/irda/include
+
# FIR drivers
obj-$(CONFIG_USB_IRDA) += irda-usb.o
obj-$(CONFIG_SIGMATEL_FIR) += stir4200.o
diff --git a/include/net/irda/af_irda.h b/drivers/staging/irda/include/net/irda/af_irda.h
similarity index 100%
rename from include/net/irda/af_irda.h
rename to drivers/staging/irda/include/net/irda/af_irda.h
diff --git a/include/net/irda/crc.h b/drivers/staging/irda/include/net/irda/crc.h
similarity index 100%
rename from include/net/irda/crc.h
rename to drivers/staging/irda/include/net/irda/crc.h
diff --git a/include/net/irda/discovery.h b/drivers/staging/irda/include/net/irda/discovery.h
similarity index 100%
rename from include/net/irda/discovery.h
rename to drivers/staging/irda/include/net/irda/discovery.h
diff --git a/include/net/irda/ircomm_core.h b/drivers/staging/irda/include/net/irda/ircomm_core.h
similarity index 100%
rename from include/net/irda/ircomm_core.h
rename to drivers/staging/irda/include/net/irda/ircomm_core.h
diff --git a/include/net/irda/ircomm_event.h b/drivers/staging/irda/include/net/irda/ircomm_event.h
similarity index 100%
rename from include/net/irda/ircomm_event.h
rename to drivers/staging/irda/include/net/irda/ircomm_event.h
diff --git a/include/net/irda/ircomm_lmp.h b/drivers/staging/irda/include/net/irda/ircomm_lmp.h
similarity index 100%
rename from include/net/irda/ircomm_lmp.h
rename to drivers/staging/irda/include/net/irda/ircomm_lmp.h
diff --git a/include/net/irda/ircomm_param.h b/drivers/staging/irda/include/net/irda/ircomm_param.h
similarity index 100%
rename from include/net/irda/ircomm_param.h
rename to drivers/staging/irda/include/net/irda/ircomm_param.h
diff --git a/include/net/irda/ircomm_ttp.h b/drivers/staging/irda/include/net/irda/ircomm_ttp.h
similarity index 100%
rename from include/net/irda/ircomm_ttp.h
rename to drivers/staging/irda/include/net/irda/ircomm_ttp.h
diff --git a/include/net/irda/ircomm_tty.h b/drivers/staging/irda/include/net/irda/ircomm_tty.h
similarity index 100%
rename from include/net/irda/ircomm_tty.h
rename to drivers/staging/irda/include/net/irda/ircomm_tty.h
diff --git a/include/net/irda/ircomm_tty_attach.h b/drivers/staging/irda/include/net/irda/ircomm_tty_attach.h
similarity index 100%
rename from include/net/irda/ircomm_tty_attach.h
rename to drivers/staging/irda/include/net/irda/ircomm_tty_attach.h
diff --git a/include/net/irda/irda.h b/drivers/staging/irda/include/net/irda/irda.h
similarity index 100%
rename from include/net/irda/irda.h
rename to drivers/staging/irda/include/net/irda/irda.h
diff --git a/include/net/irda/irda_device.h b/drivers/staging/irda/include/net/irda/irda_device.h
similarity index 100%
rename from include/net/irda/irda_device.h
rename to drivers/staging/irda/include/net/irda/irda_device.h
diff --git a/include/net/irda/iriap.h b/drivers/staging/irda/include/net/irda/iriap.h
similarity index 100%
rename from include/net/irda/iriap.h
rename to drivers/staging/irda/include/net/irda/iriap.h
diff --git a/include/net/irda/iriap_event.h b/drivers/staging/irda/include/net/irda/iriap_event.h
similarity index 100%
rename from include/net/irda/iriap_event.h
rename to drivers/staging/irda/include/net/irda/iriap_event.h
diff --git a/include/net/irda/irias_object.h b/drivers/staging/irda/include/net/irda/irias_object.h
similarity index 100%
rename from include/net/irda/irias_object.h
rename to drivers/staging/irda/include/net/irda/irias_object.h
diff --git a/include/net/irda/irlan_client.h b/drivers/staging/irda/include/net/irda/irlan_client.h
similarity index 100%
rename from include/net/irda/irlan_client.h
rename to drivers/staging/irda/include/net/irda/irlan_client.h
diff --git a/include/net/irda/irlan_common.h b/drivers/staging/irda/include/net/irda/irlan_common.h
similarity index 100%
rename from include/net/irda/irlan_common.h
rename to drivers/staging/irda/include/net/irda/irlan_common.h
diff --git a/include/net/irda/irlan_eth.h b/drivers/staging/irda/include/net/irda/irlan_eth.h
similarity index 100%
rename from include/net/irda/irlan_eth.h
rename to drivers/staging/irda/include/net/irda/irlan_eth.h
diff --git a/include/net/irda/irlan_event.h b/drivers/staging/irda/include/net/irda/irlan_event.h
similarity index 100%
rename from include/net/irda/irlan_event.h
rename to drivers/staging/irda/include/net/irda/irlan_event.h
diff --git a/include/net/irda/irlan_filter.h b/drivers/staging/irda/include/net/irda/irlan_filter.h
similarity index 100%
rename from include/net/irda/irlan_filter.h
rename to drivers/staging/irda/include/net/irda/irlan_filter.h
diff --git a/include/net/irda/irlan_provider.h b/drivers/staging/irda/include/net/irda/irlan_provider.h
similarity index 100%
rename from include/net/irda/irlan_provider.h
rename to drivers/staging/irda/include/net/irda/irlan_provider.h
diff --git a/include/net/irda/irlap.h b/drivers/staging/irda/include/net/irda/irlap.h
similarity index 100%
rename from include/net/irda/irlap.h
rename to drivers/staging/irda/include/net/irda/irlap.h
diff --git a/include/net/irda/irlap_event.h b/drivers/staging/irda/include/net/irda/irlap_event.h
similarity index 100%
rename from include/net/irda/irlap_event.h
rename to drivers/staging/irda/include/net/irda/irlap_event.h
diff --git a/include/net/irda/irlap_frame.h b/drivers/staging/irda/include/net/irda/irlap_frame.h
similarity index 100%
rename from include/net/irda/irlap_frame.h
rename to drivers/staging/irda/include/net/irda/irlap_frame.h
diff --git a/include/net/irda/irlmp.h b/drivers/staging/irda/include/net/irda/irlmp.h
similarity index 100%
rename from include/net/irda/irlmp.h
rename to drivers/staging/irda/include/net/irda/irlmp.h
diff --git a/include/net/irda/irlmp_event.h b/drivers/staging/irda/include/net/irda/irlmp_event.h
similarity index 100%
rename from include/net/irda/irlmp_event.h
rename to drivers/staging/irda/include/net/irda/irlmp_event.h
diff --git a/include/net/irda/irlmp_frame.h b/drivers/staging/irda/include/net/irda/irlmp_frame.h
similarity index 100%
rename from include/net/irda/irlmp_frame.h
rename to drivers/staging/irda/include/net/irda/irlmp_frame.h
diff --git a/include/net/irda/irmod.h b/drivers/staging/irda/include/net/irda/irmod.h
similarity index 100%
rename from include/net/irda/irmod.h
rename to drivers/staging/irda/include/net/irda/irmod.h
diff --git a/include/net/irda/irqueue.h b/drivers/staging/irda/include/net/irda/irqueue.h
similarity index 100%
rename from include/net/irda/irqueue.h
rename to drivers/staging/irda/include/net/irda/irqueue.h
diff --git a/include/net/irda/irttp.h b/drivers/staging/irda/include/net/irda/irttp.h
similarity index 100%
rename from include/net/irda/irttp.h
rename to drivers/staging/irda/include/net/irda/irttp.h
diff --git a/include/net/irda/parameters.h b/drivers/staging/irda/include/net/irda/parameters.h
similarity index 100%
rename from include/net/irda/parameters.h
rename to drivers/staging/irda/include/net/irda/parameters.h
diff --git a/include/net/irda/qos.h b/drivers/staging/irda/include/net/irda/qos.h
similarity index 100%
rename from include/net/irda/qos.h
rename to drivers/staging/irda/include/net/irda/qos.h
diff --git a/include/net/irda/timer.h b/drivers/staging/irda/include/net/irda/timer.h
similarity index 100%
rename from include/net/irda/timer.h
rename to drivers/staging/irda/include/net/irda/timer.h
diff --git a/include/net/irda/wrapper.h b/drivers/staging/irda/include/net/irda/wrapper.h
similarity index 100%
rename from include/net/irda/wrapper.h
rename to drivers/staging/irda/include/net/irda/wrapper.h
diff --git a/drivers/staging/irda/net/Makefile b/drivers/staging/irda/net/Makefile
index 187f6c563a4b..bd1a635b88cf 100644
--- a/drivers/staging/irda/net/Makefile
+++ b/drivers/staging/irda/net/Makefile
@@ -2,6 +2,8 @@
# Makefile for the Linux IrDA protocol layer.
#
+subdir-ccflags-y += -I$(srctree)/drivers/staging/irda/include
+
obj-$(CONFIG_IRDA) += irda.o
obj-$(CONFIG_IRLAN) += irlan/
obj-$(CONFIG_IRNET) += irnet/
--
2.14.1
^ permalink raw reply related
* Re: [PATCH 0/4] irda: move it to drivers/staging so we can delete it
From: Joe Perches @ 2017-08-27 15:35 UTC (permalink / raw)
To: Greg Kroah-Hartman, davem, samuel; +Cc: netdev, linux-kernel, devel
In-Reply-To: <20170827150334.32495-1-gregkh@linuxfoundation.org>
On Sun, 2017-08-27 at 17:03 +0200, Greg Kroah-Hartman wrote:
> The IRDA code has long been obsolete and broken. So, to keep people
> from trying to use it, and to prevent people from having to maintain it,
> let's move it to drivers/staging/ so that we can delete it entirely from
> the kernel in a few releases.
MAINTAINERS should be updated as well.
It'd probably be nice to try to get an email to
the irda mailing list too if it still works.
^ permalink raw reply
* Re: [PATCH 0/4] irda: move it to drivers/staging so we can delete it
From: Greg Kroah-Hartman @ 2017-08-27 16:13 UTC (permalink / raw)
To: Joe Perches; +Cc: devel, netdev, samuel, davem, linux-kernel
In-Reply-To: <1503848143.12569.48.camel@perches.com>
On Sun, Aug 27, 2017 at 08:35:43AM -0700, Joe Perches wrote:
> On Sun, 2017-08-27 at 17:03 +0200, Greg Kroah-Hartman wrote:
> > The IRDA code has long been obsolete and broken. So, to keep people
> > from trying to use it, and to prevent people from having to maintain it,
> > let's move it to drivers/staging/ so that we can delete it entirely from
> > the kernel in a few releases.
>
> MAINTAINERS should be updated as well.
>
> It'd probably be nice to try to get an email to
> the irda mailing list too if it still works.
As get_maintainer.pl didn't show it, odds are it doesn't...
^ permalink raw reply
* Re: [PATCH 0/4] irda: move it to drivers/staging so we can delete it
From: Joe Perches @ 2017-08-27 16:19 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: devel, netdev, samuel, davem, linux-kernel
In-Reply-To: <20170827161307.GA3528@kroah.com>
On Sun, 2017-08-27 at 18:13 +0200, Greg Kroah-Hartman wrote:
> On Sun, Aug 27, 2017 at 08:35:43AM -0700, Joe Perches wrote:
> > On Sun, 2017-08-27 at 17:03 +0200, Greg Kroah-Hartman wrote:
> > > The IRDA code has long been obsolete and broken. So, to keep people
> > > from trying to use it, and to prevent people from having to maintain it,
> > > let's move it to drivers/staging/ so that we can delete it entirely from
> > > the kernel in a few releases.
> >
> >
> > MAINTAINERS should be updated as well.
> >
> > It'd probably be nice to try to get an email to
> > the irda mailing list too if it still works.
>
> As get_maintainer.pl didn't show it, odds are it doesn't...
get_maintainer doesn't show it because it's subscriber-only.
If you want get_maintainer to show it, add -s
$ ./scripts/get_maintainer.pl -s -f net/irda/
Samuel Ortiz <samuel@sortiz.org> (maintainer:IRDA SUBSYSTEM)
"David S. Miller" <davem@davemloft.net> (maintainer:NETWORKING [GENERAL])
irda-users@lists.sourceforge.net (subscriber list:IRDA SUBSYSTEM)
netdev@vger.kernel.org (open list:IRDA SUBSYSTEM)
linux-kernel@vger.kernel.org (open list)
^ permalink raw reply
* Re: [PATCH] DSA support for Micrel KSZ8895
From: Andrew Lunn @ 2017-08-27 16:31 UTC (permalink / raw)
To: Pavel Machek
Cc: Woojung.Huh, nathan.leigh.conrad, vivien.didelot, f.fainelli,
netdev, linux-kernel, Tristram.Ha
In-Reply-To: <20170827123658.GA727@amd>
> +/**
> + * sw_r_phy - read data from PHY register
> + * @sw: The switch instance.
> + * @phy: PHY address to read.
> + * @reg: PHY register to read.
> + * @val: Buffer to store the read data.
> + *
> + * This routine reads data from the PHY register.
> + */
> +static void sw_r_phy(struct ksz_device *sw, u16 phy, u16 reg, u16 *val)
> +{
> + u8 ctrl;
> + u8 restart;
> + u8 link;
> + u8 speed;
> + u8 force;
> + u8 p = phy;
> + u16 data = 0;
> +
> + switch (reg) {
> + case PHY_REG_CTRL:
> + ksz_pread8(sw, p, P_LOCAL_CTRL, &ctrl);
> + ksz_pread8(sw, p, P_NEG_RESTART_CTRL, &restart);
> + ksz_pread8(sw, p, P_SPEED_STATUS, &speed);
> + ksz_pread8(sw, p, P_FORCE_CTRL, &force);
> + if (restart & PORT_PHY_LOOPBACK)
> + data |= PHY_LOOPBACK;
> + if (force & PORT_FORCE_100_MBIT)
> + data |= PHY_SPEED_100MBIT;
> + if (!(force & PORT_AUTO_NEG_DISABLE))
> + data |= PHY_AUTO_NEG_ENABLE;
> + if (restart & PORT_POWER_DOWN)
> + data |= PHY_POWER_DOWN;
> + if (restart & PORT_AUTO_NEG_RESTART)
> + data |= PHY_AUTO_NEG_RESTART;
> + if (force & PORT_FORCE_FULL_DUPLEX)
> + data |= PHY_FULL_DUPLEX;
> + if (speed & PORT_HP_MDIX)
> + data |= PHY_HP_MDIX;
> + if (restart & PORT_FORCE_MDIX)
> + data |= PHY_FORCE_MDIX;
> + if (restart & PORT_AUTO_MDIX_DISABLE)
> + data |= PHY_AUTO_MDIX_DISABLE;
> + if (restart & PORT_TX_DISABLE)
> + data |= PHY_TRANSMIT_DISABLE;
> + if (restart & PORT_LED_OFF)
> + data |= PHY_LED_DISABLE;
> + break;
> + case PHY_REG_STATUS:
> + ksz_pread8(sw, p, P_LINK_STATUS, &link);
> + ksz_pread8(sw, p, P_SPEED_STATUS, &speed);
> + data = PHY_100BTX_FD_CAPABLE |
> + PHY_100BTX_CAPABLE |
> + PHY_10BT_FD_CAPABLE |
> + PHY_10BT_CAPABLE |
> + PHY_AUTO_NEG_CAPABLE;
> + if (link & PORT_AUTO_NEG_COMPLETE)
> + data |= PHY_AUTO_NEG_ACKNOWLEDGE;
> + if (link & PORT_STAT_LINK_GOOD)
> + data |= PHY_LINK_STATUS;
> + break;
> + case PHY_REG_ID_1:
> + data = KSZ8895_ID_HI;
> + break;
> + case PHY_REG_ID_2:
> + data = KSZ8895_ID_LO;
> + break;
According to the datasheet, the PHY has the normal ID registers,
which have the value 0x0022, 0x1450. So it should be possible to have
a standard PHY driver in drivers/net/phy.
In fact, the IDs suggest it is a micrel phy, and 1430, 1435 are
already supported. So it could be you only need minor modifications to
the micrel.c.
Andrew
^ permalink raw reply
* Re: [PATCH] DSA support for Micrel KSZ8895
From: Andrew Lunn @ 2017-08-27 16:44 UTC (permalink / raw)
To: Pavel Machek
Cc: Woojung.Huh, nathan.leigh.conrad, vivien.didelot, f.fainelli,
netdev, linux-kernel, Tristram.Ha
In-Reply-To: <20170827123658.GA727@amd>
> No, tag_ksz part probably is not acceptable. Do you see solution
> better than just copying it into tag_ksz1 file?
How about something like this, which needs further work to actually
compile, but should give you the idea.
Andrew
index 99e38af85fc5..843e77b7c270 100644
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
@@ -49,8 +49,11 @@ const struct dsa_device_ops *dsa_device_ops[DSA_TAG_LAST] = {
#ifdef CONFIG_NET_DSA_TAG_EDSA
[DSA_TAG_PROTO_EDSA] = &edsa_netdev_ops,
#endif
-#ifdef CONFIG_NET_DSA_TAG_KSZ
- [DSA_TAG_PROTO_KSZ] = &ksz_netdev_ops,
+#ifdef CONFIG_NET_DSA_TAG_KSZ_8K
+ [DSA_TAG_PROTO_KSZ8K] = &ksz8k_netdev_ops,
+#endif
+#ifdef CONFIG_NET_DSA_TAG_KSZ_9K
+ [DSA_TAG_PROTO_KSZ9K] = &ksz9k_netdev_ops,
#endif
#ifdef CONFIG_NET_DSA_TAG_LAN9303
[DSA_TAG_PROTO_LAN9303] = &lan9303_netdev_ops,
diff --git a/net/dsa/tag_ksz.c b/net/dsa/tag_ksz.c
index de66ca8e6201..398b833889f1 100644
--- a/net/dsa/tag_ksz.c
+++ b/net/dsa/tag_ksz.c
@@ -35,6 +35,9 @@
static struct sk_buff *ksz_xmit(struct sk_buff *skb, struct net_device *dev)
{
struct dsa_slave_priv *p = netdev_priv(dev);
+ struct dsa_port *dp = p->dp;
+ struct dsa_switch *ds = dp->ds;
+ struct dsa_switch_tree *dst = ds->dst;
struct sk_buff *nskb;
int padlen;
u8 *tag;
@@ -69,8 +72,14 @@ static struct sk_buff *ksz_xmit(struct sk_buff *skb, struct net_device *dev)
}
tag = skb_put(nskb, KSZ_INGRESS_TAG_LEN);
- tag[0] = 0;
- tag[1] = 1 << p->dp->index; /* destination port */
+ if (dst->tag_ops == ksz8k_netdev_ops) {
+ tag[0] = 1 << p->dp->index; /* destination port */0;
+ tag[1] = 0;
+ }
+
+ if (dst->tag_ops == ksz9k_netdev_ops) {
+ tag[0] = 0;
+ tag[1] = 1 << p->dp->index; /* destination port */
return nskb;
}
@@ -98,7 +107,12 @@ static struct sk_buff *ksz_rcv(struct sk_buff *skb, struct net_device *dev,
return skb;
}
-const struct dsa_device_ops ksz_netdev_ops = {
+const struct dsa_device_ops ksz8k_netdev_ops = {
+ .xmit = ksz_xmit,
+ .rcv = ksz_rcv,
+};
+
+const struct dsa_device_ops ksz9k_netdev_ops = {
.xmit = ksz_xmit,
.rcv = ksz_rcv,
};
^ permalink raw reply related
* Re: [PATCH 0/4] irda: move it to drivers/staging so we can delete it
From: Greg Kroah-Hartman @ 2017-08-27 16:53 UTC (permalink / raw)
To: Joe Perches; +Cc: devel, netdev, samuel, davem, linux-kernel
In-Reply-To: <1503850759.12569.50.camel@perches.com>
On Sun, Aug 27, 2017 at 09:19:19AM -0700, Joe Perches wrote:
> On Sun, 2017-08-27 at 18:13 +0200, Greg Kroah-Hartman wrote:
> > On Sun, Aug 27, 2017 at 08:35:43AM -0700, Joe Perches wrote:
> > > On Sun, 2017-08-27 at 17:03 +0200, Greg Kroah-Hartman wrote:
> > > > The IRDA code has long been obsolete and broken. So, to keep people
> > > > from trying to use it, and to prevent people from having to maintain it,
> > > > let's move it to drivers/staging/ so that we can delete it entirely from
> > > > the kernel in a few releases.
> > >
> > >
> > > MAINTAINERS should be updated as well.
> > >
> > > It'd probably be nice to try to get an email to
> > > the irda mailing list too if it still works.
> >
> > As get_maintainer.pl didn't show it, odds are it doesn't...
>
> get_maintainer doesn't show it because it's subscriber-only.
> If you want get_maintainer to show it, add -s
>
> $ ./scripts/get_maintainer.pl -s -f net/irda/
> Samuel Ortiz <samuel@sortiz.org> (maintainer:IRDA SUBSYSTEM)
> "David S. Miller" <davem@davemloft.net> (maintainer:NETWORKING [GENERAL])
> irda-users@lists.sourceforge.net (subscriber list:IRDA SUBSYSTEM)
> netdev@vger.kernel.org (open list:IRDA SUBSYSTEM)
> linux-kernel@vger.kernel.org (open list)
Sorry, am not going to subscribe to a random list just to send patches
that delete the subsystem :)
netdev@ should be all that is needed here anyway...
thanks,
greg k-h
^ permalink raw reply
* Re: [PATCH] DSA support for Micrel KSZ8895
From: Florian Fainelli @ 2017-08-27 16:56 UTC (permalink / raw)
To: Pavel Machek, Woojung.Huh, nathan.leigh.conrad
Cc: vivien.didelot, netdev, linux-kernel, Tristram.Ha, andrew, pavel
In-Reply-To: <20170827123658.GA727@amd>
On August 27, 2017 5:36:58 AM PDT, Pavel Machek <pavel@denx.de> wrote:
>Hi!
>
>So I fought with the driver a bit more, and now I have something that
>kind-of-works.
>
>"great great hack" belows worries me.
>
>Yeah, disabled code needs to be removed before merge.
>
>No, tag_ksz part probably is not acceptable. Do you see solution
>better than just copying it into tag_ksz1 file?
You could have all Micrel tag implementations live under net/dsa/tag_ksz.c and have e.g: DSA_TAG_PROTO_KSZ for the current (newer) switches and DSA_TAG_PROTO_KSZ_LEGACY (or any other name) for the older switches and you would provide two sets of function pointers depending on which protocol is requested by the switch.
Considering the minor difference needed in tagging here, it might be acceptable to actually keep the current functions and just have the xmit() call check what get_tag_protocol returns and use word 1 or 0 based on that. Even though that's a fast path it shouldn't hurt performance too much. If it does, we can always copy the tagging protocol into dsa_slave_priv so you have a fast access to it.
>
>Any more comments, etc?
The MII emulation bits are interesting, was it not sufficient if you implemented phy_read and phy_write operations that perform the necessary internal PHY accesses or maybe you don't get access to standard MII registers? b53 does such a thing and we merely just need to do a simple shift to access the MII register number, thus avoiding the translation.
>
>Help would be welcome.
I concur with Andrew, try to get a patch series, even an RFC one together so we can review things individually.
How functional is your driver so far? I'd say the basic stuff to get working: counters (debugging), link management (auto-negotiation, forced, etc.) and basic bridging: all ports separate by default and working port to port switching when brought together in a bridge. VLAN, FDB, MDB, other ethtool goodies can be added later on.
--
Florian
^ permalink raw reply
* [PATCH V2 net-next] net-next/hinic: Fix MTU limitation
From: Aviad Krawczyk @ 2017-08-27 17:20 UTC (permalink / raw)
To: davem; +Cc: linux-kernel, netdev, zhaochen6, andrew, Aviad Krawczyk
Fix the hw MTU limitation by setting max_mtu
Signed-off-by: Aviad Krawczyk <aviad.krawczyk@huawei.com>
Signed-off-by: Zhao Chen <zhaochen6@huawei.com>
---
drivers/net/ethernet/huawei/hinic/hinic_main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_main.c b/drivers/net/ethernet/huawei/hinic/hinic_main.c
index ae7ad48..eb53bd9 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_main.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_main.c
@@ -919,6 +919,7 @@ static int nic_dev_init(struct pci_dev *pdev)
netdev->netdev_ops = &hinic_netdev_ops;
netdev->ethtool_ops = &hinic_ethtool_ops;
+ netdev->max_mtu = ETH_MAX_MTU;
nic_dev = netdev_priv(netdev);
nic_dev->netdev = netdev;
--
1.9.1
^ permalink raw reply related
* [PATCH net-next] net-next/hinic: fix comparison of a uint16_t type with -1
From: Aviad Krawczyk @ 2017-08-27 17:35 UTC (permalink / raw)
To: davem
Cc: linux-kernel, netdev, zhaochen6, colin.king, dan.carpenter,
Aviad Krawczyk
Remove the search for index of constant buffer size
Signed-off-by: Aviad Krawczyk <aviad.krawczyk@huawei.com>
Signed-off-by: Zhao Chen <zhaochen6@huawei.com>
---
drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c | 37 +-----------------------
drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h | 21 ++++++++++++++
2 files changed, 22 insertions(+), 36 deletions(-)
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
index 09dec6d..79b5674 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_dev.c
@@ -69,31 +69,6 @@ struct hinic_dev_cap {
u8 rsvd3[208];
};
-struct rx_buf_sz {
- int idx;
- size_t sz;
-};
-
-static struct rx_buf_sz rx_buf_sz_table[] = {
- {0, 32},
- {1, 64},
- {2, 96},
- {3, 128},
- {4, 192},
- {5, 256},
- {6, 384},
- {7, 512},
- {8, 768},
- {9, 1024},
- {10, 1536},
- {11, 2048},
- {12, 3072},
- {13, 4096},
- {14, 8192},
- {15, 16384},
- {-1, -1},
-};
-
/**
* get_capability - convert device capabilities to NIC capabilities
* @hwdev: the HW device to set and convert device capabilities for
@@ -330,7 +305,6 @@ static int set_hw_ioctxt(struct hinic_hwdev *hwdev, unsigned int rq_depth,
struct hinic_cmd_hw_ioctxt hw_ioctxt;
struct pci_dev *pdev = hwif->pdev;
struct hinic_pfhwdev *pfhwdev;
- int i;
if (!HINIC_IS_PF(hwif) && !HINIC_IS_PPF(hwif)) {
dev_err(&pdev->dev, "Unsupported PCI Function type\n");
@@ -344,16 +318,7 @@ static int set_hw_ioctxt(struct hinic_hwdev *hwdev, unsigned int rq_depth,
hw_ioctxt.rq_depth = ilog2(rq_depth);
- for (i = 0; ; i++) {
- if ((rx_buf_sz_table[i].sz == HINIC_RX_BUF_SZ) ||
- (rx_buf_sz_table[i].sz == -1)) {
- hw_ioctxt.rx_buf_sz_idx = rx_buf_sz_table[i].idx;
- break;
- }
- }
-
- if (hw_ioctxt.rx_buf_sz_idx == -1)
- return -EINVAL;
+ hw_ioctxt.rx_buf_sz_idx = HINIC_RX_BUF_SZ_IDX;
hw_ioctxt.sq_depth = ilog2(sq_depth);
diff --git a/drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h b/drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h
index e642a8a..df729a1 100644
--- a/drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h
+++ b/drivers/net/ethernet/huawei/hinic/hinic_hw_qp.h
@@ -53,7 +53,9 @@
#define HINIC_SQ_DEPTH SZ_4K
#define HINIC_RQ_DEPTH SZ_4K
+/* In any change to HINIC_RX_BUF_SZ, HINIC_RX_BUF_SZ_IDX must be changed */
#define HINIC_RX_BUF_SZ 2048
+#define HINIC_RX_BUF_SZ_IDX HINIC_RX_BUF_SZ_2048_IDX
#define HINIC_MIN_TX_WQE_SIZE(wq) \
ALIGN(HINIC_SQ_WQE_SIZE(1), (wq)->wqebb_size)
@@ -61,6 +63,25 @@
#define HINIC_MIN_TX_NUM_WQEBBS(sq) \
(HINIC_MIN_TX_WQE_SIZE((sq)->wq) / (sq)->wq->wqebb_size)
+enum hinic_rx_buf_sz_idx {
+ HINIC_RX_BUF_SZ_32_IDX,
+ HINIC_RX_BUF_SZ_64_IDX,
+ HINIC_RX_BUF_SZ_96_IDX,
+ HINIC_RX_BUF_SZ_128_IDX,
+ HINIC_RX_BUF_SZ_192_IDX,
+ HINIC_RX_BUF_SZ_256_IDX,
+ HINIC_RX_BUF_SZ_384_IDX,
+ HINIC_RX_BUF_SZ_512_IDX,
+ HINIC_RX_BUF_SZ_768_IDX,
+ HINIC_RX_BUF_SZ_1024_IDX,
+ HINIC_RX_BUF_SZ_1536_IDX,
+ HINIC_RX_BUF_SZ_2048_IDX,
+ HINIC_RX_BUF_SZ_3072_IDX,
+ HINIC_RX_BUF_SZ_4096_IDX,
+ HINIC_RX_BUF_SZ_8192_IDX,
+ HINIC_RX_BUF_SZ_16384_IDX,
+};
+
struct hinic_sq {
struct hinic_hwif *hwif;
--
1.9.1
^ permalink raw reply related
* Re: [PATCH V2 net-next] net-next/hinic: Fix MTU limitation
From: Andrew Lunn @ 2017-08-27 19:13 UTC (permalink / raw)
To: Aviad Krawczyk; +Cc: davem, linux-kernel, netdev, zhaochen6
In-Reply-To: <1503854426-42046-1-git-send-email-aviad.krawczyk@huawei.com>
On Mon, Aug 28, 2017 at 01:20:26AM +0800, Aviad Krawczyk wrote:
> Fix the hw MTU limitation by setting max_mtu
>
> Signed-off-by: Aviad Krawczyk <aviad.krawczyk@huawei.com>
> Signed-off-by: Zhao Chen <zhaochen6@huawei.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply
* [PATCH] connector: Delete an error message for a failed memory allocation in cn_queue_alloc_callback_entry()
From: SF Markus Elfring @ 2017-08-27 19:25 UTC (permalink / raw)
To: netdev, Evgeniy Polyakov; +Cc: LKML, kernel-janitors
From: Markus Elfring <elfring@users.sourceforge.net>
Date: Sun, 27 Aug 2017 21:18:37 +0200
Omit an extra message for a memory allocation failure in this function.
This issue was detected by using the Coccinelle software.
Signed-off-by: Markus Elfring <elfring@users.sourceforge.net>
---
drivers/connector/cn_queue.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/connector/cn_queue.c b/drivers/connector/cn_queue.c
index 1f8bf054d11c..e4f31d679f02 100644
--- a/drivers/connector/cn_queue.c
+++ b/drivers/connector/cn_queue.c
@@ -40,10 +40,8 @@ cn_queue_alloc_callback_entry(struct cn_queue_dev *dev, const char *name,
struct cn_callback_entry *cbq;
cbq = kzalloc(sizeof(*cbq), GFP_KERNEL);
- if (!cbq) {
- pr_err("Failed to create new callback queue.\n");
+ if (!cbq)
return NULL;
- }
atomic_set(&cbq->refcnt, 1);
--
2.14.1
^ permalink raw reply related
* Re: [PATCH v2 0/2] enable hires timer to timeout datagram socket
From: Vallish Vaidyeshwara @ 2017-08-27 20:47 UTC (permalink / raw)
To: David Miller
Cc: shuah, richardcochran, xiyou.wangcong, netdev, linux-kernel,
eduval, anchalag
In-Reply-To: <20170822.213030.1848111782253505433.davem@davemloft.net>
On Tue, Aug 22, 2017 at 09:30:30PM -0700, David Miller wrote:
> From: Vallish Vaidyeshwara <vallish@amazon.com>
> Date: Wed, 23 Aug 2017 00:10:25 +0000
>
> > I am submitting 2 patch series to enable hires timer to timeout
> > datagram sockets (AF_UNIX & AF_INET domain) and test code to test
> > timeout accuracy on these sockets.
>
> This is not reasonable.
>
> If you want high resolution events with real guarantees, please use
> the kernel interfaces which provide this as explained to you as
> feedback by other reviewers.
>
> I'm not applying this, sorry.
Hello David,
I respect the decision not to upstream this patch series, however I
wanted to provide additional details. Application wanting high
resolution events with real guarantees is not the case, but the case
here is regression in system call behavior:
1) Change in system call behavior:
strace from 4.4 test run of waiting for 180 seconds on datagram socket:
10:25:48.239685 setsockopt(3, SOL_SOCKET, SO_RCVTIMEO, "\264\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
10:25:48.239755 recvmsg(3, 0x7ffd0a3beec0, 0) = -1 EAGAIN (Resource temporarily unavailable)
10:28:48.236989 fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
strace from 4.9 test run of waiting for 180 seconds on datagram socket times out close to 195 seconds:
setsockopt(3, SOL_SOCKET, SO_RCVTIMEO, "\264\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0 <0.000028>
recvmsg(3, 0x7ffd6a2c4380, 0) = -1 EAGAIN (Resource temporarily unavailable) <194.852000>
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0 <0.000018>
This is the change in behavior of system call that is causing our application
to regress on 4.9 kernel. There are events which need to be run on timeouts
and now response time for such timeouts on 4.9 kernel are being triggered
with extended delay of close to 195 seconds as in one of the test runs
shown above.
2) Comparison with MacOS:
I ran the same test on OS X El Capitan version 10.11.6 and the behavior is
consistent with Linux 4.4 Kernel behavior. I have not tested the program on
other flavors of OS like HPUX or AIX or Solaris, but I guess if these OS
implement SO_RCVTIMEO and tested, this behavior will not be different than
Linux 4.4 kernel.
3) Standards Specification:
Opengroups standard does not talk about how quick SO_RCVTIMEO need to respond
for timeouts. However, the standards for select system call do mention that
timeout need to respond quickly. It would be good to restore SO_RCVTIMEO
behavior to 4.4 kernel and have SO_RCVTIMEO be consistent with select timeout.
4) Changing application code:
Any change to application code to accommodate this change of behavior in system
call breaks application migration between 4.4 kernel and 4.9 kernel.
Moreover, making application code change is not feasible in all cases as in
the case where the source code is not available (third party vendor).
Thanks.
-Vallish
^ permalink raw reply
* [PATCH net-next] bridge: fdb add and delete tracepoints
From: Roopa Prabhu @ 2017-08-27 21:33 UTC (permalink / raw)
To: davem; +Cc: netdev, nikolay, bridge
From: Roopa Prabhu <roopa@cumulusnetworks.com>
Tracepoints to trace bridge forwarding database updates.
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
---
include/trace/events/bridge.h | 98 +++++++++++++++++++++++++++++++++++++++++++
net/bridge/br_fdb.c | 7 ++++
net/core/net-traces.c | 6 +++
3 files changed, 111 insertions(+)
create mode 100644 include/trace/events/bridge.h
diff --git a/include/trace/events/bridge.h b/include/trace/events/bridge.h
new file mode 100644
index 0000000..e2d52cf
--- /dev/null
+++ b/include/trace/events/bridge.h
@@ -0,0 +1,98 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM bridge
+
+#if !defined(_TRACE_BRIDGE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_BRIDGE_H
+
+#include <linux/netdevice.h>
+#include <linux/tracepoint.h>
+
+#include "../../../net/bridge/br_private.h"
+
+TRACE_EVENT(br_fdb_add,
+
+ TP_PROTO(struct ndmsg *ndm, struct net_device *dev,
+ const unsigned char *addr, u16 vid, u16 nlh_flags),
+
+ TP_ARGS(ndm, dev, addr, vid, nlh_flags),
+
+ TP_STRUCT__entry(
+ __field(u8, ndm_flags)
+ __string(dev, dev->name)
+ __array(unsigned char, addr, 6)
+ __field(u16, vid)
+ __field(u16, nlh_flags)
+ ),
+
+ TP_fast_assign(
+ __assign_str(dev, dev->name);
+ memcpy(__entry->addr, addr, 6);
+ __entry->vid = vid;
+ __entry->nlh_flags = nlh_flags;
+ __entry->ndm_flags = ndm->ndm_flags;
+ ),
+
+ TP_printk("dev %s addr %02x:%02x:%02x:%02x:%02x:%02x vid %u nlh_flags %x ndm_flags = %x",
+ __get_str(dev), __entry->addr[0], __entry->addr[1],
+ __entry->addr[2], __entry->addr[3], __entry->addr[4],
+ __entry->addr[5], __entry->vid,
+ __entry->nlh_flags, __entry->ndm_flags)
+);
+
+TRACE_EVENT(br_fdb_external_learn_add,
+
+ TP_PROTO(struct net_bridge *br, struct net_bridge_port *p,
+ const unsigned char *addr, u16 vid),
+
+ TP_ARGS(br, p, addr, vid),
+
+ TP_STRUCT__entry(
+ __string(br_dev, br->dev->name)
+ __string(dev, p->dev->name)
+ __array(unsigned char, addr, 6)
+ __field(u16, vid)
+ ),
+
+ TP_fast_assign(
+ __assign_str(br_dev, br ? br->dev->name : "null");
+ __assign_str(dev, p ? p->dev->name : "null");
+ memcpy(__entry->addr, addr, 6);
+ __entry->vid = vid;
+ ),
+
+ TP_printk("br_dev %s port %s addr %02x:%02x:%02x:%02x:%02x:%02x vid %u",
+ __get_str(br_dev), __get_str(dev), __entry->addr[0],
+ __entry->addr[1], __entry->addr[2], __entry->addr[3],
+ __entry->addr[4], __entry->addr[5], __entry->vid)
+);
+
+TRACE_EVENT(fdb_delete,
+
+ TP_PROTO(struct net_bridge *br, struct net_bridge_fdb_entry *f),
+
+ TP_ARGS(br, f),
+
+ TP_STRUCT__entry(
+ __string(br_dev, br->dev->name)
+ __string(dev, f->dst ? f->dst->dev->name : "null")
+ __array(unsigned char, addr, 6)
+ __field(u16, vid)
+ ),
+
+ TP_fast_assign(
+ __assign_str(br_dev, br ? br->dev->name : "null");
+ __assign_str(dev, f->dst ? f->dst->dev->name : "null");
+ memcpy(__entry->addr, f->addr.addr, 6);
+ __entry->vid = f->vlan_id;
+ ),
+
+ TP_printk("br_dev %s dev %s addr %02x:%02x:%02x:%02x:%02x:%02x vid %u",
+ __get_str(br_dev), __get_str(dev), __entry->addr[0],
+ __entry->addr[1], __entry->addr[2], __entry->addr[3],
+ __entry->addr[4], __entry->addr[5], __entry->vid)
+);
+
+#endif /* _TRACE_BRIDGE_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index a79b648..be5e1da 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -25,6 +25,7 @@
#include <asm/unaligned.h>
#include <linux/if_vlan.h>
#include <net/switchdev.h>
+#include <trace/events/bridge.h>
#include "br_private.h"
static struct kmem_cache *br_fdb_cache __read_mostly;
@@ -171,6 +172,8 @@ static void fdb_del_hw_addr(struct net_bridge *br, const unsigned char *addr)
static void fdb_delete(struct net_bridge *br, struct net_bridge_fdb_entry *f)
{
+ trace_fdb_delete(br, f);
+
if (f->is_static)
fdb_del_hw_addr(br, f->addr.addr);
@@ -870,6 +873,8 @@ int br_fdb_add(struct ndmsg *ndm, struct nlattr *tb[],
struct net_bridge *br = NULL;
int err = 0;
+ trace_br_fdb_add(ndm, dev, addr, vid, nlh_flags);
+
if (!(ndm->ndm_state & (NUD_PERMANENT|NUD_NOARP|NUD_REACHABLE))) {
pr_info("bridge: RTM_NEWNEIGH with invalid state %#x\n", ndm->ndm_state);
return -EINVAL;
@@ -1066,6 +1071,8 @@ int br_fdb_external_learn_add(struct net_bridge *br, struct net_bridge_port *p,
bool modified = false;
int err = 0;
+ trace_br_fdb_external_learn_add(br, p, addr, vid);
+
spin_lock_bh(&br->hash_lock);
head = &br->hash[br_mac_hash(addr, vid)];
diff --git a/net/core/net-traces.c b/net/core/net-traces.c
index 4f1468c..4a0292c 100644
--- a/net/core/net-traces.c
+++ b/net/core/net-traces.c
@@ -37,6 +37,12 @@
#include <trace/events/fib6.h>
EXPORT_TRACEPOINT_SYMBOL_GPL(fib6_table_lookup);
#endif
+#if IS_ENABLED(CONFIG_BRIDGE)
+#include <trace/events/bridge.h>
+EXPORT_TRACEPOINT_SYMBOL_GPL(br_fdb_add);
+EXPORT_TRACEPOINT_SYMBOL_GPL(br_fdb_external_learn_add);
+EXPORT_TRACEPOINT_SYMBOL_GPL(fdb_delete);
+#endif
EXPORT_TRACEPOINT_SYMBOL_GPL(kfree_skb);
--
2.1.4
^ permalink raw reply related
* RE: [PATCH] DSA support for Micrel KSZ8895
From: Woojung.Huh @ 2017-08-27 22:03 UTC (permalink / raw)
To: pavel, nathan.leigh.conrad
Cc: vivien.didelot, f.fainelli, netdev, linux-kernel, Tristram.Ha,
andrew
In-Reply-To: <20170827123658.GA727@amd>
Pavel,
Thanks for update and sorry about email format (due to web-access version)
I'll do review when getting back to office later this week.
- Woojung
________________________________________
From: Pavel Machek [pavel@denx.de]
Sent: Sunday, August 27, 2017 8:36 AM
To: Woojung Huh - C21699; nathan.leigh.conrad@gmail.com
Cc: vivien.didelot@savoirfairelinux.com; f.fainelli@gmail.com; netdev@vger.kernel.org; linux-kernel@vger.kernel.org; Tristram.Ha@micrel.com; andrew@lunn.ch; pavel@denx.de
Subject: [PATCH] DSA support for Micrel KSZ8895
Hi!
So I fought with the driver a bit more, and now I have something that
kind-of-works.
"great great hack" belows worries me.
Yeah, disabled code needs to be removed before merge.
No, tag_ksz part probably is not acceptable. Do you see solution
better than just copying it into tag_ksz1 file?
Any more comments, etc?
Help would be welcome.
^ permalink raw reply
* Re: [PATCH] ARM: dts: rk3228-evb: Fix the compiling error
From: Stephen Rothwell @ 2017-08-27 22:32 UTC (permalink / raw)
To: davem; +Cc: David Wu, netdev
In-Reply-To: <20170822215251.2125440b@canb.auug.org.au>
Hi Dave (Miller),
On Tue, 22 Aug 2017 21:52:51 +1000 Stephen Rothwell <sfr@canb.auug.org.au> wrote:
>
> Thanks.
>
> On Tue, 22 Aug 2017 17:24:25 +0800 David Wu <david.wu@rock-chips.com> wrote:
> >
> > This patch solves the following error:
> > arch/arm/boot/dts/rk3228-evb.dtb: ERROR (phandle_references): Reference to non-existent node or label "phy0"
> >
> > Fixess db40f15b53e4 ("ARM: dts: rk3228-evb: Enable the integrated PHY for gmac")
> > Signed-off-by: David Wu <david.wu@rock-chips.com>
>
> Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Ping?
--
Cheers,
Stephen Rothwell
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox