Re: [openib-general] Re: [PATCH][RFC/v1][4/12] Add InfiniBand SA(Subnet Administration) query support

From: Roland Dreier
Date: Wed Nov 24 2004 - 21:15:09 EST


Greg> No. RCU is covered by a patent that only allows for it to
Greg> be implemented in GPL licensed code. If you want to use RCU
Greg> in non-GPL code, you need to sign a license agreement with
Greg> the holder of the RCU patent.

Not to stir up the flames any further (and this is really a moot point
since I got rid of our use of RCU)...

But given that I could implement the same API as in rcupdate.h as
below without using IBM's patented technique, how does merely using
this API cause code to require a patent license?

Thanks,
Roland

/*
* Copyright (c) 2004 Topspin Communications. All rights reserved.
*
* Usage of the works is permitted provided that this instrument is
* retained with the works, so that any entity that uses the works is
* notified of this instrument.
*
* DISCLAIMER: THE WORKS ARE WITHOUT WARRANTY.
*/

#ifndef MYRCU_H
#define MYRCU_H

struct rcu_head { };

#define rcu_read_lock lock_kernel()
#define rcu_read_unlock unlock_kernel()

#define rcu_dereference(p) (p)
#define rcu_assign_pointer(p,v) do { \
lock_kernel(); \
(p) = (v); \
unlock_kernel(); \
} while (0)

static inline void call_rcu(struct rcu_head *head,
void (*func)(struct rcu_head *head))
{
lock_kernel();
func(head);
unlock_kernel();
}

#endif /* MYRCU_H */
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/