My Linux and Open Source Software Penguin Logo Linux and Open Source News and Reviews
The Hungry Penguin
Linux & Me Blog    My Linux Blog (Archived)    What is Linux?    What is Open Source?

Sidebar

Open Source and the London Olympics



Dedicated Servers

lkml.org

lkml.org - the realtime linux kernel mailinglist archive

[PATCH] esas2r: Fix possible sleep-in-atomic bugs in esas2r_check_ ...
Summary not available
[PATCH] spi: s3c64xx: add SPDX identifier
Andi Shyti writes: (Summary) 4 +--- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c index de7df20f8712..7ef68d45edfb 100644 --- a/drivers/spi/spi-s3c64xx.c +++ b/drivers/spi/spi-s3c64xx.c @@ -1,17 +1,7 @@ -/* - * Copyright (C) 2009 Samsung Electronics Ltd. you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation.
[PATCH] [media] ir-spi: add SPDX identifier
Andi Shyti writes: (Summary) 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/drivers/media/rc/ir-spi.c b/drivers/media/rc/ir-spi.c index 29ed0638cb74..a32a84ae2d0b 100644 --- a/drivers/media/rc/ir-spi.c +++ b/drivers/media/rc/ir-spi.c @@ -1,13 +1,8 @@ -/* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 as - * published by the Free Software Foundation. - * - * SPI driven IR LED device driver - */ +// SPDX-License-Identifier: GPL-2.0 +// SPI driven IR LED device driver +// +// Copyright (c) 2016 Samsung Electronics Co., Ltd.
[PATCH] Input: stmfts,s6sy671 - add SPDX identifier
Andi Shyti writes: (Summary) 15 +++++---------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/drivers/input/touchscreen/s6sy761.c b/drivers/input/touchscreen/s6sy761.c index 26b1cb8a88ec..675efa93d444 100644 --- a/drivers/input/touchscreen/s6sy761.c +++ b/drivers/input/touchscreen/s6sy761.c @@ -1,13 +1,8 @@ -/* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * Samsung S6SY761 Touchscreen device driver - */ +// SPDX-License-Identifier: GPL-2.0 +// Samsung S6SY761 Touchscreen device driver +// +// Copyright (c) 2017 Samsung Electronics Co., Ltd. - * - * STMicroelectronics FTS Touchscreen device driver - */ +// SPDX-License-Identifier: GPL-2.0 +// STMicroelectronics FTS Touchscreen device driver +// +// Copyright (c) 2017 Samsung Electronics Co., Ltd.
[PATCH v2] ARM: dts: exynos: Enable Mixer node for Exynos5800 Peac ...
Javier Martinez Canillas writes: (Summary) Commit 1cb686c08d12 ("ARM: dts: exynos: Add status property to Exynos 542x Mixer nodes") disabled the Mixer node by default in the DTSI and enabled for each Exynos 542x DTS. Fixes: 1cb686c08d12 ("ARM: dts: exynos: Add status property to Exynos 542x Mixer nodes") Signed-off-by: Javier Martinez Canillas <javierm@redhat.com> 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts b/arch/arm/boot/dts/exynos5800-peach-pi.dts index b2b95ff205e8..0029ec27819c 100644 --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts @@ -664,6 +664,10 @@ status = "okay";
[BUG] drivers/spi: a possible sleep-in-atomic bug in atmel_spi_remove
Jia-Ju Bai writes: (Summary) According to drivers/spi/spi-atmel.c, the kernel module may sleep under a spinlock.
The function call path is:
atmel_spi_remove (acquire the spinlock)
atmel_spi_release_dma
dma_release_channel
mutex_lock --> may sleep
mutex_lock --> may sleep
I do not find a good way to fix it, so I only report. This possible bug is found by my static analysis tool (DSAC) and checked by my code review.
by my code review.
by my code review.
Thanks,
Jia-Ju Bai
Jia-Ju Bai
Jia-Ju Bai
[PATCH v1] DMA:omap-dma:Avoid build error by changing the function ...
venkat.prashanth2498@gmail ... writes: (Summary) Changes for v1:
- Edited subject and description of the patch to fit with the change done in the code base, as suggested by Vinod Koul.
done in the code base, as suggested by Vinod Koul.
- In order to avoid issues like backporting on stable the checkpatch.pl issues are dropped as suggested by Vinod Koul. 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/dma/omap-dma.c b/drivers/dma/omap-dma.c index 1dfc71c..8545dda 100644 --- a/drivers/dma/omap-dma.c +++ b/drivers/dma/omap-dma.c @@ -1269,7 +1269,7 @@ static struct platform_driver omap_dma_driver = { }, };
[PATCH] locking/lockdep: Make CONFIG_LOCKDEP_CROSSRELEASE and CONF ...
Byungchul Park writes: (Summary) 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 2689b7c..bc099f1 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -1092,8 +1092,6 @@ config PROVE_LOCKING select DEBUG_MUTEXES select DEBUG_RT_MUTEXES if RT_MUTEXES select DEBUG_LOCK_ALLOC - select LOCKDEP_CROSSRELEASE - select LOCKDEP_COMPLETIONS select TRACE_IRQFLAGS default n help @@ -1164,7 +1162,9 @@ config LOCK_STAT (CONFIG_LOCKDEP defines "acquire" and "release" events.) config LOCKDEP_CROSSRELEASE - bool + bool "Lock debugging: enable cross-locking checks in lockdep" + depends on PROVE_LOCKING + default n help This makes lockdep work for crosslock which is a lock allowed to be released in a different context from the acquisition context.
Re: [PATCH] ARM: dts: omap3-evm: Fix missing NAND partition inform ...
Ladislav Michl writes: (Summary) On Mon, Dec 11, 2017 at 10:12:13PM -0600, Derald D. Woods wrote: specific data.
That could be intentional...
That could be intentional...
definitions.
What about passing U-Boot partitions information to kernel instead? More majordomo info at http://vger.kernel.org/majordomo-info.html More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH v2] arm64: v8.4: Support for new floating point multiplicat ...
Dongjiu Geng writes: (Summary) */ static const struct arm64_ftr_bits ftr_id_aa64isar0[] = { + ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64ISAR0_FHM_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64ISAR0_DP_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64ISAR0_SM4_SHIFT, 4, 0), ARM64_FTR_BITS(FTR_VISIBLE, FTR_STRICT, FTR_LOWER_SAFE, ID_AA64ISAR0_SM3_SHIFT, 4, 0), @@ -991,6 +992,7 @@ static bool has_no_fpsimd(const struct arm64_cpu_capabilities *entry, int __unus HWCAP_CAP(SYS_ID_AA64ISAR0_EL1, ID_AA64ISAR0_SM3_SHIFT, FTR_UNSIGNED, 1, CAP_HWCAP, HWCAP_SM3), HWCAP_CAP(SYS_ID_AA64ISAR0_EL1, ID_AA64ISAR0_SM4_SHIFT, FTR_UNSIGNED, 1, CAP_HWCAP, HWCAP_SM4), HWCAP_CAP(SYS_ID_AA64ISAR0_EL1, ID_AA64ISAR0_DP_SHIFT, FTR_UNSIGNED, 1, CAP_HWCAP, HWCAP_ASIMDDP), + HWCAP_CAP(SYS_ID_AA64ISAR0_EL1, ID_AA64ISAR0_FHM_SHIFT, FTR_UNSIGNED, 1, CAP_HWCAP, HWCAP_ASIMDFHM), HWCAP_CAP(SYS_ID_AA64PFR0_EL1, ID_AA64PFR0_FP_SHIFT, FTR_SIGNED, 0, CAP_HWCAP, HWCAP_FP), HWCAP_CAP
[PATCH 0/2] Rockchip: Add rk1608 driver and DT-bindings
Leo Wen writes: (Summary) For RK1608 driver ,you can use the v4l2-ctl command to capture frames. Add DT bindings documentation for Rockchip RK1608.
Add the information of the maintainer.
Add the information of the maintainer.
Leo Wen (2):
[media] Add Rockchip RK1608 driver
dt-bindings: Document the Rockchip RK1608 bindings
dt-bindings: Document the Rockchip RK1608 bindings
Documentation/devicetree/bindings/media/rk1608.txt | 366 ++++++ 5 files changed, 1682 insertions(+) create mode 100644 Documentation/devicetree/bindings/media/rk1608.txt create mode 100644 drivers/media/spi/rk1608.c create mode 100644 drivers/media/spi/rk1608.h -- 2.7.4
[PATCH v2 0/4] add support of pinctrl to MT7622 SoC
<sean.wang@mediatek ... writes: (Summary) patch 3/4: add support for mt7622 SoC.
patch 3/4: add support for mt7622 SoC.
The IO core found on the SoC has the registers for pinctrl, pinconf and gpio mixed up in the same register range.
gpio mixed up in the same register range.
However, the IO core for the MT7622 SoC is completely distinct from anyone of previous MediaTek SoCs which already had support, such as the hardware internal, register address map and register detailed definition for each pin.
for each pin.
Therefore, instead, the driver is being newly implemented by reusing generic methods provided from the core layer with GENERIC_PINCONF, GENERIC_PINCTRL_GROUPS, and GENERIC_PINMUX_FUNCTIONS for the sake of code simplicity and avoiding superfluous code. Sean Wang (4):
dt-bindings: pinctrl: add bindings for MediaTek MT7622 SoC pinctrl: mediatek: cleanup for placing all drivers under the menu pinctrl: mediatek: add pinctrl driver for MT7622 SoC pinctrl: mediatek: update MAINTAINERS entry with MediaTek pi
[PATCH v5 0/8] omap: dmtimer: Move driver out of plat-omap
Keerthy writes: (Summary) The series also does a bunch of changes to pwm-omap-dmtimer code to adapt to the driver migration and clean up plat specific pdata-quirks and use the dmtimer platform data.
pdata-quirks and use the dmtimer platform data.
Boot tested on DRA7-EVM and AM437X-GP-EVM.
Compile tested omap1_defconfig.
Compile tested omap1_defconfig.
This is based on top of linux-next branch.
This is based on top of linux-next branch.
Changes from v4:
Changes from v4:
* Made OMAP_DM_TIMER config option silent.
* Changed the driver name to timer-dm.c
* Changed the driver name to timer-dm.c
Changes from v3:
Changes from v3:
* Reverted to v2 approach of using dev_get_platdata to fetch dmtimer ops.
[PATCH] f2fs: fix potential hangtask in f2fs_trace_pid
Chao Yu writes: (Summary) 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/trace.c b/fs/f2fs/trace.c index bccbbf2616d2..a1fcd00bbb2b 100644 --- a/fs/f2fs/trace.c +++ b/fs/f2fs/trace.c @@ -17,7 +17,7 @@ #include "trace.h" static RADIX_TREE(pids, GFP_ATOMIC); } @@ -122,7 +122,7 @@ void f2fs_trace_ios(struct f2fs_io_info *fio, int flush) void f2fs_build_trace_ios(void) { - spin_lock_init(&pids_lock); } #define PIDVEC_SIZE 128 @@ -150,7 +150,7 @@ void f2fs_destroy_trace_ios(void) pid_t next_pid = 0;
[PATCH v5 0/3] Add andestech atcpit100 timer
Rick Chen writes: (Summary) Changelog v5:
- Patch 1/3: Changes
- Patch 2/3: New
- Patch 3/3: Changes
- Patch 3/3: Changes
[Patch 1/3] clocksource/drivers/atcpit100: Add andestech atcpit100 timer 1 No need to split out the Makefile patch from the actual driver. COMPILE_TEST in Kconfig Suggested by Greentime Hu [Patch 2/3] clocksource/drivers/atcpit100: VDSO support Why implemented in timer driver, please see details from https://lkml.org/lkml/2017/12/8/362 [PATCH v3 17/33] nds32: VDSO support.
[PATCH] arm64: allwinner: a64: a64-olinuxino: add usb otg
Jagan Teki writes: (Summary) Add usb otg support for a64-olinuxino board,
- USB0-ID connected with PH9
- USB0-VBUSDET connected with PH6
- USB-DRVVBUS controlled by N_VBUSEN pin from PMIC
- USB-DRVVBUS controlled by N_VBUSEN pin from PMIC
Signed-off-by: Jagan Teki <jagan@amarulasolutions.com> 26 ++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts index 338e7861..f9bc6c3 100644 --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-olinuxino.dts @@ -59,6 +59,10 @@ }; + +&usbphy { + usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>;
[PATCH] KVM: X86: Fix stack-out-of-bounds read in write_mmio
Wanpeng Li writes: (Summary) From: Wanpeng Li <wanpeng.li@hotmail.com>
From: Wanpeng Li <wanpeng.li@hotmail.com>
Reported by syzkaller:
Reported by syzkaller:
BUG: KASAN: stack-out-of-bounds in write_mmio+0x11e/0x270 [kvm] Read of size 8 at addr ffff8803259df7f8 by task syz-executor/32298 CPU: 6 PID: 32298 Comm: syz-executor Tainted: G OE 4.15.0-rc2+ #18 Hardware name: LENOVO ThinkCentre M8500t-N000/SHARKBAY, BIOS FBKTC1AUS 02/16/2016 Call Trace: dump_stack+0xab/0xe1 print_address_description+0x6b/0x290 kasan_report+0x28a/0x370 write_mmio+0x11e/0x270 [kvm] emulator_read_write_onepage+0x311/0x600 [kvm] emulator_read_write+0xef/0x240 [kvm] emulator_fix_hypercall+0x105/0x150 [kvm] em_hypercall+0x2b/0x80 [kvm] x86_emulate_insn+0x2b1/0x1640 [kvm] x86_emulate_instruction+0x39a/0xb90 [kvm] handle_exception+0x1b4/0x4d0 [kvm_intel] vcpu_enter_guest+0x15a0/0x2640 [kvm] kvm_arch_vcpu_ioctl_run+0x549/0x7d0 [kvm] kvm_vcpu_ioctl+0x479/0x880 [kvm]
[PATCH] KVM/Emulate: Mask linear address with actual address width ...
Lan Tianyu writes: (Summary) Reported by syzkaller:
WARNING: CPU: 0 PID: 27962 at arch/x86/kvm/emulate.c:5631 x86_emulate_insn+0x557/0x15f0 [kvm] Modules linked in: kvm_intel kvm [last unloaded: kvm] CPU: 0 PID: 27962 Comm: syz-executor Tainted: G B W 4.15.0-rc2-next-20171208+ #32 Hardware name: Intel Corporation S1200SP/S1200SP, BIOS S1200SP.86B.01.03.0006.040720161253 04/07/2016 RIP: 0010:x86_emulate_insn+0x557/0x15f0 [kvm]
RSP: 0018:ffff8807234476d0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffff88072d0237a0 RCX: ffffffffa0065c4d RDX: 1ffff100e5a046f9 RSI: 0000000000000003 RDI: ffff88072d0237c8 RBP: ffff880723447728 R08: ffff88072d020000 R09: ffffffffa008d240 R10: 0000000000000002 R11: ffffed00e7d87db3 R12: ffff88072d0237c8 R13: ffff88072d023870 R14: ffff88072d0238c2 R15: ffffffffa008d080 FS: 00007f8a68666700(0000) GS:ffff880802200000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000002009506c CR3: 000000071fe
linux-next: Tree for Dec 12
Stephen Rothwell writes: (Summary) arch Makefile) Merging arc-current/for-curr (799ab4a2c85b arc: do not use __print_symbol()) Merging arm-current/fixes (3aaf33bebda8 ARM: avoid faulting on qemu) Merging m68k-current/for-linus (5e387199c17c m68k/defconfig: Update defconfigs for v4.14-rc7) Merging metag-fixes/fixes (b884a190afce metag/usercopy: Add missing fixups) Merging powerpc-fixes/fixes (d81041820873 powerpc/xmon: Don't print hashed pointers in xmon) Merging sparc/master (a0908a1b7d68 Merge branch 'akpm' (patches from Andrew)) Merging fscrypt-current/for-stable (42d97eb0ade3 fscrypt: fix renaming and linking special files) Merging net/master (200809716aed fou: fix some member types in guehdr) Merging bpf/master (195bd525d5f6 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf) Merging ipsec/master (75bf50f4aaa1 xfrm: fix xfrm_do_migrate() with AEAD e.g(AES-GCM)) Merging netfilter/master (f5b5702ac55b netfilter: exthdr: add missign attributes to policy) Merging ipvs/master (f7fb77fc1235 netfilter: nft_compat: check extension hook m
[BUG] 3com/3c59x: two possible sleep-in-atomic bugs
Jia-Ju Bai writes: (Summary) According to drivers/net/ethernet/3com/3c59x.c, the kernel module may sleep in the interrupt handler.
The function call paths are:
boomerang_interrupt (interrupt handler)
vortex_error
vortex_up
pci_set_power_state --> may sleep
vortex_interrupt (interrupt handler)
vortex_error
vortex_up
pci_set_power_state --> These possible bugs are found by my static analysis tool (DSAC) and checked by my code review.
checked by my code review.
checked by my code review.
Thanks,
Jia-Ju Bai
Jia-Ju Bai
Jia-Ju Bai
[PATCH] fix memory leak in ramoops_init
nixiaoming writes: (Summary) but no free when platform_device_register_data return fail but no free when platform_device_register_data return fail 2, if kzalloc(sizeof(*dummy_data), GFP_KERNEL) return NULL, but platform_driver_register(&ramoops_driver) return 0 kfree(NULL) in ramoops_exit
so, add return val for ramoops_register_dummy, and check it in ramoops_init so, add return val for ramoops_register_dummy, and check it in ramoops_init 3, memory leak in ramoops_init.
miss platform_device_unregister(dummy) and kfree(dummy_data) when platform_driver_register(&ramoops_driver) return fail when platform_driver_register(&ramoops_driver) return fail Signed-off-by: nixiaoming <nixiaoming@huawei.com> 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index bd9812e..331b600 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -604,17 +604,17 @@ static struct platform_driver ramoops_driver = { }, };
Setting large MTU size on slave interfaces may stall the whole system
Qing Huang writes: (Summary) ip address flush dev ens3f0
ip link set dev ens3f0 down
ip address flush dev ens3f1
ip link set dev ens3f1 down
[root@ca-hcl629 etc]# modprobe bonding mode=0 miimon=250 use_carrier=1 updelay=500 downdelay=500
[root@ca-hcl629 etc]# ifconfig bond0 up
[root@ca-hcl629 etc]# ifenslave bond0 ens3f0 ens3f1 [root@ca-hcl629 etc]# ip link set bond0 mtu 4500 up [root@ca-hcl629 etc]# ip link set bond0 mtu 4500 up [root@ca-hcl629 etc]# ip link set bond0 mtu 4500 up Seiral console output:
Seiral console output:
** 4 printk messages dropped ** [ 3717.743761] bond0: link status down for interface ens3f0, disabling it in 500 ms
interface ens3f0, disabling it in 500 ms
** 5 printk messages dropped ** [ 3717.755737] bond0: link status down for interface ens3f0, disabling it in 500 ms
interface ens3f0, disabling it in 500 ms
** 5 printk messages dropped ** [ 3717.767758] bond0: link status down for interface ens3f0, disabling it in 500 ms
interface ens3f0, disabli
[BUG] drivers/usb/host/isp116x-hcd: a possible sleep-in-atomic bug ...
Jia-Ju Bai writes: (Summary) According to drivers/usb/host/isp116x-hcd.c, the kernel module may sleep under a spinlock.
The function call path is:
isp116x_start (acquire the spinlock)
device_init_wakeup
device_wakeup_enable
wakeup_source_register
wakeup_source_create
kmalloc(GFP_KERNEL) --> This possible bug is found by my static analysis tool (DSAC) and checked by my code review.
by my code review.
by my code review.
Thanks,
Jia-Ju Bai
Jia-Ju Bai
Jia-Ju Bai
[BUG] drivers/scsi/wd719x: a possible sleep-in-atomic bug in wd719 ...
Jia-Ju Bai writes: (Summary) According to drivers/scsi/wd719x.c, the kernel module may sleep under a spinlock.
The function call path is:
wd719x_host_reset (acquire the spinlock)
wd719x_chip_init
request_firmware --> may sleep
request_firmware --> may sleep
I do not find a good way to fix it, so I only report. This possible bug is found by my static analysis tool (DSAC) and checked by my code review.
by my code review.
by my code review.
Thanks,
Jia-Ju Bai
Jia-Ju Bai
Jia-Ju Bai
[BUG] drivers/scsi/ipr: two possible sleep-in-atomic bugs
Jia-Ju Bai writes: (Summary) According to drivers/scsi/ipr.c, the kernel module may sleep under a spinlock.
The function call paths are:
ipr_shutdown (acquire the spinlock)
irq_poll_disable
msleep --> may sleep
ipr_ata_post_internal (acquire the spinlock)
ipr_device_reset
ipr_send_blocking_cmd
wait_for_completion --> These possible bugs are found by my static analysis tool (DSAC) and checked by my code review.
checked by my code review.
checked by my code review.
Thanks,
Jia-Ju Bai
Jia-Ju Bai
Jia-Ju Bai
[PATCH 0/8] make some functions return bool
Yaowei Bai writes: (Summary) No functional changes.
No functional changes.
Yaowei Bai (8):
mm/memblock: memblock_is_map/region_memory can be boolean mm/mmzone: mm/lru: is_file/active_lru can be boolean lib/lockref: __lockref_is_dead can be boolean
kernel/cpuset: current_cpuset_is_being_rebound can be boolean kernel/resource: iomem_is_exclusive can be boolean
kernel/module: module_is_live can be boolean
kernel/mutex: mutex_is_locked can be boolean
crash_dump: is_kdump_kernel can be boolean
crash_dump: is_kdump_kernel can be boolean
include/linux/cpuset.h | 4 ++-- include/linux/mmzone.h |

Linux News | Linux Articles | Linux Distributions | Linux Apps | Linux Kernel | Free Linux Download | Linux & Me Blog
Free Press Release Service | Bible Study Tool | New Covenant Workshop | Gary Sims
Press Releases and SEO

The original content of these pages (not the syndicated items) is licensed under a Creative Commons License.
News and media about the Linux operating system, open source software, Unix, Apache, LAMP, PHP, RSS, GNU and much more.