http://rere.qmqm.pl/
Tu znajdziesz łatki do programu linux-2.6 (linux kernel - 2.6 series).
http://www.kernel.org/
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Subject: [PATCH 2.6.23.1] Kill STP hello timer if STP is not enabled Quick CPU eater kill. This might be not the best fix possible. Without this patch, hello_timer is firing 250 times/sec and eating about 8% CPU time on my an otherwise idle system (dynticks enabled). 2.6.21.5 was even worse - 20% (HZ=1000). (br->hello_time was supposedly 0 when STP was disabled). Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Subject: [PATCH 01/02] Wrappers for 32-bit PIO to/from scatterlist Implement helpers for doing PIO transfers to/from scatter-gather buffers using 32-bit accesses. Includes kernel-doc for public interface. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Subject: [PATCH 02/02] mmc/sdhci: use PIO - scatterlist wrappers Use sg_dwiter_*_io() in sdhci_*_block_pio(). This assumes that buffer sizes are multiple of 4 when transferring more than one block consecutively. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Subject: [PATCH] EDAC: e752x: fix DRAM_NERR read/write race info->dram_nerr is read earlier in this function. If between that read and this update more error bits get set, then they will be cleared without checking. If that was the real intent here then writing 0xFFFF to E752X_DRAM_NERR gives more predictable results. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
[PATCH 0/4] Ethtool: cleanup strategy
While writing and debugging driver for StorLink's Gemini ethernet
"card" I couldn't not notice that ethtool support had accumulated a lot
of dust and "aah, let's just copy that from another driver"-generated
code. There are things that are reimplemented in more-or-less same way
in multiple network drivers, there are logic bugs or unexpected
variations among the implementations, and there is a lot of boilerplate
code needed to be written by a person who wants to support ethtool
in his driver. I'm concentrating on offload feature setting here as
that's what I needed for my driver.
As I scanned through multiple drivers and ethtool core I noticed that
most (if not all) offload capabilities are determinable at ndo_init()
time. There are, however, some exceptions as bridge and VLAN drivers,
or chips that have offload capabilities dependent on MTU setting.
Transmit offload features are the simple ones --- almost all drivers
enable support for them at per-packet when-needed basis and so they can
be disabled just by performing the required actions in software before
ndo_start_xmit(). Using a particular offload is mostly a matter of
setting its bit in netdev->features.
Receive offloads are another beast. They usually need to be enabled
in hardware or ignored/worked-around by the driver for buggy HW.
Changing the offload's state is done in device-specific way.
My proposal is to implement a offload feature setting that needs
(almost) no code in network driver. The idea is to add two
ethtool-specific fields to struct net_device:
- hw_features
offloads supported by the netdev (togglable by user)
- features_requested
offloads currently requested by user; this will be superset of
(features & hw_features) when i.e. current MTU or other external
conditions disable some offloads
... and use them to implement changing of offloads in ethtool core.
Since get_*() for TX offloads is just a bit test on netdev->features,
corresponding ethtool entry points could be removed.
This patch series is a beginning proof-of-concept work for this idea.
This is a minimal cleanup and move of TX checksum, scatter-gather and
TSO offloads to the new arrangement. This is intended to be a mostly
no-op in functionality, so most bugs there are preserved and only
minimal code changes in drivers are made except when driver-local
get/set function code can be removed.
Please apply it if you like it as it is now. Further changes will
depend on those anyway. Later in this mail I attached couple of notes
I've taken during the conversion of some drivers. As the Cc list for
all maintainers would be huge (all network drivers are touched), I kept
only those who's drivers are changed in less obvious or uncertain ways.
Best Regards,
Michał Mirosław
loopback
missing TSO6 in netdev->features
bridge
dynamic hw caps - might need more thought
8021q/vlan
uses set_tso, missing TSO6 in tested features
dynamic hw caps -> might need more thought
xen-netfront
optimize offload setting
ipoib
uses set_tso - can be moved to netdev_init?
* cxgb2
assumed: adapter->flags initialized and can't change
* e1000
removed unused adapter->tso_force
set_tx_csum side-effect: fix inverted test
enic
uses set_tso - can be moved to netdev_init?
* ixgbevf
set_tso: netif_tx_stop/start_all_queues removed from disable path
jme
csum,tso limited to MTU <= 1900
mlx4
uses set_tso - can be moved to netdev_init?
errno: EPERM -> EINVAL
tg3
uses set_tso - parts can be moved to netdev_init?
tso MTU 1500 on some boards
TG3_FLAG_BROKEN_CHECKSUMS - are netdev->features based on this?
* usb/smsc75xx
set tx_csum,tso features reset() -> init() - ok?
* usb/smsc95xx
uses set_tx_csum
move features change from reset()? - ok to set like this if not?
* bna
set_tx_csum: removed bnad->conf_mutex locking
dm9000
removed struct board_info->can_csum
* gianfar
set_tx_csum: removed netif_tx_lock_bh() locking
* greth
set_tx_csum: removed netif_tx_lock_bh() locking
ibmveth
uses set_tx_csum - can be changed to avoid it?
pch_gbe
uses set_tx_csum - remove adapter->tx_csum completely?
it's redundant (== netdev->features & NETIF_F_HW_CSUM)
* qlcnic
set_tx_csum: is ESWITCH exclusion constant?
* sfc
assumed: constant efx->type->offload_features
sky2
set_tx_csum, set_tso: merge to no_tx_offload()?
MTU 1500 for CHIP_ID_YUKON_EC_U
s390/net
uses set_tso
uses set_tx_csum - can be moved to netdev_init?
Michał Mirosław (4):
Ethtool: Introduce hw_features field in struct netdevice
Ethtool: convert get_sg/set_sg calls to hw_features flag
Ethtool: convert get_tso/set_tso calls to hw_features flags
Ethtool: convert get_tx_csum/set_tx_csum calls to hw_features flags
drivers/infiniband/hw/nes/nes_nic.c | 8 +-
drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 10 +-
drivers/net/8139cp.c | 5 +-
drivers/net/atl1c/atl1c_ethtool.c | 9 +--
drivers/net/atl1e/atl1e_ethtool.c | 5 +-
drivers/net/atlx/atl1.c | 6 +-
drivers/net/atlx/atl2.c | 12 +--
drivers/net/benet/be_ethtool.c | 6 -
drivers/net/benet/be_main.c | 2 +
drivers/net/bna/bnad_ethtool.c | 43 +-------
drivers/net/bnx2.c | 33 +-----
drivers/net/bnx2x/bnx2x_ethtool.c | 21 +---
drivers/net/bonding/bond_main.c | 3 -
drivers/net/chelsio/cxgb2.c | 15 +--
drivers/net/cxgb3/cxgb3_main.c | 5 +-
drivers/net/cxgb4/cxgb4_main.c | 14 +--
drivers/net/cxgb4vf/cxgb4vf_main.c | 18 +---
drivers/net/dm9000.c | 17 +---
drivers/net/e1000/e1000.h | 1 -
drivers/net/e1000/e1000_ethtool.c | 58 ++--------
drivers/net/e1000e/ethtool.c | 32 +-----
drivers/net/ehea/ehea_ethtool.c | 2 +-
drivers/net/enic/enic_main.c | 23 +---
drivers/net/forcedeth.c | 35 +-----
drivers/net/fs_enet/fs_enet-main.c | 3 +-
drivers/net/gianfar.c | 2 +
drivers/net/gianfar_ethtool.c | 32 -----
drivers/net/greth.c | 16 +---
drivers/net/ibm_newemac/core.c | 2 -
drivers/net/ibmveth.c | 6 +-
drivers/net/igb/igb_ethtool.c | 51 +-------
drivers/net/igbvf/ethtool.c | 40 +------
drivers/net/ioc3-eth.c | 3 +-
drivers/net/ixgb/ixgb_ethtool.c | 33 +-----
drivers/net/ixgbe/ixgbe_ethtool.c | 48 ++-------
drivers/net/ixgbevf/ethtool.c | 23 +---
drivers/net/jme.c | 17 ++--
drivers/net/ksz884x.c | 6 +-
drivers/net/loopback.c | 4 +-
drivers/net/mlx4/en_ethtool.c | 23 +---
drivers/net/mlx4/en_netdev.c | 3 +
drivers/net/mv643xx_eth.c | 3 +-
drivers/net/myri10ge/myri10ge.c | 17 +---
drivers/net/netxen/netxen_nic_ethtool.c | 34 ------
drivers/net/netxen/netxen_nic_main.c | 4 +
drivers/net/pch_gbe/pch_gbe_ethtool.c | 20 +---
drivers/net/ps3_gelic_net.c | 3 +-
drivers/net/ps3_gelic_wireless.c | 3 +-
drivers/net/qlcnic/qlcnic_ethtool.c | 42 -------
drivers/net/qlcnic/qlcnic_main.c | 4 +
drivers/net/qlge/qlge_ethtool.c | 19 ---
drivers/net/qlge/qlge_main.c | 3 +
drivers/net/r8169.c | 5 +-
drivers/net/s2io.c | 31 +-----
drivers/net/sfc/efx.c | 4 +
drivers/net/sfc/ethtool.c | 38 ------
drivers/net/skge.c | 25 +----
drivers/net/sky2.c | 11 +-
drivers/net/spider_net.c | 1 +
drivers/net/spider_net_ethtool.c | 1 -
drivers/net/stmmac/stmmac_ethtool.c | 18 +---
drivers/net/tehuti.c | 12 --
drivers/net/tg3.c | 66 +++++------
drivers/net/typhoon.c | 5 +-
drivers/net/ucc_geth_ethtool.c | 2 +-
drivers/net/usb/smsc75xx.c | 23 +---
drivers/net/usb/smsc95xx.c | 16 +--
drivers/net/veth.c | 19 +---
drivers/net/via-velocity.c | 4 +-
drivers/net/virtio_net.c | 10 +-
drivers/net/vmxnet3/vmxnet3_ethtool.c | 8 +-
drivers/net/vxge/vxge-ethtool.c | 19 +---
drivers/net/xen-netfront.c | 19 ++-
drivers/s390/net/qeth_l3_main.c | 21 +---
drivers/staging/hv/netvsc_drv.c | 3 +-
drivers/staging/octeon/ethernet-mdio.c | 2 -
include/linux/ethtool.h | 26 +---
include/linux/netdevice.h | 4 +
net/8021q/vlan_dev.c | 5 +-
net/bridge/br_device.c | 16 +--
net/core/ethtool.c | 162 +++++++++++---------------
net/dsa/slave.c | 2 +-
82 files changed, 307 insertions(+), 1118 deletions(-)
[PATCH 1/4] Ethtool: Introduce hw_features field in struct netdevice Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- include/linux/netdevice.h | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
[PATCH 2/4] Ethtool: convert get_sg/set_sg calls to hw_features flag Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- drivers/infiniband/hw/nes/nes_nic.c | 3 +- drivers/net/8139cp.c | 2 +- drivers/net/atl1c/atl1c_ethtool.c | 3 +- drivers/net/atl1e/atl1e_ethtool.c | 2 +- drivers/net/atlx/atl1.c | 2 +- drivers/net/atlx/atl2.c | 3 +- drivers/net/benet/be_ethtool.c | 2 - drivers/net/benet/be_main.c | 1 + drivers/net/bna/bnad_ethtool.c | 3 +- drivers/net/bnx2.c | 2 +- drivers/net/bnx2x/bnx2x_ethtool.c | 3 +- drivers/net/bonding/bond_main.c | 1 - drivers/net/chelsio/cxgb2.c | 2 +- drivers/net/cxgb3/cxgb3_main.c | 2 +- drivers/net/cxgb4/cxgb4_main.c | 2 +- drivers/net/cxgb4vf/cxgb4vf_main.c | 2 +- drivers/net/e1000/e1000_ethtool.c | 2 +- drivers/net/e1000e/ethtool.c | 3 +- drivers/net/enic/enic_main.c | 3 +- drivers/net/forcedeth.c | 13 +------- drivers/net/fs_enet/fs_enet-main.c | 2 +- drivers/net/gianfar.c | 1 + drivers/net/gianfar_ethtool.c | 1 - drivers/net/ibm_newemac/core.c | 1 - drivers/net/ibmveth.c | 2 +- drivers/net/igb/igb_ethtool.c | 3 +- drivers/net/igbvf/ethtool.c | 3 +- drivers/net/ixgb/ixgb_ethtool.c | 2 +- drivers/net/ixgbe/ixgbe_ethtool.c | 3 +- drivers/net/ixgbevf/ethtool.c | 3 +- drivers/net/jme.c | 2 +- drivers/net/ksz884x.c | 3 +- drivers/net/loopback.c | 1 - drivers/net/mlx4/en_ethtool.c | 2 - drivers/net/mlx4/en_netdev.c | 1 + drivers/net/mv643xx_eth.c | 2 +- drivers/net/myri10ge/myri10ge.c | 2 +- drivers/net/netxen/netxen_nic_ethtool.c | 1 - drivers/net/netxen/netxen_nic_main.c | 1 + drivers/net/qlcnic/qlcnic_ethtool.c | 1 - drivers/net/qlcnic/qlcnic_main.c | 1 + drivers/net/qlge/qlge_ethtool.c | 2 - drivers/net/qlge/qlge_main.c | 1 + drivers/net/r8169.c | 2 +- drivers/net/s2io.c | 2 +- drivers/net/sfc/efx.c | 1 + drivers/net/sfc/ethtool.c | 2 - drivers/net/skge.c | 13 +------- drivers/net/sky2.c | 2 +- drivers/net/stmmac/stmmac_ethtool.c | 3 +- drivers/net/tehuti.c | 1 - drivers/net/tg3.c | 2 +- drivers/net/typhoon.c | 2 +- drivers/net/ucc_geth_ethtool.c | 2 +- drivers/net/veth.c | 3 +- drivers/net/via-velocity.c | 2 +- drivers/net/virtio_net.c | 2 +- drivers/net/vmxnet3/vmxnet3_ethtool.c | 3 +- drivers/net/vxge/vxge-ethtool.c | 3 +- drivers/net/xen-netfront.c | 10 +++++-- drivers/s390/net/qeth_l3_main.c | 3 +- drivers/staging/hv/netvsc_drv.c | 3 +- drivers/staging/octeon/ethernet-mdio.c | 1 - include/linux/ethtool.h | 8 +---- net/bridge/br_device.c | 6 ++-- net/core/ethtool.c | 46 +++++++++++++++---------------- net/dsa/slave.c | 2 +- 67 files changed, 87 insertions(+), 134 deletions(-)
[PATCH 3/4] Ethtool: convert get_tso/set_tso calls to hw_features flags Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- drivers/infiniband/hw/nes/nes_nic.c | 4 +- drivers/infiniband/ulp/ipoib/ipoib_ethtool.c | 10 ++-- drivers/net/8139cp.c | 3 +- drivers/net/atl1e/atl1e_ethtool.c | 3 +- drivers/net/atlx/atl1.c | 2 +- drivers/net/atlx/atl2.c | 3 - drivers/net/benet/be_ethtool.c | 2 - drivers/net/benet/be_main.c | 2 +- drivers/net/bna/bnad_ethtool.c | 20 +--------- drivers/net/bnx2.c | 18 +-------- drivers/net/bnx2x/bnx2x_ethtool.c | 16 +------- drivers/net/bonding/bond_main.c | 1 - drivers/net/chelsio/cxgb2.c | 12 +----- drivers/net/cxgb3/cxgb3_main.c | 3 +- drivers/net/cxgb4/cxgb4_main.c | 12 +----- drivers/net/cxgb4vf/cxgb4vf_main.c | 14 +------ drivers/net/e1000/e1000.h | 1 - drivers/net/e1000/e1000_ethtool.c | 28 +++----------- drivers/net/e1000e/ethtool.c | 12 +----- drivers/net/ehea/ehea_ethtool.c | 2 +- drivers/net/enic/enic_main.c | 11 +---- drivers/net/forcedeth.c | 13 +------ drivers/net/igb/igb_ethtool.c | 20 +--------- drivers/net/igbvf/ethtool.c | 20 +--------- drivers/net/ixgb/ixgb_ethtool.c | 13 +------ drivers/net/ixgbe/ixgbe_ethtool.c | 15 +------- drivers/net/ixgbevf/ethtool.c | 17 +-------- drivers/net/jme.c | 9 ++-- drivers/net/loopback.c | 2 +- drivers/net/mlx4/en_ethtool.c | 19 ++------- drivers/net/mlx4/en_netdev.c | 1 + drivers/net/myri10ge/myri10ge.c | 14 +------ drivers/net/netxen/netxen_nic_ethtool.c | 26 ------------- drivers/net/netxen/netxen_nic_main.c | 4 +- drivers/net/qlcnic/qlcnic_ethtool.c | 20 ---------- drivers/net/qlcnic/qlcnic_main.c | 1 + drivers/net/qlge/qlge_ethtool.c | 15 ------- drivers/net/qlge/qlge_main.c | 1 + drivers/net/r8169.c | 3 +- drivers/net/s2io.c | 18 +-------- drivers/net/sfc/efx.c | 4 +- drivers/net/sfc/ethtool.c | 20 ---------- drivers/net/sky2.c | 6 +- drivers/net/stmmac/stmmac_ethtool.c | 4 +- drivers/net/tehuti.c | 1 - drivers/net/tg3.c | 38 ++++++++++--------- drivers/net/typhoon.c | 3 +- drivers/net/usb/smsc75xx.c | 17 +------- drivers/net/virtio_net.c | 3 +- drivers/net/vmxnet3/vmxnet3_ethtool.c | 4 +- drivers/net/vxge/vxge-ethtool.c | 13 +------ drivers/net/xen-netfront.c | 9 ++-- drivers/s390/net/qeth_l3_main.c | 7 +-- include/linux/ethtool.h | 8 +--- include/linux/netdevice.h | 2 + net/8021q/vlan_dev.c | 5 +- net/bridge/br_device.c | 7 +-- net/core/ethtool.c | 52 +++++++++++++------------- 58 files changed, 132 insertions(+), 481 deletions(-)
[PATCH 4/4] Ethtool: convert get_tx_csum/set_tx_csum calls to hw_features flags Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- drivers/infiniband/hw/nes/nes_nic.c | 3 +- drivers/net/8139cp.c | 2 +- drivers/net/atl1c/atl1c_ethtool.c | 6 --- drivers/net/atl1e/atl1e_ethtool.c | 2 +- drivers/net/atlx/atl1.c | 2 +- drivers/net/atlx/atl2.c | 6 --- drivers/net/benet/be_ethtool.c | 2 - drivers/net/benet/be_main.c | 1 + drivers/net/bna/bnad_ethtool.c | 20 +--------- drivers/net/bnx2.c | 15 +------ drivers/net/bnx2x/bnx2x_ethtool.c | 4 +- drivers/net/bonding/bond_main.c | 1 - drivers/net/chelsio/cxgb2.c | 3 +- drivers/net/cxgb3/cxgb3_main.c | 2 +- drivers/net/cxgb4/cxgb4_main.c | 2 +- drivers/net/cxgb4vf/cxgb4vf_main.c | 2 +- drivers/net/dm9000.c | 17 +------- drivers/net/e1000/e1000_ethtool.c | 28 +------------ drivers/net/e1000e/ethtool.c | 19 +--------- drivers/net/enic/enic_main.c | 9 +--- drivers/net/forcedeth.c | 13 +------ drivers/net/fs_enet/fs_enet-main.c | 3 +- drivers/net/gianfar.c | 1 + drivers/net/gianfar_ethtool.c | 31 --------------- drivers/net/greth.c | 16 +------- drivers/net/ibm_newemac/core.c | 1 - drivers/net/ibmveth.c | 4 +- drivers/net/igb/igb_ethtool.c | 28 ++----------- drivers/net/igbvf/ethtool.c | 17 +-------- drivers/net/ioc3-eth.c | 3 +- drivers/net/ixgb/ixgb_ethtool.c | 20 +--------- drivers/net/ixgbe/ixgbe_ethtool.c | 30 +++----------- drivers/net/ixgbevf/ethtool.c | 3 +- drivers/net/jme.c | 8 ++-- drivers/net/ksz884x.c | 3 +- drivers/net/loopback.c | 1 - drivers/net/mlx4/en_ethtool.c | 2 - drivers/net/mlx4/en_netdev.c | 1 + drivers/net/mv643xx_eth.c | 3 +- drivers/net/myri10ge/myri10ge.c | 3 +- drivers/net/netxen/netxen_nic_ethtool.c | 7 --- drivers/net/netxen/netxen_nic_main.c | 1 + drivers/net/pch_gbe/pch_gbe_ethtool.c | 20 +--------- drivers/net/ps3_gelic_net.c | 3 +- drivers/net/ps3_gelic_wireless.c | 3 +- drivers/net/qlcnic/qlcnic_ethtool.c | 21 ---------- drivers/net/qlcnic/qlcnic_main.c | 2 + drivers/net/qlge/qlge_ethtool.c | 2 - drivers/net/qlge/qlge_main.c | 1 + drivers/net/r8169.c | 2 +- drivers/net/s2io.c | 13 +------ drivers/net/sfc/efx.c | 1 + drivers/net/sfc/ethtool.c | 16 -------- drivers/net/skge.c | 14 +------ drivers/net/sky2.c | 5 +- drivers/net/spider_net.c | 1 + drivers/net/spider_net_ethtool.c | 1 - drivers/net/stmmac/stmmac_ethtool.c | 13 +------ drivers/net/tehuti.c | 10 ----- drivers/net/tg3.c | 26 +++--------- drivers/net/typhoon.c | 2 +- drivers/net/usb/smsc75xx.c | 6 +- drivers/net/usb/smsc95xx.c | 16 ++------ drivers/net/veth.c | 18 +-------- drivers/net/via-velocity.c | 4 +- drivers/net/virtio_net.c | 7 ++- drivers/net/vmxnet3/vmxnet3_ethtool.c | 3 +- drivers/net/vxge/vxge-ethtool.c | 3 +- drivers/net/xen-netfront.c | 2 +- drivers/s390/net/qeth_l3_main.c | 13 ++---- drivers/staging/octeon/ethernet-mdio.c | 1 - include/linux/ethtool.h | 10 +---- net/bridge/br_device.c | 5 +- net/core/ethtool.c | 64 ++++++++++--------------------- 74 files changed, 118 insertions(+), 535 deletions(-)
Date: Wed, 9 Dec 2009 08:34:12 +0100
Subject: [PATCH 0/7] mtrr: cleanups and CONFIG_EMBEDDED usage
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
A bit of code-cutting in MTRR handling for users of CONFIG_EMBEDDED.
Patches generated on top of current linux-2.6.git (commit 2b876f9...),
tested on 2.6.32 (Pentium4 machine only, all patches at once).
size arch/x86/kernel/cpu/mtrr/built-in.o (stats based on 2.6.32)
text data bss dec hex
13934 5340 8476 27750 6c66 before
13931 5216 8436 27583 6bbf after (PROCESSOR_SELECT=n)
11788 5188 8356 25332 62f4 after (CPU_SUP_INTEL=y only)
Best Regards,
Michał Mirosław
Michał Mirosław (7):
x86/mtrr: Remove mtrr_ops[]
mtrr: constify struct mtrr_ops
mtrr: Remove use_intel()
x86/Kconfig.cpu: add CPU_SUP_AMD_32 and CPU_SUP_CENTAUR_32
mtrr: use CONFIG_CPU_SUP_* to select MTRR implementations
mtrr: introduce HAVE_MTRR_VENDOR_SPECIFIC
mtrr: mark mtrr_if as __read_mostly
arch/x86/Kconfig | 3 ++
arch/x86/Kconfig.cpu | 9 ++++++
arch/x86/kernel/cpu/mtrr/Makefile | 4 ++-
arch/x86/kernel/cpu/mtrr/amd.c | 7 +----
arch/x86/kernel/cpu/mtrr/centaur.c | 7 +----
arch/x86/kernel/cpu/mtrr/cyrix.c | 7 +----
arch/x86/kernel/cpu/mtrr/generic.c | 3 +-
arch/x86/kernel/cpu/mtrr/main.c | 54 ++++++++++++-----------------------
arch/x86/kernel/cpu/mtrr/mtrr.h | 23 +++++++++++----
arch/x86/kernel/cpu/mtrr/state.c | 10 +++---
10 files changed, 60 insertions(+), 67 deletions(-)
Date: Wed, 9 Dec 2009 05:51:56 +0100
Subject: [PATCH 1/7] x86/mtrr: Remove mtrr_ops[]
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
Remove mtrr_ops[] - it's contents are always the same and all this
registration thing only adds useless code.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
arch/x86/kernel/cpu/mtrr/amd.c | 7 +------
arch/x86/kernel/cpu/mtrr/centaur.c | 7 +------
arch/x86/kernel/cpu/mtrr/cyrix.c | 7 +------
arch/x86/kernel/cpu/mtrr/main.c | 32 +++++---------------------------
arch/x86/kernel/cpu/mtrr/mtrr.h | 7 +++++--
5 files changed, 13 insertions(+), 47 deletions(-)
Date: Wed, 9 Dec 2009 05:57:29 +0100
Subject: [PATCH 2/7] mtrr: constify struct mtrr_ops
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
arch/x86/kernel/cpu/mtrr/amd.c | 2 +-
arch/x86/kernel/cpu/mtrr/centaur.c | 2 +-
arch/x86/kernel/cpu/mtrr/cyrix.c | 2 +-
arch/x86/kernel/cpu/mtrr/generic.c | 2 +-
arch/x86/kernel/cpu/mtrr/main.c | 2 +-
arch/x86/kernel/cpu/mtrr/mtrr.h | 10 +++++-----
6 files changed, 10 insertions(+), 10 deletions(-)
Date: Wed, 9 Dec 2009 06:00:33 +0100
Subject: [PATCH 3/7] mtrr: Remove use_intel()
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
Remove use_intel() and use is_cpu(INTEL) instead.
.use_intel_if is duplicating information already found in .vendor, as
the only combinations used are:
generic: use_intel_if == 1, vendor == INTEL
amd/cyrix/centaur: use_intel_if == 0, vendor != INTEL
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
arch/x86/kernel/cpu/mtrr/generic.c | 1 -
arch/x86/kernel/cpu/mtrr/main.c | 14 +++++++-------
arch/x86/kernel/cpu/mtrr/mtrr.h | 2 --
arch/x86/kernel/cpu/mtrr/state.c | 10 +++++-----
4 files changed, 12 insertions(+), 15 deletions(-)
Date: Wed, 9 Dec 2009 06:04:39 +0100
Subject: [PATCH 4/7] x86/Kconfig.cpu: add CPU_SUP_AMD_32 and CPU_SUP_CENTAUR_32
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
Add CPU_SUP_AMD_32 and CPU_SUP_CENTAUR_32. Used later in selecting
possible MTRR implementations.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
arch/x86/Kconfig.cpu | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
Date: Wed, 9 Dec 2009 06:10:43 +0100
Subject: [PATCH 5/7] mtrr: use CONFIG_CPU_SUP_* to select MTRR implementations
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
Use CONFIG_CPU_SUP_* to select MTRR implementations. We let gcc
optimize out the empty switch statement if only generic implementation
is wanted.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
arch/x86/kernel/cpu/mtrr/Makefile | 4 +++-
arch/x86/kernel/cpu/mtrr/main.c | 10 ++++++++--
2 files changed, 11 insertions(+), 3 deletions(-)
Date: Wed, 9 Dec 2009 06:17:52 +0100
Subject: [PATCH 6/7] mtrr: introduce HAVE_MTRR_VENDOR_SPECIFIC
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
In case that only generic MTRR implementation is needed, tell gcc
to optimize out tests for other implementations. Also remove .vendor
from mtrr_ops in this configuration.
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
arch/x86/Kconfig | 3 +++
arch/x86/Kconfig.cpu | 3 +++
arch/x86/kernel/cpu/mtrr/mtrr.h | 12 +++++++++++-
3 files changed, 17 insertions(+), 1 deletions(-)
Date: Wed, 9 Dec 2009 08:32:36 +0100
Subject: [PATCH 7/7] mtrr: mark mtrr_if as __read_mostly
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Cc: Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
x86@kernel.org
Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
---
arch/x86/kernel/cpu/mtrr/main.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
Subject: RFC: pci_write_bits*() convenience functions There are a lot of code fragments in kernel looking like this: u16 buf; pci_read_config_word(pdev, offset, &buf); buf &= ~mask; buf |= value; pci_write_config_word(pdev, offset, buf); In in-kernel EDAC sources I found an implementation of pci_write_bits*() that allows above 5 lines to be easily converted to: pci_write_bits16(pdev, offset, value, mask); Since this sequence is common while initializing a device or sometimes during its normal operation I even wrote similar wrappers (see: driver for CB710 memory card reader, posted about a month ago to LKML and MMC mailinglists). I guess that there are more people hiding that could use this. This patch moves functions mentioned above to global include: linux/pci.h. I verified that no users in EDAC code rely on the mask != (u16)(-1) test and I think that plain pci_write_config_X() is better in cases where this test is known to evaluate to false. What's interesting, there are 2039 lines where pci_read_config_*() is used and in only about 161 the return value is checked (as of current linux-2.6.git tree: commit 3d44cc3e01..., quick grep test). Best Regards, Michał Mirosław (Please Cc: me on reply to list.)
Subject: RFC: pci_write_bits*() convenience functions v.2 This is a version of the pci_write_bits*() with error checking included. I don't know if you like the #defined function generator, but at least this avoids copy-and-paste errors in case this needs some changes in the future. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Subject: [PATCH] Make errors printed from scsi_sysfs_add_sdev() mean something. This is an updated version of patch I wrote long time ago, but looks like it didn't get far. Patch against linux-2.6.git. And yes - printk() lines are longer than 80 chars - it shouldn't matter here (grep is happy ;). Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Subject: [PATCH 0/2] mmc: Add support for SD combo cards This adds support for SD combo cards to MMC/SD driver stack. SD combo consists of SD memory and SDIO parts in one package. Since the parts have a separate SD command sets, after initialization, they can be treated as independent cards on one bus. Changes are divided into two patches. First is just moving initialization code around so that SD memory part init can be called from SDIO init. Second patch is a proper change enabling SD memory along SDIO. I tried to move as much no-op changes to the first patch so that it's easier to follow the required changes to initialization flow for SDIO cards. This is based on Simplified SDIO spec v.2.00. The init sequence is slightly modified to follow current SD memory init implementation. Command sequences, assuming SD memory and SDIO indeed ignore unknown commands, are the same as before for both parts. Changes from v1: - more no-op changes moved to first patch - eliminated internal abuse of EOPNOTSUPP - fixed a bug in resume path (not tested) - eliminated unnecessary CID memcpy in SD combo init Best Regards, Michał Mirosław Michał Mirosław (2): mmc: split mmc_sd_init_card() mmc: implement SD-combo (IO+mem) support drivers/mmc/core/bus.c | 9 ++ drivers/mmc/core/core.c | 12 ++- drivers/mmc/core/sd.c | 249 +++++++++++++++++++++++++++------------------- drivers/mmc/core/sd.h | 17 +++ drivers/mmc/core/sdio.c | 174 +++++++++++++++++++++++++------- include/linux/mmc/card.h | 1 + 6 files changed, 320 insertions(+), 142 deletions(-) create mode 100644 drivers/mmc/core/sd.h
Subject: [PATCH 1/2] mmc: split mmc_sd_init_card() Prepare for SD-combo (IO+mem) support by splitting SD memory card init and related functions. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- drivers/mmc/core/sd.c | 249 +++++++++++++++++++++++++++-------------------- drivers/mmc/core/sd.h | 17 +++ drivers/mmc/core/sdio.c | 39 +++++--- 3 files changed, 186 insertions(+), 119 deletions(-) create mode 100644 drivers/mmc/core/sd.h
Subject: [PATCH 2/2] mmc: implement SD-combo (IO+mem) support Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> --- drivers/mmc/core/bus.c | 9 +++ drivers/mmc/core/core.c | 12 ++++- drivers/mmc/core/sdio.c | 135 ++++++++++++++++++++++++++++++++++++++------- include/linux/mmc/card.h | 1 + 4 files changed, 134 insertions(+), 23 deletions(-)
Trivial comment fix for include/linux/serial_reg.h Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
sparc64: Fix wrong table entry range #defines. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Copyright (c) 2005-2010 by Michał Mirosław; kontakt: webmajster@rere.qmqm.pl