summaryrefslogtreecommitdiff
path: root/drivers/net
AgeCommit message (Collapse)Author
2011-09-22CAIF SHM: coverity issuesDurga Prasada Rao BATHINA
dereferencing NULL pointer,if skb_dequeue returns NULL. ST-Ericsson ID: 358051 ST-Ericsson Linux next: NA ST-Ericsson FOSS-OUT ID: NA Change-Id: Ib88648e68c631cc8eaf839f96af7e847c12922b1 Signed-off-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericcson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/31750 Reviewed-by: Bibek BASU <bibek.basu@stericsson.com> Tested-by: Bibek BASU <bibek.basu@stericsson.com>
2011-09-19caif-shm: Fix deadlock caused due to improper lockingArun Murthy
Improper usage of spin lock, which leads to deadlock. Tx: acquire_lock1 -> trying to acquire lock2 Rx: acquire_lock2 -> trying to acquire lock1 Fix: locking was done through out the function which is not required. Only in placed where list has be accessed or modified locking is required. ST-Ericsson Linux next: NA ST-Ericsson ID: 360284 ST-Ericsson FOSS-OUT ID: Trivial Change-Id: I962fcb35f44b6030d6f1151f118d35e328b69156 Signed-off-by: Arun Murthy <arun.murthy@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/30980 Reviewed-by: Hemant-vilas RAMDASI <hemant.ramdasi@stericsson.com> Tested-by: Hemant-vilas RAMDASI <hemant.ramdasi@stericsson.com> Reviewed-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com>
2011-09-19ux500_ing05160_mailboxPD_0.1:Lockdeb correctness fix for modem_irqBibek Basu
Commit ID: Ib94dcbf6: U5500 : Lockdeb correctness fix for modem_irq Build and boot test only done for 8500 config Booting will only happend properly if used Initramfs Change-Id: I5da03baa7b8ee8f32de5712b7136442fbe2cec1c Signed-off-by: Bibek Basu <bibek.basu@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/28923
2011-09-19Merge linux-linaro-3.0-2011.07-1-android-1 into..Ulf Hansson
..linux-linaro-3.0-2011.07-1_glk3.0 Conflicts: arch/arm/common/Makefile drivers/misc/Kconfig drivers/misc/Makefile kernel/printk.c Change-Id: I126f34edb1879981909072beefb2738cad26f951
2011-09-19u8500: shrm: Move shrm to drivers/modemKumar Sanghvi
Moves shrm specific files from arch/arm/mach-ux500/mach/include and drivers/misc to include/linux/modem/shrm and drivers/modem/shrm respectively ST-Ericsson ID: CR329459 Change-Id: I3a08f83e5302429d51eb865ee1c5e4e0ec73e31b Signed-off-by: Kumar Sanghvi <kumar.sanghvi@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23980 Reviewed-by: QATEST Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2011-09-19CAIF: Fix U5500 compile error for shared memory driverKim Lilliestierna XX
Rearrange pr_fmt so it compiles. Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net> Change-Id: I26a71a302160306af26fda00c99c024ffb731f08 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23756 Reviewed-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com> Tested-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com> Reviewed-by: QATEST Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com> Reviewed-by: Kim LILLIESTIERNA <kim.xx.lilliestierna@stericsson.com>
2011-09-19caif-u5500: CAIF shared memory mailbox interfaceAmarnath Revanna
Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net> Change-Id: I9a2ee64e5a581fdfd4853f96f38aaa9a52d19fcf Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23754 Reviewed-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com> Tested-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com> Reviewed-by: QATEST Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2011-09-19caif-u5500: CAIF shared memory transport protocolsjur.brandeland@stericsson.com
Signed-off-by: Sjur Braendeland <sjur.brandeland@stericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net> Change-Id: I02d30135ba3694bfbeb31de4275237490a2fbac1 Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/23753 Reviewed-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com> Tested-by: Durga Prasada Rao BATHINA <durgaprasadarao.b@stericsson.com> Reviewed-by: QATEST Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2011-09-19CAIF: Alignment with internal CAIF development gitPhilippe Langlais
Code changes from internal git that will / are submitted to kernel upstream. - CAIF SPI. Multiple bug fixes, power management. Change-Id: I7e0f989ec5508358efeb3459c561d40dc94ed0a8 Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/21536 Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2011-09-19CAIF: Minor alignment with internal CAIF gitErwan Bracq
Some added blank line and BUGON for CAIF serial. Change-Id: If3452ed104b93203fc86fe6a95fd957946447876 Signed-off-by: Erwan Bracq <erwan.bracq@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/21527 Reviewed-by: QATEST Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com>
2011-09-19caif: Align CAIF HSI Link LayerPhilippe Langlais
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2011-09-19u8500: shrm: Misc updates and optimisationKumar Sanghvi
This patch does following: 1. Protects reset of char queues to prevent a potential kernel crash if MSR is run in rapid succession continuously without allowing the user-space to settle. 2. Removes un-needed memcpy from tx/rx path in shrm net interface. 3. Eliminates use of ph_recv_buf in rx path. 3. Fixes compiler warning in net interface. 4. Updates the protection of writes to shrm fifo. ST-Ericsson ID: ER326117 Change-Id: I6aac23e20a20efc1f9b8a620db455f53e067f9bd Signed-off-by: Kumar Sanghvi <kumar.sanghvi@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/19226 Reviewed-by: Hemant-vilas RAMDASI <hemant.ramdasi@stericsson.com> Reviewed-by: Srinidhi KASAGAR <srinidhi.kasagar@stericsson.com>
2011-09-19Fix introduced warningsPhilippe Langlais
Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2011-09-19caif: Add CAIF HSI Link Layer & porting on 2.6.38Philippe Langlais
Change-Id: I001c4470c26833d1f53af1eb31cb669d3424e60a Signed-off-by: Pawel Szyszuk <pawel.szyszuk@stericsson.com> Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
2011-09-19drivers: shrm: Add shared memory (shrm) driverRobert Marklund
Signed-off-by: Robert Marklund <robert.marklund@stericsson.com>
2011-09-19smsc911x: use shifted register accessRobert Marklund
At least one of the boards using this chip needs a shift in register access. This adds a "shift" field in the platform data to have the chip working in all cases without special ifdef. The approach is similaro to the one used in serial_8250 and other places. Performance-wise no difference is reported. Signed-off-by: Alessandro Rubini <rubini@gnudd.com> Signed-off-by: Robert Marklund <robert.marklund@stericsson.com>
2011-07-25Merge branch 'upstream/linaro-3.0' into linaro-android-3.0John Stultz
2011-07-21net: wireless: bcmdhd: Fix compilation for WEXTDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-21net: wireless: bcmdhd: Allow firmware_path parameter changeDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-21Release 5.90.125.48 Add regulatory domain check in cfg80211 driver and fix ↵Lin Ma
PNO issues Change-Id: I394f4eb017ca61861f16632e8998a8fb07e6fca7 Signed-off-by: Howard M. Harte <hharte@broadcom.com> Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-21net: wireless: bcmdhd: Allow empty scan resultsDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-21net: wireless: bcmdhd: Fix compilation for kernel 3.0Dmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-21Update to 5.90.125.40Lin Ma
Add monitor interface support and fix cfg80211 management frame isses Add support for hostapd Use private command to get p2p device address Change-Id: Ie490e38f1af9f259ff4a96b2f7d367119c65c377 Signed-off-by: Howard M. Harte <hharte@broadcom.com> Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-21net: wireless: bcm4329: fix array subscript is below array boundsChoi, Jong-Hwan
Change-Id: I5d521895070d255f7ac0c9eaf262ec9f4cdd2f8a Signed-off-by: Choi, Jong-Hwan <jhbird.choi@samsung.com>
2011-07-18pppoe: Must flush connections when MAC address changes too.David S. Miller
Kernel bugzilla: 39252 Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-18tulip: dmfe: Remove old log spamming pr_debugsJoe Perches
Commit 726b65ad444d ("tulip: Convert uses of KERN_DEBUG") enabled some old previously inactive uses of pr_debug converted by commit dde7c8ef1679 ("tulip/dmfe.c: Use dev_<level> and pr_<level>"). Remove these pr_debugs. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-15net: Only NET_ADMIN is allowed to fully control TUN interfaces.Chia-chi Yeh
Signed-off-by: Chia-chi Yeh <chiachi@android.com>
2011-07-15gianfar: rx parserSebastian Pöhn
Only let the rx parser be enabled if it is necessary (if VLAN extraction, IP or TCP checksumming or the rx queue filer are enabled). Otherwise disable it. The new routine gfar_check_rx_parser_mode should be run after every change on this features and will enable/disable the parser as necessary. Signed-off-by: Jiri Pirko <jpirko@redhat.com> Signed-off-by: Sebastian Poehn <sebastian.poehn@belden.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-15r6040: only disable RX interrupt if napi_schedule_prep is successfulMichael Thalmeier
When receiving the first RX interrupt before the internal call to napi_schedule_prep is successful the RX interrupt gets disabled and is never enabled again as the poll function never gets executed. Signed-off-by: Michael Thalmeier <Michael.Thalmeier@sigmatek.at> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-14net: remove NETIF_F_ALL_TX_OFFLOADSMichał Mirosław
There is no software fallback implemented for SCTP or FCoE checksumming, and so it should not be passed on by software devices like bridge or bonding. For VLAN devices, this is different. First, the driver for underlying device should be prepared to get offloaded packets even when the feature is disabled (especially if it advertises it in vlan_features). Second, devices under VLANs do not get replaced without tearing down the VLAN first. This fixes a mess I accidentally introduced while converting bonding to ndo_fix_features. NETIF_F_SOFT_FEATURES are removed from BOND_VLAN_FEATURES because they are unused as of commit 712ae51afd. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-13net: wireless: bcmdhd: Add PNO support through CFG80211 private commandDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-13net: wireless: bcmdhd: Fix build break with newer versions of gccRom Lemarchand
In case the WPA cipher can't be determined the pval and gval variables don't get updated which generates a warning in newer versions of gcc (tested with 4.5.2). Since the bcmdhd driver gets compiled with warnings treated as errors this change is needed to fix the build. Change-Id: Ia483777fee54ac526bb0db7c666fa2bf5df17354 Signed-off-by: Rom Lemarchand <rlemarchand@sta.samsung.com>
2011-07-13net: wireless: bcm4329: Fix roaming message processingDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-13net: wireless: bcmdhd: Add country private commandDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-13net: wireless: bcm4329: Add packet filtering commandsDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-13Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6Linus Torvalds
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (21 commits) slip: fix wrong SLIP6 ifdef-endif placing natsemi: fix another dma-debug report sctp: ABORT if receive, reassmbly, or reodering queue is not empty while closing socket net: Fix default in docs for tcp_orphan_retries. hso: fix a use after free condition net/natsemi: Fix module parameter permissions XFRM: Fix memory leak in xfrm_state_update sctp: Enforce retransmission limit during shutdown mac80211: fix TKIP replay vulnerability mac80211: fix ie memory allocation for scheduled scans ssb: fix init regression of hostmode PCI core rtlwifi: rtl8192cu: Add new USB ID for Netgear WNA1000M ath9k: Fix tx throughput drops for AR9003 chips with AES encryption carl9170: add NEC WL300NU-AG usbid cfg80211: fix deadlock with rfkill/sched_scan by adding new mutex ath5k: fix incorrect use of drvdata in PCI suspend/resume code ath5k: fix incorrect use of drvdata in sysfs code Bluetooth: Fix memory leak under page timeouts Bluetooth: Fix regression with incoming L2CAP connections Bluetooth: Fix hidp disconnect deadlocks and lost wakeup ...
2011-07-12Merge commit 'v3.0-rc7' into android-3.0Colin Cross
2011-07-11slip: fix wrong SLIP6 ifdef-endif placingMatvejchikov Ilya
SLIP6 have nothing to do with CSLIP so placing a block of SLIP6-related code within a CSLIP ifdef-endif block is incorrect. Signed-off-by: Ilya Matvejchikov <matvejchikov@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-11ath5k: Add missing breaks in switch/caseJoe Perches
Signed-off-by: Joe Perches <joe@perches.com> Acked-by: Pavel Roskin <proski@gnu.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-07-11net: wireless: bcmdhd: Fix crash if event queue is emptyDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-11net: wireless: bcmdhd: Fix CFG80211 suspend/resume if interface is downDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-11net: wireless: bcmdhd: Add setband/getband private commandsDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-11net: wireless: bcmdhd: Add packet filtering commandsDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
2011-07-10natsemi: fix another dma-debug reportJim Cromie
commit 2fb83cd618be34546fb526a9051eceaa95517026 Author: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp> Date: Sun Jul 3 22:34:29 2011 -0700 Above commit fixed previously reported warning, but I later noticed another one at shutdown. This commit fixes it. ------------[ cut here ]------------ WARNING: at /home/jimc/projects/lx/linux-2.6/lib/dma-debug.c:820 check_unmap+0x1fe/0x56c() natsemi 0000:00:06.0: DMA-API: device driver frees DMA memory with different size [device address=0x0000000007356840] [map size=1538 bytes] [unmap size=1522 bytes] Modules linked in: bridge stp llc x_tables ipv6 pc87360 hwmon_vid scx200_hrt pc8736x_gpio scx200_gpio nsc_gpio scx200_acb i2c_core arc4 rtl8180 mac80211 eeprom_93cx6 cfg80211 pcspkr scx200 rfkill ide_gd_mod ide_pci_generic ohci_hcd usbcore sc1200 ide_core [last unloaded: ebtables] Pid: 3996, comm: ifconfig Not tainted 3.0.0-rc6-skc-dyndbg+ #104 Call Trace: [<c011ca97>] warn_slowpath_common+0x4a/0x5f [<c0261ca5>] ? check_unmap+0x1fe/0x56c [<c011cb10>] warn_slowpath_fmt+0x26/0x2a [<c0261ca5>] check_unmap+0x1fe/0x56c [<c0116505>] ? check_preempt_curr+0x5a/0x6a [<c0262186>] debug_dma_unmap_page+0x53/0x5b [<c02aaaf9>] pci_unmap_single+0x4d/0x57 [<c02aab51>] drain_rx+0x4e/0x74 [<c02acc6e>] netdev_close+0x103/0x1b8 [<c02f097e>] ? spin_unlock_bh.clone.30+0x12/0x14 [<c02f10aa>] ? dev_deactivate_many+0xc1/0xef [<c02e05e9>] __dev_close_many+0x69/0x86 [<c02e0625>] __dev_close+0x1f/0x2c [<c02e3200>] __dev_change_flags+0x92/0x107 [<c02e32db>] dev_change_flags+0x13/0x3f [<c031e7ea>] devinet_ioctl+0x248/0x4b3 [<c02e3a9e>] ? dev_ioctl+0x50a/0x54c [<c031f509>] inet_ioctl+0x8e/0xa7 [<c02d506f>] sock_ioctl+0x1b6/0x1da [<c02d4eb9>] ? sock_fasync+0x61/0x61 [<c0183db4>] do_vfs_ioctl+0x44d/0x47f [<c0113cdb>] ? do_page_fault+0x268/0x299 [<c01339d0>] ? __put_cred+0x34/0x36 [<c0177d83>] ? sys_faccessat+0x13e/0x14b [<c0183e14>] sys_ioctl+0x2e/0x4a [<c035bc95>] syscall_call+0x7/0xb ---[ end trace 7013a1bdac403e56 ]--- Signed-off-by: Jim Cromie <jim.cromie@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-08Merge branch 'for-davem' of ↵David S. Miller
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6
2011-07-08hso: fix a use after free conditionGreg KH
This needs to go to netdev: From: Octavian Purdila <octavian.purdila@intel.com> In hso_free_net_device hso_net pointer is freed and then used to cleanup urb pools. Catched with SLAB_DEBUG during S3 resume: [ 95.824442] Pid: 389, comm: khubd Tainted: G C 2.6.36greenridge-01400-g423cf13-dirty #154 Type2 - Board Product Name1/OakTrail [ 95.824442] EIP: 0060:[<c1151551>] EFLAGS: 00010202 CPU: 0 [ 95.824442] EIP is at kref_put+0x29/0x42 [ 95.824442] EAX: 6b6b6b6b EBX: 6b6b6b6b ECX: c2806b40 EDX: 00000037 [ 95.824442] ESI: c1258d56 EDI: edd3d128 EBP: ee8cde0c ESP: ee8cde04 [ 95.824442] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 [ 95.824442] Process khubd (pid: 389, ti=ee8cc000 task=ee95ed10 task.ti=ee8cc000) [ 95.824442] Stack: [ 95.824442] edd07020 00000000 ee8cde14 c1258b77 ee8cde38 ef933a44 ef93572b ef935dec [ 95.824442] <0> 0000099a 6b6b6b6b 00000000 ee2da748 edd3e0c0 ee8cde54 ef933b9f ee3b53f8 [ 95.824442] <0> 00000002 ee2da748 ee2da764 ef936658 ee8cde60 ef933d0c ee2da748 ee8cde84 [ 95.824442] Call Trace: [ 95.824442] [<c1258b77>] ? usb_free_urb+0x11/0x13 [ 95.824442] [<ef933a44>] ? hso_free_net_device+0x81/0xd8 [hso] [ 95.824442] [<ef933b9f>] ? hso_free_interface+0x104/0x111 [hso] [ 95.824442] [<ef933d0c>] ? hso_disconnect+0xb/0x18 [hso] [ 95.824442] [<c125b7f1>] ? usb_unbind_interface+0x44/0x14a [ 95.824442] [<c11e56e8>] ? __device_release_driver+0x6f/0xb1 [ 95.824442] [<c11e57c7>] ? device_release_driver+0x18/0x23 [ 95.824442] [<c11e4e92>] ? bus_remove_device+0x8a/0xa1 [ 95.824442] [<c11e3970>] ? device_del+0x129/0x163 [ 95.824442] [<c11e2dc0>] ? put_device+0xf/0x11 [ 95.824442] [<c11e39bc>] ? device_unregister+0x12/0x15 [ 95.824442] [<c125915f>] ? usb_disable_device+0x90/0xf0 [ 95.824442] [<c125544f>] ? usb_disconnect+0x6d/0xf8 [ 95.824442] [<c1255f91>] ? hub_thread+0x3fc/0xc57 [ 95.824442] [<c1048526>] ? autoremove_wake_function+0x0/0x2f [ 95.824442] [<c102529d>] ? complete+0x34/0x3e [ 95.824442] [<c1255b95>] ? hub_thread+0x0/0xc57 [ 95.824442] [<c10481fc>] ? kthread+0x63/0x68 [ 95.824442] [<c1048199>] ? kthread+0x0/0x68 [ 95.824442] [<c1002d76>] ? kernel_thread_helper+0x6/0x10 Signed-off-by: Octavian Purdila <octavian.purdila@intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-08net/natsemi: Fix module parameter permissionsJean Delvare
The third parameter of module_param is supposed to represent sysfs file permissions. A value of "1" leads to the following: $ ls -l /sys/module/natsemi/parameters/ total 0 ---------x 1 root root 4096 Jul 8 09:46 dspcfg_workaround I am changing it to "0" to align with the other module parameters in this driver. Signed-off-by: Jean Delvare <jdelvare@suse.de> Cc: Tim Hockin <thockin@hockin.org> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2011-07-08Merge branch 'master' of ↵John W. Linville
git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 into for-davem
2011-07-07Merge commit 'v3.0-rc6' into android-3.0Dima Zavin
2011-07-07net: wireless: bcmdhd: Fix private command outputDmitry Shmidt
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>