aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/gdm724x
AgeCommit message (Collapse)AuthorFilesLines
2014-10-20staging: gdm724x: Fix incorrect type in assignmentEbru Akagunduz1-4/+4
This patch fixes following sparse warnings: drivers/staging/gdm724x/gdm_mux.c:389:32: warning: incorrect type in assignment (different base types) drivers/staging/gdm724x/gdm_mux.c:389:32: expected unsigned int [unsigned] start_flag drivers/staging/gdm724x/gdm_mux.c:389:32: got restricted __le32 [usertype] <noident drivers/staging/gdm724x/gdm_mux.c:390:29: warning: incorrect type in assignment (different base types) drivers/staging/gdm724x/gdm_mux.c:390:29: expected unsigned int [unsigned] seq_num drivers/staging/gdm724x/gdm_mux.c:390:29: got restricted __le32 [usertype] <noident> drivers/staging/gdm724x/gdm_mux.c:391:34: warning: incorrect type in assignment (different base types) drivers/staging/gdm724x/gdm_mux.c:391:34: expected unsigned int [unsigned] payload_size drivers/staging/gdm724x/gdm_mux.c:391:34: got restricted __le32 [usertype] <noident> drivers/staging/gdm724x/gdm_mux.c:392:33: warning: incorrect type in assignment (different base types) drivers/staging/gdm724x/gdm_mux.c:392:33: expected unsigned short [unsigned] packet_type drivers/staging/gdm724x/gdm_mux.c:392:33: got restricted __le16 [usertype] <noident> Sparse found above warnings, so this patch changes variable types of structs. Because expected and got variable types are different. Signed-off-by: Ebru Akagunduz <ebru.akagunduz@gmail.com> Reviewed-by: Octavian Purdila <octavian.purdila@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-10-20staging: gdm724x: Fix warning of prefer ether_addr_copy.Dilek Uzulmez1-5/+5
This patch fixes the following checkpatch.pl warnings: WARNING: "Prefer ether_addr_copy() over memcpy() if the Ethernet addresses are __aligned(2)" in file gdm_lte.c Pahole shows that the addresses are aligned. Signed-off-by: Dilek Uzulmez <dilekuzulmez@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-28staging: gdm724x: Removed unnecessary else expression.Gulsah Kose1-2/+1
This patch fixes "else is not generally useful after a break or return" checkpatch.pl warning in gdm_usb.c Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-19Staging: gdm724x: gdm_usb: added error checking in do_tx()Abel Moyo1-0/+4
Added error checking for alloc_tx_struct in do_tx() Signed-off-by: Abel Moyo <abelmoyo.ab@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-09-19staging: gdm724x: Fix missing blank line warning.Gulsah Kose1-0/+1
Fixes "Missing a blank line after declarations" checkpatch.pl warning in gdm_mux.c Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-08-06Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-nextLinus Torvalds1-1/+1
Pull networking updates from David Miller: "Highlights: 1) Steady transitioning of the BPF instructure to a generic spot so all kernel subsystems can make use of it, from Alexei Starovoitov. 2) SFC driver supports busy polling, from Alexandre Rames. 3) Take advantage of hash table in UDP multicast delivery, from David Held. 4) Lighten locking, in particular by getting rid of the LRU lists, in inet frag handling. From Florian Westphal. 5) Add support for various RFC6458 control messages in SCTP, from Geir Ola Vaagland. 6) Allow to filter bridge forwarding database dumps by device, from Jamal Hadi Salim. 7) virtio-net also now supports busy polling, from Jason Wang. 8) Some low level optimization tweaks in pktgen from Jesper Dangaard Brouer. 9) Add support for ipv6 address generation modes, so that userland can have some input into the process. From Jiri Pirko. 10) Consolidate common TCP connection request code in ipv4 and ipv6, from Octavian Purdila. 11) New ARP packet logger in netfilter, from Pablo Neira Ayuso. 12) Generic resizable RCU hash table, with intial users in netlink and nftables. From Thomas Graf. 13) Maintain a name assignment type so that userspace can see where a network device name came from (enumerated by kernel, assigned explicitly by userspace, etc.) From Tom Gundersen. 14) Automatic flow label generation on transmit in ipv6, from Tom Herbert. 15) New packet timestamping facilities from Willem de Bruijn, meant to assist in measuring latencies going into/out-of the packet scheduler, latency from TCP data transmission to ACK, etc" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1536 commits) cxgb4 : Disable recursive mailbox commands when enabling vi net: reduce USB network driver config options. tg3: Modify tg3_tso_bug() to handle multiple TX rings amd-xgbe: Perform phy connect/disconnect at dev open/stop amd-xgbe: Use dma_set_mask_and_coherent to set DMA mask net: sun4i-emac: fix memory leak on bad packet sctp: fix possible seqlock seadlock in sctp_packet_transmit() Revert "net: phy: Set the driver when registering an MDIO bus device" cxgb4vf: Turn off SGE RX/TX Callback Timers and interrupts in PCI shutdown routine team: Simplify return path of team_newlink bridge: Update outdated comment on promiscuous mode net-timestamp: ACK timestamp for bytestreams net-timestamp: TCP timestamping net-timestamp: SCHED timestamp on entering packet scheduler net-timestamp: add key to disambiguate concurrent datagrams net-timestamp: move timestamp flags out of sk_flags net-timestamp: extend SCM_TIMESTAMPING ancillary data struct cxgb4i : Move stray CPL definitions to cxgb4 driver tcp: reduce spurious retransmits due to transient SACK reneging qlcnic: Initialize dcbnl_ops before register_netdev ...
2014-07-26staging: gdm724x: fix misplaced open bracesCihangir Akturk1-17/+11
This patch fixes the following checkpatch.pl issues in gdm_usb.c: ERROR: that open brace { should be on the previous line Signed-off-by: Cihangir Akturk <cakturk@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-22staging: gdm724x: Use NLMSG_HDRLENHimangi Saraogi1-1/+1
Replace use of NLMSG_SPACE(0) with NLMSG_HDRLEN as they are equivalent and NLMSG_SPACE seems to be deprecated. Signed-off-by: Himangi Saraogi <himangi774@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-22Staging: gdm724x: gdm_usb.c: fix missing blank line after variable declarationKiran Padwal1-0/+1
Checkpatch fix - Add missing blank line after variable declaration Signed-off-by: Kiran Padwal <kiran.padwal21@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-17Staging: gdm724x: gdm_tty.c: fix missing blank line after variable declarationKiran Padwal1-0/+5
Checkpatch fix - Add missing blank line after variable declaration Signed-off-by: Kiran Padwal <kiran.padwal21@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-07-15net: set name_assign_type in alloc_netdev()Tom Gundersen1-1/+1
Extend alloc_netdev{,_mq{,s}}() to take name_assign_type as argument, and convert all users to pass NET_NAME_UNKNOWN. Coccinelle patch: @@ expression sizeof_priv, name, setup, txqs, rxqs, count; @@ ( -alloc_netdev_mqs(sizeof_priv, name, setup, txqs, rxqs) +alloc_netdev_mqs(sizeof_priv, name, NET_NAME_UNKNOWN, setup, txqs, rxqs) | -alloc_netdev_mq(sizeof_priv, name, setup, count) +alloc_netdev_mq(sizeof_priv, name, NET_NAME_UNKNOWN, setup, count) | -alloc_netdev(sizeof_priv, name, setup) +alloc_netdev(sizeof_priv, name, NET_NAME_UNKNOWN, setup) ) v9: move comments here from the wrong commit Signed-off-by: Tom Gundersen <teg@jklm.no> Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2014-07-11staging: gdm724x: fix leak at failure path in init_usb()Alexey Khoroshilov1-5/+6
If an allocation in init_usb() failed, it returns without deallocation of already allocated resources. The patch fix it and replaces GFP_ATOMIC by GFP_KERNEL in alloc_tx_sdu_struct() and alloc_rx_struct() as long as they are called from probe only. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-06-19staging: gdm724x: Added blank lines after declarations in gdm_lte.cScott Weir1-0/+2
This patch fixes following checkpatch.pl warning: WARNING: Missing a blank line after declarations in gdm_lte.c Signed-off-by: Scott Weir <sjw0410@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-18Staging: gdm724x: Fix unchecked sscanf values in gdm_lte.cMonam Agarwal1-2/+9
This patch fixes following checkpatch.pl warning: WARNING: unchecked sscanf value in gdm_lte.c Signed-off-by: Monam Agarwal <monamagarwal123@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-17Staging: gdm724x: gdm_mux.c: fixed coding styleDaniel Ngu1-10/+16
Line over 80 characters Signed-off-by: Daniel Ngu <daniel.dy.ngu@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-17Staging: gdm724x: netlink_k.c: fixed coding styleDaniel Ngu1-1/+2
Line over 80 characters Signed-off-by: Daniel Ngu <daniel.dy.ngu@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-03-16staging: removed space after return function in gdm_lte.hUma Sharma1-1/+1
This patch removes the following checkpatch.pl warning in gdm_lte.h Warning : space after return function Signed-off-by: Uma Sharma <uma.sharma523@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
2014-03-16staging: gdm724x: gdm_usb.c: Fix line over 80 characters.Aybuke Ozdemir1-11/+24
Fix checkpatch.pl issues with line over 80 characters in gdm_usb.c Signed-off-by: Aybuke Ozdemir <aybuke.147@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
2014-03-16staging: gdm724x: Fix line over 80 characters.Gulsah Kose1-56/+120
Fix checkpatch.pl issues with line over 80 characters in gdm_lte.c Signed-off-by: Gulsah Kose <gulsah.1004@gmail.com> Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
2014-02-18staging: gdm724x: cleanup alloc_tx_sdu_struct()Dan Carpenter1-17/+4
The kfree(t_sdu->buf) sets off a private static checker warning because "t_sdu->buf" is always NULL. This function just allocates two pointers so we can re-write it to be simpler. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-12-17staging: delete non-required instances of include <linux/init.h>Paul Gortmaker1-1/+0
None of these files are actually using any __init type directives and hence don't need to include <linux/init.h>. Most are just a left over from __devinit and __cpuinit removal, or simply due to code getting copied from one driver to the next. Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-25staging: gdm724x: fix leak at failure path in gdm_usb_probe()Alexey Khoroshilov1-23/+17
Error handling code in gdm_usb_probe() deallocates all resources, but calls usb_get_dev(usbdev) and returns error code after that. The patch fixes it and, by the way, several other issues: - no need to use GFP_ATOMIC in probe(); - return -ENODEV instead of -1; - kmalloc+memset -> kzalloc Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-11Staging: gdm724x: Remove confusing macro gdm_lte_sdu_send in gdm_lte.cRashika Kheria1-10/+5
This patch removes confusing macro gdm_lte_sdu_send as stated in TODO list in file gdm_lte.c. It then fixes the place where the macro is used. Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-10Staging: gdm724x: Use ALIGN() macro for dummy_cnt in gdm_mux.cRashika Kheria1-6/+2
As suggested in TODO list, this patch uses ALIGN() macro for variable dummy_cnt in functions up_to_host() and gdm_mux_send() in file gdm_mux.c. The macro has already been defined in include/linux/kernel.h, hence is not defined again. Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-10Staging: gdm724x: Remove confusing macro gdm_lte_hci_send in gdm_lte.cRashika Kheria1-4/+2
This patch removes confusing macro gdm_lte_hci_send as stated in TODO list in file gdm_lte.c. It then fixes the place where the macro is used. Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-10Staging: gdm724x: Remove confusing macro gdm_dev_endian in gdm_lte.cRashika Kheria1-6/+12
This patch removes confusing macro gdm_dev_endian as stated in TODO list in file gdm_lte.c. It then fixes the place where the macro is used. Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-11-10Staging: gdm724x: Remove confusing macro gdm_lte_rcv_with_cb in gdm_lte.cRashika Kheria1-4/+1
This patch removes confusing macro gdm_lte_rcv_with_cb as stated in TODO list in file gdm_lte.c. It then fixes the place where the macro is used. Signed-off-by: Rashika Kheria <rashika.kheria@gmail.com> Reviewed-by: Rusty Russell <rusty@rustcorp.com.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-27staging: gdm724x: kzalloc should be used instead of kmalloc/memsetTeodora Baluta1-4/+2
This patch fixes the following coccinelle warnings in driver gdm724x: drivers/staging/gdm724x/gdm_usb.c:127:9-16: WARNING: kzalloc should be used for t_sdu, instead of kmalloc/memset drivers/staging/gdm724x/gdm_usb.c:91:5-12: WARNING: kzalloc should be used for t, instead of kmalloc/memset Signed-off-by: Teodora Baluta <teobaluta@gmail.com> Reviewed-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-11staging: gdm7240: fix memory leak on failure pathAlexey Khoroshilov1-2/+2
init_usb() may fail after some of mux_rxes already allocated. So we need to release them on the failure path. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-11staging: gdm7240: alloc_mux_rx() does not need GFP_ATOMICAlexey Khoroshilov1-3/+3
As far as alloc_mux_rx() is called from probe() only there is no need in GFP_ATOMIC here. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-11Staging: gdm724x: fix line over 80 characters in gdm_tty.cEbru Akagunduz1-4/+8
Fix checkpatch.pl issues wtih line over 80 characters in gdm_tty.c Signed-off-by: Ebru Akagunduz <ebru.akagunduz@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-10-11staging: gdm724x: Fix sparse warnings regarding static functions/variablesValentina Manea2-5/+5
This fixes sparse warnings for functions and variables, e.g.: * drivers/staging/gdm724x/gdm_mux.c:29:25: warning: symbol 'mux_rx_wq' was not declared. Should it be static? Signed-off-by: Valentina Manea <valentina.manea.m@gmail.com> Reviewed-by: Zach Brown <zab@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-27staging: gdm724x: Remove version.h header inclusion in netlink_k.cSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-27staging: gdm7240: gdm_driver[] can be staticFengguang Wu1-2/+2
Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-25staging: gdm724x: Remove tests of KERNELVERSIONLarry Finger1-13/+0
Kernel code need not test for KERNELVERSION. Besides being unnecessary for an in-kernel driver, these lines will cause a build failure for any source tree with a stale include/linux/version.h. This patch is only compile tested. Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-23staging: gdm724x: Fix typo in commentsMasanari Iida1-2/+2
Correct spelling typo in comments within staging/gdm724x Signed-off-by: Masanari Iida <standby24x7@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-21staging: gdm7240: fix error handling of probe()Dan Carpenter1-32/+25
The error handling is messy and not in kernel style. On some paths it frees "mux_dev" twice. Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-19staging: gdm7240: a TTY rewrite according to the latest TTY APIsWon Kang4-45/+56
Fixed mis-use of mutex for gdm_table. gdm_table is refered to only inside tty_install and port destrcut, and usb callbacks use internal reference which was saved during urb submission Signed-off-by: Won Kang <wonkang@gctsemi.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-08-19staging: gdm7240: a TTY rewrite according to the latest TTY APIsWon Kang2-157/+142
Removed the old style reference countings and termios. Renamed variables to meaninful ones. Signed-off-by: Won Kang <wonkang@gctsemi.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-29staging: gdm724x: depend on CONFIG_TTYGreg Kroah-Hartman1-1/+1
The driver uses the tty layer, so explicitly say that, to prevent randomconfig build errors. Reported-by: Randy Dunlap <rdunlap@infradead.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-29staging: gdm724x: Modified function name conflict set_endianWon Kang3-4/+4
Conflict resolution for function name set_endian when building for powerpc The name changed to gdm_set_endian Reported-by: kbuild test robot <fengguang.wu@intel.com> Signed-off-by: Won Kang <wonkang@gctsemi.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-29staging: gdm724x: remove duplicated include from gdm_lte.cWei Yongjun1-2/+0
Remove duplicated include. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-26staging: gdm724x: use GFP_ATOMIC under spin lockWei Yongjun1-1/+1
A spin lock is taken here so we should use GFP_ATOMIC. Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn> Acked-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-25staging: gdm724x: Remove version.h header inclusion in gdm_usb.hSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-25staging: gdm724x: Remove version.h header inclusion in gdm_usb.cSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-25staging: gdm724x: Remove version.h header inclusion in gdm_tty.hSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-25staging: gdm724x: Remove version.h header inclusion in gdm_tty.cSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-25staging: gdm724x: Remove version.h header inclusion in gdm_mux.cSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-25staging: gdm724x: Remove version.h header inclusion in gdm_lte.hSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2013-07-25staging: gdm724x: Remove version.h header inclusion in gdm_lte.cSachin Kamat1-1/+0
version.h header inclusion is not necessary as detected by versioncheck. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Privacy Policy