[GIT PULL] slab updates for 6.11

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

please pull the latest slab updates from:

  git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git tags/slab-for-6.12

There's a small conflict with the rcu tree:
https://lore.kernel.org/lkml/20240812124748.3725011b@xxxxxxxxxxxxxxxx/

For Christian's kmem_cache_create refactoring series, a commit in the vfs.file
tree was merged as a prerequisity, and you have already merged vfs.file. Due to
vfs.tree based on 6.11-rc4 and slab on v6.11-rc5, the git pull-rq generated
diffstat below now however seems to contain also changes from rc5 commits. The
shortlog is accurate.

Thanks,
Vlastimil

======================================

This time it's mostly refactoring and improving APIs for slab users in the
kernel, along with some debugging improvements.

* kmem_cache_create() refactoring (Christian Brauner)

  Over the years have been growing new parameters to kmem_cache_create() where
  most of them are needed only for a small number of caches - most recently the
  rcu_freeptr_offset parameter. To avoid adding new parameters to
  kmem_cache_create() and adjusting all its callers, or creating new wrappers
  such as kmem_cache_create_rcu(), we can now pass extra parameters using the
  new struct kmem_cache_args. Not explicitly initialized fields default to values
  interpreted as unused. kmem_cache_create() is for now a wrapper that works both
  with the new form: kmem_cache_create(name, object_size, args, flags) and the
  legacy form: kmem_cache_create(name, object_size, align, flags, ctor)

* kmem_cache_destroy() waits for kfree_rcu()'s in flight (Vlastimil Babka,
  Uladislau Rezki)

  Since SLOB removal, kfree() is allowed for freeing objects allocated by
  kmem_cache_create(). By extension kfree_rcu() as allowed as well, which can
  allow converting simple call_rcu() callbacks that only do kmem_cache_free(),
  as there was never a kmem_cache_free_rcu() variant. However, for caches that
  can be destroyed e.g. on module removal, the cache owners knew to issue
  rcu_barrier() first to wait for the pending call_rcu()'s, and this is not
  sufficient for pending kfree_rcu()'s due to its internal batching
  optimizations. Ulad has provided a new kvfree_rcu_barrier() and to make the
  usage less error-prone, kmem_cache_destroy() calls it. Additionally, destroying
  SLAB_TYPESAFE_BY_RCU caches now again issues rcu_barrier() synchronously
  instead of using an async work, because the past motivation for async work no
  longer applies. Users of custom call_rcu() callbacks should however keep
  calling rcu_barrier() before cache destruction.

* Debugging use-after-free in SLAB_TYPESAFE_BY_RCU caches (Jann Horn)

  Currently, KASAN cannot catch UAFs in such caches as it is legal to access
  them within a grace period, and we only track the grace period when trying to
  free the underlying slab page. The new CONFIG_SLUB_RCU_DEBUG option changes the
  freeing of individual object to be RCU-delayed, after which KASAN can poison
  them.

* Delayed memcg charging (Shakeel Butt)

  In some cases, the memcg is uknown at allocation time, such as receiving network
  packets in softirq context. With kmem_cache_charge() these may be now charged
  later when the user and its memcg is known.

* Misc fixes and improvements (Pedro Falcato, Axel Rasmussen, Christoph Lameter,
  Yan Zhen, Peng Fan, Xavier).

----------------------------------------------------------------
Axel Rasmussen (1):
      mm, slub: print CPU id (and its node) on slab OOM

Christian Brauner (17):
      slab: s/__kmem_cache_create/do_kmem_cache_create/g
      slab: add struct kmem_cache_args
      slab: port kmem_cache_create() to struct kmem_cache_args
      slab: port kmem_cache_create_rcu() to struct kmem_cache_args
      slab: port kmem_cache_create_usercopy() to struct kmem_cache_args
      slab: pass struct kmem_cache_args to create_cache()
      slab: pull kmem_cache_open() into do_kmem_cache_create()
      slab: pass struct kmem_cache_args to do_kmem_cache_create()
      slab: remove rcu_freeptr_offset from struct kmem_cache
      slab: port KMEM_CACHE() to struct kmem_cache_args
      slab: port KMEM_CACHE_USERCOPY() to struct kmem_cache_args
      slab: create kmem_cache_create() compatibility layer
      file: port to struct kmem_cache_args
      slab: remove kmem_cache_create_rcu()
      slab: make kmem_cache_create_usercopy() static inline
      slab: make __kmem_cache_create() static inline
      io_uring: port to struct kmem_cache_args

