* linux-next: manual merge of the usb tree with the input tree
From: Stephen Rothwell @ 2012-05-03 4:44 UTC (permalink / raw)
To: Greg KH; +Cc: linux-next, linux-kernel, Dmitry Torokhov, Chris Bagwell
[-- Attachment #1: Type: text/plain, Size: 478 bytes --]
Hi Greg,
Today's linux-next merge of the usb tree got a conflict in
drivers/input/tablet/wacom_wac.c between commit eb71d1bb270e ("Input:
wacom - use dev_xxx() instead of naked printk()s and dbg()s") from the
input tree and commit 3b6aee237e88 ("USB: wacom: remove dbg() usage")
from the usb tree.
I just used the input tree's version (which used "input->dev.parent"
instead of "&input->dev").
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* linux-next: manual merge of the usb tree with the usb.current tree
From: Stephen Rothwell @ 2012-05-03 4:44 UTC (permalink / raw)
To: Greg KH
Cc: linux-next, linux-kernel, Alan Stern, Stephen Warren,
Venu Byravarasu
[-- Attachment #1: Type: text/plain, Size: 2628 bytes --]
Hi Greg,
Today's linux-next merge of the usb tree got a conflict in
drivers/usb/host/ehci-tegra.c between commit ebf20de45304 ("EHCI: update
PM methods in ehci-tegra.c") from the usb.current tree and commit
fe375774bd88 ("usb: host: tegra: code clean up") from the usb tree.
Just context changes. I fixed it up (see below) and can carry the fix as
necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc drivers/usb/host/ehci-tegra.c
index f214a80,4c1eb61..0000000
--- a/drivers/usb/host/ehci-tegra.c
+++ b/drivers/usb/host/ehci-tegra.c
@@@ -319,7 -423,37 +308,7 @@@ static int tegra_ehci_setup(struct usb_
return retval;
}
- struct temp_buffer {
-#ifdef CONFIG_PM
-static int tegra_ehci_bus_suspend(struct usb_hcd *hcd)
-{
- struct tegra_ehci_hcd *tegra = dev_get_drvdata(hcd->self.controller);
- int error_status = 0;
-
- error_status = ehci_bus_suspend(hcd);
- if (!error_status && tegra->power_down_on_bus_suspend) {
- tegra_usb_suspend(hcd);
- tegra->bus_suspended = 1;
- }
-
- return error_status;
-}
-
-static int tegra_ehci_bus_resume(struct usb_hcd *hcd)
-{
- struct tegra_ehci_hcd *tegra = dev_get_drvdata(hcd->self.controller);
-
- if (tegra->bus_suspended && tegra->power_down_on_bus_suspend) {
- tegra_usb_resume(hcd);
- tegra->bus_suspended = 0;
- }
-
- tegra_usb_phy_preresume(tegra->phy);
- tegra->port_resuming = 1;
- return ehci_bus_resume(hcd);
-}
-#endif
-
+ struct dma_aligned_buffer {
void *kmalloc_ptr;
void *old_xfer_buffer;
u8 data[0];
@@@ -426,14 -548,20 +403,20 @@@ static const struct hc_driver tegra_ehc
.endpoint_reset = ehci_endpoint_reset,
.get_frame_number = ehci_get_frame,
.hub_status_data = ehci_hub_status_data,
- .hub_control = tegra_ehci_hub_control,
.clear_tt_buffer_complete = ehci_clear_tt_buffer_complete,
+ .relinquish_port = ehci_relinquish_port,
+ .port_handed_over = ehci_port_handed_over,
+
+ /* modified ehci functions for tegra */
+ .reset = tegra_ehci_setup,
+ .shutdown = tegra_ehci_shutdown,
+ .map_urb_for_dma = tegra_ehci_map_urb_for_dma,
+ .unmap_urb_for_dma = tegra_ehci_unmap_urb_for_dma,
+ .hub_control = tegra_ehci_hub_control,
#ifdef CONFIG_PM
- .bus_suspend = tegra_ehci_bus_suspend,
- .bus_resume = tegra_ehci_bus_resume,
+ .bus_suspend = ehci_bus_suspend,
+ .bus_resume = ehci_bus_resume,
#endif
- .relinquish_port = ehci_relinquish_port,
- .port_handed_over = ehci_port_handed_over,
};
static int setup_vbus_gpio(struct platform_device *pdev)
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: [PATCH -V6 07/14] memcg: Add HugeTLB extension
From: Aneesh Kumar K.V @ 2012-05-03 4:37 UTC (permalink / raw)
To: Paul Gortmaker
Cc: linux-mm-Bw31MaZKKs3YtjvyW6yDsg, mgorman-l3A5Bk7waGM,
kamezawa.hiroyu-+CUm20s59erQFUHtdCDX3A,
dhillf-Re5JQEeQqe8AvxtiuMwx3w, aarcange-H+wXaHxf7aLQT0dZR+AlfA,
mhocko-AlSwsSmVLrQ, akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b,
hannes-druUgvl0LCNAfugRpC6u6w,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
cgroups-u79uwXL29TY76Z2rM5mHXA, linux-next-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <CAP=VYLqgaCabQGDVgUXnCwKCZHtz0nWxpm_a6Cgz_ciMzGe9gQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
Paul Gortmaker <paul.gortmaker-CWA4WttNNZF54TAoqtyWWQ@public.gmane.org> writes:
> On Mon, Apr 16, 2012 at 6:44 AM, Aneesh Kumar K.V
> <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org> wrote:
>> From: "Aneesh Kumar K.V" <aneesh.kumar-23VcF4HTsmIX0ybBhKVfKdBPR1lH4CV8@public.gmane.org>
>>
>> This patch implements a memcg extension that allows us to control HugeTLB
>> allocations via memory controller. The extension allows to limit the
>
> Hi Aneesh,
>
> This breaks linux-next on some arch because they don't have any
> HUGE_MAX_HSTATE in scope with the current #ifdef layout.
>
> The breakage is in sh4, m68k, s390, and possibly others.
>
> http://kisskb.ellerman.id.au/kisskb/buildresult/6228689/
> http://kisskb.ellerman.id.au/kisskb/buildresult/6228670/
> http://kisskb.ellerman.id.au/kisskb/buildresult/6228484/
>
> This is a commit in akpm's mmotm queue, which used to be here:
>
> http://userweb.kernel.org/~akpm/mmotm
>
> Of course the above is invalid since userweb.kernel.org is dead.
> I don't have a post-kernel.org break-in link handy and a quick
> search didn't give me one, but I'm sure you'll recognize the change.
>
Andrew have the below patch
http://article.gmane.org/gmane.linux.kernel.commits.mm/71649
Does that fix the error ?
-aneesh
^ permalink raw reply
* linux-next: manual merge of the drm tree with Linus' tree
From: Stephen Rothwell @ 2012-05-03 3:07 UTC (permalink / raw)
To: Dave Airlie; +Cc: linux-next, linux-kernel, Chris Wilson
[-- Attachment #1: Type: text/plain, Size: 711 bytes --]
Hi Dave,
Today's linux-next merge of the drm tree got a conflict in
drivers/gpu/drm/i915/intel_display.c between commit 99d9acdd0c5c
("drm/i915: Do not set "Enable Panel Fitter" on SNB pageflips") from
Linus' tree and (I am not sure which) commits from the drm tree.
I fixed it up (the former patch got applied in completely the wrong place
by git merge). This file looks like it was massively rewritten in the
drm tree :-(. I have not included the merge diff because it was >2000
lines.
Dave, as an experiment, you might like to pull that former patch into
your tree and see if that fixes the merge with Linus' tree.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: linux-next: manual merge of the wireless-next tree with the net-next tree
From: David Miller @ 2012-05-03 1:35 UTC (permalink / raw)
To: sfr; +Cc: linville, linux-next, linux-kernel, ashok, netdev
In-Reply-To: <20120503113110.3eded43c5dc526a471c69dd2@canb.auug.org.au>
From: Stephen Rothwell <sfr@canb.auug.org.au>
Date: Thu, 3 May 2012 11:31:10 +1000
> Today's linux-next merge of the wireless-next tree got a conflict in
> net/wireless/nl80211.c between commit 9360ffd18597 ("wireless: Stop using
> NLA_PUT*()") from the net-next tree and commit 0a9b3782ef40 ("{nl,cfg,mac}
> 80211: Allow user to see/configure HT protection mode") from the
> wireless-next tree.
John, the NLA_PUT macros were removed from the net-next tree more
than a month ago.
There is zero reason why this should still be happening, and this
issue is causing a large, unnecessary, burdon upon Stephen.
Please take care of this, thanks.
^ permalink raw reply
* linux-next: manual merge of the wireless-next tree with the net-next tree
From: Stephen Rothwell @ 2012-05-03 1:31 UTC (permalink / raw)
To: John W. Linville
Cc: linux-next, linux-kernel, Ashok Nagarajan, David Miller, netdev
[-- Attachment #1: Type: text/plain, Size: 5530 bytes --]
Hi John,
Today's linux-next merge of the wireless-next tree got a conflict in
net/wireless/nl80211.c between commit 9360ffd18597 ("wireless: Stop using
NLA_PUT*()") from the net-next tree and commit 0a9b3782ef40 ("{nl,cfg,mac}
80211: Allow user to see/configure HT protection mode") from the
wireless-next tree.
I fixed it up (see below) and can carry the fix as necessary.
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
diff --cc net/wireless/nl80211.c
index d5005c5,859bd66..0000000
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@@ -3348,50 -3292,51 +3348,52 @@@ static int nl80211_get_mesh_config(stru
pinfoattr = nla_nest_start(msg, NL80211_ATTR_MESH_CONFIG);
if (!pinfoattr)
goto nla_put_failure;
- NLA_PUT_U32(msg, NL80211_ATTR_IFINDEX, dev->ifindex);
- NLA_PUT_U16(msg, NL80211_MESHCONF_RETRY_TIMEOUT,
- cur_params.dot11MeshRetryTimeout);
- NLA_PUT_U16(msg, NL80211_MESHCONF_CONFIRM_TIMEOUT,
- cur_params.dot11MeshConfirmTimeout);
- NLA_PUT_U16(msg, NL80211_MESHCONF_HOLDING_TIMEOUT,
- cur_params.dot11MeshHoldingTimeout);
- NLA_PUT_U16(msg, NL80211_MESHCONF_MAX_PEER_LINKS,
- cur_params.dot11MeshMaxPeerLinks);
- NLA_PUT_U8(msg, NL80211_MESHCONF_MAX_RETRIES,
- cur_params.dot11MeshMaxRetries);
- NLA_PUT_U8(msg, NL80211_MESHCONF_TTL,
- cur_params.dot11MeshTTL);
- NLA_PUT_U8(msg, NL80211_MESHCONF_ELEMENT_TTL,
- cur_params.element_ttl);
- NLA_PUT_U8(msg, NL80211_MESHCONF_AUTO_OPEN_PLINKS,
- cur_params.auto_open_plinks);
- NLA_PUT_U32(msg, NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR,
- cur_params.dot11MeshNbrOffsetMaxNeighbor);
- NLA_PUT_U8(msg, NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES,
- cur_params.dot11MeshHWMPmaxPREQretries);
- NLA_PUT_U32(msg, NL80211_MESHCONF_PATH_REFRESH_TIME,
- cur_params.path_refresh_time);
- NLA_PUT_U16(msg, NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT,
- cur_params.min_discovery_timeout);
- NLA_PUT_U32(msg, NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT,
- cur_params.dot11MeshHWMPactivePathTimeout);
- NLA_PUT_U16(msg, NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL,
- cur_params.dot11MeshHWMPpreqMinInterval);
- NLA_PUT_U16(msg, NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
- cur_params.dot11MeshHWMPperrMinInterval);
- NLA_PUT_U16(msg, NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME,
- cur_params.dot11MeshHWMPnetDiameterTraversalTime);
- NLA_PUT_U8(msg, NL80211_MESHCONF_HWMP_ROOTMODE,
- cur_params.dot11MeshHWMPRootMode);
- NLA_PUT_U16(msg, NL80211_MESHCONF_HWMP_RANN_INTERVAL,
- cur_params.dot11MeshHWMPRannInterval);
- NLA_PUT_U8(msg, NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
- cur_params.dot11MeshGateAnnouncementProtocol);
- NLA_PUT_U8(msg, NL80211_MESHCONF_FORWARDING,
- cur_params.dot11MeshForwarding);
- NLA_PUT_U32(msg, NL80211_MESHCONF_RSSI_THRESHOLD,
- cur_params.rssi_threshold);
- NLA_PUT_U32(msg, NL80211_MESHCONF_HT_OPMODE,
- cur_params.ht_opmode);
+ if (nla_put_u32(msg, NL80211_ATTR_IFINDEX, dev->ifindex) ||
+ nla_put_u16(msg, NL80211_MESHCONF_RETRY_TIMEOUT,
+ cur_params.dot11MeshRetryTimeout) ||
+ nla_put_u16(msg, NL80211_MESHCONF_CONFIRM_TIMEOUT,
+ cur_params.dot11MeshConfirmTimeout) ||
+ nla_put_u16(msg, NL80211_MESHCONF_HOLDING_TIMEOUT,
+ cur_params.dot11MeshHoldingTimeout) ||
+ nla_put_u16(msg, NL80211_MESHCONF_MAX_PEER_LINKS,
+ cur_params.dot11MeshMaxPeerLinks) ||
+ nla_put_u8(msg, NL80211_MESHCONF_MAX_RETRIES,
+ cur_params.dot11MeshMaxRetries) ||
+ nla_put_u8(msg, NL80211_MESHCONF_TTL,
+ cur_params.dot11MeshTTL) ||
+ nla_put_u8(msg, NL80211_MESHCONF_ELEMENT_TTL,
+ cur_params.element_ttl) ||
+ nla_put_u8(msg, NL80211_MESHCONF_AUTO_OPEN_PLINKS,
+ cur_params.auto_open_plinks) ||
+ nla_put_u32(msg, NL80211_MESHCONF_SYNC_OFFSET_MAX_NEIGHBOR,
+ cur_params.dot11MeshNbrOffsetMaxNeighbor) ||
+ nla_put_u8(msg, NL80211_MESHCONF_HWMP_MAX_PREQ_RETRIES,
+ cur_params.dot11MeshHWMPmaxPREQretries) ||
+ nla_put_u32(msg, NL80211_MESHCONF_PATH_REFRESH_TIME,
+ cur_params.path_refresh_time) ||
+ nla_put_u16(msg, NL80211_MESHCONF_MIN_DISCOVERY_TIMEOUT,
+ cur_params.min_discovery_timeout) ||
+ nla_put_u32(msg, NL80211_MESHCONF_HWMP_ACTIVE_PATH_TIMEOUT,
+ cur_params.dot11MeshHWMPactivePathTimeout) ||
+ nla_put_u16(msg, NL80211_MESHCONF_HWMP_PREQ_MIN_INTERVAL,
+ cur_params.dot11MeshHWMPpreqMinInterval) ||
+ nla_put_u16(msg, NL80211_MESHCONF_HWMP_PERR_MIN_INTERVAL,
+ cur_params.dot11MeshHWMPperrMinInterval) ||
+ nla_put_u16(msg, NL80211_MESHCONF_HWMP_NET_DIAM_TRVS_TIME,
+ cur_params.dot11MeshHWMPnetDiameterTraversalTime) ||
+ nla_put_u8(msg, NL80211_MESHCONF_HWMP_ROOTMODE,
+ cur_params.dot11MeshHWMPRootMode) ||
+ nla_put_u16(msg, NL80211_MESHCONF_HWMP_RANN_INTERVAL,
+ cur_params.dot11MeshHWMPRannInterval) ||
+ nla_put_u8(msg, NL80211_MESHCONF_GATE_ANNOUNCEMENTS,
+ cur_params.dot11MeshGateAnnouncementProtocol) ||
+ nla_put_u8(msg, NL80211_MESHCONF_FORWARDING,
+ cur_params.dot11MeshForwarding) ||
+ nla_put_u32(msg, NL80211_MESHCONF_RSSI_THRESHOLD,
- cur_params.rssi_threshold))
++ cur_params.rssi_threshold) ||
++ nla_put_u32(msg, NL80211_MESHCONF_HT_OPMODE,
++ cur_params.ht_opmode))
+ goto nla_put_failure;
nla_nest_end(msg, pinfoattr);
genlmsg_end(msg, hdr);
return genlmsg_reply(msg, info);
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* Re: [PATCH] RDMA/ocrdma: Fix build with IPV6=n
From: Randy Dunlap @ 2012-05-03 0:29 UTC (permalink / raw)
To: Roland Dreier
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
linux-next-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <1335999060-23779-1-git-send-email-roland-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
On 05/02/12 15:51, Roland Dreier wrote:
> From: Roland Dreier <roland-BHEL68pLQRGGvPXPguhicg@public.gmane.org>
>
> When IPV6 is not enabled:
>
> ERROR: "register_inet6addr_notifier" [drivers/infiniband/hw/ocrdma/ocrdma.ko] undefined!
> ERROR: "unregister_inet6addr_notifier" [drivers/infiniband/hw/ocrdma/ocrdma.ko] undefined!
>
> Fix this by wrapping the inet6 calls in #ifdef IPV6. Also make the
> ocrdma module depend on (IPV6 || IPV6=n) to forbid the case of modular
> ipv6 but built-in ocrdma (which can't work, because ocrdma calls ipv6
> functions).
>
> Reported-by: Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
> Signed-off-by: Roland Dreier <roland-BHEL68pLQRGGvPXPguhicg@public.gmane.org>
Acked-by: Randy Dunlap <rdunlap-/UHa2rfvQTnk1uMJSBkQmQ@public.gmane.org>
Thanks.
> ---
> OK, added this to my tree, should fix this.
>
> Thanks,
> Roland
>
> drivers/infiniband/hw/ocrdma/Kconfig | 2 +-
> drivers/infiniband/hw/ocrdma/ocrdma_main.c | 29 ++++++++++++++++++++--------
> 2 files changed, 22 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/infiniband/hw/ocrdma/Kconfig b/drivers/infiniband/hw/ocrdma/Kconfig
> index cf99342..b5b6056 100644
> --- a/drivers/infiniband/hw/ocrdma/Kconfig
> +++ b/drivers/infiniband/hw/ocrdma/Kconfig
> @@ -1,6 +1,6 @@
> config INFINIBAND_OCRDMA
> tristate "Emulex One Connect HCA support"
> - depends on ETHERNET && NETDEVICES && PCI
> + depends on ETHERNET && NETDEVICES && PCI && (IPV6 || IPV6=n)
> select NET_VENDOR_EMULEX
> select BE2NET
> ---help---
> diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
> index 0bc1efb..a20d16e 100644
> --- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
> +++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
> @@ -51,12 +51,6 @@ static DEFINE_SPINLOCK(ocrdma_devlist_lock);
> static DEFINE_IDR(ocrdma_dev_id);
>
> static union ib_gid ocrdma_zero_sgid;
> -static int ocrdma_inet6addr_event(struct notifier_block *,
> - unsigned long, void *);
> -
> -static struct notifier_block ocrdma_inet6addr_notifier = {
> - .notifier_call = ocrdma_inet6addr_event
> -};
>
> static int ocrdma_get_instance(void)
> {
> @@ -204,6 +198,8 @@ static int ocrdma_build_sgid_tbl(struct ocrdma_dev *dev)
> return 0;
> }
>
> +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
> +
> static int ocrdma_inet6addr_event(struct notifier_block *notifier,
> unsigned long event, void *ptr)
> {
> @@ -259,6 +255,12 @@ static int ocrdma_inet6addr_event(struct notifier_block *notifier,
> return NOTIFY_OK;
> }
>
> +static struct notifier_block ocrdma_inet6addr_notifier = {
> + .notifier_call = ocrdma_inet6addr_event
> +};
> +
> +#endif /* IPV6 */
> +
> static enum rdma_link_layer ocrdma_link_layer(struct ib_device *device,
> u8 port_num)
> {
> @@ -541,23 +543,34 @@ static struct ocrdma_driver ocrdma_drv = {
> .state_change_handler = ocrdma_event_handler,
> };
>
> +static void ocrdma_unregister_inet6addr_notifier(void)
> +{
> +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
> + unregister_inet6addr_notifier(&ocrdma_inet6addr_notifier);
> +#endif
> +}
> +
> static int __init ocrdma_init_module(void)
> {
> int status;
>
> +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
> status = register_inet6addr_notifier(&ocrdma_inet6addr_notifier);
> if (status)
> return status;
> +#endif
> +
> status = be_roce_register_driver(&ocrdma_drv);
> if (status)
> - unregister_inet6addr_notifier(&ocrdma_inet6addr_notifier);
> + ocrdma_unregister_inet6addr_notifier();
> +
> return status;
> }
>
> static void __exit ocrdma_exit_module(void)
> {
> be_roce_unregister_driver(&ocrdma_drv);
> - unregister_inet6addr_notifier(&ocrdma_inet6addr_notifier);
> + ocrdma_unregister_inet6addr_notifier();
> }
>
> module_init(ocrdma_init_module);
--
~Randy
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* [PATCH] RDMA/ocrdma: Fix build with IPV6=n
From: Roland Dreier @ 2012-05-02 22:51 UTC (permalink / raw)
To: Randy Dunlap; +Cc: linux-rdma, linux-next, linux-kernel
In-Reply-To: <4F9ACFC4.6010002@xenotime.net>
From: Roland Dreier <roland@purestorage.com>
When IPV6 is not enabled:
ERROR: "register_inet6addr_notifier" [drivers/infiniband/hw/ocrdma/ocrdma.ko] undefined!
ERROR: "unregister_inet6addr_notifier" [drivers/infiniband/hw/ocrdma/ocrdma.ko] undefined!
Fix this by wrapping the inet6 calls in #ifdef IPV6. Also make the
ocrdma module depend on (IPV6 || IPV6=n) to forbid the case of modular
ipv6 but built-in ocrdma (which can't work, because ocrdma calls ipv6
functions).
Reported-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Roland Dreier <roland@purestorage.com>
---
OK, added this to my tree, should fix this.
Thanks,
Roland
drivers/infiniband/hw/ocrdma/Kconfig | 2 +-
drivers/infiniband/hw/ocrdma/ocrdma_main.c | 29 ++++++++++++++++++++--------
2 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/drivers/infiniband/hw/ocrdma/Kconfig b/drivers/infiniband/hw/ocrdma/Kconfig
index cf99342..b5b6056 100644
--- a/drivers/infiniband/hw/ocrdma/Kconfig
+++ b/drivers/infiniband/hw/ocrdma/Kconfig
@@ -1,6 +1,6 @@
config INFINIBAND_OCRDMA
tristate "Emulex One Connect HCA support"
- depends on ETHERNET && NETDEVICES && PCI
+ depends on ETHERNET && NETDEVICES && PCI && (IPV6 || IPV6=n)
select NET_VENDOR_EMULEX
select BE2NET
---help---
diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_main.c b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
index 0bc1efb..a20d16e 100644
--- a/drivers/infiniband/hw/ocrdma/ocrdma_main.c
+++ b/drivers/infiniband/hw/ocrdma/ocrdma_main.c
@@ -51,12 +51,6 @@ static DEFINE_SPINLOCK(ocrdma_devlist_lock);
static DEFINE_IDR(ocrdma_dev_id);
static union ib_gid ocrdma_zero_sgid;
-static int ocrdma_inet6addr_event(struct notifier_block *,
- unsigned long, void *);
-
-static struct notifier_block ocrdma_inet6addr_notifier = {
- .notifier_call = ocrdma_inet6addr_event
-};
static int ocrdma_get_instance(void)
{
@@ -204,6 +198,8 @@ static int ocrdma_build_sgid_tbl(struct ocrdma_dev *dev)
return 0;
}
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+
static int ocrdma_inet6addr_event(struct notifier_block *notifier,
unsigned long event, void *ptr)
{
@@ -259,6 +255,12 @@ static int ocrdma_inet6addr_event(struct notifier_block *notifier,
return NOTIFY_OK;
}
+static struct notifier_block ocrdma_inet6addr_notifier = {
+ .notifier_call = ocrdma_inet6addr_event
+};
+
+#endif /* IPV6 */
+
static enum rdma_link_layer ocrdma_link_layer(struct ib_device *device,
u8 port_num)
{
@@ -541,23 +543,34 @@ static struct ocrdma_driver ocrdma_drv = {
.state_change_handler = ocrdma_event_handler,
};
+static void ocrdma_unregister_inet6addr_notifier(void)
+{
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
+ unregister_inet6addr_notifier(&ocrdma_inet6addr_notifier);
+#endif
+}
+
static int __init ocrdma_init_module(void)
{
int status;
+#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
status = register_inet6addr_notifier(&ocrdma_inet6addr_notifier);
if (status)
return status;
+#endif
+
status = be_roce_register_driver(&ocrdma_drv);
if (status)
- unregister_inet6addr_notifier(&ocrdma_inet6addr_notifier);
+ ocrdma_unregister_inet6addr_notifier();
+
return status;
}
static void __exit ocrdma_exit_module(void)
{
be_roce_unregister_driver(&ocrdma_drv);
- unregister_inet6addr_notifier(&ocrdma_inet6addr_notifier);
+ ocrdma_unregister_inet6addr_notifier();
}
module_init(ocrdma_init_module);
--
1.7.9.5
^ permalink raw reply related
* Re: linux-next: manual merge of the staging tree with Linus' tree
From: Greg KH @ 2012-05-02 21:23 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Jesper Juhl
In-Reply-To: <20120427143703.f6946999cbca5509e22820a6@canb.auug.org.au>
On Fri, Apr 27, 2012 at 02:37:03PM +1000, Stephen Rothwell wrote:
> Hi Greg,
>
> Today's linux-next merge of the staging tree got a conflict in
> drivers/staging/vt6656/ioctl.c between commit 17b7e1ba1e2e ("staging:
> vt6656: Don't leak memory in drivers/staging/vt6656/ioctl.c::private_ioctl
> ()") from Linus' tree and commit 62ef30b5781d ("staging: vt6656: Remove
> redundant casts from ioctl.c") from the staging tree.
>
> I fixed it up (see below) and can carry the fix as necessary.
This should now be resolved, thanks.
greg k-h
^ permalink raw reply
* cheque
From: Mrs Jennifer james @ 2012-05-02 17:29 UTC (permalink / raw)
To: linux-next
Attention
I am Mrs. Jennifer James, I have a package (Bank Draft) of 2,000,000,00Pounds in your name, the Cheque was won by your email, is the 2012 British National Lottery, you did not contact us since we notify you, so i have to take your Cheque to the DHL courier Service Here in United Kingdom, and at the moment i am at Spain on a program, and i will be here for 1month, you will have to contact the DHL Courier Service London United kingdom with
Your Full Name,
Contact Address,
Phone number
for immediate delivery.
Contact Details of the DHL Courier Service
Disparch officer: Mr Ken Derrick
Email: dhldeliveryservice2@filipinos.ca
I alread paid for the delivery fee, Vat, insurance fee,security keeping fee, but the only money you have to pay to the DHL Courier Service is 200Pounds for the Custom Clearance fee, i would have pay the Custom Clearance fee, but i was told by the DHL Courier Officer not to pay, because they dont know when you will be contacting them incase of due morrage, so contact the DHL courier service, and follow their instruction, and they will deliver the cheque to you as soon as possible contact DHL Courier via dhldeliveryservice2@filipinos.ca
Best Regards
Mrs Jennifer James
^ permalink raw reply
* Re: linux-next: build failure after merge of the kvm-ppc tree
From: Alexander Graf @ 2012-05-02 13:16 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Benjamin Herrenschmidt
In-Reply-To: <20120501135549.5c865717b33650002f083d4a@canb.auug.org.au>
On 05/01/2012 05:55 AM, Stephen Rothwell wrote:
> Hi Alex,
>
> After merging the kvm-ppc tree, today's linux-next build
> (powerpc_ppc64_defconfig) failed like this:
Hmm - do you have that .config available somewhere? :)
Alex
^ permalink raw reply
* Re: Request for inclusion of ep93xx tree in linux-next
From: Arnd Bergmann @ 2012-05-02 12:47 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Ryan Mallon, Stephen Rothwell, Mika Westerberg, arm, linux-next,
H Hartley Sweeten
In-Reply-To: <4FA0D48F.2090800@gmail.com>
On Wednesday 02 May 2012, Ryan Mallon wrote:
> Thanks for the tip. I leave the branches as is for the moment. If I end
> up adding any additional branches to my tree, then I will look at
> creating an ep93xx-for-next branch then. In this case, should the
> for-next branch just be a regular merge of all the other branches I
> have?
Yes. In the arm-soc tree I usually just merge all changes on top
of the for-next branch, and occasionally clean it up, starting over
with a fresh -rc release and pulling the other branches in, then
use git-diff to make sure the contents are identical to what they
were before.
> How do I make it verifiable that everything from the other
> branches has been being tested in the for-next branch?
I'm not sure I understand the question. Maybe you are looking
for 'git branch --no-merged for-next' That command will show
all local branches that are not merged into the for-next branch.
Arnd
^ permalink raw reply
* Re: Request for inclusion of ep93xx tree in linux-next
From: Ryan Mallon @ 2012-05-02 6:30 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Stephen Rothwell, arm, Mika Westerberg, linux-next,
H Hartley Sweeten, 'linux-arm-kernel@lists.infradead.org'
In-Reply-To: <201205010836.28365.arnd@arndb.de>
On 01/05/12 18:36, Arnd Bergmann wrote:
> On Monday 30 April 2012, Ryan Mallon wrote:
>> Hi Stephen,
>>
>> Can you please add the following branches:
>>
>> ep93xx-cleanup
>> ep93xx-fixes
>>
>> from the ep93xx git tree:
>>
>> git://github.com/RyanMallon/linux-ep93xx.git
>>
>> To linux-next. Both branches are stable and based on v3.4-rc2. Testing
>> for the tree is covered by the arm ep93xx_defconfig.
>>
>
> Hi Ryan,
>
> just for your convenience, it helps if you have only one branch that
> you get included into linux-next and that combines various branches
> which you intend to send to arm-soc. That frees you from the need to
> notify Stephen every time you want to have another branch included.
Thanks for the tip. I leave the branches as is for the moment. If I end
up adding any additional branches to my tree, then I will look at
creating an ep93xx-for-next branch then. In this case, should the
for-next branch just be a regular merge of all the other branches I
have? How do I make it verifiable that everything from the other
branches has been being tested in the for-next branch?
Thanks,
~Ryan
^ permalink raw reply
* linux-next: There is no tree for May 2
From: Stephen Rothwell @ 2012-05-02 6:11 UTC (permalink / raw)
To: linux-next; +Cc: LKML
[-- Attachment #1: Type: text/plain, Size: 119 bytes --]
"Normal service should resume tomorrow" ;-)
--
Cheers,
Stephen Rothwell sfr@canb.auug.org.au
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
^ permalink raw reply
* linux-next: triage for May 1, 2012
From: Paul Gortmaker @ 2012-05-02 1:10 UTC (permalink / raw)
To: linux-next; +Cc: linux-kernel
Recent problems seen in linux-next:
The "undefined reference to `vga_default_device'" stuff still lingers
in a couple arch (arm/mips). I gave mjg a heads up on IRC and he'll be
looking into fixing it ASAP.
[ http://kisskb.ellerman.id.au/kisskb/buildresult/6228428/ ]
[ http://kisskb.ellerman.id.au/kisskb/buildresult/6229055/ ]
[ http://kisskb.ellerman.id.au/kisskb/buildresult/6228983/ ]
Some ARM and MIPS failed because the USB deleted err() - I've given
gregKH fixes for these, so they should be short lived. So I've not
listed them below in the board specific breakage.
[ http://marc.info/?l=linux-usb&m=133591198425099&w=2 ]
Several arch failed on a hugeTLB define; I've given a heads up,
and also skipped listing them below.
[ http://marc.info/?l=linux-next&m=133591821627008&w=2 ]
[ http://kisskb.ellerman.id.au/kisskb/buildresult/6228484/ ]
[ http://kisskb.ellerman.id.au/kisskb/buildresult/6228672/ ]
Sparc/parisc is still borked by kvm header shuffle it seems.
Complaining about "file 'asm-generic/kvm_para.h' is not exported"
[ http://kisskb.ellerman.id.au/kisskb/buildresult/6141443/ ]
[ http://kisskb.ellerman.id.au/kisskb/buildresult/6137786/ ]
---------------------
New breakage since last report:
See above.
Randconfig fails that may or may not be new (by their very nature):
x86_64: also dies on vga_default_device -- see above.
Builds that are fixed since last report:
Several, given the week away from linux-next.
----------------------
Note1: The randconfig fails are only listed once and not tracked
in the below listing.
Note2: Build fails that are perpetual and/or unlikely to ever
get fixed are not tracked here.
Note3: Issues that Stephen finds and reverts/avoids before kicking
off the all-arch/all-config builds are also not tracked here.
Note4: I'm also not tracking the kallsyms extra pass on ARM on
a per board basis anymore. It has nothing to do with the board.
Why? See: http://marc.info/?l=linux-next&m=133267456809502
----------------------
Latest results at:
http://kisskb.ellerman.id.au/kisskb/branch/9/
Failures as of May 1st, 2012:
===============================
AM33:asb2303_defconfig,asb2364_defconfig
when: Mar 15
why: cc1: error: unrecognized command line option '-mmem-funcs'
status: Possible fix from TonyB sent for review.
fix: http://marc.info/?l=linux-kernel&m=133185020313818&w=2
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5878400/
----------------
ARM:mackerel_defconfig,ag5evm_defconfig
when: Apr 19 (possibly earlier?)
why: pfc-sh7372.c: undefined reference to `mmc_detect_change'
why: pfc-sh73a0.c: undefined reference to `mmc_detect_change'
status:
fix:
ref: http://article.gmane.org/gmane.linux.ports.sh.devel/14412
ref: http://article.gmane.org/gmane.linux.ports.sh.devel/14413
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6131930/
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6131908/
ARM:bcmring_defconfig
when: Apr 19 (possibly earlier?)
why: core.c: macro "AMBA_APB_DEVICE" requires 6 args, but only 5 given
status: fixed, pending feed into linux next.
fix:
ref: http://www.spinics.net/lists/arm-kernel/msg169724.html
ARM:ezx_defconfig
when: Apr 19 (possibly earlier?)
why: ezx-pcap.c: implicit declaration of function 'irq_to_gpio'
status:
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6131924/
ARM:mini2440_defconfig
when: Apr 19 (possibly earlier?)
why: arm-unknown-linux-gnueabi-ld: no machine record defined
status:
fix: http://marc.info/?l=linux-next&m=133494490918950&w=2
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6131932/
ARM:spear6xx_defconfig
when: Apr 19 (possibly earlier?)
why: asm/timex.h: fatal error: mach/timex.h: No such file
status:
fix: http://marc.info/?l=linux-arm-kernel&m=133494361818349&w=2
ref: http://marc.info/?l=linux-arm-kernel&m=133480180430812&w=2
ARM:netx_defconfig,pnx4008_defconfig
when: Mar 14
why: net/core/pktgen.c: can't find a register in class 'GENERAL_REGS'
status:
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5869486/
ref: https://lkml.org/lkml/2012/3/13/670
ARM:ixp4xx_defconfig
when: Oct 26
why: gpio.h: implicit declaration of function '__gpio_get_value'
status: fixed (Imre Kaloz) - but possibly needs rework?
fix: https://lkml.org/lkml/2012/2/8/288
ref: https://lkml.org/lkml/2012/2/8/287
ARM:raumfeld_defconfig
when: Nov 23
why: eeti_ts.c: implicit declaration of function 'irq_to_gpio'
status: perhaps broken since 2010? See ref below.
fix:
ref: http://www.gossamer-threads.com/lists/linux/kernel/1291618?do=post_view_threaded#1291618
----------------
AVR32:allnoconfig
when: May 26 2010, 20:49
why: at32_map_usart: undefined reference to `atmel_default_console_device'
status:
fix:
ref:
---------------
bfin: 50% of builds
when: Mar 31
why: "Error: pcrel too far BFD_RELOC_BFIN_10" from kernel/time/timekeeping.c
status: unknown, binutils issue?
fix:
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6087324/
---------------
cris:allyesconfig,allmodconfig
when: Apr 3
why: too many to list here
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6035250/
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6035249/
----------------
i386:allmodconfig
when: Apr 17
why: samples/seccomp/bpf-direct.c:47:2: error: #error Unsupported platform
status: reported
ref: http://marc.info/?l=linux-kernel&m=133471624530782&w=2
----------------
h8300:defconfig
when: Mar 15
why: time.c: implicit declaration of function 'get_irq_regs'
why: also seems gcc suffers an ICE
status: ICE bug lodged with gcc folks (TonyB)
ref: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52598
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5884668/
----------------
m32r:m32700ut.smp_defconfig
when: Mar 15
why: No rule to make target `arch/m32r/boot/compressed/vmlinux.bin
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/5884670/
----------------
mips:ip27_defconfig
when: Apr 18
why: iwlwifi/iwl-core.h: static decl of 'iwl_alloc_traffic_mem' follows non-static
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6131791/
mips:allmodconfig
when: Apr 17
why: sound/oss/soundcard.c: 'MAX_DMA_CHANNELS' undeclared
status: one of many fixes mips needs...
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6091660/
----------------
parisc:defconfig
when: Apr 20
why: file 'asm-generic/kvm_para.h' is not exported
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6137786/
parisc:allmodconfig
when: ?
why: include/linux/log2.h: implicit declaration of function 'fls'
status: reported by PaulG, WIP by David Howells
ref: https://lkml.org/lkml/2012/2/29/409
ref: https://lkml.org/lkml/2012/3/6/228
parisc64:a500_defconfig
when: ?
why: include/linux/log2.h: implicit declaration of function 'fls'
status: reported by PaulG, WIP by David Howells
ref: https://lkml.org/lkml/2012/2/29/409
ref: https://lkml.org/lkml/2012/3/6/228
------------------
sparc/m68k:all
when: Apr 18
why: fs/gfs2/lops.c:379:42: error: request for member 'virtual' in something not a structure or union
status: reported/bisected by PaulG
ref: http://marc.info/?l=linux-next&m=133479890929994&w=2
------------------
xtensa:defconfig
when: Apr 20
why: kallsyms.c:(.text+0x1eb44): undefined reference to `ack_bad_irq'
ref: http://kisskb.ellerman.id.au/kisskb/buildresult/6138090/
Cc:
Bcc:
Subject: sdf
Reply-To:
^ permalink raw reply
* Re: [PATCH -V6 07/14] memcg: Add HugeTLB extension
From: Paul Gortmaker @ 2012-05-02 0:20 UTC (permalink / raw)
To: Aneesh Kumar K.V
Cc: linux-mm, mgorman, kamezawa.hiroyu, dhillf, aarcange, mhocko,
akpm, hannes, linux-kernel, cgroups, linux-next
In-Reply-To: <1334573091-18602-8-git-send-email-aneesh.kumar@linux.vnet.ibm.com>
On Mon, Apr 16, 2012 at 6:44 AM, Aneesh Kumar K.V
<aneesh.kumar@linux.vnet.ibm.com> wrote:
> From: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
>
> This patch implements a memcg extension that allows us to control HugeTLB
> allocations via memory controller. The extension allows to limit the
Hi Aneesh,
This breaks linux-next on some arch because they don't have any
HUGE_MAX_HSTATE in scope with the current #ifdef layout.
The breakage is in sh4, m68k, s390, and possibly others.
http://kisskb.ellerman.id.au/kisskb/buildresult/6228689/
http://kisskb.ellerman.id.au/kisskb/buildresult/6228670/
http://kisskb.ellerman.id.au/kisskb/buildresult/6228484/
This is a commit in akpm's mmotm queue, which used to be here:
http://userweb.kernel.org/~akpm/mmotm
Of course the above is invalid since userweb.kernel.org is dead.
I don't have a post-kernel.org break-in link handy and a quick
search didn't give me one, but I'm sure you'll recognize the change.
Thanks,
Paul.
--
> HugeTLB usage per control group and enforces the controller limit during
> page fault. Since HugeTLB doesn't support page reclaim, enforcing the limit
> at page fault time implies that, the application will get SIGBUS signal if it
> tries to access HugeTLB pages beyond its limit. This requires the application
> to know beforehand how much HugeTLB pages it would require for its use.
>
> The charge/uncharge calls will be added to HugeTLB code in later patch.
> Support for memcg removal will be added in later patches.
>
> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> include/linux/hugetlb.h | 1 +
> include/linux/memcontrol.h | 42 ++++++++++++++
> init/Kconfig | 8 +++
> mm/hugetlb.c | 2 +-
> mm/memcontrol.c | 132 ++++++++++++++++++++++++++++++++++++++++++++
> 5 files changed, 184 insertions(+), 1 deletion(-)
>
> diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
> index 46c6cbd..995c238 100644
> --- a/include/linux/hugetlb.h
> +++ b/include/linux/hugetlb.h
> @@ -226,6 +226,7 @@ struct hstate *size_to_hstate(unsigned long size);
> #define HUGE_MAX_HSTATE 1
> #endif
>
> +extern int hugetlb_max_hstate;
> extern struct hstate hstates[HUGE_MAX_HSTATE];
> extern unsigned int default_hstate_idx;
>
> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
> index f94efd2..1d07e14 100644
> --- a/include/linux/memcontrol.h
> +++ b/include/linux/memcontrol.h
> @@ -448,5 +448,47 @@ static inline void sock_release_memcg(struct sock *sk)
> {
> }
> #endif /* CONFIG_CGROUP_MEM_RES_CTLR_KMEM */
> +
> +#ifdef CONFIG_MEM_RES_CTLR_HUGETLB
> +extern int mem_cgroup_hugetlb_charge_page(int idx, unsigned long nr_pages,
> + struct mem_cgroup **ptr);
> +extern void mem_cgroup_hugetlb_commit_charge(int idx, unsigned long nr_pages,
> + struct mem_cgroup *memcg,
> + struct page *page);
> +extern void mem_cgroup_hugetlb_uncharge_page(int idx, unsigned long nr_pages,
> + struct page *page);
> +extern void mem_cgroup_hugetlb_uncharge_memcg(int idx, unsigned long nr_pages,
> + struct mem_cgroup *memcg);
> +
> +#else
> +static inline int
> +mem_cgroup_hugetlb_charge_page(int idx, unsigned long nr_pages,
> + struct mem_cgroup **ptr)
> +{
> + return 0;
> +}
> +
> +static inline void
> +mem_cgroup_hugetlb_commit_charge(int idx, unsigned long nr_pages,
> + struct mem_cgroup *memcg,
> + struct page *page)
> +{
> + return;
> +}
> +
> +static inline void
> +mem_cgroup_hugetlb_uncharge_page(int idx, unsigned long nr_pages,
> + struct page *page)
> +{
> + return;
> +}
> +
> +static inline void
> +mem_cgroup_hugetlb_uncharge_memcg(int idx, unsigned long nr_pages,
> + struct mem_cgroup *memcg)
> +{
> + return;
> +}
> +#endif /* CONFIG_MEM_RES_CTLR_HUGETLB */
> #endif /* _LINUX_MEMCONTROL_H */
>
> diff --git a/init/Kconfig b/init/Kconfig
> index 72f33fa..a3b5665 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -716,6 +716,14 @@ config CGROUP_PERF
>
> Say N if unsure.
>
> +config MEM_RES_CTLR_HUGETLB
> + bool "Memory Resource Controller HugeTLB Extension (EXPERIMENTAL)"
> + depends on CGROUP_MEM_RES_CTLR && HUGETLB_PAGE && EXPERIMENTAL
> + default n
> + help
> + Add HugeTLB management to memory resource controller. When you
> + enable this, you can put a per cgroup limit on HugeTLB usage.
> +
> menuconfig CGROUP_SCHED
> bool "Group CPU scheduler"
> default n
> diff --git a/mm/hugetlb.c b/mm/hugetlb.c
> index a3ac624..8cd89b4 100644
> --- a/mm/hugetlb.c
> +++ b/mm/hugetlb.c
> @@ -35,7 +35,7 @@ const unsigned long hugetlb_zero = 0, hugetlb_infinity = ~0UL;
> static gfp_t htlb_alloc_mask = GFP_HIGHUSER;
> unsigned long hugepages_treat_as_movable;
>
> -static int hugetlb_max_hstate;
> +int hugetlb_max_hstate;
> unsigned int default_hstate_idx;
> struct hstate hstates[HUGE_MAX_HSTATE];
>
> diff --git a/mm/memcontrol.c b/mm/memcontrol.c
> index 901bb03..884f479 100644
> --- a/mm/memcontrol.c
> +++ b/mm/memcontrol.c
> @@ -252,6 +252,10 @@ struct mem_cgroup {
> };
>
> /*
> + * the counter to account for hugepages from hugetlb.
> + */
> + struct res_counter hugepage[HUGE_MAX_HSTATE];
> + /*
> * Per cgroup active and inactive list, similar to the
> * per zone LRU lists.
> */
> @@ -3213,6 +3217,114 @@ static inline int mem_cgroup_move_swap_account(swp_entry_t entry,
> }
> #endif
>
> +#ifdef CONFIG_MEM_RES_CTLR_HUGETLB
> +static bool mem_cgroup_have_hugetlb_usage(struct mem_cgroup *memcg)
> +{
> + int idx;
> + for (idx = 0; idx < hugetlb_max_hstate; idx++) {
> + if ((res_counter_read_u64(&memcg->hugepage[idx], RES_USAGE)) > 0)
> + return 1;
> + }
> + return 0;
> +}
> +
> +int mem_cgroup_hugetlb_charge_page(int idx, unsigned long nr_pages,
> + struct mem_cgroup **ptr)
> +{
> + int ret = 0;
> + struct mem_cgroup *memcg = NULL;
> + struct res_counter *fail_res;
> + unsigned long csize = nr_pages * PAGE_SIZE;
> +
> + if (mem_cgroup_disabled())
> + goto done;
> +again:
> + rcu_read_lock();
> + memcg = mem_cgroup_from_task(current);
> + if (!memcg)
> + memcg = root_mem_cgroup;
> +
> + if (!css_tryget(&memcg->css)) {
> + rcu_read_unlock();
> + goto again;
> + }
> + rcu_read_unlock();
> +
> + ret = res_counter_charge(&memcg->hugepage[idx], csize, &fail_res);
> + css_put(&memcg->css);
> +done:
> + *ptr = memcg;
> + return ret;
> +}
> +
> +void mem_cgroup_hugetlb_commit_charge(int idx, unsigned long nr_pages,
> + struct mem_cgroup *memcg,
> + struct page *page)
> +{
> + struct page_cgroup *pc;
> +
> + if (mem_cgroup_disabled())
> + return;
> +
> + pc = lookup_page_cgroup(page);
> + lock_page_cgroup(pc);
> + if (unlikely(PageCgroupUsed(pc))) {
> + unlock_page_cgroup(pc);
> + mem_cgroup_hugetlb_uncharge_memcg(idx, nr_pages, memcg);
> + return;
> + }
> + pc->mem_cgroup = memcg;
> + SetPageCgroupUsed(pc);
> + unlock_page_cgroup(pc);
> + return;
> +}
> +
> +void mem_cgroup_hugetlb_uncharge_page(int idx, unsigned long nr_pages,
> + struct page *page)
> +{
> + struct page_cgroup *pc;
> + struct mem_cgroup *memcg;
> + unsigned long csize = nr_pages * PAGE_SIZE;
> +
> + if (mem_cgroup_disabled())
> + return;
> +
> + pc = lookup_page_cgroup(page);
> + if (unlikely(!PageCgroupUsed(pc)))
> + return;
> +
> + lock_page_cgroup(pc);
> + if (!PageCgroupUsed(pc)) {
> + unlock_page_cgroup(pc);
> + return;
> + }
> + memcg = pc->mem_cgroup;
> + pc->mem_cgroup = root_mem_cgroup;
> + ClearPageCgroupUsed(pc);
> + unlock_page_cgroup(pc);
> +
> + res_counter_uncharge(&memcg->hugepage[idx], csize);
> + return;
> +}
> +
> +void mem_cgroup_hugetlb_uncharge_memcg(int idx, unsigned long nr_pages,
> + struct mem_cgroup *memcg)
> +{
> + unsigned long csize = nr_pages * PAGE_SIZE;
> +
> + if (mem_cgroup_disabled())
> + return;
> +
> + res_counter_uncharge(&memcg->hugepage[idx], csize);
> + return;
> +}
> +#else
> +static bool mem_cgroup_have_hugetlb_usage(struct mem_cgroup *memcg)
> +{
> + return 0;
> +}
> +#endif /* CONFIG_MEM_RES_CTLR_HUGETLB */
> +
> /*
> * Before starting migration, account PAGE_SIZE to mem_cgroup that the old
> * page belongs to.
> @@ -4955,6 +5067,7 @@ err_cleanup:
> static struct cgroup_subsys_state * __ref
> mem_cgroup_create(struct cgroup *cont)
> {
> + int idx;
> struct mem_cgroup *memcg, *parent;
> long error = -ENOMEM;
> int node;
> @@ -4997,9 +5110,22 @@ mem_cgroup_create(struct cgroup *cont)
> * mem_cgroup(see mem_cgroup_put).
> */
> mem_cgroup_get(parent);
> + /*
> + * We could get called before hugetlb init is called.
> + * Use HUGE_MAX_HSTATE as the max index.
> + */
> + for (idx = 0; idx < HUGE_MAX_HSTATE; idx++)
> + res_counter_init(&memcg->hugepage[idx],
> + &parent->hugepage[idx]);
> } else {
> res_counter_init(&memcg->res, NULL);
> res_counter_init(&memcg->memsw, NULL);
> + /*
> + * We could get called before hugetlb init is called.
> + * Use HUGE_MAX_HSTATE as the max index.
> + */
> + for (idx = 0; idx < HUGE_MAX_HSTATE; idx++)
> + res_counter_init(&memcg->hugepage[idx], NULL);
> }
> memcg->last_scanned_node = MAX_NUMNODES;
> INIT_LIST_HEAD(&memcg->oom_notify);
> @@ -5030,6 +5156,12 @@ free_out:
> static int mem_cgroup_pre_destroy(struct cgroup *cont)
> {
> struct mem_cgroup *memcg = mem_cgroup_from_cont(cont);
> + /*
> + * Don't allow memcg removal if we have HugeTLB resource
> + * usage.
> + */
> + if (mem_cgroup_have_hugetlb_usage(memcg))
> + return -EBUSY;
>
> return mem_cgroup_force_empty(memcg, false);
> }
> --
> 1.7.10
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
^ permalink raw reply
* Re: linux-next: manual merge of the arm-soc tree with the mfd tree
From: Linus Walleij @ 2012-05-01 22:56 UTC (permalink / raw)
To: Stephen Rothwell
Cc: Olof Johansson, Arnd Bergmann, linux-arm-kernel, linux-next,
linux-kernel, "Uwe Kleine-König", Samuel Ortiz
In-Reply-To: <20120501153441.5e101139fb096ef262ff1d2b@canb.auug.org.au>
On Tue, May 1, 2012 at 7:34 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Today's linux-next merge of the arm-soc tree got a conflict in
> drivers/mfd/ab5500-core.c between commit 9ea969f0d79d ("mfd: Mark const
> init data with __initconst instead of __initdata for ab5500") from the
> mfd tree and commit f76facc2354b ("mfd/ab5500: delete AB5500 support")
> from the arm-soc tree.
>
> The latter removes the file, so I did that.
That's correct, thanks!
Linus Walleij
^ permalink raw reply
* Re: linux-next: manual merge of the usb tree with the vfs tree
From: Greg KH @ 2012-05-01 13:46 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: linux-next, linux-kernel, Al Viro
In-Reply-To: <20120501150416.3b900d70af5f5173908aca00@canb.auug.org.au>
On Tue, May 01, 2012 at 03:04:16PM +1000, Stephen Rothwell wrote:
> Hi Greg,
>
> Today's linux-next merge of the usb tree got a conflict in
> drivers/usb/core/inode.c between commit eaf5fb5977e0 ("switch usbfs to
> use of simple_{unlink,rmdir}") from the tree and commit fb28d58b72aa
> ("USB: remove CONFIG_USB_DEVICEFS") from the usb tree.
>
> The latter removes the file modified by the former, so I just removed the
> file.
That sounds correct to me, thanks for doing this.
greg k-h
^ permalink raw reply
* Re: linux-next: manual merge of the driver-core tree with Linus' tree
From: Greg KH @ 2012-05-01 13:46 UTC (permalink / raw)
To: Stephen Rothwell
Cc: linux-next, linux-kernel, Jim Cromie, Rusty Russell,
Chris Metcalf
In-Reply-To: <20120501150109.753d67c17e5beead1600c7ac@canb.auug.org.au>
On Tue, May 01, 2012 at 03:01:09PM +1000, Stephen Rothwell wrote:
> Hi Greg,
>
> Today's linux-next merge of the driver-core tree got a conflict in
> init/main.c between commit a99cd1125189 ("init: fix bug where environment
> vars can't be passed via boot args") from Linus' tree and commit
> 9fb48c744ba6 ("params: add 3rd arg to option handler callback signature")
> from the driver-core tree.
>
> I fixed it up (see below) and can carry the fix as necessary.
Thanks, I was warned about this from Jim, but hadn't had the chance to
do the merge myself. I'll work on this later today so you don't have to
carry the fix yourself.
greg k-h
^ permalink raw reply
* Re: linux-next: build failure after merge of the driver-core tree
From: Greg KH @ 2012-05-01 13:45 UTC (permalink / raw)
To: Stephen Rothwell
Cc: linux-next, linux-kernel, Bart Van Assche, Jim Cromie,
Roland Dreier
In-Reply-To: <20120501145922.14f2235dff099d20acf3b54a@canb.auug.org.au>
On Tue, May 01, 2012 at 02:59:22PM +1000, Stephen Rothwell wrote:
> Hi Greg,
>
> After merging the driver-core tree, today's linux-next build (powerpc
> ppc64_defconfig) failed like this:
>
> In file included from include/linux/kernel.h:23:0,
> from include/linux/cache.h:4,
> from include/linux/time.h:7,
> from include/linux/stat.h:60,
> from include/linux/module.h:10,
> from drivers/infiniband/ulp/srp/ib_srp.c:35:
> include/linux/dynamic_debug.h: In function 'ddebug_dyndbg_module_param_cb':
> include/linux/dynamic_debug.h:112:3: error: expected ')' before 'PFX'
>
> Caused by commit b48420c1d301 ("dynamic_debug: make dynamic-debug work
> for module initialization") interacting with commit e0bda7d8c33e
> ("IB/srp: Use pr_fmt() and pr_err()/pr_warn()") from Linus' tree (added
> before v3.4-rc1).
>
> I have used the driver-core tree from next-20120430 for today.
Thanks, but this is a driver-core tree problem, not an IB tree problem,
so should you should have dropped my tree :)
I've applied a patch to the driver-core tree that should solve this
issue now, thanks for letting us know.
greg k-h
^ permalink raw reply
* Re: [PATCH] dynamic_debug: use printk(KERN_WARNING..) in stub function
From: Greg KH @ 2012-05-01 13:44 UTC (permalink / raw)
To: Jim Cromie
Cc: linux-kernel, linux-next, Roland Dreier, Jason Baron, Joe Perches
In-Reply-To: <1335871392-2222-1-git-send-email-jim.cromie@gmail.com>
On Tue, May 01, 2012 at 05:23:12AM -0600, Jim Cromie wrote:
> drivers/infiniband/ulp/srp/ib_srp.c #defines pr_fmt() PFX fmt, but PFX
> is not #defined until after <linux/*> headers are included.
>
> This results in a bad expansion of the pr_warn() in the stub function.
>
> 2084c2084
> < printk("<4>" PFX "dyndbg supported only in " "CONFIG_DYNAMIC_DEBUG builds\n")
> ---
> > printk("<4>" "guano" "dyndbg supported only in " "CONFIG_DYNAMIC_DEBUG builds\n")
> (END)
>
> While that use-case is less than ideal, it will probably happen again,
> and its easy to avoid by using raw printk().
Thanks, now applied.
greg k-h
^ permalink raw reply
* [PATCH] dynamic_debug: use printk(KERN_WARNING..) in stub function
From: Jim Cromie @ 2012-05-01 11:23 UTC (permalink / raw)
To: linux-kernel
Cc: Jim Cromie, Greg KH, linux-next, Roland Dreier, Jason Baron,
Joe Perches
drivers/infiniband/ulp/srp/ib_srp.c #defines pr_fmt() PFX fmt, but PFX
is not #defined until after <linux/*> headers are included.
This results in a bad expansion of the pr_warn() in the stub function.
2084c2084
< printk("<4>" PFX "dyndbg supported only in " "CONFIG_DYNAMIC_DEBUG builds\n")
---
> printk("<4>" "guano" "dyndbg supported only in " "CONFIG_DYNAMIC_DEBUG builds\n")
(END)
While that use-case is less than ideal, it will probably happen again,
and its easy to avoid by using raw printk().
To: Bart Van Assche bvanassche@acm.org
To: Stephen Rothwell <sfr@canb.auug.org.au>
CC: Greg KH <greg@kroah.com>
CC: linux-next@vger.kernel.org
CC: Roland Dreier <roland@purestorage.com>
CC: Jason Baron <jbaron@redhat.com>
CC: Joe Perches <joe@perches.com>
Signed-off-by: Jim Cromie <jim.cromie@gmail.com>
---
include/linux/dynamic_debug.h | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h
index 4697e4b..c18257b 100644
--- a/include/linux/dynamic_debug.h
+++ b/include/linux/dynamic_debug.h
@@ -109,7 +109,8 @@ static inline int ddebug_dyndbg_module_param_cb(char *param, char *val,
const char *modname)
{
if (strstr(param, "dyndbg")) {
- pr_warn("dyndbg supported only in "
+ /* avoid pr_warn(), which wants pr_fmt() fully defined */
+ printk(KERN_WARNING "dyndbg param is supported only in "
"CONFIG_DYNAMIC_DEBUG builds\n");
return 0; /* allow and ignore */
}
--
1.7.7.6
^ permalink raw reply related
* Re: Request for inclusion of ep93xx tree in linux-next
From: Arnd Bergmann @ 2012-05-01 8:36 UTC (permalink / raw)
To: Ryan Mallon
Cc: Stephen Rothwell, arm, Mika Westerberg, linux-next,
H Hartley Sweeten, 'linux-arm-kernel@lists.infradead.org'
In-Reply-To: <4F9F16A9.9090108@gmail.com>
On Monday 30 April 2012, Ryan Mallon wrote:
> Hi Stephen,
>
> Can you please add the following branches:
>
> ep93xx-cleanup
> ep93xx-fixes
>
> from the ep93xx git tree:
>
> git://github.com/RyanMallon/linux-ep93xx.git
>
> To linux-next. Both branches are stable and based on v3.4-rc2. Testing
> for the tree is covered by the arm ep93xx_defconfig.
>
Hi Ryan,
just for your convenience, it helps if you have only one branch that
you get included into linux-next and that combines various branches
which you intend to send to arm-soc. That frees you from the need to
notify Stephen every time you want to have another branch included.
Arnd
^ permalink raw reply
* Re: linux-next: build failure after merge of the kvm-ppc tree
From: Alexander Graf @ 2012-05-01 8:37 UTC (permalink / raw)
To: Benjamin Herrenschmidt
Cc: Stephen Rothwell, linux-next@vger.kernel.org,
linux-kernel@vger.kernel.org
In-Reply-To: <1335848120.3621.13.camel@pasglop>
On 01.05.2012, at 06:55, Benjamin Herrenschmidt <benh@kernel.crashing.org> wrote:
> On Tue, 2012-05-01 at 13:55 +1000, Stephen Rothwell wrote:
>> After merging the kvm-ppc tree, today's linux-next build
>> (powerpc_ppc64_defconfig) failed like this:
>>
>> arch/powerpc/kvm/built-in.o: In function `.kvm_spapr_tce_release':
>> book3s_64_vio.c:(.text+0x374c): undefined reference to `.kvm_put_kvm'
>> arch/powerpc/kvm/built-in.o: In function
>> `.kvm_vm_ioctl_create_spapr_tce':
>> (.text+0x3ae8): undefined reference to `.kvm_get_kvm'
>>
>> Presumably caused by commit 969f70395d6d ("kvm/book3s: Make kernel
>> emulated H_PUT_TCE available for "PR" KVM").
>>
>> I have used the kvm-ppc tree from next-20120430 for today.
>
> Hrm, I wrote that patch :-) It used to work... Alex, probably just a
> missing #include no ?
Well, in fact it even compiled just fine for me with my config.
Ben, I'm out today (labor day). Could you please try make defconfog and check why it fails?
Alex
^ permalink raw reply
* Re: linux-next: build warning after merge of the pci tree
From: Yinghai Lu @ 2012-05-01 7:35 UTC (permalink / raw)
To: Stephen Rothwell; +Cc: Bjorn Helgaas, linux-next, linux-kernel
In-Reply-To: <20120501160838.0bc75873705d84625d1fb98b@canb.auug.org.au>
[-- Attachment #1: Type: text/plain, Size: 507 bytes --]
On Mon, Apr 30, 2012 at 11:08 PM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi Bjorn,
>
> After merging the pci tree, today's linux-next build (i386 defconfig)
> produced this warning:
>
> arch/x86/pci/amd_bus.c: In function 'early_fill_mp_bus_info':
> arch/x86/pci/amd_bus.c:56:6: warning: unused variable 'j' [-Wunused-variable]
>
> Introduced by commit d28e5ac2a07e ("x86/PCI: dynamically allocate
> pci_root_info for native host bridge drivers").
>
please check attached patch.
Thanks
Yinghai
[-- Attachment #2: amd_bus_warning.patch --]
[-- Type: application/octet-stream, Size: 1361 bytes --]
Subject: [PATCH] PCI/x86: Fix unused warning with amd_bus
Have separated function for that.
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
index 459a731..5aed49b 100644
--- a/arch/x86/pci/amd_bus.c
+++ b/arch/x86/pci/amd_bus.c
@@ -44,6 +44,15 @@ static struct pci_root_info __init *find_pci_root_info(int node, int link)
return NULL;
}
+static void __init set_mp_bus_range_to_node(int min_bus, int max_bus, int node)
+{
+#ifdef CONFIG_NUMA
+ int j;
+
+ for (j = min_bus; j <= max_bus; j++)
+ set_mp_bus_to_node(j, node);
+#endif
+}
/**
* early_fill_mp_bus_to_node()
* called before pcibios_scan_root and pci_scan_bus
@@ -53,7 +62,6 @@ static struct pci_root_info __init *find_pci_root_info(int node, int link)
static int __init early_fill_mp_bus_info(void)
{
int i;
- int j;
unsigned bus;
unsigned slot;
int node;
@@ -109,10 +117,7 @@ static int __init early_fill_mp_bus_info(void)
min_bus = (reg >> 16) & 0xff;
max_bus = (reg >> 24) & 0xff;
node = (reg >> 4) & 0x07;
-#ifdef CONFIG_NUMA
- for (j = min_bus; j <= max_bus; j++)
- set_mp_bus_to_node(j, node);
-#endif
+ set_mp_bus_range_to_node(min_bus, max_bus, node);
link = (reg >> 8) & 0x03;
info = alloc_pci_root_info(min_bus, max_bus, node, link);
^ permalink raw reply related
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox