89 Commits
Author SHA1 Message Date
Evgeniy Polyakov a44b56cc69 crypto: hifn - Disable driver when physical size exceeds 32 bits
On Tue, Sep 23, 2008 at 08:06:32PM +0200, Dimitri Puzin ([email protected]) wrote:
> With this patch applied it still doesn't work as expected. The overflow
> messages are gone however syslog shows
> [  120.924266] hifn0: abort: c: 0, s: 1, d: 0, r: 0.
> when doing cryptsetup luksFormat as in original e-mail. At this point
> cryptsetup hangs and can't be killed with -SIGKILL. I've attached
> SysRq-t dump of this condition.

Yes, I was wrong with the patch: HIFN does not support 64-bit addresses
afaics.

Attached patch should not allow HIFN to be registered on 64-bit arch, so
crypto layer will fallback to the software algorithms.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
2008-12-25 11:01:07 +11:00
Evgeniy Polyakov f00a189257 w1: fix slave selection on big-endian systems
During test of the w1-gpio driver i found that in "w1.c:679
w1_slave_found()" the device id is converted to little-endian with
"cpu_to_le64()", but its not converted back to cpu format in "w1_io.c:293
w1_reset_select_slave()".

Based on a patch created by Andreas Hummel.

[[email protected]: remove unneeded cast]
Reported-by: Andreas Hummel <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2008-12-23 15:58:21 -08:00
Evgeniy Polyakov 9ae27e0adb tcp: Fix slab corruption with ipv6 and tcp6fuzz
From: Evgeniy Polyakov <[email protected]>

This fixes a regression added by ec3c0982a2
("[TCP]: TCP_DEFER_ACCEPT updates - process as established")

tcp_v6_do_rcv()->tcp_rcv_established(), the latter goes to step5, where
eventually skb can be freed via tcp_data_queue() (drop: label), then if
check for tcp_defer_accept_check() returns true and thus
tcp_rcv_established() returns -1, which forces tcp_v6_do_rcv() to jump
to reset: label, which in turn will pass through discard: label and free
the same skb again.

Tested by Eric Sesterhenn.

Signed-off-by: David S. Miller <[email protected]>
Acked-By: Patrick McManus <[email protected]>
2008-04-27 15:27:30 -07:00
Evgeniy Polyakov 4b1b366721 connector: convert to single-threaded workqueue
From: Evgeniy Polyakov <[email protected]>

We don't need one cqueue thread for each CPU.  cqueue is used for
receiving userspace datagrams, which are very rare and thus will
happily live with a single queue.

Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2008-03-23 21:51:12 -07:00
Evgeniy Polyakov 18a2354db7 w1: remove unused and confusing variable.
Remvoe variable which actually is not used (except assigning it a value)
and confusing break out of the family checking loop.  Found by Harry Mason.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: Harry J Mason <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2008-02-06 10:41:10 -08:00
Evgeniy Polyakov 41ca28ab2a kref: add kref_set()
This adds kref_set() to the kref api for future use by people who really
know what they are doing with krefs...

From: Evgeniy Polyakov <[email protected]>
Cc: Kay Sievers <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2008-01-24 20:40:05 -08:00
Evgeniy Polyakov a2a6c74d34 w1: decrement slave counter only in ->release() callback
Decrement the slave counter only in ->release() callback instead of both
in ->release() and w1 control.

Patch is based on debug work and preliminary patch made by Henri Laakso.
Henri noticed in debug that this counter becomes negative after w1 slave
device is physically removed.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: Henri Laakso <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2008-01-14 08:52:22 -08:00
Evgeniy Polyakov a1e6ef2f1e [CRYPTO] hifn: Schedule callback invocation to tasklet.
This patch forces HIFN driver to invoke crypto request callbacks from
tasklet (softirq context) instead of hardirq context, since network
stack expects it to be called from bottom halves.