Christoph Lameter (1):
      Reenable NUMA policy support in the slab allocator

Jann Horn (2):
      kasan: catch invalid free before SLUB reinitializes the object
      slub: Introduce CONFIG_SLUB_RCU_DEBUG

Pedro Falcato (1):
      slab: Warn on duplicate cache names when DEBUG_VM=y

Peng Fan (1):
      mm, slub: avoid zeroing kmalloc redzone

Shakeel Butt (1):
      memcg: add charging of already allocated slab objects

Uladzislau Rezki (Sony) (1):
      rcu/kvfree: Add kvfree_rcu_barrier() API

Vlastimil Babka (10):
      mm, slab: dissolve shutdown_cache() into its caller
      mm, slab: unlink slabinfo, sysfs and debugfs immediately
      mm, slab: move kfence_shutdown_cache() outside slab_mutex
      mm, slab: reintroduce rcu_barrier() into kmem_cache_destroy()
      mm, slab: call kvfree_rcu_barrier() from kmem_cache_destroy()
      kunit, slub: add test_kfree_rcu() and test_leak_destroy()
      Merge branch 'vfs.file' of gitolite.kernel.org:pub/scm/linux/kernel/git/vfs/vfs into slab/for-6.12/kmem_cache_args
      mm, slab: restore kerneldoc for kmem_cache_create()
      Merge branch 'slab/for-6.12/rcu_barriers' into slab/for-next
      Merge branch 'slab/for-6.12/kmem_cache_args' into slab/for-next

Xavier (1):
      mm/slab: Optimize the code logic in find_mergeable()

