summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2013-05-07 19:21:59 -0400
committerPaul Gortmaker <paul.gortmaker@windriver.com>2013-05-07 19:21:59 -0400
commit91331fbb4539e5699d195be7f5d9b2e63ecc46cd (patch)
tree6cd4a5c30a94d78a39be70bc41f2c6ff846f406d
parentcb31b24343566a6e2b65bf4b4840391aa6c5c6ff (diff)
download3.8-rt-patches-91331fbb4539e5699d195be7f5d9b2e63ecc46cd.tar.gz
patches-3.8.10-rt6.tar.xzv3.8.10-rt6
md5sum: 5d67cb12ca9b97382a85b13d0a709b7b patches-3.8.10-rt6.tar.xz Announce: --------------------- Dear RT Folks, I'm pleased to announce the 3.8.10-rt6 release. changes since v3.8.10-rt5: - the i915 compiles again after I broke it in the last release. A patch was sent by Carsten Emde. Known issues: - SLxB is broken on PowerPC. - suspend / resume seems to program program the timer wrong and wait ages until it continues. The delta patch against v3.8.10-rt5 is appended below and can be found here: https://www.kernel.org/pub/linux/kernel/projects/rt/3.8/incr/patch-3.8.10-rt5-rt6.patch.xz The RT patch against 3.8.9 can be found here: https://www.kernel.org/pub/linux/kernel/projects/rt/3.8/patch-3.8.10-rt6.patch.xz The split quilt queue is available at: https://www.kernel.org/pub/linux/kernel/projects/rt/3.8/patches-3.8.10-rt6.tar.xz Sebastian --------------------- http://marc.info/?l=linux-rt-users&m=136726632717595&w=2 Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--patches/cpsw-collected_cpsw_patches.patch242
-rw-r--r--patches/cpsw-net-cpsw-Use-fallback-for-active_slave.patch7
-rw-r--r--patches/cpsw-net-cpsw-use-a-lock-around-source-testing.patch13
-rw-r--r--patches/cpsw-revert-stable-patches.patch23
-rw-r--r--patches/drm-i915-move-i915_trace_irq_get-out-of-the-tracing-.patch20
-rw-r--r--patches/fs-fscache-remove-spin_lock-from-the-condition-in-wh.patch9
-rw-r--r--patches/localversion.patch2
-rw-r--r--patches/mm-convert-swap-to-percpu-locked.patch18
-rw-r--r--patches/powerpc-preempt-lazy-support.patch10
-rw-r--r--patches/rt-add-rt-spinlock-to-headers.patch12
-rw-r--r--patches/sched-better-debug-output-for-might-sleep.patch4
-rw-r--r--patches/sched-fix-the-wrong-macro-name-of-CONFIG_DEBUG_PREEM.patch33
-rw-r--r--patches/series4
-rw-r--r--patches/spinlock-include-cache.h.patch24
-rw-r--r--patches/swap-Use-unique-local-lock-name-for-swap_lock.patch101
15 files changed, 176 insertions, 346 deletions
diff --git a/patches/cpsw-collected_cpsw_patches.patch b/patches/cpsw-collected_cpsw_patches.patch
index 26c5d99..b8cc132 100644
--- a/patches/cpsw-collected_cpsw_patches.patch
+++ b/patches/cpsw-collected_cpsw_patches.patch
@@ -1061,8 +1061,21 @@ including the following patches:
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
-diff --git a/arch/arm/boot/dts/am33xx.dtsi b/arch/arm/boot/dts/am33xx.dtsi
-index c2f14e8..91fe4f1 100644
+---
+ arch/arm/boot/dts/am33xx.dtsi | 16
+ drivers/net/ethernet/ti/Kconfig | 4
+ drivers/net/ethernet/ti/cpmac.c | 11
+ drivers/net/ethernet/ti/cpsw.c | 814 ++++++++++++++++++++++++++------
+ drivers/net/ethernet/ti/cpsw_ale.c | 107 +++-
+ drivers/net/ethernet/ti/cpsw_ale.h | 24
+ drivers/net/ethernet/ti/davinci_cpdma.c | 106 +++-
+ drivers/net/ethernet/ti/davinci_cpdma.h | 12
+ drivers/net/ethernet/ti/davinci_emac.c | 76 +-
+ drivers/net/ethernet/ti/davinci_mdio.c | 5
+ drivers/net/ethernet/ti/tlan.c | 5
+ include/linux/platform_data/cpsw.h | 6
+ 12 files changed, 946 insertions(+), 240 deletions(-)
+
--- a/arch/arm/boot/dts/am33xx.dtsi
+++ b/arch/arm/boot/dts/am33xx.dtsi
@@ -349,7 +349,7 @@
@@ -1094,8 +1107,6 @@ index c2f14e8..91fe4f1 100644
+ };
};
};
-diff --git a/drivers/net/ethernet/ti/Kconfig b/drivers/net/ethernet/ti/Kconfig
-index 4426151..de71b1e 100644
--- a/drivers/net/ethernet/ti/Kconfig
+++ b/drivers/net/ethernet/ti/Kconfig
@@ -88,8 +88,8 @@ config TLAN
@@ -1109,11 +1120,9 @@ index 4426151..de71b1e 100644
select PHYLIB
---help---
TI AR7 CPMAC Ethernet support
-diff --git a/drivers/net/ethernet/ti/cpmac.c b/drivers/net/ethernet/ti/cpmac.c
-index d9625f6..31bbbca 100644
--- a/drivers/net/ethernet/ti/cpmac.c
+++ b/drivers/net/ethernet/ti/cpmac.c
-@@ -904,10 +904,9 @@ static int cpmac_set_ringparam(struct net_device *dev,
+@@ -904,10 +904,9 @@ static int cpmac_set_ringparam(struct ne
static void cpmac_get_drvinfo(struct net_device *dev,
struct ethtool_drvinfo *info)
{
@@ -1127,7 +1136,7 @@ index d9625f6..31bbbca 100644
info->regdump_len = 0;
}
-@@ -1173,8 +1172,8 @@ static int cpmac_probe(struct platform_device *pdev)
+@@ -1173,8 +1172,8 @@ static int cpmac_probe(struct platform_d
snprintf(priv->phy_name, MII_BUS_ID_SIZE, PHY_ID_FMT,
mdio_bus_id, phy_id);
@@ -1138,8 +1147,6 @@ index d9625f6..31bbbca 100644
if (IS_ERR(priv->phy)) {
if (netif_msg_drv(priv))
-diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
-index 40aff68..4e2d224 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -32,6 +32,7 @@
@@ -1226,7 +1233,7 @@ index 40aff68..4e2d224 100644
struct net_device_stats stats;
int rx_packet_max;
int host_port;
-@@ -315,17 +348,69 @@ struct cpsw_priv {
+@@ -315,16 +348,68 @@ struct cpsw_priv {
/* snapshot of IRQ numbers */
u32 irqs_table[4];
u32 num_irqs;
@@ -1273,7 +1280,7 @@ index 40aff68..4e2d224 100644
+ priv = netdev_priv(ndev); \
+ skb->dev = ndev; \
+ } \
-+ } while (0)
+ } while (0)
+#define cpsw_add_mcast(priv, addr) \
+ do { \
+ if (priv->data.dual_emac) { \
@@ -1289,8 +1296,8 @@ index 40aff68..4e2d224 100644
+ ALE_ALL_PORTS << priv->host_port, \
+ 0, 0, 0); \
+ } \
- } while (0)
-
++ } while (0)
++
+static inline int cpsw_get_slave_port(struct cpsw_priv *priv, u32 slave_num)
+{
+ if (priv->host_port == 0)
@@ -1298,11 +1305,10 @@ index 40aff68..4e2d224 100644
+ else
+ return slave_num;
+}
-+
+
static void cpsw_ndo_set_rx_mode(struct net_device *ndev)
{
- struct cpsw_priv *priv = netdev_priv(ndev);
-@@ -344,8 +429,7 @@ static void cpsw_ndo_set_rx_mode(struct net_device *ndev)
+@@ -344,8 +429,7 @@ static void cpsw_ndo_set_rx_mode(struct
/* program multicast address list into ALE register */
netdev_for_each_mc_addr(ha, ndev) {
@@ -1312,7 +1318,7 @@ index 40aff68..4e2d224 100644
}
}
}
-@@ -374,9 +458,12 @@ void cpsw_tx_handler(void *token, int len, int status)
+@@ -374,9 +458,12 @@ void cpsw_tx_handler(void *token, int le
struct net_device *ndev = skb->dev;
struct cpsw_priv *priv = netdev_priv(ndev);
@@ -1327,7 +1333,7 @@ index 40aff68..4e2d224 100644
priv->stats.tx_packets++;
priv->stats.tx_bytes += len;
dev_kfree_skb_any(skb);
-@@ -385,61 +472,69 @@ void cpsw_tx_handler(void *token, int len, int status)
+@@ -385,61 +472,69 @@ void cpsw_tx_handler(void *token, int le
void cpsw_rx_handler(void *token, int len, int status)
{
struct sk_buff *skb = token;
@@ -1428,7 +1434,7 @@ index 40aff68..4e2d224 100644
}
static int cpsw_poll(struct napi_struct *napi, int budget)
-@@ -448,19 +543,27 @@ static int cpsw_poll(struct napi_struct *napi, int budget)
+@@ -448,19 +543,27 @@ static int cpsw_poll(struct napi_struct
int num_tx, num_rx;
num_tx = cpdma_chan_process(priv->txch, 128);
@@ -1463,7 +1469,7 @@ index 40aff68..4e2d224 100644
return num_rx;
}
-@@ -548,6 +651,77 @@ static void cpsw_adjust_link(struct net_device *ndev)
+@@ -548,6 +651,77 @@ static void cpsw_adjust_link(struct net_
}
}
@@ -1541,7 +1547,7 @@ index 40aff68..4e2d224 100644
static inline int __show_stat(char *buf, int maxlen, const char *name, u32 val)
{
static char *leader = "........................................";
-@@ -559,6 +733,54 @@ static inline int __show_stat(char *buf, int maxlen, const char *name, u32 val)
+@@ -559,6 +733,54 @@ static inline int __show_stat(char *buf,
leader + strlen(name), val);
}
@@ -1596,7 +1602,7 @@ index 40aff68..4e2d224 100644
static void cpsw_slave_open(struct cpsw_slave *slave, struct cpsw_priv *priv)
{
char name[32];
-@@ -588,11 +810,14 @@ static void cpsw_slave_open(struct cpsw_slave *slave, struct cpsw_priv *priv)
+@@ -588,11 +810,14 @@ static void cpsw_slave_open(struct cpsw_
slave_port = cpsw_get_slave_port(priv, slave->slave_num);
@@ -1614,7 +1620,7 @@ index 40aff68..4e2d224 100644
if (IS_ERR(slave->phy)) {
dev_err(priv->dev, "phy %s not found on slave %d\n",
slave->data->phy_id, slave->slave_num);
-@@ -604,14 +829,44 @@ static void cpsw_slave_open(struct cpsw_slave *slave, struct cpsw_priv *priv)
+@@ -604,14 +829,44 @@ static void cpsw_slave_open(struct cpsw_
}
}
@@ -1660,7 +1666,7 @@ index 40aff68..4e2d224 100644
/* setup host port priority mapping */
__raw_writel(CPDMA_TX_PRIORITY_MAP,
-@@ -621,18 +876,32 @@ static void cpsw_init_host_port(struct cpsw_priv *priv)
+@@ -621,18 +876,32 @@ static void cpsw_init_host_port(struct c
cpsw_ale_control_set(priv->ale, priv->host_port,
ALE_PORT_STATE, ALE_PORT_STATE_FORWARD);
@@ -1697,7 +1703,7 @@ index 40aff68..4e2d224 100644
netif_carrier_off(ndev);
pm_runtime_get_sync(&priv->pdev->dev);
-@@ -644,53 +913,81 @@ static int cpsw_ndo_open(struct net_device *ndev)
+@@ -644,53 +913,81 @@ static int cpsw_ndo_open(struct net_devi
CPSW_RTL_VERSION(reg));
/* initialize host and slave ports */
@@ -1813,7 +1819,7 @@ index 40aff68..4e2d224 100644
}
static int cpsw_ndo_stop(struct net_device *ndev)
-@@ -701,12 +998,17 @@ static int cpsw_ndo_stop(struct net_device *ndev)
+@@ -701,12 +998,17 @@ static int cpsw_ndo_stop(struct net_devi
netif_stop_queue(priv->ndev);
napi_disable(&priv->napi);
netif_carrier_off(priv->ndev);
@@ -1835,7 +1841,7 @@ index 40aff68..4e2d224 100644
return 0;
}
-@@ -724,18 +1026,24 @@ static netdev_tx_t cpsw_ndo_start_xmit(struct sk_buff *skb,
+@@ -724,18 +1026,24 @@ static netdev_tx_t cpsw_ndo_start_xmit(s
return NETDEV_TX_OK;
}
@@ -1863,7 +1869,7 @@ index 40aff68..4e2d224 100644
return NETDEV_TX_OK;
fail:
priv->stats.tx_dropped++;
-@@ -770,10 +1078,10 @@ static void cpsw_ndo_change_rx_flags(struct net_device *ndev, int flags)
+@@ -770,10 +1078,10 @@ static void cpsw_ndo_change_rx_flags(str
static void cpsw_hwtstamp_v1(struct cpsw_priv *priv)
{
@@ -1876,7 +1882,7 @@ index 40aff68..4e2d224 100644
slave_write(slave, 0, CPSW1_TS_CTL);
return;
}
-@@ -781,10 +1089,10 @@ static void cpsw_hwtstamp_v1(struct cpsw_priv *priv)
+@@ -781,10 +1089,10 @@ static void cpsw_hwtstamp_v1(struct cpsw
seq_id = (30 << CPSW_V1_SEQ_ID_OFS_SHIFT) | ETH_P_1588;
ts_en = EVENT_MSG_BITS << CPSW_V1_MSG_TYPE_OFS;
@@ -1889,7 +1895,7 @@ index 40aff68..4e2d224 100644
ts_en |= CPSW_V1_TS_RX_EN;
slave_write(slave, ts_en, CPSW1_TS_CTL);
-@@ -793,16 +1101,21 @@ static void cpsw_hwtstamp_v1(struct cpsw_priv *priv)
+@@ -793,16 +1101,21 @@ static void cpsw_hwtstamp_v1(struct cpsw
static void cpsw_hwtstamp_v2(struct cpsw_priv *priv)
{
@@ -1914,7 +1920,7 @@ index 40aff68..4e2d224 100644
ctrl |= CTRL_RX_TS_BITS;
mtype = (30 << TS_SEQ_ID_OFFSET_SHIFT) | EVENT_MSG_BITS;
-@@ -815,7 +1128,7 @@ static void cpsw_hwtstamp_v2(struct cpsw_priv *priv)
+@@ -815,7 +1128,7 @@ static void cpsw_hwtstamp_v2(struct cpsw
static int cpsw_hwtstamp_ioctl(struct net_device *dev, struct ifreq *ifr)
{
struct cpsw_priv *priv = netdev_priv(dev);
@@ -1923,7 +1929,7 @@ index 40aff68..4e2d224 100644
struct hwtstamp_config cfg;
if (copy_from_user(&cfg, ifr->ifr_data, sizeof(cfg)))
-@@ -879,14 +1192,26 @@ static int cpsw_hwtstamp_ioctl(struct net_device *dev, struct ifreq *ifr)
+@@ -879,14 +1192,26 @@ static int cpsw_hwtstamp_ioctl(struct ne
static int cpsw_ndo_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
{
@@ -1952,7 +1958,7 @@ index 40aff68..4e2d224 100644
}
static void cpsw_ndo_tx_timeout(struct net_device *ndev)
-@@ -901,7 +1226,9 @@ static void cpsw_ndo_tx_timeout(struct net_device *ndev)
+@@ -901,7 +1226,9 @@ static void cpsw_ndo_tx_timeout(struct n
cpdma_chan_start(priv->txch);
cpdma_ctlr_int_ctrl(priv->dma, true);
cpsw_intr_enable(priv);
@@ -1963,7 +1969,7 @@ index 40aff68..4e2d224 100644
}
static struct net_device_stats *cpsw_ndo_get_stats(struct net_device *ndev)
-@@ -920,10 +1247,79 @@ static void cpsw_ndo_poll_controller(struct net_device *ndev)
+@@ -920,10 +1247,79 @@ static void cpsw_ndo_poll_controller(str
cpsw_interrupt(ndev->irq, priv);
cpdma_ctlr_int_ctrl(priv->dma, true);
cpsw_intr_enable(priv);
@@ -2044,7 +2050,7 @@ index 40aff68..4e2d224 100644
static const struct net_device_ops cpsw_netdev_ops = {
.ndo_open = cpsw_ndo_open,
.ndo_stop = cpsw_ndo_stop,
-@@ -938,15 +1334,18 @@ static const struct net_device_ops cpsw_netdev_ops = {
+@@ -938,15 +1334,18 @@ static const struct net_device_ops cpsw_
#ifdef CONFIG_NET_POLL_CONTROLLER
.ndo_poll_controller = cpsw_ndo_poll_controller,
#endif
@@ -2066,7 +2072,7 @@ index 40aff68..4e2d224 100644
}
static u32 cpsw_get_msglevel(struct net_device *ndev)
-@@ -974,7 +1373,7 @@ static int cpsw_get_ts_info(struct net_device *ndev,
+@@ -974,7 +1373,7 @@ static int cpsw_get_ts_info(struct net_d
SOF_TIMESTAMPING_RX_SOFTWARE |
SOF_TIMESTAMPING_SOFTWARE |
SOF_TIMESTAMPING_RAW_HARDWARE;
@@ -2075,7 +2081,7 @@ index 40aff68..4e2d224 100644
info->tx_types =
(1 << HWTSTAMP_TX_OFF) |
(1 << HWTSTAMP_TX_ON);
-@@ -993,12 +1392,39 @@ static int cpsw_get_ts_info(struct net_device *ndev,
+@@ -993,12 +1392,39 @@ static int cpsw_get_ts_info(struct net_d
return 0;
}
@@ -2115,7 +2121,7 @@ index 40aff68..4e2d224 100644
};
static void cpsw_slave_init(struct cpsw_slave *slave, struct cpsw_priv *priv,
-@@ -1011,6 +1437,7 @@ static void cpsw_slave_init(struct cpsw_slave *slave, struct cpsw_priv *priv,
+@@ -1011,6 +1437,7 @@ static void cpsw_slave_init(struct cpsw_
slave->data = data;
slave->regs = regs + slave_reg_ofs;
slave->sliver = regs + sliver_reg_ofs;
@@ -2123,7 +2129,7 @@ index 40aff68..4e2d224 100644
}
static int cpsw_probe_dt(struct cpsw_platform_data *data,
-@@ -1030,12 +1457,12 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1030,12 +1457,12 @@ static int cpsw_probe_dt(struct cpsw_pla
}
data->slaves = prop;
@@ -2139,7 +2145,7 @@ index 40aff68..4e2d224 100644
if (of_property_read_u32(node, "cpts_clock_mult", &prop)) {
pr_err("Missing cpts_clock_mult property in the DT.\n");
-@@ -1051,12 +1478,10 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1051,12 +1478,10 @@ static int cpsw_probe_dt(struct cpsw_pla
}
data->cpts_clock_shift = prop;
@@ -2155,7 +2161,7 @@ index 40aff68..4e2d224 100644
if (of_property_read_u32(node, "cpdma_channels", &prop)) {
pr_err("Missing cpdma_channels property in the DT.\n");
-@@ -1093,6 +1518,9 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1093,6 +1518,9 @@ static int cpsw_probe_dt(struct cpsw_pla
}
data->mac_control = prop;
@@ -2165,7 +2171,7 @@ index 40aff68..4e2d224 100644
/*
* Populate all the child nodes here...
*/
-@@ -1111,7 +1539,7 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1111,7 +1539,7 @@ static int cpsw_probe_dt(struct cpsw_pla
struct platform_device *mdio;
parp = of_get_property(slave_node, "phy_id", &lenp);
@@ -2174,7 +2180,7 @@ index 40aff68..4e2d224 100644
pr_err("Missing slave[%d] phy_id property\n", i);
ret = -EINVAL;
goto error_ret;
-@@ -1126,6 +1554,18 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1126,6 +1554,18 @@ static int cpsw_probe_dt(struct cpsw_pla
if (mac_addr)
memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN);
@@ -2193,7 +2199,7 @@ index 40aff68..4e2d224 100644
i++;
}
-@@ -1136,9 +1576,85 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1136,9 +1576,85 @@ error_ret:
return ret;
}
@@ -2280,7 +2286,7 @@ index 40aff68..4e2d224 100644
struct net_device *ndev;
struct cpsw_priv *priv;
struct cpdma_params dma_params;
-@@ -1162,6 +1678,11 @@ static int cpsw_probe(struct platform_device *pdev)
+@@ -1162,6 +1678,11 @@ static int cpsw_probe(struct platform_de
priv->dev = &ndev->dev;
priv->msg_enable = netif_msg_init(debug_level, CPSW_DEBUG);
priv->rx_packet_max = max(rx_packet_max, 128);
@@ -2292,7 +2298,7 @@ index 40aff68..4e2d224 100644
/*
* This may be required here for child devices.
-@@ -1194,12 +1715,17 @@ static int cpsw_probe(struct platform_device *pdev)
+@@ -1194,12 +1715,17 @@ static int cpsw_probe(struct platform_de
for (i = 0; i < data->slaves; i++)
priv->slaves[i].slave_num = i;
@@ -2310,7 +2316,7 @@ index 40aff68..4e2d224 100644
priv->cpsw_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (!priv->cpsw_res) {
-@@ -1248,7 +1774,7 @@ static int cpsw_probe(struct platform_device *pdev)
+@@ -1248,7 +1774,7 @@ static int cpsw_probe(struct platform_de
switch (priv->version) {
case CPSW_VERSION_1:
priv->host_port_regs = ss_regs + CPSW1_HOST_PORT_OFFSET;
@@ -2319,7 +2325,7 @@ index 40aff68..4e2d224 100644
dma_params.dmaregs = ss_regs + CPSW1_CPDMA_OFFSET;
dma_params.txhdp = ss_regs + CPSW1_STATERAM_OFFSET;
ale_params.ale_regs = ss_regs + CPSW1_ALE_OFFSET;
-@@ -1259,7 +1785,7 @@ static int cpsw_probe(struct platform_device *pdev)
+@@ -1259,7 +1785,7 @@ static int cpsw_probe(struct platform_de
break;
case CPSW_VERSION_2:
priv->host_port_regs = ss_regs + CPSW2_HOST_PORT_OFFSET;
@@ -2328,7 +2334,7 @@ index 40aff68..4e2d224 100644
dma_params.dmaregs = ss_regs + CPSW2_CPDMA_OFFSET;
dma_params.txhdp = ss_regs + CPSW2_STATERAM_OFFSET;
ale_params.ale_regs = ss_regs + CPSW2_ALE_OFFSET;
-@@ -1341,12 +1867,12 @@ static int cpsw_probe(struct platform_device *pdev)
+@@ -1341,12 +1867,12 @@ static int cpsw_probe(struct platform_de
goto clean_ale_ret;
}
priv->irqs_table[k] = i;
@@ -2343,7 +2349,7 @@ index 40aff68..4e2d224 100644
ndev->netdev_ops = &cpsw_netdev_ops;
SET_ETHTOOL_OPS(ndev, &cpsw_ethtool_ops);
-@@ -1361,17 +1887,26 @@ static int cpsw_probe(struct platform_device *pdev)
+@@ -1361,17 +1887,26 @@ static int cpsw_probe(struct platform_de
goto clean_irq_ret;
}
@@ -2372,7 +2378,7 @@ index 40aff68..4e2d224 100644
clean_ale_ret:
cpsw_ale_destroy(priv->ale);
clean_dma_ret:
-@@ -1394,7 +1929,8 @@ static int cpsw_probe(struct platform_device *pdev)
+@@ -1394,7 +1929,8 @@ clean_slave_ret:
pm_runtime_disable(&pdev->dev);
kfree(priv->slaves);
clean_ndev_ret:
@@ -2382,7 +2388,7 @@ index 40aff68..4e2d224 100644
return ret;
}
-@@ -1402,12 +1938,17 @@ static int cpsw_remove(struct platform_device *pdev)
+@@ -1402,12 +1938,17 @@ static int cpsw_remove(struct platform_d
{
struct net_device *ndev = platform_get_drvdata(pdev);
struct cpsw_priv *priv = netdev_priv(ndev);
@@ -2403,7 +2409,7 @@ index 40aff68..4e2d224 100644
cpsw_ale_destroy(priv->ale);
cpdma_chan_destroy(priv->txch);
cpdma_chan_destroy(priv->rxch);
-@@ -1421,8 +1962,10 @@ static int cpsw_remove(struct platform_device *pdev)
+@@ -1421,8 +1962,10 @@ static int cpsw_remove(struct platform_d
pm_runtime_disable(&pdev->dev);
clk_put(priv->clk);
kfree(priv->slaves);
@@ -2415,7 +2421,7 @@ index 40aff68..4e2d224 100644
return 0;
}
-@@ -1458,6 +2001,7 @@ static const struct of_device_id cpsw_of_mtable[] = {
+@@ -1458,6 +2001,7 @@ static const struct of_device_id cpsw_of
{ .compatible = "ti,cpsw", },
{ /* sentinel */ },
};
@@ -2423,11 +2429,9 @@ index 40aff68..4e2d224 100644
static struct platform_driver cpsw_driver = {
.driver = {
-diff --git a/drivers/net/ethernet/ti/cpsw_ale.c b/drivers/net/ethernet/ti/cpsw_ale.c
-index 0e9ccc2..7fa60d6 100644
--- a/drivers/net/ethernet/ti/cpsw_ale.c
+++ b/drivers/net/ethernet/ti/cpsw_ale.c
-@@ -148,7 +148,7 @@ static int cpsw_ale_write(struct cpsw_ale *ale, int idx, u32 *ale_entry)
+@@ -148,7 +148,7 @@ static int cpsw_ale_write(struct cpsw_al
return idx;
}
@@ -2436,7 +2440,7 @@ index 0e9ccc2..7fa60d6 100644
{
u32 ale_entry[ALE_ENTRY_WORDS];
int type, idx;
-@@ -160,6 +160,8 @@ static int cpsw_ale_match_addr(struct cpsw_ale *ale, u8 *addr)
+@@ -160,6 +160,8 @@ static int cpsw_ale_match_addr(struct cp
type = cpsw_ale_get_entry_type(ale_entry);
if (type != ALE_TYPE_ADDR && type != ALE_TYPE_VLAN_ADDR)
continue;
@@ -2445,7 +2449,7 @@ index 0e9ccc2..7fa60d6 100644
cpsw_ale_get_addr(ale_entry, entry_addr);
if (memcmp(entry_addr, addr, 6) == 0)
return idx;
-@@ -167,6 +169,22 @@ static int cpsw_ale_match_addr(struct cpsw_ale *ale, u8 *addr)
+@@ -167,6 +169,22 @@ static int cpsw_ale_match_addr(struct cp
return -ENOENT;
}
@@ -2468,7 +2472,7 @@ index 0e9ccc2..7fa60d6 100644
static int cpsw_ale_match_free(struct cpsw_ale *ale)
{
u32 ale_entry[ALE_ENTRY_WORDS];
-@@ -274,19 +292,32 @@ int cpsw_ale_flush(struct cpsw_ale *ale, int port_mask)
+@@ -274,19 +292,32 @@ int cpsw_ale_flush(struct cpsw_ale *ale,
return 0;
}
@@ -2504,7 +2508,7 @@ index 0e9ccc2..7fa60d6 100644
if (idx < 0)
idx = cpsw_ale_match_free(ale);
if (idx < 0)
-@@ -298,12 +329,13 @@ int cpsw_ale_add_ucast(struct cpsw_ale *ale, u8 *addr, int port, int flags)
+@@ -298,12 +329,13 @@ int cpsw_ale_add_ucast(struct cpsw_ale *
return 0;
}
@@ -2520,7 +2524,7 @@ index 0e9ccc2..7fa60d6 100644
if (idx < 0)
return -ENOENT;
-@@ -313,18 +345,19 @@ int cpsw_ale_del_ucast(struct cpsw_ale *ale, u8 *addr, int port)
+@@ -313,18 +345,19 @@ int cpsw_ale_del_ucast(struct cpsw_ale *
}
int cpsw_ale_add_mcast(struct cpsw_ale *ale, u8 *addr, int port_mask,
@@ -2544,7 +2548,7 @@ index 0e9ccc2..7fa60d6 100644
cpsw_ale_set_mcast_state(ale_entry, mcast_state);
mask = cpsw_ale_get_port_mask(ale_entry);
-@@ -342,12 +375,13 @@ int cpsw_ale_add_mcast(struct cpsw_ale *ale, u8 *addr, int port_mask,
+@@ -342,12 +375,13 @@ int cpsw_ale_add_mcast(struct cpsw_ale *
return 0;
}
@@ -2560,10 +2564,14 @@ index 0e9ccc2..7fa60d6 100644
if (idx < 0)
return -EINVAL;
-@@ -362,6 +396,55 @@ int cpsw_ale_del_mcast(struct cpsw_ale *ale, u8 *addr, int port_mask)
- return 0;
- }
+@@ -358,6 +392,55 @@ int cpsw_ale_del_mcast(struct cpsw_ale *
+ else
+ cpsw_ale_set_entry_type(ale_entry, ALE_TYPE_FREE);
++ cpsw_ale_write(ale, idx, ale_entry);
++ return 0;
++}
++
+int cpsw_ale_add_vlan(struct cpsw_ale *ale, u16 vid, int port, int untag,
+ int reg_mcast, int unreg_mcast)
+{
@@ -2609,15 +2617,9 @@ index 0e9ccc2..7fa60d6 100644
+ else
+ cpsw_ale_set_entry_type(ale_entry, ALE_TYPE_FREE);
+
-+ cpsw_ale_write(ale, idx, ale_entry);
-+ return 0;
-+}
-+
- struct ale_control_info {
- const char *name;
- int offset, port_offset;
-diff --git a/drivers/net/ethernet/ti/cpsw_ale.h b/drivers/net/ethernet/ti/cpsw_ale.h
-index 2bd09cb..30daa12 100644
+ cpsw_ale_write(ale, idx, ale_entry);
+ return 0;
+ }
--- a/drivers/net/ethernet/ti/cpsw_ale.h
+++ b/drivers/net/ethernet/ti/cpsw_ale.h
@@ -64,8 +64,14 @@ enum cpsw_ale_port_state {
@@ -2637,7 +2639,7 @@ index 2bd09cb..30daa12 100644
#define ALE_MCAST_FWD 0
#define ALE_MCAST_BLOCK_LEARN_FWD 1
-@@ -81,11 +87,17 @@ void cpsw_ale_stop(struct cpsw_ale *ale);
+@@ -81,11 +87,17 @@ void cpsw_ale_stop(struct cpsw_ale *ale)
int cpsw_ale_set_ageout(struct cpsw_ale *ale, int ageout);
int cpsw_ale_flush(struct cpsw_ale *ale, int port_mask);
int cpsw_ale_flush_multicast(struct cpsw_ale *ale, int port_mask);
@@ -2659,8 +2661,6 @@ index 2bd09cb..30daa12 100644
int cpsw_ale_control_get(struct cpsw_ale *ale, int port, int control);
int cpsw_ale_control_set(struct cpsw_ale *ale, int port,
-diff --git a/drivers/net/ethernet/ti/davinci_cpdma.c b/drivers/net/ethernet/ti/davinci_cpdma.c
-index 4995673..49dfd59 100644
--- a/drivers/net/ethernet/ti/davinci_cpdma.c
+++ b/drivers/net/ethernet/ti/davinci_cpdma.c
@@ -20,6 +20,7 @@
@@ -2712,7 +2712,7 @@ index 4995673..49dfd59 100644
/*
* Utility constructs for a cpdma descriptor pool. Some devices (e.g. davinci
* emac) have dedicated on-chip memory for these descriptors. Some other
-@@ -217,17 +229,27 @@ desc_from_phys(struct cpdma_desc_pool *pool, dma_addr_t dma)
+@@ -217,17 +229,27 @@ desc_from_phys(struct cpdma_desc_pool *p
}
static struct cpdma_desc __iomem *
@@ -2744,7 +2744,7 @@ index 4995673..49dfd59 100644
bitmap_set(pool->bitmap, index, num_desc);
desc = pool->iomap + pool->desc_size * index;
pool->used_desc++;
-@@ -291,14 +313,16 @@ int cpdma_ctlr_start(struct cpdma_ctlr *ctlr)
+@@ -291,14 +313,16 @@ int cpdma_ctlr_start(struct cpdma_ctlr *
}
if (ctlr->params.has_soft_reset) {
@@ -2764,7 +2764,7 @@ index 4995673..49dfd59 100644
}
for (i = 0; i < ctlr->num_chan; i++) {
-@@ -439,10 +463,8 @@ int cpdma_ctlr_destroy(struct cpdma_ctlr *ctlr)
+@@ -439,10 +463,8 @@ int cpdma_ctlr_destroy(struct cpdma_ctlr
if (ctlr->state != CPDMA_STATE_IDLE)
cpdma_ctlr_stop(ctlr);
@@ -2777,7 +2777,7 @@ index 4995673..49dfd59 100644
cpdma_desc_pool_destroy(ctlr->pool);
spin_unlock_irqrestore(&ctlr->lock, flags);
-@@ -473,11 +495,13 @@ int cpdma_ctlr_int_ctrl(struct cpdma_ctlr *ctlr, bool enable)
+@@ -473,11 +495,13 @@ int cpdma_ctlr_int_ctrl(struct cpdma_ctl
spin_unlock_irqrestore(&ctlr->lock, flags);
return 0;
}
@@ -2793,7 +2793,7 @@ index 4995673..49dfd59 100644
struct cpdma_chan *cpdma_chan_create(struct cpdma_ctlr *ctlr, int chan_num,
cpdma_handler_fn handler)
-@@ -652,7 +676,7 @@ static void __cpdma_chan_submit(struct cpdma_chan *chan,
+@@ -652,7 +676,7 @@ static void __cpdma_chan_submit(struct c
}
int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data,
@@ -2802,7 +2802,7 @@ index 4995673..49dfd59 100644
{
struct cpdma_ctlr *ctlr = chan->ctlr;
struct cpdma_desc __iomem *desc;
-@@ -668,7 +692,7 @@ int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data,
+@@ -668,7 +692,7 @@ int cpdma_chan_submit(struct cpdma_chan
goto unlock_ret;
}
@@ -2811,7 +2811,7 @@ index 4995673..49dfd59 100644
if (!desc) {
chan->stats.desc_alloc_fail++;
ret = -ENOMEM;
-@@ -682,6 +706,7 @@ int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data,
+@@ -682,6 +706,7 @@ int cpdma_chan_submit(struct cpdma_chan
buffer = dma_map_single(ctlr->dev, data, len, chan->dir);
mode = CPDMA_DESC_OWNER | CPDMA_DESC_SOP | CPDMA_DESC_EOP;
@@ -2819,7 +2819,7 @@ index 4995673..49dfd59 100644
desc_write(desc, hw_next, 0);
desc_write(desc, hw_buffer, buffer);
-@@ -704,6 +729,29 @@ int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data,
+@@ -704,6 +729,29 @@ unlock_ret:
}
EXPORT_SYMBOL_GPL(cpdma_chan_submit);
@@ -2849,7 +2849,7 @@ index 4995673..49dfd59 100644
static void __cpdma_chan_free(struct cpdma_chan *chan,
struct cpdma_desc __iomem *desc,
int outlen, int status)
-@@ -728,6 +776,7 @@ static int __cpdma_chan_process(struct cpdma_chan *chan)
+@@ -728,6 +776,7 @@ static int __cpdma_chan_process(struct c
struct cpdma_ctlr *ctlr = chan->ctlr;
struct cpdma_desc __iomem *desc;
int status, outlen;
@@ -2857,7 +2857,7 @@ index 4995673..49dfd59 100644
struct cpdma_desc_pool *pool = ctlr->pool;
dma_addr_t desc_dma;
unsigned long flags;
-@@ -749,7 +798,8 @@ static int __cpdma_chan_process(struct cpdma_chan *chan)
+@@ -749,7 +798,8 @@ static int __cpdma_chan_process(struct c
status = -EBUSY;
goto unlock_ret;
}
@@ -2867,7 +2867,7 @@ index 4995673..49dfd59 100644
chan->head = desc_from_phys(pool, desc_read(desc, hw_next));
chan_write(chan, cp, desc_dma);
-@@ -762,8 +812,12 @@ static int __cpdma_chan_process(struct cpdma_chan *chan)
+@@ -762,8 +812,12 @@ static int __cpdma_chan_process(struct c
}
spin_unlock_irqrestore(&chan->lock, flags);
@@ -2881,7 +2881,7 @@ index 4995673..49dfd59 100644
return status;
unlock_ret:
-@@ -822,7 +876,7 @@ int cpdma_chan_stop(struct cpdma_chan *chan)
+@@ -822,7 +876,7 @@ int cpdma_chan_stop(struct cpdma_chan *c
struct cpdma_desc_pool *pool = ctlr->pool;
unsigned long flags;
int ret;
@@ -2890,7 +2890,7 @@ index 4995673..49dfd59 100644
spin_lock_irqsave(&chan->lock, flags);
if (chan->state != CPDMA_STATE_ACTIVE) {
-@@ -837,14 +891,15 @@ int cpdma_chan_stop(struct cpdma_chan *chan)
+@@ -837,14 +891,15 @@ int cpdma_chan_stop(struct cpdma_chan *c
dma_reg_write(ctlr, chan->td, chan_linear(chan));
/* wait for teardown complete */
@@ -2910,15 +2910,13 @@ index 4995673..49dfd59 100644
chan_write(chan, cp, CPDMA_TEARDOWN_VALUE);
/* handle completed packets */
-@@ -984,3 +1039,6 @@ int cpdma_control_set(struct cpdma_ctlr *ctlr, int control, int value)
+@@ -984,3 +1039,6 @@ unlock_ret:
spin_unlock_irqrestore(&ctlr->lock, flags);
return ret;
}
+EXPORT_SYMBOL_GPL(cpdma_control_set);
+
+MODULE_LICENSE("GPL");
-diff --git a/drivers/net/ethernet/ti/davinci_cpdma.h b/drivers/net/ethernet/ti/davinci_cpdma.h
-index afa19a0..86dee48 100644
--- a/drivers/net/ethernet/ti/davinci_cpdma.h
+++ b/drivers/net/ethernet/ti/davinci_cpdma.h
@@ -24,6 +24,13 @@
@@ -2935,7 +2933,7 @@ index afa19a0..86dee48 100644
struct cpdma_params {
struct device *dev;
void __iomem *dmaregs;
-@@ -82,12 +89,13 @@ int cpdma_chan_dump(struct cpdma_chan *chan);
+@@ -82,12 +89,13 @@ int cpdma_chan_dump(struct cpdma_chan *c
int cpdma_chan_get_stats(struct cpdma_chan *chan,
struct cpdma_chan_stats *stats);
int cpdma_chan_submit(struct cpdma_chan *chan, void *token, void *data,
@@ -2951,11 +2949,9 @@ index afa19a0..86dee48 100644
enum cpdma_control {
CPDMA_CMD_IDLE, /* write-only */
-diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c
-index 2a3e2c5..860e15d 100644
--- a/drivers/net/ethernet/ti/davinci_emac.c
+++ b/drivers/net/ethernet/ti/davinci_emac.c
-@@ -120,7 +120,6 @@ static const char emac_version_string[] = "TI DaVinci EMAC Linux v6.1";
+@@ -120,7 +120,6 @@ static const char emac_version_string[]
#define EMAC_DEF_TX_CH (0) /* Default 0th channel */
#define EMAC_DEF_RX_CH (0) /* Default 0th channel */
#define EMAC_DEF_RX_NUM_DESC (128)
@@ -2971,7 +2967,7 @@ index 2a3e2c5..860e15d 100644
const char *phy_id;
#ifdef CONFIG_OF
struct device_node *phy_node;
-@@ -480,8 +478,8 @@ static void emac_dump_regs(struct emac_priv *priv)
+@@ -480,8 +478,8 @@ static void emac_dump_regs(struct emac_p
static void emac_get_drvinfo(struct net_device *ndev,
struct ethtool_drvinfo *info)
{
@@ -2982,7 +2978,7 @@ index 2a3e2c5..860e15d 100644
}
/**
-@@ -1039,7 +1037,7 @@ static void emac_rx_handler(void *token, int len, int status)
+@@ -1039,7 +1037,7 @@ static void emac_rx_handler(void *token,
recycle:
ret = cpdma_chan_submit(priv->rxchan, skb, skb->data,
@@ -2991,7 +2987,7 @@ index 2a3e2c5..860e15d 100644
WARN_ON(ret == -ENOMEM);
if (unlikely(ret < 0))
-@@ -1050,12 +1048,12 @@ static void emac_tx_handler(void *token, int len, int status)
+@@ -1050,12 +1048,12 @@ static void emac_tx_handler(void *token,
{
struct sk_buff *skb = token;
struct net_device *ndev = skb->dev;
@@ -3008,7 +3004,7 @@ index 2a3e2c5..860e15d 100644
ndev->stats.tx_packets++;
ndev->stats.tx_bytes += len;
dev_kfree_skb_any(skb);
-@@ -1094,14 +1092,17 @@ static int emac_dev_xmit(struct sk_buff *skb, struct net_device *ndev)
+@@ -1094,14 +1092,17 @@ static int emac_dev_xmit(struct sk_buff
skb_tx_timestamp(skb);
ret_code = cpdma_chan_submit(priv->txchan, skb, skb->data, skb->len,
@@ -3028,7 +3024,7 @@ index 2a3e2c5..860e15d 100644
netif_stop_queue(ndev);
return NETDEV_TX_OK;
-@@ -1264,7 +1265,6 @@ static int emac_dev_setmac_addr(struct net_device *ndev, void *addr)
+@@ -1264,7 +1265,6 @@ static int emac_dev_setmac_addr(struct n
/* Store mac addr in priv and rx channel and set it in EMAC hw */
memcpy(priv->mac_addr, sa->sa_data, ndev->addr_len);
memcpy(ndev->dev_addr, sa->sa_data, ndev->addr_len);
@@ -3036,7 +3032,7 @@ index 2a3e2c5..860e15d 100644
/* MAC address is configured only after the interface is enabled. */
if (netif_running(ndev)) {
-@@ -1438,7 +1438,7 @@ static int emac_poll(struct napi_struct *napi, int budget)
+@@ -1438,7 +1438,7 @@ static int emac_poll(struct napi_struct
* Polled functionality used by netconsole and others in non interrupt mode
*
*/
@@ -3045,7 +3041,7 @@ index 2a3e2c5..860e15d 100644
{
struct emac_priv *priv = netdev_priv(ndev);
-@@ -1558,7 +1558,7 @@ static int emac_dev_open(struct net_device *ndev)
+@@ -1558,7 +1558,7 @@ static int emac_dev_open(struct net_devi
break;
ret = cpdma_chan_submit(priv->rxchan, skb, skb->data,
@@ -3054,7 +3050,7 @@ index 2a3e2c5..860e15d 100644
if (WARN_ON(ret < 0))
break;
}
-@@ -1600,7 +1600,7 @@ static int emac_dev_open(struct net_device *ndev)
+@@ -1600,7 +1600,7 @@ static int emac_dev_open(struct net_devi
if (priv->phy_id && *priv->phy_id) {
priv->phydev = phy_connect(ndev, priv->phy_id,
@@ -3063,7 +3059,7 @@ index 2a3e2c5..860e15d 100644
PHY_INTERFACE_MODE_MII);
if (IS_ERR(priv->phydev)) {
-@@ -1865,21 +1865,18 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -1865,21 +1865,18 @@ static int davinci_emac_probe(struct pla
/* obtain emac clock from kernel */
@@ -3088,7 +3084,7 @@ index 2a3e2c5..860e15d 100644
platform_set_drvdata(pdev, ndev);
priv = netdev_priv(ndev);
-@@ -1893,7 +1890,7 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -1893,7 +1890,7 @@ static int davinci_emac_probe(struct pla
if (!pdata) {
dev_err(&pdev->dev, "no platform data\n");
rc = -ENODEV;
@@ -3097,7 +3093,7 @@ index 2a3e2c5..860e15d 100644
}
/* MAC addr and PHY mask , RMII enable info from platform_data */
-@@ -1913,23 +1910,23 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -1913,23 +1910,23 @@ static int davinci_emac_probe(struct pla
if (!res) {
dev_err(&pdev->dev,"error getting res\n");
rc = -ENOENT;
@@ -3127,7 +3123,7 @@ index 2a3e2c5..860e15d 100644
}
priv->emac_base = priv->remap_addr + pdata->ctrl_reg_offset;
ndev->base_addr = (unsigned long)priv->remap_addr;
-@@ -1962,7 +1959,7 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -1962,7 +1959,7 @@ static int davinci_emac_probe(struct pla
if (!priv->dma) {
dev_err(&pdev->dev, "error initializing DMA\n");
rc = -ENOMEM;
@@ -3136,7 +3132,7 @@ index 2a3e2c5..860e15d 100644
}
priv->txchan = cpdma_chan_create(priv->dma, tx_chan_num(EMAC_DEF_TX_CH),
-@@ -1971,14 +1968,14 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -1971,14 +1968,14 @@ static int davinci_emac_probe(struct pla
emac_rx_handler);
if (WARN_ON(!priv->txchan || !priv->rxchan)) {
rc = -ENOMEM;
@@ -3153,7 +3149,7 @@ index 2a3e2c5..860e15d 100644
}
ndev->irq = res->start;
-@@ -2000,7 +1997,7 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -2000,7 +1997,7 @@ static int davinci_emac_probe(struct pla
if (rc) {
dev_err(&pdev->dev, "error in register_netdev\n");
rc = -ENODEV;
@@ -3162,7 +3158,7 @@ index 2a3e2c5..860e15d 100644
}
-@@ -2015,20 +2012,14 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -2015,20 +2012,14 @@ static int davinci_emac_probe(struct pla
return 0;
@@ -3185,7 +3181,7 @@ index 2a3e2c5..860e15d 100644
return rc;
}
-@@ -2041,14 +2032,12 @@ static int davinci_emac_probe(struct platform_device *pdev)
+@@ -2041,14 +2032,12 @@ no_ndev:
*/
static int davinci_emac_remove(struct platform_device *pdev)
{
@@ -3200,7 +3196,7 @@ index 2a3e2c5..860e15d 100644
if (priv->txchan)
cpdma_chan_destroy(priv->txchan);
-@@ -2056,10 +2045,7 @@ static int davinci_emac_remove(struct platform_device *pdev)
+@@ -2056,10 +2045,7 @@ static int davinci_emac_remove(struct pl
cpdma_chan_destroy(priv->rxchan);
cpdma_ctlr_destroy(priv->dma);
@@ -3211,11 +3207,9 @@ index 2a3e2c5..860e15d 100644
free_netdev(ndev);
return 0;
-diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c
-index cca2550..12aec17 100644
--- a/drivers/net/ethernet/ti/davinci_mdio.c
+++ b/drivers/net/ethernet/ti/davinci_mdio.c
-@@ -320,10 +320,8 @@ static int davinci_mdio_probe(struct platform_device *pdev)
+@@ -320,10 +320,8 @@ static int davinci_mdio_probe(struct pla
int ret, addr;
data = kzalloc(sizeof(*data), GFP_KERNEL);
@@ -3227,7 +3221,7 @@ index cca2550..12aec17 100644
data->bus = mdiobus_alloc();
if (!data->bus) {
-@@ -487,6 +485,7 @@ static const struct of_device_id davinci_mdio_of_mtable[] = {
+@@ -487,6 +485,7 @@ static const struct of_device_id davinci
{ .compatible = "ti,davinci_mdio", },
{ /* sentinel */ },
};
@@ -3235,11 +3229,9 @@ index cca2550..12aec17 100644
static struct platform_driver davinci_mdio_driver = {
.driver = {
-diff --git a/drivers/net/ethernet/ti/tlan.c b/drivers/net/ethernet/ti/tlan.c
-index 2272538..60c400f 100644
--- a/drivers/net/ethernet/ti/tlan.c
+++ b/drivers/net/ethernet/ti/tlan.c
-@@ -320,6 +320,7 @@ static void tlan_remove_one(struct pci_dev *pdev)
+@@ -320,6 +320,7 @@ static void tlan_remove_one(struct pci_d
free_netdev(dev);
pci_set_drvdata(pdev, NULL);
@@ -3247,7 +3239,7 @@ index 2272538..60c400f 100644
}
static void tlan_start(struct net_device *dev)
-@@ -1911,10 +1912,8 @@ static void tlan_reset_lists(struct net_device *dev)
+@@ -1911,10 +1912,8 @@ static void tlan_reset_lists(struct net_
list->frame_size = TLAN_MAX_FRAME_SIZE;
list->buffer[0].count = TLAN_MAX_FRAME_SIZE | TLAN_LAST_BUFFER;
skb = netdev_alloc_skb_ip_align(dev, TLAN_MAX_FRAME_SIZE + 5);
@@ -3259,8 +3251,6 @@ index 2272538..60c400f 100644
list->buffer[0].address = pci_map_single(priv->pci_dev,
skb->data,
-diff --git a/include/linux/platform_data/cpsw.h b/include/linux/platform_data/cpsw.h
-index 24368a2..bb3cd58 100644
--- a/include/linux/platform_data/cpsw.h
+++ b/include/linux/platform_data/cpsw.h
@@ -21,6 +21,8 @@ struct cpsw_slave_data {
diff --git a/patches/cpsw-net-cpsw-Use-fallback-for-active_slave.patch b/patches/cpsw-net-cpsw-Use-fallback-for-active_slave.patch
index 5f607a9..3b4a69b 100644
--- a/patches/cpsw-net-cpsw-Use-fallback-for-active_slave.patch
+++ b/patches/cpsw-net-cpsw-Use-fallback-for-active_slave.patch
@@ -11,11 +11,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
drivers/net/ethernet/ti/cpsw.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
-diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
-index 1b2126d..4701ab3 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
-@@ -1424,8 +1424,12 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1467,8 +1467,12 @@ static int cpsw_probe_dt(struct cpsw_pla
if (of_property_read_u32(node, "active_slave", &prop)) {
pr_err("Missing active_slave property in the DT.\n");
@@ -30,6 +28,3 @@ index 1b2126d..4701ab3 100644
}
data->active_slave = prop;
---
-1.7.10.4
-
diff --git a/patches/cpsw-net-cpsw-use-a-lock-around-source-testing.patch b/patches/cpsw-net-cpsw-use-a-lock-around-source-testing.patch
index cefdc4d..635b5a5 100644
--- a/patches/cpsw-net-cpsw-use-a-lock-around-source-testing.patch
+++ b/patches/cpsw-net-cpsw-use-a-lock-around-source-testing.patch
@@ -14,11 +14,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
drivers/net/ethernet/ti/cpsw.c | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
-diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
-index 2633be6..ef942cd 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
-@@ -490,7 +490,7 @@ void cpsw_rx_handler(void *token, int len, int status)
+@@ -490,7 +490,7 @@ void cpsw_rx_handler(void *token, int le
skb_put(skb, len);
cpts_rx_timestamp(priv->cpts, skb);
skb->protocol = eth_type_trans(skb, ndev);
@@ -27,7 +25,7 @@ index 2633be6..ef942cd 100644
priv->stats.rx_bytes += len;
priv->stats.rx_packets++;
} else {
-@@ -507,19 +507,24 @@ void cpsw_rx_handler(void *token, int len, int status)
+@@ -507,19 +507,24 @@ void cpsw_rx_handler(void *token, int le
static irqreturn_t cpsw_interrupt(int irq, void *dev_id)
{
struct cpsw_priv *priv = dev_id;
@@ -53,7 +51,7 @@ index 2633be6..ef942cd 100644
if (netif_running(priv->ndev)) {
napi_schedule(&priv->napi);
-@@ -541,7 +546,9 @@ static int cpsw_poll(struct napi_struct *napi, int budget)
+@@ -541,7 +546,9 @@ static int cpsw_poll(struct napi_struct
{
struct cpsw_priv *priv = napi_to_priv(napi);
int num_tx, num_rx;
@@ -63,7 +61,7 @@ index 2633be6..ef942cd 100644
num_tx = cpdma_chan_process(priv->txch, 128);
if (num_tx)
cpdma_ctlr_eoi(priv->dma, CPDMA_EOI_TX);
-@@ -559,6 +566,7 @@ static int cpsw_poll(struct napi_struct *napi, int budget)
+@@ -559,6 +566,7 @@ static int cpsw_poll(struct napi_struct
prim_cpsw->irq_enabled = true;
}
}
@@ -71,6 +69,3 @@ index 2633be6..ef942cd 100644
if (num_rx || num_tx)
cpsw_dbg(priv, intr, "poll %d rx, %d tx pkts\n",
---
-1.7.10.4
-
diff --git a/patches/cpsw-revert-stable-patches.patch b/patches/cpsw-revert-stable-patches.patch
index f12db86..c4bbcef 100644
--- a/patches/cpsw-revert-stable-patches.patch
+++ b/patches/cpsw-revert-stable-patches.patch
@@ -5,11 +5,14 @@ and apply them from net & net-next branch.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
-diff --git b/drivers/net/ethernet/ti/cpsw.c a/drivers/net/ethernet/ti/cpsw.c
-index 3b1be52..40aff68 100644
---- b/drivers/net/ethernet/ti/cpsw.c
-+++ a/drivers/net/ethernet/ti/cpsw.c
-@@ -375,7 +375,7 @@ void cpsw_tx_handler(void *token, int len, int status)
+---
+ drivers/net/ethernet/ti/cpsw.c | 4 ++--
+ drivers/net/ethernet/ti/davinci_emac.c | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/ethernet/ti/cpsw.c
++++ b/drivers/net/ethernet/ti/cpsw.c
+@@ -375,7 +375,7 @@ void cpsw_tx_handler(void *token, int le
struct cpsw_priv *priv = netdev_priv(ndev);
if (unlikely(netif_queue_stopped(ndev)))
@@ -18,7 +21,7 @@ index 3b1be52..40aff68 100644
cpts_tx_timestamp(&priv->cpts, skb);
priv->stats.tx_packets++;
priv->stats.tx_bytes += len;
-@@ -1111,7 +1111,7 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
+@@ -1111,7 +1111,7 @@ static int cpsw_probe_dt(struct cpsw_pla
struct platform_device *mdio;
parp = of_get_property(slave_node, "phy_id", &lenp);
@@ -27,11 +30,9 @@ index 3b1be52..40aff68 100644
pr_err("Missing slave[%d] phy_id property\n", i);
ret = -EINVAL;
goto error_ret;
-diff --git b/drivers/net/ethernet/ti/davinci_emac.c a/drivers/net/ethernet/ti/davinci_emac.c
-index 4ebcb24..2a3e2c5 100644
---- b/drivers/net/ethernet/ti/davinci_emac.c
-+++ a/drivers/net/ethernet/ti/davinci_emac.c
-@@ -1055,7 +1055,7 @@ static void emac_tx_handler(void *token, int len, int status)
+--- a/drivers/net/ethernet/ti/davinci_emac.c
++++ b/drivers/net/ethernet/ti/davinci_emac.c
+@@ -1055,7 +1055,7 @@ static void emac_tx_handler(void *token,
atomic_dec(&priv->cur_tx);
if (unlikely(netif_queue_stopped(ndev)))
diff --git a/patches/drm-i915-move-i915_trace_irq_get-out-of-the-tracing-.patch b/patches/drm-i915-move-i915_trace_irq_get-out-of-the-tracing-.patch
index ec04603..ace4f87 100644
--- a/patches/drm-i915-move-i915_trace_irq_get-out-of-the-tracing-.patch
+++ b/patches/drm-i915-move-i915_trace_irq_get-out-of-the-tracing-.patch
@@ -5,19 +5,31 @@ Subject: [PATCH 1/5] drm/i915: move i915_trace_irq_get() out of the tracing
macro
Reported-by: Joakim Hernberg <jbh@alchemy.lu>
+[C.Emde@osadl.org: pull out seqno and define it so it compiled]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
---
- drivers/gpu/drm/i915/i915_gem_execbuffer.c | 1 +
+ drivers/gpu/drm/i915/i915_gem_execbuffer.c | 5 ++++-
drivers/gpu/drm/i915/i915_trace.h | 1 -
drivers/gpu/drm/i915/intel_ringbuffer.h | 2 ++
- 3 files changed, 3 insertions(+), 1 deletion(-)
+ 3 files changed, 6 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -1069,6 +1069,7 @@ i915_gem_do_execbuffer(struct drm_device
+@@ -814,6 +814,7 @@ i915_gem_do_execbuffer(struct drm_device
+ struct intel_ring_buffer *ring;
+ u32 ctx_id = i915_execbuffer2_get_context_id(*args);
+ u32 exec_start, exec_len;
++ u32 seqno;
+ u32 mask;
+ u32 flags;
+ int ret, mode, i;
+@@ -1068,7 +1069,9 @@ i915_gem_do_execbuffer(struct drm_device
+ goto err;
}
- trace_i915_gem_ring_dispatch(ring, intel_ring_get_seqno(ring), flags);
+- trace_i915_gem_ring_dispatch(ring, intel_ring_get_seqno(ring), flags);
++ seqno = intel_ring_get_seqno(ring);
++ trace_i915_gem_ring_dispatch(ring, seqno, flags);
+ i915_trace_irq_get(ring, seqno);
i915_gem_execbuffer_move_to_active(&objects, ring);
diff --git a/patches/fs-fscache-remove-spin_lock-from-the-condition-in-wh.patch b/patches/fs-fscache-remove-spin_lock-from-the-condition-in-wh.patch
index fb97bd5..e02077b 100644
--- a/patches/fs-fscache-remove-spin_lock-from-the-condition-in-wh.patch
+++ b/patches/fs-fscache-remove-spin_lock-from-the-condition-in-wh.patch
@@ -13,11 +13,9 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
fs/fscache/page.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
-diff --git a/fs/fscache/page.c b/fs/fscache/page.c
-index ff000e5..c84696c 100644
--- a/fs/fscache/page.c
+++ b/fs/fscache/page.c
-@@ -796,11 +796,13 @@ void fscache_invalidate_writes(struct fscache_cookie *cookie)
+@@ -796,11 +796,13 @@ void fscache_invalidate_writes(struct fs
_enter("");
@@ -36,7 +34,7 @@ index ff000e5..c84696c 100644
for (i = n - 1; i >= 0; i--) {
page = results[i];
radix_tree_delete(&cookie->stores, page->index);
-@@ -810,6 +812,7 @@ void fscache_invalidate_writes(struct fscache_cookie *cookie)
+@@ -810,6 +812,7 @@ void fscache_invalidate_writes(struct fs
for (i = n - 1; i >= 0; i--)
page_cache_release(results[i]);
@@ -44,6 +42,3 @@ index ff000e5..c84696c 100644
}
spin_unlock(&cookie->stores_lock);
---
-1.7.10.4
-
diff --git a/patches/localversion.patch b/patches/localversion.patch
index e5fcadf..9dfd443 100644
--- a/patches/localversion.patch
+++ b/patches/localversion.patch
@@ -12,4 +12,4 @@ Link: http://lkml.kernel.org/n/tip-8vdw4bfcsds27cvox6rpb334@git.kernel.org
--- /dev/null
+++ b/localversion-rt
@@ -0,0 +1 @@
-+-rt5
++-rt6
diff --git a/patches/mm-convert-swap-to-percpu-locked.patch b/patches/mm-convert-swap-to-percpu-locked.patch
index 0e8ac43..661de88 100644
--- a/patches/mm-convert-swap-to-percpu-locked.patch
+++ b/patches/mm-convert-swap-to-percpu-locked.patch
@@ -24,7 +24,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
static DEFINE_PER_CPU(struct pagevec, lru_deactivate_pvecs);
+static DEFINE_LOCAL_IRQ_LOCK(rotate_lock);
-+static DEFINE_LOCAL_IRQ_LOCK(swap_lock);
++static DEFINE_LOCAL_IRQ_LOCK(swapvec_lock);
+
/*
* This path almost never happens for VM activity - pages are normally
@@ -48,14 +48,14 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
{
if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
- struct pagevec *pvec = &get_cpu_var(activate_page_pvecs);
-+ struct pagevec *pvec = &get_locked_var(swap_lock,
++ struct pagevec *pvec = &get_locked_var(swapvec_lock,
+ activate_page_pvecs);
page_cache_get(page);
if (!pagevec_add(pvec, page))
pagevec_lru_move_fn(pvec, __activate_page, NULL);
- put_cpu_var(activate_page_pvecs);
-+ put_locked_var(swap_lock, activate_page_pvecs);
++ put_locked_var(swapvec_lock, activate_page_pvecs);
}
}
@@ -64,14 +64,14 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
void __lru_cache_add(struct page *page, enum lru_list lru)
{
- struct pagevec *pvec = &get_cpu_var(lru_add_pvecs)[lru];
-+ struct pagevec *pvec = &get_locked_var(swap_lock, lru_add_pvecs)[lru];
++ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvecs)[lru];
page_cache_get(page);
if (!pagevec_space(pvec))
__pagevec_lru_add(pvec, lru);
pagevec_add(pvec, page);
- put_cpu_var(lru_add_pvecs);
-+ put_locked_var(swap_lock, lru_add_pvecs);
++ put_locked_var(swapvec_lock, lru_add_pvecs);
}
EXPORT_SYMBOL(__lru_cache_add);
@@ -92,13 +92,13 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
if (likely(get_page_unless_zero(page))) {
- struct pagevec *pvec = &get_cpu_var(lru_deactivate_pvecs);
-+ struct pagevec *pvec = &get_locked_var(swap_lock,
++ struct pagevec *pvec = &get_locked_var(swapvec_lock,
+ lru_deactivate_pvecs);
if (!pagevec_add(pvec, page))
pagevec_lru_move_fn(pvec, lru_deactivate_fn, NULL);
- put_cpu_var(lru_deactivate_pvecs);
-+ put_locked_var(swap_lock, lru_deactivate_pvecs);
++ put_locked_var(swapvec_lock, lru_deactivate_pvecs);
}
}
@@ -106,8 +106,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
{
- lru_add_drain_cpu(get_cpu());
- put_cpu();
-+ lru_add_drain_cpu(local_lock_cpu(swap_lock));
-+ local_unlock_cpu(swap_lock);
++ lru_add_drain_cpu(local_lock_cpu(swapvec_lock));
++ local_unlock_cpu(swapvec_lock);
}
static void lru_add_drain_per_cpu(struct work_struct *dummy)
diff --git a/patches/powerpc-preempt-lazy-support.patch b/patches/powerpc-preempt-lazy-support.patch
index 1e0c13f..d8fe3d0 100644
--- a/patches/powerpc-preempt-lazy-support.patch
+++ b/patches/powerpc-preempt-lazy-support.patch
@@ -8,8 +8,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/powerpc/include/asm/thread_info.h | 10 ++++++++--
arch/powerpc/kernel/asm-offsets.c | 1 +
arch/powerpc/kernel/entry_32.S | 17 ++++++++++++-----
- arch/powerpc/kernel/entry_64.S | 12 +++++++++---
- 5 files changed, 31 insertions(+), 10 deletions(-)
+ arch/powerpc/kernel/entry_64.S | 14 +++++++++++---
+ 5 files changed, 33 insertions(+), 10 deletions(-)
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -137,11 +137,13 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
beq 1f
bl .restore_interrupts
bl .schedule
-@@ -642,10 +642,16 @@ resume_kernel:
+@@ -642,10 +642,18 @@ resume_kernel:
#ifdef CONFIG_PREEMPT
/* Check if we need to preempt */
+ lwz r8,TI_PREEMPT(r9)
++ cmpwi 0,r8,0 /* if non-zero, just restore regs and return */
++ bne restore
andi. r0,r4,_TIF_NEED_RESCHED
+ bne+ check_count
+
@@ -155,7 +157,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
cmpwi cr1,r8,0
ld r0,SOFTE(r1)
cmpdi r0,0
-@@ -662,7 +668,7 @@ resume_kernel:
+@@ -662,7 +670,7 @@ resume_kernel:
/* Re-test flags and eventually loop */
CURRENT_THREAD_INFO(r9, r1)
ld r4,TI_FLAGS(r9)
diff --git a/patches/rt-add-rt-spinlock-to-headers.patch b/patches/rt-add-rt-spinlock-to-headers.patch
index 40ea9a5..1117bfb 100644
--- a/patches/rt-add-rt-spinlock-to-headers.patch
+++ b/patches/rt-add-rt-spinlock-to-headers.patch
@@ -4,10 +4,10 @@ Date: Wed, 29 Jun 2011 19:43:35 +0200
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
---
- include/linux/rwlock_types_rt.h | 33 +++++++++++++++++++++++++
- include/linux/spinlock_types.h | 11 ++++++--
- include/linux/spinlock_types_rt.h | 49 ++++++++++++++++++++++++++++++++++++++
- 3 files changed, 90 insertions(+), 3 deletions(-)
+ include/linux/rwlock_types_rt.h | 33 ++++++++++++++++++++++++
+ include/linux/spinlock_types.h | 11 +++++---
+ include/linux/spinlock_types_rt.h | 51 ++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 92 insertions(+), 3 deletions(-)
--- /dev/null
+++ b/include/linux/rwlock_types_rt.h
@@ -66,7 +66,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
#endif /* __LINUX_SPINLOCK_TYPES_H */
--- /dev/null
+++ b/include/linux/spinlock_types_rt.h
-@@ -0,0 +1,49 @@
+@@ -0,0 +1,51 @@
+#ifndef __LINUX_SPINLOCK_TYPES_RT_H
+#define __LINUX_SPINLOCK_TYPES_RT_H
+
@@ -74,6 +74,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+#error "Do not include directly. Include spinlock_types.h instead"
+#endif
+
++#include <linux/cache.h>
++
+/*
+ * PREEMPT_RT: spinlocks - an RT mutex plus lock-break field:
+ */
diff --git a/patches/sched-better-debug-output-for-might-sleep.patch b/patches/sched-better-debug-output-for-might-sleep.patch
index ffb507e..3268af3 100644
--- a/patches/sched-better-debug-output-for-might-sleep.patch
+++ b/patches/sched-better-debug-output-for-might-sleep.patch
@@ -45,7 +45,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
print_modules();
if (irqs_disabled())
print_irqtrace_events(prev);
-+#ifdef DEBUG_PREEMPT
++#ifdef CONFIG_DEBUG_PREEMPT
+ if (in_atomic_preempt_off()) {
+ pr_err("Preemption disabled at:");
+ print_ip_sym(current->preempt_disable_ip);
@@ -59,7 +59,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
debug_show_held_locks(current);
if (irqs_disabled())
print_irqtrace_events(current);
-+#ifdef DEBUG_PREEMPT
++#ifdef CONFIG_DEBUG_PREEMPT
+ if (!preempt_count_equals(preempt_offset)) {
+ pr_err("Preemption disabled at:");
+ print_ip_sym(current->preempt_disable_ip);
diff --git a/patches/sched-fix-the-wrong-macro-name-of-CONFIG_DEBUG_PREEM.patch b/patches/sched-fix-the-wrong-macro-name-of-CONFIG_DEBUG_PREEM.patch
deleted file mode 100644
index 5d99014..0000000
--- a/patches/sched-fix-the-wrong-macro-name-of-CONFIG_DEBUG_PREEM.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9c62439e3ede6a24f325a9cf88bddedc6d8e4ef5 Mon Sep 17 00:00:00 2001
-From: Qiang Huang <h.huangqiang@huawei.com>
-Date: Mon, 8 Apr 2013 19:47:29 +0800
-Subject: [PATCH 3/5] sched: fix the wrong macro name of CONFIG_DEBUG_PREEMPT
-
-Might be a typo, would cause some debug code never be run.
-
-Signed-off-by: Qiang Huang <h.huangqiang@huawei.com>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- kernel/sched/core.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/kernel/sched/core.c
-+++ b/kernel/sched/core.c
-@@ -2885,7 +2885,7 @@ static noinline void __schedule_bug(stru
- print_modules();
- if (irqs_disabled())
- print_irqtrace_events(prev);
--#ifdef DEBUG_PREEMPT
-+#ifdef CONFIG_DEBUG_PREEMPT
- if (in_atomic_preempt_off()) {
- pr_err("Preemption disabled at:");
- print_ip_sym(current->preempt_disable_ip);
-@@ -7412,7 +7412,7 @@ void __might_sleep(const char *file, int
- debug_show_held_locks(current);
- if (irqs_disabled())
- print_irqtrace_events(current);
--#ifdef DEBUG_PREEMPT
-+#ifdef CONFIG_DEBUG_PREEMPT
- if (!preempt_count_equals(preempt_offset)) {
- pr_err("Preemption disabled at:");
- print_ip_sym(current->preempt_disable_ip);
diff --git a/patches/series b/patches/series
index b079da0..53490eb 100644
--- a/patches/series
+++ b/patches/series
@@ -276,7 +276,6 @@ mm-page-alloc-fix.patch
# MM SWAP
mm-convert-swap-to-percpu-locked.patch
-swap-Use-unique-local-lock-name-for-swap_lock.patch
# MM vmstat
mm-make-vmstat-rt-aware.patch
@@ -411,7 +410,6 @@ rt-mutex-add-sleeping-spinlocks-support.patch
spinlock-types-separate-raw.patch
rtmutex-avoid-include-hell.patch
rt-add-rt-spinlock-to-headers.patch
-spinlock-include-cache.h.patch
rt-add-rt-to-mutex-headers.patch
rwsem-add-rt-variant.patch
rt-add-rt-locks.patch
@@ -607,7 +605,6 @@ drm-i915-move-i915_trace_irq_get-out-of-the-tracing-.patch
# Enable full RT
powerpc-preempt-lazy-support.patch
-powerpc-64bit-PREEMPT_RT-Check-preempt_count-before-.patch
wait-simple-implementation.patch
rcutiny-use-simple-waitqueue.patch
treercu-use-simple-waitqueue.patch
@@ -624,7 +621,6 @@ idle-state.patch
might-sleep-check-for-idle.patch
wait-simple-rework-for-completions.patch
completion-use-simple-wait-queues.patch
-sched-fix-the-wrong-macro-name-of-CONFIG_DEBUG_PREEM.patch
kconfig-disable-a-few-options-rt.patch
kconfig-preempt-rt-full.patch
diff --git a/patches/spinlock-include-cache.h.patch b/patches/spinlock-include-cache.h.patch
deleted file mode 100644
index c7560ac..0000000
--- a/patches/spinlock-include-cache.h.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 30202d1996c96177fd9eeb5efc2d1869b7939a75 Mon Sep 17 00:00:00 2001
-From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-Date: Thu, 25 Apr 2013 18:31:39 +0200
-Subject: [PATCH 2/5] spinlock: include cache.h
-
-It is used by DEFINE_SPINLOCK
-
-Reported-by: <Arpit Goel <arpitgoel@gmail.com>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- include/linux/spinlock_types_rt.h | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/include/linux/spinlock_types_rt.h
-+++ b/include/linux/spinlock_types_rt.h
-@@ -5,6 +5,8 @@
- #error "Do not include directly. Include spinlock_types.h instead"
- #endif
-
-+#include <linux/cache.h>
-+
- /*
- * PREEMPT_RT: spinlocks - an RT mutex plus lock-break field:
- */
diff --git a/patches/swap-Use-unique-local-lock-name-for-swap_lock.patch b/patches/swap-Use-unique-local-lock-name-for-swap_lock.patch
deleted file mode 100644
index b3a2284..0000000
--- a/patches/swap-Use-unique-local-lock-name-for-swap_lock.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 1288d422e020182955745ee09e26d4e6174923c0 Mon Sep 17 00:00:00 2001
-From: Steven Rostedt <rostedt@goodmis.org>
-Date: Tue, 23 Apr 2013 16:10:00 -0400
-Subject: [PATCH] swap: Use unique local lock name for swap_lock
-
->From lib/Kconfig.debug on CONFIG_FORCE_WEAK_PER_CPU:
-
----
-s390 and alpha require percpu variables in modules to be
-defined weak to work around addressing range issue which
-puts the following two restrictions on percpu variable
-definitions.
-
-1. percpu symbols must be unique whether static or not
-2. percpu variables can't be defined inside a function
-
-To ensure that generic code follows the above rules, this
-option forces all percpu variables to be defined as weak.
----
-
-The addition of the local IRQ swap_lock in mm/swap.c broke this config
-as the name "swap_lock" is used through out the kernel. Just do a "git
-grep swap_lock" to see, and the new swap_lock is a local lock which
-defines the swap_lock for per_cpu.
-
-The fix was to rename swap_lock to swapvec_lock which keeps it unique.
-
-Reported-by: Mike Galbraith <bitbucket@online.de>
-Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
----
- mm/swap.c | 18 +++++++++---------
- 1 file changed, 9 insertions(+), 9 deletions(-)
-
---- a/mm/swap.c
-+++ b/mm/swap.c
-@@ -42,7 +42,7 @@ static DEFINE_PER_CPU(struct pagevec, lr
- static DEFINE_PER_CPU(struct pagevec, lru_deactivate_pvecs);
-
- static DEFINE_LOCAL_IRQ_LOCK(rotate_lock);
--static DEFINE_LOCAL_IRQ_LOCK(swap_lock);
-+static DEFINE_LOCAL_IRQ_LOCK(swapvec_lock);
-
- /*
- * This path almost never happens for VM activity - pages are normally
-@@ -407,13 +407,13 @@ static void activate_page_drain(int cpu)
- void activate_page(struct page *page)
- {
- if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
-- struct pagevec *pvec = &get_locked_var(swap_lock,
-+ struct pagevec *pvec = &get_locked_var(swapvec_lock,
- activate_page_pvecs);
-
- page_cache_get(page);
- if (!pagevec_add(pvec, page))
- pagevec_lru_move_fn(pvec, __activate_page, NULL);
-- put_locked_var(swap_lock, activate_page_pvecs);
-+ put_locked_var(swapvec_lock, activate_page_pvecs);
- }
- }
-
-@@ -461,13 +461,13 @@ EXPORT_SYMBOL(mark_page_accessed);
- */
- void __lru_cache_add(struct page *page, enum lru_list lru)
- {
-- struct pagevec *pvec = &get_locked_var(swap_lock, lru_add_pvecs)[lru];
-+ struct pagevec *pvec = &get_locked_var(swapvec_lock, lru_add_pvecs)[lru];
-
- page_cache_get(page);
- if (!pagevec_space(pvec))
- __pagevec_lru_add(pvec, lru);
- pagevec_add(pvec, page);
-- put_locked_var(swap_lock, lru_add_pvecs);
-+ put_locked_var(swapvec_lock, lru_add_pvecs);
- }
- EXPORT_SYMBOL(__lru_cache_add);
-
-@@ -632,19 +632,19 @@ void deactivate_page(struct page *page)
- return;
-
- if (likely(get_page_unless_zero(page))) {
-- struct pagevec *pvec = &get_locked_var(swap_lock,
-+ struct pagevec *pvec = &get_locked_var(swapvec_lock,
- lru_deactivate_pvecs);
-
- if (!pagevec_add(pvec, page))
- pagevec_lru_move_fn(pvec, lru_deactivate_fn, NULL);
-- put_locked_var(swap_lock, lru_deactivate_pvecs);
-+ put_locked_var(swapvec_lock, lru_deactivate_pvecs);
- }
- }
-
- void lru_add_drain(void)
- {
-- lru_add_drain_cpu(local_lock_cpu(swap_lock));
-- local_unlock_cpu(swap_lock);
-+ lru_add_drain_cpu(local_lock_cpu(swapvec_lock));
-+ local_unlock_cpu(swapvec_lock);
- }
-
- static void lru_add_drain_per_cpu(struct work_struct *dummy)