It is done by simply scheduling callback invocation via dedicated
tasklet. Workqueue solution was dropped because of tooo slow
rescheduling performance (7 times slower than tasklet, for mode details
one can check this link:
http://tservice.net.ru/~s0mbre/blog/devel/other/2007_11_09.html).

Driver passed all AES and DES tests in tcryt.c module.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
2008-01-11 08:16:12 +11:00
Evgeniy Polyakov c3041f9c93 [CRYPTO] hifn_795x: Detect weak keys
HIFN driver update to use DES weak key checks (exported in this patch).

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
2008-01-11 08:16:03 +11:00
Evgeniy Polyakov 16d004a2ed [CRYPTO] des: Create header file for common macros
This patch creates include/crypto/des.h for common macros shared between
DES implementations.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
2008-01-11 08:16:02 +11:00
Evgeniy Polyakov f7d0561ea1 [CRYPTO] hifn_795x: HIFN 795x driver
This is a driver for HIFN 795x crypto accelerator chips.

It passed all tests for AES, DES and DES3_EDE except weak test for DES,
since hardware can not determine weak keys.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
2008-01-11 08:16:01 +11:00
Evgeniy Polyakov d31c7b8fa3 [IPV6]: Restore IPv6 when MTU is big enough
Avaid provided test application, so bug got fixed.

IPv6 addrconf removes ipv6 inner device from netdev each time cmu
changes and new value is less than IPV6_MIN_MTU (1280 bytes).
When mtu is changed and new value is greater than IPV6_MIN_MTU,
it does not add ipv6 addresses and inner device bac.

This patch fixes that.

Tested with Avaid's application, which works ok now.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Herbert Xu <[email protected]>
2007-11-30 23:36:08 +11:00
Evgeniy Polyakov 1f305323ff [NETFILTER]: Fix kernel panic with REDIRECT target.
When connection tracking entry (nf_conn) is about to copy itself it can
have some of its extension users (like nat) as being already freed and
thus not required to be copied.

Actually looking at this function I suspect it was copied from
nf_nat_setup_info() and thus bug was introduced.

Report and testing from David <[email protected]>.

[ Patrick McHardy states:

	I now understand whats happening:

	- new connection is allocated without helper
	- connection is REDIRECTed to localhost
	- nf_nat_setup_info adds NAT extension, but doesn't initialize it yet
	- nf_conntrack_alter_reply performs a helper lookup based on the
	   new tuple, finds the SIP helper and allocates a helper extension,
	   causing reallocation because of too little space
	- nf_nat_move_storage is called with the uninitialized nat extension

	So your fix is entirely correct, thanks a lot :)  ]

Signed-off-by: Evgeniy Polyakov <[email protected]>
Acked-by: Patrick McHardy <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2007-11-20 04:27:35 -08:00
Evgeniy Polyakov 7799652557 [NETFILTER]: Fix NULL pointer dereference in nf_nat_move_storage()
Reported by Chuck Ebbert as:

	https://bugzilla.redhat.com/show_bug.cgi?id=259501#c14

This routine is called each time hash should be replaced, nf_conn has
extension list which contains pointers to connection tracking users
(like nat, which is right now the only such user), so when replace takes
place it should copy own extensions. Loop above checks for own
extension, but tries to move higer-layer one, which can lead to above
oops.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2007-11-15 15:52:32 -08:00
Evgeniy Polyakov 4f9f8311a0 [PKT_SCHED]: Fix OOPS when removing devices from a teql queuing discipline
tecl_reset() is called from deactivate and qdisc is set to noop already,
but subsequent teql_xmit does not know about it and dereference private
data as teql qdisc and thus oopses.
not catch it first :)

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2007-11-07 04:09:17 -08:00
Evgeniy Polyakov e7c243c925 [VLAN/BRIDGE]: Fix "skb_pull_rcsum - Fatal exception in interrupt"
I tried to preserve bridging code as it was before, but logic is quite
strange - I think we should free skb on error, since it is already
unshared and thus will just leak.

Herbert Xu states:

> +	if ((skb = skb_share_check(skb, GFP_ATOMIC)) == NULL)
> +		goto out;

If this happens it'll be a double-free on skb since we'll
return NF_DROP which makes the caller free it too.

We could return NF_STOLEN to prevent that but I'm not sure
whether that's correct netfilter semantics.  Patrick, could
you please make a call on this?

Patrick McHardy states:

NF_STOLEN should work fine here.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2007-08-26 18:35:47 -07:00
Evgeniy Polyakov 59d9445e85 w1: fix w1_remove_master_device() searching
In case bus master driver provided bogus value as its private data, search
can be incorrect.  Problem found by Adrian Bunk.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: Adrian Bunk <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-08-22 19:52:46 -07:00
Evgeniy Polyakov 33e44b1588 w1_therm_read_bin: don't call flush_signals()
This can disrupt userspace signal management.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: Roland McGrath <[email protected]>
Cc: Oleg Nesterov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-06-28 11:38:19 -07:00
Evgeniy Polyakov 66c5227ecd sh: trivial build cleanups.
Several errors were spotted during building for custom config (SMP
included). Although SMP still does not compile (no ipi and
__smp_call_function) and does not work, this looks a bit cleaner.
Some other errors obtained via gcc-4.1.0 build.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Paul Mundt <[email protected]>
2007-05-31 13:46:21 +09:00
Evgeniy Polyakov c1f858b763 w1: allow bus master to have reset and byte ops
Signed-off-by: Matt Reimer <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-05-08 11:15:14 -07:00
Evgeniy Polyakov 60ed34be8d W1 printk format warning fix
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2007-05-08 11:15:14 -07:00
Evgeniy Polyakov c4e38f41e3 [IPV4]: Fix rtm_to_ifaddr() error handling.
Return negative error value (embedded in the pointer) instead of
returning NULL.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2007-03-09 13:43:24 -08:00
Evgeniy Polyakov 8469adde59 [PATCH] x86-64: Minor patch for compilation warning in x86_64 signal code
If DEBUG_SIG is enbaled in source code, ia32_signal.c compiles with warning
due to wrong format string.  Attached patch fixes that.  It is quite minor
update, since by default DEBUG_SIG is not enabled and can not be turned on
without code modification.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Andi Kleen <[email protected]>
Cc: Andi Kleen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
2007-02-13 13:26:25 +01:00
Evgeniy Polyakov a240d9f1d8 [CONNECTOR]: Replace delayed work with usual work queue.
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-12-18 01:53:58 -08:00
Evgeniy Polyakov d8172d822f [CONNECTOR]: Fix compilation breakage introduced recently.
Linus has changed work queue structure and has not tested it with
connector compiled in, his changes break the build.

Attached patch fixes compilation error.

Patch is against commit 99f5e97181.

Thanks to Toralf Förster for pointing this out.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-12-17 21:59:24 -08:00
Evgeniy Polyakov 89040b21e7 [PATCH] w1: Fix for kconfig entry typo
Based on patch from Alexander Rigbo <[email protected]>

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-13 09:05:48 -08:00
Evgeniy Polyakov e9d55f9dbc [PATCH] better CONFIG_W1_SLAVE_DS2433_CRC handling
CONFIG_W1_SLAVE_DS2433_CRC can be used directly, there's no reason for the
indirection of defining a different variable in the Makefile.

Signed-off-by: Adrian Bunk <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: Greg KH <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-12-07 08:39:43 -08:00
Evgeniy Polyakov f9b2e97bea [PATCH] w1 kconfig fix
Remove dependency of w1 subsytem from connector, only w1_con must depend on
it.  With attached patch applied to vanilla 2.6.19-git things works fine.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: <[email protected]>
Cc: Greg KH <[email protected]>
Cc: Roman Zippel <[email protected]>
Cc: "Randy.Dunlap" <[email protected]>
Cc: Adrian Bunk <[email protected]>
Acked-by: Jean Delvare <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-10-17 08:18:44 -07:00
Evgeniy Polyakov 897522ea1c [CONNECTOR]: Add userspace example code into Documentation/connector/
I was asked several times to include userspace example code into
Documentation, so if there is no policy against it, consider attached patch
for 2.6.18. This program works with included Documentation/connector/cn_test.c
connector module.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-08-26 18:42:00 -07:00
Evgeniy Polyakov 4e35dea2f2 [PATCH] W1: remove w1 mail list from lm_sensors.
lm_sensors mail list is going to be splitted into separate subdev lists,
so remove w1 from there.

http://lists.lm-sensors.org/pipermail/lm-sensors/2006-June/016507.html

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-07-12 15:38:27 -07:00
Evgeniy Polyakov 30841711c8 [PATCH] w1: clean up W1_CON dependency.
If w1 is not enabled, w1_con should not appear in configuration,
even if no logic is turned on without w1.
W1_CON should depend on W1 also.

Signed-off-by: Randy Dunlap <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:51 -07:00
Evgeniy Polyakov 70d484bff4 [PATCH] W1: possible cleanups
This patch contains the following possible cleanups:
- the following file did't #include the header with the prototypes for
  it's global functions:
  - w1_int.c
- #if 0 the following unused global function:
  - w1_family.c: w1_family_get()
- make the following needlessly global functions static:
  - w1_family.c: __w1_family_put()
  - w1_io.c: w1_delay()
  - w1_io.c: w1_touch_bit()
  - w1_io.c: w1_read_8()
- remove the following unused EXPORT_SYMBOL's:
  - w1_family.c: w1_family_put
  - w1_family.c: w1_family_registered

Signed-off-by: Adrian Bunk <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov 2c5bfdac33 [PATCH] W1: cleanups
Nice cleanup spotted by Adrian Bunk, which was lost due to moving to the
completely new functionality.

Shame-shame-shame on me.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov abd52a1320 [PATCH] w1: Use mutexes instead of semaphores.
Use mutexes instead of semaphores.
Patch tested on x86_64 and i386 with test bus master driver.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov 46e07f6e5e [PATCH] w1: Make w1 connector notifications depend on connector.
Make w1 connector notifications depend on connector.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov bb5427b546 [PATCH] w1: netlink: Mark netlink group 1 as unused.
netlink_w1 was moved to connector.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov b6043fcab4 [PATCH] w1: Move w1-connector definitions into linux/include/connector.h
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov 12003375ac [PATCH] w1: Userspace communication protocol over connector.
There are three types of messages between w1 core and userspace:
1. Events. They are generated each time new master or slave device found
	either due to automatic or requested search.
2. Userspace commands. Includes read/write and search/alarm search comamnds.
3. Replies to userspace commands.

From: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov 81f6075ebc [PATCH] w1: Replace dscore and ds_w1_bridge with ds2490 driver. 2006-06-22 11:22:50 -07:00
Evgeniy Polyakov f522d23961 [PATCH] w1: Added default generic read/write operations.
Special file in each w1 slave device's directory called "rw" is created
each time new slave and no appropriate w1 family is registered.
"rw" file supports read and write operations, which allows to perform
almost any kind of operations. Each logical operation is a transaction
in nature, which can contain several (two or one) low-level operations.
Let's see how one can read EEPROM context:
1. one must write control buffer, i.e. buffer containing command byte
and two byte address. At this step bus is reset and appropriate device
is selected using either W1_SKIP_ROM or W1_MATCH_ROM command.
Then provided control buffer is being written to the wire.
2. reading. This will issue reading eeprom response.

It is possible that between 1. and 2. w1 master thread will reset bus for
searching and slave device will be even removed, but in this case 0xff will
be read, since no device was selected.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-06-22 11:22:50 -07:00
Evgeniy Polyakov d6cc7f1a3b [CONNECTOR]: Initialize subsystem earlier.
Attached patch declares connector init function as subsys_init()
and returns -EAGAIN in case connector is not initialized yet.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-06-19 23:42:53 -07:00
Evgeniy Polyakov 674a396c6d [PATCH] w1: use kthread api.
This patch removes old-style kernel thread initialization
and changes w1 to use kthread api.
It is based on Christoph Hellwig <[email protected]> work.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-03-23 17:28:13 -08:00
Evgeniy Polyakov baf12ae29a [PATCH] W1: Add the DS2482 I2C-to-w1 bridge driver.
Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-03-23 17:28:12 -08:00
Evgeniy Polyakov bd529cfb40 [PATCH] W1: Move w1 bus master code into 'w1/masters' and move w1 slave code into 'w1/slaves'
Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-03-23 17:28:11 -08:00
Evgeniy Polyakov ccd6994000 [PATCH] W1: Change the type 'unsigned long' member of 'struct w1_bus_master' to 'void *'.
Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2006-03-23 17:28:11 -08:00
Evgeniy Polyakov b191ba0d59 [CONNECTOR]: Use netlink_has_listeners() to avoind unnecessary allocations.
Return -ESRCH from cn_netlink_send() when there are not listeners,
just as it could be done by netlink_broadcast().  Propagate
netlink_broadcast() error back to the caller.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-03-20 22:21:40 -08:00
Evgeniy Polyakov 54608b7099 [PKT_SCHED] ematch: Remove bogus include.
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-01-11 16:32:16 -08:00
Evgeniy Polyakov c3f343e4d7 [NET]: Fix diverter build.
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2006-01-11 16:32:15 -08:00
Evgeniy Polyakov 15b2fe3931 [PATCH] UFS: inode->i_sem is not released in error path
Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2006-01-08 20:14:04 -08:00
Evgeniy Polyakov f3e2628bed [MMC] mmci: kunmap_atomic() unmaps virtual address, not page
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Russell King <[email protected]>
2006-01-05 10:31:23 +00:00
Evgeniy Polyakov 2d1f87a728 [PATCH] Dallas's 1-wire bus compile error
drivers/built-in.o: In function `w1_alloc_dev': undefined reference to `netlink_kernel_create'
drivers/built-in.o: In function `w1_alloc_dev': undefined reference to `sock_release'