Yan Zhen (1):
      mm, slab: use kmem_cache_free() to free from kmem_buckets_cache

 Documentation/core-api/workqueue.rst               |   2 +-
 .../bindings/input/touchscreen/edt-ft5x06.yaml     |   1 +
 Documentation/filesystems/erofs.rst                |   2 +-
 Documentation/filesystems/smb/ksmbd.rst            |  26 +-
 Documentation/kbuild/llvm.rst                      |   2 +-
 MAINTAINERS                                        |  36 +-
 Makefile                                           |   4 +-
 arch/arm64/kvm/mmu.c                               |   9 +-
 arch/arm64/kvm/sys_regs.c                          |   6 +
 arch/arm64/kvm/vgic/vgic-debug.c                   |   2 +-
 arch/arm64/kvm/vgic/vgic-init.c                    |   9 +-
 arch/arm64/kvm/vgic/vgic.c                         |   5 +
 arch/arm64/kvm/vgic/vgic.h                         |   7 +
 arch/mips/kernel/cevt-r4k.c                        |  15 +-
 arch/mips/kernel/cpu-probe.c                       |   4 +
 arch/s390/Kconfig                                  |  13 +
 arch/s390/boot/startup.c                           |  58 +--
 arch/s390/boot/vmem.c                              |  14 +-
 arch/s390/boot/vmlinux.lds.S                       |   7 +-
 arch/s390/include/asm/page.h                       |   3 +-
 arch/s390/kernel/setup.c                           |  19 +-
 arch/s390/kernel/vmlinux.lds.S                     |   2 +-
 arch/s390/tools/relocs.c                           |   2 +-
 block/blk-lib.c                                    |  25 +-
 drivers/accessibility/speakup/genmap.c             |   1 -
 drivers/accessibility/speakup/makemapdata.c        |   1 -
 drivers/acpi/video_detect.c                        |  22 ++
 drivers/ata/pata_macio.c                           |  30 +-
 drivers/bluetooth/btintel.c                        |  10 -
 drivers/bluetooth/btintel_pcie.c                   |   3 -
 drivers/bluetooth/btmtksdio.c                      |   3 -
 drivers/bluetooth/btrtl.c                          |   1 -
 drivers/bluetooth/btusb.c                          |   4 +-
 drivers/bluetooth/hci_qca.c                        |   4 +-
 drivers/bluetooth/hci_vhci.c                       |   2 -
 drivers/cxl/core/pci.c                             |  10 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c      |   2 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_psp_ta.c         |   3 +
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c             |   5 +-
 drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c             |  18 +-
 drivers/gpu/drm/i915/display/intel_dp_hdcp.c       |   4 +-
 drivers/gpu/drm/msm/adreno/adreno_gpu.c            |   2 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c        |   4 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_hw_catalog.c     |   4 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_kms.h            |  14 +-
 drivers/gpu/drm/msm/disp/dpu1/dpu_plane.c          |  20 +-
 drivers/gpu/drm/msm/dp/dp_ctrl.c                   |   2 +
 drivers/gpu/drm/msm/dp/dp_panel.c                  |  19 +-
 drivers/gpu/drm/msm/msm_mdss.c                     |   2 +-
 drivers/gpu/drm/nouveau/nvkm/core/firmware.c       |   9 +-
 drivers/gpu/drm/nouveau/nvkm/falcon/fw.c           |   6 +
 drivers/gpu/drm/xe/Makefile                        |   2 +
 drivers/gpu/drm/xe/display/xe_display.c            |  28 +-
 drivers/gpu/drm/xe/display/xe_dsb_buffer.c         |   8 +
 drivers/gpu/drm/xe/display/xe_fb_pin.c             |   3 +
 drivers/gpu/drm/xe/regs/xe_gt_regs.h               |   9 +
 drivers/gpu/drm/xe/xe_bo.c                         |   6 +-
 drivers/gpu/drm/xe/xe_device.c                     |  32 ++
 drivers/gpu/drm/xe/xe_device.h                     |   1 +
 drivers/gpu/drm/xe/xe_exec_queue.c                 |  24 +-
 drivers/gpu/drm/xe/xe_exec_queue_types.h           |   2 -
 drivers/gpu/drm/xe/xe_gsc.c                        |   8 +-
 drivers/gpu/drm/xe/xe_gt.c                         |  55 +++
 drivers/gpu/drm/xe/xe_gt_pagefault.c               |  18 +-
 drivers/gpu/drm/xe/xe_gt_types.h                   |   6 +
 drivers/gpu/drm/xe/xe_guc_submit.c                 |   4 +-
 drivers/gpu/drm/xe/xe_hw_fence.c                   |   9 +-
 drivers/gpu/drm/xe/xe_hw_fence_types.h             |   7 +-
 drivers/gpu/drm/xe/xe_mmio.c                       |  28 +-
 drivers/gpu/drm/xe/xe_observation.c                |   1 -
 drivers/gpu/drm/xe/xe_pat.c                        |  11 +-
 drivers/gpu/drm/xe/xe_pm.c                         |  11 +-
 drivers/gpu/drm/xe/xe_preempt_fence.c              |   3 +-
 drivers/gpu/drm/xe/xe_preempt_fence_types.h        |   2 +
 drivers/gpu/drm/xe/xe_sched_job.c                  |   3 +-
 drivers/gpu/drm/xe/xe_trace.h                      |   2 +-
 drivers/gpu/drm/xe/xe_wa.c                         |  18 +
 drivers/gpu/drm/xe/xe_wa_oob.rules                 |   1 +
 drivers/hid/amd-sfh-hid/amd_sfh_hid.c              |   4 +-
 drivers/hid/hid-asus.c                             |   3 +
 drivers/hid/hid-cougar.c                           |   2 +-
 drivers/hid/hid-ids.h                              |   3 +
 drivers/hid/hid-multitouch.c                       |  33 ++
 drivers/hid/wacom_wac.c                            |   4 +-
 drivers/input/joystick/adc-joystick.c              |   7 +-
 drivers/input/misc/uinput.c                        |  14 +
 drivers/input/mouse/synaptics.c                    |   1 +
 drivers/input/serio/i8042-acpipnpio.h              |  29 +-
 drivers/input/serio/i8042.c                        |  10 +-
 drivers/input/touchscreen/ads7846.c                |   2 +-
 drivers/input/touchscreen/edt-ft5x06.c             |   6 +
 drivers/input/touchscreen/himax_hx83112b.c         |  14 +-
 drivers/iommu/iommufd/device.c                     |   2 +-
 drivers/iommu/iommufd/selftest.c                   |   2 +-
 drivers/mmc/core/mmc_test.c                        |   9 +-
 drivers/mmc/host/dw_mmc.c                          |   8 +
 drivers/mmc/host/mtk-sd.c                          |   8 +-
 drivers/net/bonding/bond_main.c                    |  21 +-
 drivers/net/bonding/bond_options.c                 |   2 +-
 drivers/net/dsa/microchip/ksz_ptp.c                |   5 +-
 drivers/net/dsa/mv88e6xxx/global1_atu.c            |   3 +-
 drivers/net/dsa/ocelot/felix.c                     | 126 +++++-
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |   4 +-
 drivers/net/ethernet/broadcom/bnxt/bnxt.h          |   2 -
 drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c  |   4 -
 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c      |   5 -
 drivers/net/ethernet/chelsio/cxgb4/cxgb4_filter.c  |   3 +-
 .../net/ethernet/freescale/dpaa2/dpaa2-switch.c    |   7 +-
 .../net/ethernet/intel/ice/devlink/devlink_port.c  |   4 +-
 drivers/net/ethernet/intel/ice/ice_base.c          |  21 +-
 drivers/net/ethernet/intel/ice/ice_txrx.c          |  47 +--
 drivers/net/ethernet/intel/igb/igb_main.c          |   1 +
 .../net/ethernet/marvell/octeontx2/af/rvu_cpt.c    |  23 +-
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |   1 +
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |  21 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c    |  26 +-
 .../mellanox/mlx5/core/lib/ipsec_fs_roce.c         |   6 +-
 drivers/net/ethernet/mscc/ocelot.c                 | 279 ++++++++++++-
 drivers/net/ethernet/mscc/ocelot_fdma.c            |   3 +-
 drivers/net/ethernet/mscc/ocelot_vcap.c            |   1 +
 drivers/net/ethernet/mscc/ocelot_vsc7514.c         |   4 +
 drivers/net/ethernet/wangxun/ngbe/ngbe_mdio.c      |   8 +-
 drivers/net/ethernet/xilinx/xilinx_axienet.h       |   1 +
 drivers/net/ethernet/xilinx/xilinx_axienet_main.c  |  25 +-
 drivers/net/phy/realtek.c                          |   3 +-
 drivers/net/virtio_net.c                           |   2 +-
 drivers/nvme/host/core.c                           |   2 +-
 drivers/nvme/host/nvme.h                           |   1 -
 drivers/platform/surface/aggregator/controller.c   |   3 +-
 .../platform/surface/surface_aggregator_registry.c |  58 ++-
 drivers/platform/x86/asus-wmi.c                    |  16 +-
 drivers/platform/x86/dell/Kconfig                  |   1 +
 drivers/platform/x86/dell/dell-uart-backlight.c    |   8 +
 .../x86/intel/speed_select_if/isst_tpmi_core.c     |   3 +-
 drivers/pmdomain/imx/imx93-pd.c                    |   5 +-
 drivers/pmdomain/imx/scu-pd.c                      |   5 -
 drivers/power/sequencing/pwrseq-qcom-wcn.c         |   2 +-
 drivers/s390/crypto/ap_bus.c                       |   7 +-
 drivers/scsi/sd.c                                  |   3 +
 drivers/spi/spi-cadence-quadspi.c                  |  14 +-
 drivers/spi/spi-fsl-lpspi.c                        |  31 +-
 drivers/spi/spi-pxa2xx-pci.c                       |  15 +-
 drivers/spi/spi-pxa2xx-platform.c                  |  26 +-
 drivers/spi/spi-pxa2xx.c                           |  20 +-
 drivers/spi/spi-pxa2xx.h                           |   3 +-
 drivers/spi/spi-zynqmp-gqspi.c                     |  30 +-
 .../staging/media/atomisp/include/linux/atomisp.h  |   1 -
 drivers/thermal/thermal_debugfs.c                  |   6 +-
 drivers/thermal/thermal_of.c                       |  23 +-
 drivers/ufs/core/ufshcd.c                          |   6 +-
 drivers/ufs/host/ufs-qcom.c                        |   6 +-
 fs/bcachefs/alloc_background.c                     |  66 ++--
 fs/bcachefs/alloc_background_format.h              |   1 +
 fs/bcachefs/bcachefs_format.h                      |   3 +-
 fs/bcachefs/btree_cache.c                          |  25 ++
 fs/bcachefs/btree_cache.h                          |   2 +
 fs/bcachefs/btree_iter.h                           |   9 +
 fs/bcachefs/btree_key_cache.c                      |  31 +-
 fs/bcachefs/btree_update_interior.c                |  46 ++-
 fs/bcachefs/buckets.c                              |  74 ++--
 fs/bcachefs/buckets_waiting_for_journal.c          |   4 +-
 fs/bcachefs/data_update.c                          | 209 +++++-----
 fs/bcachefs/extents.c                              |  41 ++
 fs/bcachefs/extents.h                              |   1 +
 fs/bcachefs/fs-io-buffered.c                       |   2 +-
 fs/bcachefs/fs-ioctl.c                             |   3 +-
 fs/bcachefs/fsck.c                                 |   6 +-
 fs/bcachefs/journal.c                              |   2 +-
 fs/bcachefs/journal_sb.c                           |  15 +
 fs/bcachefs/movinggc.c                             |   2 +-
 fs/bcachefs/recovery.c                             |   9 +-
 fs/bcachefs/replicas.c                             |   3 +-
 fs/bcachefs/sb-downgrade.c                         |   8 +-
 fs/bcachefs/util.c                                 |   1 -
 fs/bcachefs/xattr.c                                |  12 +-
 fs/erofs/dir.c                                     |  35 +-
 fs/erofs/inode.c                                   |  18 +-
 fs/erofs/internal.h                                |   2 +-
 fs/erofs/super.c                                   |  26 +-
 fs/erofs/zutil.c                                   |   3 +-
 fs/file_table.c                                    |  11 +-
 fs/nfs/callback_xdr.c                              |   6 +-
 fs/nfs/delegation.c                                |  15 +-
 fs/nfs/nfs4proc.c                                  |  12 +-
 fs/nfs/pnfs.c                                      |   5 +-
 fs/nfs/super.c                                     |   2 +
 fs/smb/client/cifsfs.c                             |   6 +-
 fs/smb/client/cifsglob.h                           |   6 +-
 fs/smb/client/connect.c                            |   3 +
 fs/smb/client/file.c                               |   4 +-
 fs/smb/client/ioctl.c                              |   2 +
 fs/smb/client/link.c                               |   1 +
 fs/smb/client/reparse.c                            |  11 +-
 fs/smb/server/connection.c                         |  34 +-
 fs/smb/server/connection.h                         |   3 +-
 fs/smb/server/mgmt/user_session.c                  |   9 +
 fs/smb/server/oplock.c                             |   2 +-
 fs/smb/server/smb2pdu.c                            |  31 +-
 fs/smb/server/smb_common.h                         |   4 +-
 fs/super.c                                         |   4 +-
 include/acpi/video.h                               |   1 +
 include/linux/blkdev.h                             |   7 +-
 include/linux/dsa/ocelot.h                         |  47 +++
 include/linux/kasan.h                              |  63 ++-
 include/linux/panic.h                              |   1 +
 include/linux/rcutiny.h                            |   5 +
 include/linux/rcutree.h                            |   1 +
 include/linux/slab.h                               | 228 ++++++++++-
 include/net/bluetooth/hci.h                        |  17 +-
 include/net/bluetooth/hci_core.h                   |   2 +-
 include/net/dsa.h                                  |  16 +-
 include/net/kcm.h                                  |   1 +
 include/scsi/scsi_cmnd.h                           |   2 +-
 include/soc/mscc/ocelot.h                          |  12 +-
 include/soc/mscc/ocelot_vcap.h                     |   2 +
 include/trace/events/rpcrdma.h                     |  36 ++
 include/uapi/drm/xe_drm.h                          |   8 +-
 include/ufs/ufshcd.h                               |   8 +
 io_uring/io_uring.c                                |  14 +-
 io_uring/kbuf.c                                    |   9 +-
 kernel/cgroup/cpuset.c                             |  38 +-
 kernel/panic.c                                     |   8 +-
 kernel/printk/printk.c                             |   2 +-
 kernel/rcu/tree.c                                  | 109 +++++-
 kernel/workqueue.c                                 |  50 +--
 lib/slub_kunit.c                                   |  31 ++
 mm/Kconfig.debug                                   |  32 ++
 mm/kasan/common.c                                  |  62 +--
 mm/kasan/kasan_test.c                              |  46 +++
 mm/slab.h                                          |  13 +-
 mm/slab_common.c                                   | 354 ++++++-----------
 mm/slub.c                                          | 412 +++++++++++++-------
 net/bluetooth/hci_core.c                           |  19 +-
 net/bluetooth/hci_event.c                          |   2 +-
 net/bluetooth/mgmt.c                               |   4 +
 net/bluetooth/smp.c                                | 144 +++----
 net/core/netpoll.c                                 |   2 -
 net/dsa/tag.c                                      |   5 +-
 net/dsa/tag.h                                      | 135 +++++--
 net/dsa/tag_ocelot.c                               |  37 +-
 net/ipv4/inet_connection_sock.c                    |   5 +-
 net/ipv4/tcp_ipv4.c                                |  14 +
 net/ipv4/udp_offload.c                             |   3 +-
 net/ipv6/ip6_output.c                              |  10 +
 net/ipv6/ip6_tunnel.c                              |  12 +-
 net/iucv/iucv.c                                    |   4 +-
 net/kcm/kcmsock.c                                  |   4 +
 net/mctp/test/route-test.c                         |   2 +-
 net/mptcp/pm.c                                     |  13 -
 net/mptcp/pm_netlink.c                             | 142 ++++---
 net/mptcp/protocol.h                               |   3 -
 net/netfilter/nf_flow_table_inet.c                 |   3 +
 net/netfilter/nf_flow_table_ip.c                   |   3 +
 net/netfilter/nft_counter.c                        |   9 +-
 net/openvswitch/datapath.c                         |   2 +-
 net/sched/sch_netem.c                              |  47 ++-
 net/sunrpc/xprtrdma/ib_client.c                    |   6 +-
 samples/trace_events/trace_custom_sched.c          |   1 -
 scripts/Makefile.build                             |   2 +-
 scripts/Makefile.lib                               |  28 +-
 scripts/Makefile.modfinal                          |   2 +-
 scripts/Makefile.vmlinux                           |   2 +-
 scripts/Makefile.vmlinux_o                         |   2 +-
 scripts/kconfig/merge_config.sh                    |   2 +
 scripts/link-vmlinux.sh                            |   3 +-
 sound/soc/codecs/cs42l42.c                         |   1 -
 tools/testing/cxl/Kbuild                           |   1 +
 tools/testing/cxl/test/mock.c                      |  12 +
 .../selftests/drivers/net/mlxsw/ethtool_lanes.sh   |   3 +-
 .../selftests/net/forwarding/bridge_vlan_aware.sh  |  54 ++-
 tools/testing/selftests/net/forwarding/lib.sh      |  57 +++
 .../selftests/net/forwarding/local_termination.sh  | 431 +++++++++++++++++----
 tools/testing/selftests/net/mptcp/mptcp_join.sh    |  76 +++-
 tools/testing/selftests/net/udpgro.sh              |  53 +--
 tools/testing/selftests/tc-testing/tdc.py          |   1 -
 275 files changed, 4049 insertions(+), 1673 deletions(-)




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux