diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2012-07-16 13:03:52 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2012-07-16 13:03:52 -0400 |
commit | 75bb877cacf6562099253561a08332e334c40668 (patch) | |
tree | a66d480a4140e06d511d438f54dc6c7515eea1dd | |
parent | Grsec/PaX: 2.9.1-{2.6.32.59,3.2.23,3.4.4}-201207122200 (diff) | |
download | hardened-patchset-75bb877cacf6562099253561a08332e334c40668.tar.gz hardened-patchset-75bb877cacf6562099253561a08332e334c40668.tar.bz2 hardened-patchset-75bb877cacf6562099253561a08332e334c40668.zip |
Grsec/PaX: 2.9.1-2.6.32.59-201207150915 - fix stop_machine* compile error20120712
-rw-r--r-- | 2.6.32/0000_README | 2 | ||||
-rw-r--r-- | 2.6.32/4420_grsecurity-2.9.1-2.6.32.59-201207150915.patch (renamed from 2.6.32/4420_grsecurity-2.9.1-2.6.32.59-201207122159.patch) | 122 |
2 files changed, 70 insertions, 54 deletions
diff --git a/2.6.32/0000_README b/2.6.32/0000_README index 3cd1e97..4c6a85a 100644 --- a/2.6.32/0000_README +++ b/2.6.32/0000_README @@ -30,7 +30,7 @@ Patch: 1058_linux-2.6.32.59.patch From: http://www.kernel.org Desc: Linux 2.6.32.59 -Patch: 4420_grsecurity-2.9.1-2.6.32.59-201207122159.patch +Patch: 4420_grsecurity-2.9.1-2.6.32.59-201207150915.patch From: http://www.grsecurity.net Desc: hardened-sources base patch from upstream grsecurity diff --git a/2.6.32/4420_grsecurity-2.9.1-2.6.32.59-201207122159.patch b/2.6.32/4420_grsecurity-2.9.1-2.6.32.59-201207150915.patch index 614255d..06ab77c 100644 --- a/2.6.32/4420_grsecurity-2.9.1-2.6.32.59-201207122159.patch +++ b/2.6.32/4420_grsecurity-2.9.1-2.6.32.59-201207150915.patch @@ -48172,7 +48172,7 @@ index a3394b4..f871d8c 100644 + u32 hdr_cksum; +}; diff --git a/drivers/net/benet/be_main.c b/drivers/net/benet/be_main.c -index 000e377..f501aa3 100644 +index 000e377..709dc47 100644 --- a/drivers/net/benet/be_main.c +++ b/drivers/net/benet/be_main.c @@ -1,18 +1,18 @@ @@ -48906,7 +48906,7 @@ index 000e377..f501aa3 100644 be_dws_cpu_to_le(hdr, sizeof(*hdr)); return copied; -@@ -434,19 +713,70 @@ static netdev_tx_t be_xmit(struct sk_buff *skb, +@@ -434,19 +713,72 @@ static netdev_tx_t be_xmit(struct sk_buff *skb, struct net_device *netdev) { struct be_adapter *adapter = netdev_priv(netdev); @@ -48975,6 +48975,8 @@ index 000e377..f501aa3 100644 + + copied = make_tx_wrbs(adapter, txq, skb, wrb_cnt, dummy_wrb); if (copied) { ++ int gso_segs = skb_shinfo(skb)->gso_segs; ++ /* record the sent skb in the sent_skb table */ - BUG_ON(tx_obj->sent_skb_list[start]); - tx_obj->sent_skb_list[start] = skb; @@ -48983,7 +48985,7 @@ index 000e377..f501aa3 100644 /* Ensure txq has space for the next skb; Else stop the queue * *BEFORE* ringing the tx doorbell, so that we serialze the -@@ -454,16 +784,21 @@ static netdev_tx_t be_xmit(struct sk_buff *skb, +@@ -454,16 +786,20 @@ static netdev_tx_t be_xmit(struct sk_buff *skb, */ if ((BE_MAX_TX_FRAG_COUNT + atomic_read(&txq->used)) >= txq->len) { @@ -48995,19 +48997,19 @@ index 000e377..f501aa3 100644 be_txq_notify(adapter, txq->id, wrb_cnt); - be_tx_stats_update(adapter, wrb_cnt, copied, +- skb_shinfo(skb)->gso_segs, stopped); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 32) + netdev->trans_start = jiffies; +#endif + -+ be_tx_stats_update(txo, wrb_cnt, copied, - skb_shinfo(skb)->gso_segs, stopped); ++ be_tx_stats_update(txo, wrb_cnt, copied, gso_segs, stopped); } else { txq->head = start; +tx_drop: dev_kfree_skb_any(skb); } return NETDEV_TX_OK; -@@ -473,10 +808,12 @@ static int be_change_mtu(struct net_device *netdev, int new_mtu) +@@ -473,10 +809,12 @@ static int be_change_mtu(struct net_device *netdev, int new_mtu) { struct be_adapter *adapter = netdev_priv(netdev); if (new_mtu < BE_MIN_MTU || @@ -49022,7 +49024,7 @@ index 000e377..f501aa3 100644 return -EINVAL; } dev_info(&adapter->pdev->dev, "MTU changed from %d to %d bytes\n", -@@ -486,17 +823,19 @@ static int be_change_mtu(struct net_device *netdev, int new_mtu) +@@ -486,17 +824,19 @@ static int be_change_mtu(struct net_device *netdev, int new_mtu) } /* @@ -49048,7 +49050,7 @@ index 000e377..f501aa3 100644 /* Construct VLAN Table to give to HW */ for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) { if (adapter->vlan_tag[i]) { -@@ -504,47 +843,46 @@ static int be_vid_config(struct be_adapter *adapter) +@@ -504,47 +844,46 @@ static int be_vid_config(struct be_adapter *adapter) ntags++; } } @@ -49111,7 +49113,7 @@ index 000e377..f501aa3 100644 } static void be_set_multicast_list(struct net_device *netdev) -@@ -552,7 +890,7 @@ static void be_set_multicast_list(struct net_device *netdev) +@@ -552,7 +891,7 @@ static void be_set_multicast_list(struct net_device *netdev) struct be_adapter *adapter = netdev_priv(netdev); if (netdev->flags & IFF_PROMISC) { @@ -49120,7 +49122,7 @@ index 000e377..f501aa3 100644 adapter->promiscuous = true; goto done; } -@@ -560,81 +898,244 @@ static void be_set_multicast_list(struct net_device *netdev) +@@ -560,81 +899,244 @@ static void be_set_multicast_list(struct net_device *netdev) /* BE was previously in promiscous mode; disable it */ if (adapter->promiscuous) { adapter->promiscuous = false; @@ -49405,7 +49407,7 @@ index 000e377..f501aa3 100644 atomic_dec(&rxq->used); return rx_page_info; -@@ -642,20 +1143,26 @@ get_rx_page_info(struct be_adapter *adapter, u16 frag_idx) +@@ -642,20 +1144,26 @@ get_rx_page_info(struct be_adapter *adapter, u16 frag_idx) /* Throwaway the data in the Rx completion */ static void be_rx_compl_discard(struct be_adapter *adapter, @@ -49439,7 +49441,7 @@ index 000e377..f501aa3 100644 } } -@@ -663,29 +1170,24 @@ static void be_rx_compl_discard(struct be_adapter *adapter, +@@ -663,29 +1171,24 @@ static void be_rx_compl_discard(struct be_adapter *adapter, * skb_fill_rx_data forms a complete skb for an ether frame * indicated by rxcp. */ @@ -49477,7 +49479,7 @@ index 000e377..f501aa3 100644 memcpy(skb->data, start, hdr_len); skb->len = curr_frag_len; if (curr_frag_len <= BE_HDR_LEN) { /* tiny packet */ -@@ -702,21 +1204,19 @@ static void skb_fill_rx_data(struct be_adapter *adapter, +@@ -702,21 +1205,19 @@ static void skb_fill_rx_data(struct be_adapter *adapter, skb->data_len = curr_frag_len - hdr_len; skb->tail += hdr_len; } @@ -49508,7 +49510,7 @@ index 000e377..f501aa3 100644 /* Coalesce all frags from the same physical page in one slot */ if (page_info->page_offset == 0) { -@@ -735,99 +1235,122 @@ static void skb_fill_rx_data(struct be_adapter *adapter, +@@ -735,99 +1236,122 @@ static void skb_fill_rx_data(struct be_adapter *adapter, skb->len += curr_frag_len; skb->data_len += curr_frag_len; @@ -49688,7 +49690,7 @@ index 000e377..f501aa3 100644 curr_frag_len = min(remaining, rx_frag_size); -@@ -845,55 +1368,129 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter, +@@ -845,55 +1369,129 @@ static void be_rx_compl_process_gro(struct be_adapter *adapter, skb_shinfo(skb)->frags[j].size += curr_frag_len; remaining -= curr_frag_len; @@ -49847,7 +49849,7 @@ index 000e377..f501aa3 100644 static inline struct page *be_alloc_pages(u32 size) { gfp_t alloc_flags = GFP_ATOMIC; -@@ -907,11 +1504,12 @@ static inline struct page *be_alloc_pages(u32 size) +@@ -907,11 +1505,12 @@ static inline struct page *be_alloc_pages(u32 size) * Allocate a page, split it to fragments of size rx_frag_size and post as * receive buffers to BE */ @@ -49864,7 +49866,7 @@ index 000e377..f501aa3 100644 struct page *pagep = NULL; struct be_eth_rx_d *rxd; u64 page_dmaaddr = 0, frag_dmaaddr; -@@ -922,7 +1520,7 @@ static void be_post_rx_frags(struct be_adapter *adapter) +@@ -922,7 +1521,7 @@ static void be_post_rx_frags(struct be_adapter *adapter) if (!pagep) { pagep = be_alloc_pages(adapter->big_page_size); if (unlikely(!pagep)) { @@ -49873,7 +49875,7 @@ index 000e377..f501aa3 100644 break; } page_dmaaddr = pci_map_page(adapter->pdev, pagep, 0, -@@ -941,7 +1539,6 @@ static void be_post_rx_frags(struct be_adapter *adapter) +@@ -941,7 +1540,6 @@ static void be_post_rx_frags(struct be_adapter *adapter) rxd = queue_head_node(rxq); rxd->fragpa_lo = cpu_to_le32(frag_dmaaddr & 0xFFFFFFFF); rxd->fragpa_hi = cpu_to_le32(upper_32_bits(frag_dmaaddr)); @@ -49881,7 +49883,7 @@ index 000e377..f501aa3 100644 /* Any space left in the current big page for another frag? */ if ((page_offset + rx_frag_size + rx_frag_size) > -@@ -949,17 +1546,24 @@ static void be_post_rx_frags(struct be_adapter *adapter) +@@ -949,17 +1547,24 @@ static void be_post_rx_frags(struct be_adapter *adapter) pagep = NULL; page_info->last_page_user = true; } @@ -49908,7 +49910,7 @@ index 000e377..f501aa3 100644 } return; -@@ -972,6 +1576,7 @@ static struct be_eth_tx_compl *be_tx_compl_get(struct be_queue_info *tx_cq) +@@ -972,6 +1577,7 @@ static struct be_eth_tx_compl *be_tx_compl_get(struct be_queue_info *tx_cq) if (txcp->dw[offsetof(struct amap_eth_tx_compl, valid) / 32] == 0) return NULL; @@ -49916,7 +49918,7 @@ index 000e377..f501aa3 100644 be_dws_le_to_cpu(txcp, sizeof(*txcp)); txcp->dw[offsetof(struct amap_eth_tx_compl, valid) / 32] = 0; -@@ -980,11 +1585,14 @@ static struct be_eth_tx_compl *be_tx_compl_get(struct be_queue_info *tx_cq) +@@ -980,11 +1586,14 @@ static struct be_eth_tx_compl *be_tx_compl_get(struct be_queue_info *tx_cq) return txcp; } @@ -49934,7 +49936,7 @@ index 000e377..f501aa3 100644 u16 cur_index, num_wrbs = 0; cur_index = txq->tail; -@@ -992,15 +1600,31 @@ static void be_tx_compl_process(struct be_adapter *adapter, u16 last_index) +@@ -992,15 +1601,31 @@ static void be_tx_compl_process(struct be_adapter *adapter, u16 last_index) BUG_ON(!sent_skb); sent_skbs[cur_index] = NULL; @@ -49970,7 +49972,7 @@ index 000e377..f501aa3 100644 } static inline struct be_eq_entry *event_get(struct be_eq_obj *eq_obj) -@@ -1010,13 +1634,15 @@ static inline struct be_eq_entry *event_get(struct be_eq_obj *eq_obj) +@@ -1010,13 +1635,15 @@ static inline struct be_eq_entry *event_get(struct be_eq_obj *eq_obj) if (!eqe->evt) return NULL; @@ -49987,7 +49989,7 @@ index 000e377..f501aa3 100644 { struct be_eq_entry *eqe; u16 num = 0; -@@ -1029,7 +1655,10 @@ static int event_handle(struct be_adapter *adapter, +@@ -1029,7 +1656,10 @@ static int event_handle(struct be_adapter *adapter, /* Deal with any spurious interrupts that come * without events */ @@ -49999,7 +50001,7 @@ index 000e377..f501aa3 100644 if (num) napi_schedule(&eq_obj->napi); -@@ -1053,49 +1682,55 @@ static void be_eq_clean(struct be_adapter *adapter, +@@ -1053,49 +1683,55 @@ static void be_eq_clean(struct be_adapter *adapter, be_eq_notify(adapter, eq_obj->q.id, false, true, num); } @@ -50068,7 +50070,7 @@ index 000e377..f501aa3 100644 } if (atomic_read(&txq->used) == 0 || ++timeo > 200) -@@ -1107,6 +1742,17 @@ static void be_tx_compl_clean(struct be_adapter *adapter) +@@ -1107,6 +1743,17 @@ static void be_tx_compl_clean(struct be_adapter *adapter) if (atomic_read(&txq->used)) dev_err(&adapter->pdev->dev, "%d pending tx-completions\n", atomic_read(&txq->used)); @@ -50086,7 +50088,7 @@ index 000e377..f501aa3 100644 } static void be_mcc_queues_destroy(struct be_adapter *adapter) -@@ -1145,8 +1791,9 @@ static int be_mcc_queues_create(struct be_adapter *adapter) +@@ -1145,8 +1792,9 @@ static int be_mcc_queues_create(struct be_adapter *adapter) goto mcc_cq_destroy; /* Ask BE to create MCC queue */ @@ -50097,7 +50099,7 @@ index 000e377..f501aa3 100644 return 0; -@@ -1163,16 +1810,20 @@ err: +@@ -1163,16 +1811,20 @@ err: static void be_tx_queues_destroy(struct be_adapter *adapter) { struct be_queue_info *q; @@ -50126,7 +50128,7 @@ index 000e377..f501aa3 100644 /* Clear any residual events */ be_eq_clean(adapter, &adapter->tx_eq); -@@ -1183,168 +1834,210 @@ static void be_tx_queues_destroy(struct be_adapter *adapter) +@@ -1183,168 +1835,210 @@ static void be_tx_queues_destroy(struct be_adapter *adapter) be_queue_free(adapter, q); } @@ -50439,7 +50441,7 @@ index 000e377..f501aa3 100644 return IRQ_HANDLED; } -@@ -1353,48 +2046,72 @@ static irqreturn_t be_msix_tx_mcc(int irq, void *dev) +@@ -1353,48 +2047,72 @@ static irqreturn_t be_msix_tx_mcc(int irq, void *dev) { struct be_adapter *adapter = dev; @@ -50533,7 +50535,7 @@ index 000e377..f501aa3 100644 /* All consumed */ if (work_done < budget) { -@@ -1404,40 +2121,13 @@ int be_poll_rx(struct napi_struct *napi, int budget) +@@ -1404,40 +2122,13 @@ int be_poll_rx(struct napi_struct *napi, int budget) /* More to be consumed; continue with interrupts disabled */ be_cq_notify(adapter, rx_cq->id, false, work_done); } @@ -50578,7 +50580,7 @@ index 000e377..f501aa3 100644 /* As TX and MCC share the same EQ check for both TX and MCC completions. * For TX/MCC we don't honour budget; consume everything */ -@@ -1446,96 +2136,264 @@ static int be_poll_tx_mcc(struct napi_struct *napi, int budget) +@@ -1446,96 +2137,264 @@ static int be_poll_tx_mcc(struct napi_struct *napi, int budget) struct be_eq_obj *tx_eq = container_of(napi, struct be_eq_obj, napi); struct be_adapter *adapter = container_of(tx_eq, struct be_adapter, tx_eq); @@ -50879,7 +50881,7 @@ index 000e377..f501aa3 100644 return status; } -@@ -1544,10 +2402,13 @@ static int be_irq_register(struct be_adapter *adapter) +@@ -1544,10 +2403,13 @@ static int be_irq_register(struct be_adapter *adapter) struct net_device *netdev = adapter->netdev; int status; @@ -50894,7 +50896,7 @@ index 000e377..f501aa3 100644 } /* INTx */ -@@ -1567,87 +2428,363 @@ done: +@@ -1567,87 +2429,363 @@ done: static void be_irq_unregister(struct be_adapter *adapter) { struct net_device *netdev = adapter->netdev; @@ -51293,7 +51295,7 @@ index 000e377..f501aa3 100644 status = be_tx_queues_create(adapter); if (status != 0) goto if_destroy; -@@ -1656,10 +2793,15 @@ static int be_setup(struct be_adapter *adapter) +@@ -1656,10 +2794,15 @@ static int be_setup(struct be_adapter *adapter) if (status != 0) goto tx_qs_destroy; @@ -51309,7 +51311,7 @@ index 000e377..f501aa3 100644 return 0; rx_qs_destroy: -@@ -1667,158 +2809,392 @@ rx_qs_destroy: +@@ -1667,158 +2810,392 @@ rx_qs_destroy: tx_qs_destroy: be_tx_queues_destroy(adapter); if_destroy: @@ -51803,7 +51805,7 @@ index 000e377..f501aa3 100644 strcpy(fw_file, func); status = request_firmware(&fw, fw_file, &adapter->pdev->dev); -@@ -1826,34 +3202,9 @@ int be_load_fw(struct be_adapter *adapter, u8 *func) +@@ -1826,34 +3203,9 @@ int be_load_fw(struct be_adapter *adapter, u8 *func) goto fw_exit; p = fw->data; @@ -51839,7 +51841,7 @@ index 000e377..f501aa3 100644 flash_cmd.size = sizeof(struct be_cmd_write_flashrom) + 32*1024; flash_cmd.va = pci_alloc_consistent(adapter->pdev, flash_cmd.size, &flash_cmd.dma); -@@ -1864,12 +3215,25 @@ int be_load_fw(struct be_adapter *adapter, u8 *func) +@@ -1864,12 +3216,25 @@ int be_load_fw(struct be_adapter *adapter, u8 *func) goto fw_exit; } @@ -51871,7 +51873,7 @@ index 000e377..f501aa3 100644 } pci_free_consistent(adapter->pdev, flash_cmd.size, flash_cmd.va, -@@ -1879,14 +3243,14 @@ int be_load_fw(struct be_adapter *adapter, u8 *func) +@@ -1879,14 +3244,14 @@ int be_load_fw(struct be_adapter *adapter, u8 *func) goto fw_exit; } @@ -51888,7 +51890,7 @@ index 000e377..f501aa3 100644 .ndo_open = be_open, .ndo_stop = be_close, .ndo_start_xmit = be_xmit, -@@ -1898,15 +3262,32 @@ static struct net_device_ops be_netdev_ops = { +@@ -1898,15 +3263,32 @@ static struct net_device_ops be_netdev_ops = { .ndo_vlan_rx_register = be_vlan_register, .ndo_vlan_rx_add_vid = be_vlan_add_vid, .ndo_vlan_rx_kill_vid = be_vlan_rem_vid, @@ -51924,7 +51926,7 @@ index 000e377..f501aa3 100644 netdev->flags |= IFF_MULTICAST; -@@ -1918,17 +3299,30 @@ static void be_netdev_init(struct net_device *netdev) +@@ -1918,17 +3300,30 @@ static void be_netdev_init(struct net_device *netdev) netif_set_gso_max_size(netdev, 65535); @@ -51961,7 +51963,7 @@ index 000e377..f501aa3 100644 } static void be_unmap_pci_bars(struct be_adapter *adapter) -@@ -1937,37 +3331,62 @@ static void be_unmap_pci_bars(struct be_adapter *adapter) +@@ -1937,37 +3332,62 @@ static void be_unmap_pci_bars(struct be_adapter *adapter) iounmap(adapter->csr); if (adapter->db) iounmap(adapter->db); @@ -52041,7 +52043,7 @@ index 000e377..f501aa3 100644 return 0; pci_map_err: -@@ -1985,40 +3404,69 @@ static void be_ctrl_cleanup(struct be_adapter *adapter) +@@ -1985,40 +3405,69 @@ static void be_ctrl_cleanup(struct be_adapter *adapter) if (mem->va) pci_free_consistent(adapter->pdev, mem->size, mem->va, mem->dma); @@ -52117,7 +52119,7 @@ index 000e377..f501aa3 100644 if (cmd->va) pci_free_consistent(adapter->pdev, cmd->size, -@@ -2027,10 +3475,12 @@ static void be_stats_cleanup(struct be_adapter *adapter) +@@ -2027,10 +3476,12 @@ static void be_stats_cleanup(struct be_adapter *adapter) static int be_stats_init(struct be_adapter *adapter) { @@ -52133,7 +52135,7 @@ index 000e377..f501aa3 100644 cmd->va = pci_alloc_consistent(adapter->pdev, cmd->size, &cmd->dma); if (cmd->va == NULL) return -1; -@@ -2041,9 +3491,17 @@ static int be_stats_init(struct be_adapter *adapter) +@@ -2041,9 +3492,17 @@ static int be_stats_init(struct be_adapter *adapter) static void __devexit be_remove(struct pci_dev *pdev) { struct be_adapter *adapter = pci_get_drvdata(pdev); @@ -52151,7 +52153,7 @@ index 000e377..f501aa3 100644 unregister_netdev(adapter->netdev); be_clear(adapter); -@@ -2052,36 +3510,203 @@ static void __devexit be_remove(struct pci_dev *pdev) +@@ -2052,36 +3511,203 @@ static void __devexit be_remove(struct pci_dev *pdev) be_ctrl_cleanup(adapter); @@ -52366,7 +52368,7 @@ index 000e377..f501aa3 100644 return status; } -@@ -2091,7 +3716,7 @@ static int __devinit be_probe(struct pci_dev *pdev, +@@ -2091,7 +3717,7 @@ static int __devinit be_probe(struct pci_dev *pdev, int status = 0; struct be_adapter *adapter; struct net_device *netdev; @@ -52375,7 +52377,7 @@ index 000e377..f501aa3 100644 status = pci_enable_device(pdev); if (status) -@@ -2102,31 +3727,22 @@ static int __devinit be_probe(struct pci_dev *pdev, +@@ -2102,31 +3728,22 @@ static int __devinit be_probe(struct pci_dev *pdev, goto disable_dev; pci_set_master(pdev); @@ -52414,7 +52416,7 @@ index 000e377..f501aa3 100644 status = pci_set_dma_mask(pdev, DMA_BIT_MASK(64)); if (!status) { -@@ -2139,46 +3755,150 @@ static int __devinit be_probe(struct pci_dev *pdev, +@@ -2139,46 +3756,150 @@ static int __devinit be_probe(struct pci_dev *pdev, } } @@ -52577,7 +52579,7 @@ index 000e377..f501aa3 100644 rel_reg: pci_release_regions(pdev); disable_dev: -@@ -2193,6 +3913,10 @@ static int be_suspend(struct pci_dev *pdev, pm_message_t state) +@@ -2193,6 +3914,10 @@ static int be_suspend(struct pci_dev *pdev, pm_message_t state) struct be_adapter *adapter = pci_get_drvdata(pdev); struct net_device *netdev = adapter->netdev; @@ -52588,7 +52590,7 @@ index 000e377..f501aa3 100644 netif_device_detach(netdev); if (netif_running(netdev)) { rtnl_lock(); -@@ -2202,6 +3926,7 @@ static int be_suspend(struct pci_dev *pdev, pm_message_t state) +@@ -2202,6 +3927,7 @@ static int be_suspend(struct pci_dev *pdev, pm_message_t state) be_cmd_get_flow_control(adapter, &adapter->tx_fc, &adapter->rx_fc); be_clear(adapter); @@ -52596,7 +52598,7 @@ index 000e377..f501aa3 100644 pci_save_state(pdev); pci_disable_device(pdev); pci_set_power_state(pdev, pci_choose_state(pdev, state)); -@@ -2223,6 +3948,12 @@ static int be_resume(struct pci_dev *pdev) +@@ -2223,6 +3949,12 @@ static int be_resume(struct pci_dev *pdev) pci_set_power_state(pdev, 0); pci_restore_state(pdev); @@ -52609,7 +52611,7 @@ index 000e377..f501aa3 100644 be_setup(adapter); if (netif_running(netdev)) { rtnl_lock(); -@@ -2230,28 +3961,152 @@ static int be_resume(struct pci_dev *pdev) +@@ -2230,28 +3962,152 @@ static int be_resume(struct pci_dev *pdev) rtnl_unlock(); } netif_device_attach(netdev); @@ -92302,6 +92304,20 @@ index d30732c..e4992cd 100644 size = i_size_read(path.dentry->d_inode); shm_unlock(shp); +diff --git a/kernel/Makefile b/kernel/Makefile +index d7c13d2..13de8d7 100644 +--- a/kernel/Makefile ++++ b/kernel/Makefile +@@ -66,7 +66,9 @@ obj-$(CONFIG_USER_NS) += user_namespace.o + obj-$(CONFIG_PID_NS) += pid_namespace.o + obj-$(CONFIG_IKCONFIG) += configs.o + obj-$(CONFIG_RESOURCE_COUNTERS) += res_counter.o ++ifeq ($(CONFIG_SMP),y) + obj-$(CONFIG_STOP_MACHINE) += stop_machine.o ++endif + obj-$(CONFIG_KPROBES_SANITY_TEST) += test_kprobes.o + obj-$(CONFIG_AUDIT) += audit.o auditfilter.o audit_watch.o + obj-$(CONFIG_AUDITSYSCALL) += auditsc.o diff --git a/kernel/acct.c b/kernel/acct.c index a6605ca..ca91111 100644 --- a/kernel/acct.c |