Signed-off-by: Evgeniy Polyakov <[email protected]>
Cc: Greg KH <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2005-10-14 17:10:13 -07:00
Evgeniy Polyakov eb0d604114 [CONNECTOR]: Update documentation to match reality.
Updated documentation to reflect 2.6.14 netlink changes
about socket options, multicasting and group number.
Please concider for 2.6.14.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2005-10-13 14:42:04 -07:00
Evgeniy Polyakov acd042bb2d [CONNECTOR]: async connector mode.
If input message rate from userspace is too high, do not drop them,
but try to deliver using work queue allocation.

Failing there is some kind of congestion control.

It also removes warn_on on this condition, which scares people.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2005-09-26 15:06:50 -07:00
Evgeniy Polyakov 877599fdef [PATCH] crc16: remove w1 specific comments.
Remove w1 comments from crc16.h and move
specific constants into w1_ds2433.c where they are used.
Replace %d with %zd.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-12 12:35:17 -07:00
Evgeniy Polyakov f24ec7f6c6 [PATCH] crc16: remove w1 specific comments.
Remove w1 comments from crc16.h and move specific constants into
w1_ds2433.c where they are used.

Replace %d with %zd.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2005-09-12 08:48:08 -07:00
Evgeniy Polyakov 7672d0b544 [NET]: Add netlink connector.
Kernel connector - new userspace <-> kernel space easy to use
communication module which implements easy to use bidirectional
message bus using netlink as it's backend.  Connector was created to
eliminate complex skb handling both in send and receive message bus
direction.

Connector driver adds possibility to connect various agents using as
one of it's backends netlink based network.  One must register
callback and identifier. When driver receives special netlink message
with appropriate identifier, appropriate callback will be called.

From the userspace point of view it's quite straightforward:

	socket();
	bind();
	send();
	recv();

But if kernelspace want to use full power of such connections, driver
writer must create special sockets, must know about struct sk_buff
handling...  Connector allows any kernelspace agents to use netlink
based networking for inter-process communication in a significantly
easier way:

int cn_add_callback(struct cb_id *id, char *name, void (*callback) (void *));
void cn_netlink_send(struct cn_msg *msg, u32 __groups, int gfp_mask);

struct cb_id
{
	__u32			idx;
	__u32			val;
};

idx and val are unique identifiers which must be registered in
connector.h for in-kernel usage.  void (*callback) (void *) - is a
callback function which will be called when message with above idx.val
will be received by connector core.

Using connector completely hides low-level transport layer from it's
users.

Connector uses new netlink ability to have many groups in one socket.

[ Incorporating many cleanups and fixes by myself and
  Andrew Morton -DaveM ]

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2005-09-11 19:15:07 -07:00
Evgeniy Polyakov 0a25e4d564 [PATCH] w1_ds2433: Added crc16 protection and read caching.
The changes to ds2433 to add CRC16 protection and read caching.

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:27 -07:00
Evgeniy Polyakov a45f105ad4 [PATCH] w1: added private family data into w1_slave strucutre.
Add family_data to struct w1_slave.

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:27 -07:00
Evgeniy Polyakov 7657ec1fcb [PATCH] lib/crc16: added crc16 algorithm.
Add the crc16 routines, as used by w1 devices.

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:27 -07:00
Evgeniy Polyakov a3d65f2542 [PATCH] w1: Added DS2433 driver - family id update.
Work by Ben Gardner <[email protected]>.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:27 -07:00
Evgeniy Polyakov 80895392c8 [PATCH] w1: Added DS2433 driver.
Work by Ben Gardner <[email protected]>.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:27 -07:00
Evgeniy Polyakov 7c8f5703de [PATCH] w1: Decreased debug level.
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:27 -07:00
Evgeniy Polyakov 3aca692d3e [PATCH] w1: Detouching bug fixed.
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:26 -07:00
Evgeniy Polyakov d2a4ef6a0c [PATCH] w1: Added add/remove slave callbacks.
Patch is based on work from Ben Gardner <[email protected]>

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:26 -07:00
Evgeniy Polyakov ea7d8f65c8 [PATCH] w1: Added w1_reset_select_slave() - Resets the bus and then selects the slave by
sending either a skip rom or a rom match.

Patch from Ben Gardner <[email protected]>

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:26 -07:00
Evgeniy Polyakov db2d0008de [PATCH] w1: Added inline functions on top of container_of().
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:26 -07:00
Evgeniy Polyakov 5e8eb85012 [PATCH] w1: Fixed 64bit compilation warning.
Fixed 64bit compilation warning.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:26 -07:00
Evgeniy Polyakov 7f772ed8df [PATCH] w1: hotplug support.
Here is W1 hotplug in addition to netlink notifications.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:26 -07:00
Evgeniy Polyakov 8949d2aa05 [PATCH] W1: Sync with w1/ds9490 tree.
Whitespace, static/nonstatic cleanups.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:26 -07:00
Evgeniy Polyakov 2d8331792e [PATCH] W1: w1_netlink: New init/fini netlink callbacks.
They are guarded with NETLINK_DISABLE compile time options,
so if CONFIG_NET is disabled, no linking errors occur.
Bug noticed by Adrian Bunk <[email protected]>.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-09-08 14:41:25 -07:00
Evgeniy Polyakov ad93e266a1 [NETLINK]: w1_int.c: fix default netlink group
w1 does not need to multicast its state to several groups at once,
and upcoming netlink changes will not allow bitmask for groups anyway.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Patrick McHardy <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2005-08-29 16:00:29 -07:00
Evgeniy Polyakov 2da5bf80f7 [PATCH] w1: more debug level decrease.
Do not spam syslog each 10 seconds when there is nothing on the wire.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2005-08-12 12:55:02 -07:00
Evgeniy Polyakov ea5860d22b [PATCH] w1: kconfig/Makefile fix.
This patch was sent first time very long time ago,
but magically was disapeared, it probably exists
in your queue, but to be sure, I resend it.
If can not be applied cleanly after your w1 queue is flushed
into upstrem tree, just drop it.
Thanks.

Patch from Michael Farmbauer <[email protected]>.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
2005-07-29 13:12:51 -07:00
Evgeniy Polyakov 0e65f82814 [PATCH] w1: fix CRC calculation on bigendian platforms.
In the 2.6.13-rc1 code the "rn" structure is in the wrong-endianness
when passed to w1_attach_slave_device(). This causes problems like the
family and crc being swapped around.

Signed-off-by: Roger Blofeld <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-07-11 14:10:37 -07:00
Evgeniy Polyakov e5c515b453 [PATCH] w1: fix compiler warnings
Signed-off-by: Evgeniy Polyakov <[email protected]>
2005-06-21 21:43:12 -07:00
Evgeniy Polyakov 6adf87bd7b [PATCH] w1: reconnect feature.
I've created reconnect feature - if on start there are no registered families
all new devices will have defailt family, later when driver for appropriate
family is loaded, slaves, which were faound earlier, will still have defult
family instead of right one. Reconnect feature will force control thread to run
through all master devices and all slaves found and search for slaves with
default family id and try to reconnect them.

It does not store newly registered family and does not check only those slaves
which have reg_num.family the same as being registered one - all slaves with
default family are reconnected.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:12 -07:00
Evgeniy Polyakov 4754639d88 [PATCH] w1: Updates the w1 documentation (w1.generic)
Updates the w1 documentation (w1.generic)

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:12 -07:00
Evgeniy Polyakov 99c5bfe993 [PATCH] w1: Adds a default family so that new slave families will show up in sysfs.
Adds a default family so that new slave families will show up in sysfs.

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:11 -07:00
Evgeniy Polyakov 2a9d0c1781 [PATCH] w1: Adds a sysfs entry (w1_master_search) that allows you to disable/enable periodic searches.
Adds a sysfs entry (w1_master_search) that allows you to disable/enable
periodic searches.

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:11 -07:00
Evgeniy Polyakov 6b72986183 [PATCH] w1: Added the triplet w1 master method and changes w1_search() to use it.
Adds the triplet w1 master method and changes w1_search() to use it.

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:11 -07:00
Evgeniy Polyakov be57ce267f [PATCH] w1: Cleans up usage of touch_bit/w1_read_bit/w1_write_bit.
Cleans up usage of touch_bit/w1_read_bit/w1_write_bit.

Signed-off-by: Ben Gardner <[email protected]>
Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:10 -07:00
Evgeniy Polyakov 4e470aa964 [PATCH] w1_therm: removed duplicated family id.
We can access family id through w1_family structure.

Signed-off-by: Evgeniy Polyakov <[email protected]>
2005-06-21 21:43:10 -07:00
Evgeniy Polyakov ca775c629a [PATCH] w1: new family structure.
Removed some fields which are not required.
First step for writing operations.
Now only read and read name remain.
Patch depends on w1 cleanups patch.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:09 -07:00
Evgeniy Polyakov 7785925dd8 [PATCH] w1: cleanups.
- white space changes.
 - list_for_each_entry/list_for_each_entry_safe and reverse changes.
 - small coding style changes.
 - removed redundant NULL checks.
 - use attribute group and macros instead of direct device attributes.
Patch is havily based on work from Adrian Bunk and Dmitry Torokhov,
thanks guys.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:09 -07:00
Evgeniy Polyakov 85e941cc9f [PATCH] w1_smem: support for new simple rom family [0x81 id].
Support for new simple rom family [0x81 id].
It is the same as existing 0x01 family,
which is used in ds9490* w1 adapters.
Patch is on top of new-thermal-sensor-families patch.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:09 -07:00
Evgeniy Polyakov 718a538f94 [PATCH] w1_therm: support for ds18b20, ds1822 thermal sensors.
Support for ds18b20, ds1822 thermal sensors.
Based on code from Tiziano M_ller <[email protected]>.
Patch is against 2.6.12-rc2 and should be applied
without problems on top of any later kernels since
w1_therm driver was not changed.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-06-21 21:43:08 -07:00
Evgeniy Polyakov d48102007d [XFRM]: skb_cow_data() does not set proper owner for new skbs.
It looks like skb_cow_data() does not set 
proper owner for newly created skb.

If we have several fragments for skb and some of them
are shared(?) or cloned (like in async IPsec) there 
might be a situation when we require recreating skb and 
thus using skb_copy() for it.
Newly created skb has neither a destructor nor a socket
assotiated with it, which must be copied from the old skb.
As far as I can see, current code sets destructor and socket
for the first one skb only and uses truesize of the first skb
only to increment sk_wmem_alloc value.

If above "analysis" is correct then attached patch fixes that.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Acked-by: Herbert Xu <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
2005-05-18 22:51:45 -07:00
[email protected] 0598571575 [PATCH] w1_smem: w1 ID is only 8 bytes long.
w1 ID is only 8 bytes long.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-04-18 21:16:57 -07:00
[email protected] 8523ff4567 [PATCH] w1: real fix for big endian machines.
Real fix for big endian machines - crc must be calculated
using little endian byte order.

Signed-off-by: Evgeniy Polyakov <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>
2005-04-18 21:16:57 -07:00