Linux v3.13.2
This commit is contained in:
parent
04f87ec0b8
commit
9a25d0e1a6
|
@ -0,0 +1,56 @@
|
|||
Bugzilla: 1046238
|
||||
Upstream-status: Queued for 3.14
|
||||
|
||||
From 1d0d6df02750b4a6f466768cbfbf860e24f4c8d4 Mon Sep 17 00:00:00 2001
|
||||
From: Ping Cheng <pinglinux@gmail.com>
|
||||
Date: Mon, 25 Nov 2013 18:43:45 -0800
|
||||
Subject: [PATCH] Input: wacom - make sure touch_max is set for touch devices
|
||||
|
||||
Old single touch Tablet PCs do not have touch_max set at
|
||||
wacom_features. Since touch device at lease supports one
|
||||
finger, assign touch_max to 1 when touch usage is defined
|
||||
in its HID Descriptor and touch_max is not pre-defined.
|
||||
|
||||
Tested-by: Jason Gerecke <killertofu@gmail.com>
|
||||
Signed-off-by: Ping Cheng <pingc@wacom.com>
|
||||
Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
---
|
||||
drivers/input/tablet/wacom_sys.c | 7 +++++--
|
||||
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
|
||||
index 8a90da1..3d71b60 100644
|
||||
--- a/drivers/input/tablet/wacom_sys.c
|
||||
+++ b/drivers/input/tablet/wacom_sys.c
|
||||
@@ -304,7 +304,7 @@ static int wacom_parse_hid(struct usb_interface *intf,
|
||||
struct usb_device *dev = interface_to_usbdev(intf);
|
||||
char limit = 0;
|
||||
/* result has to be defined as int for some devices */
|
||||
- int result = 0;
|
||||
+ int result = 0, touch_max = 0;
|
||||
int i = 0, usage = WCM_UNDEFINED, finger = 0, pen = 0;
|
||||
unsigned char *report;
|
||||
|
||||
@@ -351,7 +351,8 @@ static int wacom_parse_hid(struct usb_interface *intf,
|
||||
if (usage == WCM_DESKTOP) {
|
||||
if (finger) {
|
||||
features->device_type = BTN_TOOL_FINGER;
|
||||
-
|
||||
+ /* touch device at least supports one touch point */
|
||||
+ touch_max = 1;
|
||||
switch (features->type) {
|
||||
case TABLETPC2FG:
|
||||
features->pktlen = WACOM_PKGLEN_TPC2FG;
|
||||
@@ -504,6 +505,8 @@ static int wacom_parse_hid(struct usb_interface *intf,
|
||||
}
|
||||
|
||||
out:
|
||||
+ if (!features->touch_max && touch_max)
|
||||
+ features->touch_max = touch_max;
|
||||
result = 0;
|
||||
kfree(report);
|
||||
return result;
|
||||
--
|
||||
1.8.4.2
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
Bugzilla: N/A
|
||||
Upstream-status: Nak'd, supposedly replacement coming to auto-select
|
||||
|
||||
From 0f3f5c5b4ca2eb1f41947c50bedb9b17aa1a1f80 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Mon, 11 Nov 2013 08:39:16 -0500
|
||||
Subject: [PATCH] lib/cpumask: Make CPUMASK_OFFSTACK usable without debug
|
||||
dependency
|
||||
|
||||
When CPUMASK_OFFSTACK was added in 2008, it was dependent upon
|
||||
DEBUG_PER_CPU_MAPS being enabled, or an architecture could select it.
|
||||
The debug dependency adds additional overhead that isn't required for
|
||||
operation of the feature, and we need CPUMASK_OFFSTACK to increase the
|
||||
NR_CPUS value beyond 512 on x86. We drop the current dependency and make
|
||||
sure SMP is set.
|
||||
|
||||
Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
---
|
||||
lib/Kconfig | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/lib/Kconfig b/lib/Kconfig
|
||||
index b3c8be0..50b47cd 100644
|
||||
--- a/lib/Kconfig
|
||||
+++ b/lib/Kconfig
|
||||
@@ -342,7 +342,8 @@ config CHECK_SIGNATURE
|
||||
bool
|
||||
|
||||
config CPUMASK_OFFSTACK
|
||||
- bool "Force CPU masks off stack" if DEBUG_PER_CPU_MAPS
|
||||
+ bool "Force CPU masks off stack"
|
||||
+ depends on SMP
|
||||
help
|
||||
Use dynamic allocation for cpumask_var_t, instead of putting
|
||||
them on the stack. This is a bit more expensive, but avoids
|
||||
--
|
||||
1.8.3.1
|
||||
|
|
@ -0,0 +1,216 @@
|
|||
Bugzilla: 1046238
|
||||
Upstream-status: Queued for 3.14
|
||||
|
||||
From b5fd2a3e92ca5c8c1f3c20d31ac5daed3ec4d604 Mon Sep 17 00:00:00 2001
|
||||
From: Ping Cheng <pinglinux@gmail.com>
|
||||
Date: Mon, 25 Nov 2013 18:44:55 -0800
|
||||
Subject: [PATCH] Input: wacom - add support for three new Intuos devices
|
||||
|
||||
Two tablets in this series support both pen and touch. One (Intuos S)
|
||||
only supports pen. This patch also updates the driver to process wireless
|
||||
devices that do not support touch interface.
|
||||
|
||||
Tested-by: Jason Gerecke <killertofu@gmail.com>
|
||||
Reviewed-by: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Signed-off-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
---
|
||||
drivers/input/tablet/wacom_sys.c | 6 ++--
|
||||
drivers/input/tablet/wacom_wac.c | 61 ++++++++++++++++++++++++++++++----------
|
||||
drivers/input/tablet/wacom_wac.h | 2 ++
|
||||
3 files changed, 51 insertions(+), 18 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
|
||||
index 3d71b60..3a7d99c 100644
|
||||
--- a/drivers/input/tablet/wacom_sys.c
|
||||
+++ b/drivers/input/tablet/wacom_sys.c
|
||||
@@ -1198,7 +1198,8 @@ static void wacom_wireless_work(struct work_struct *work)
|
||||
goto fail;
|
||||
|
||||
/* Touch interface */
|
||||
- if (wacom_wac1->features.touch_max) {
|
||||
+ if (wacom_wac1->features.touch_max ||
|
||||
+ wacom_wac1->features.type == INTUOSHT) {
|
||||
wacom_wac2->features =
|
||||
*((struct wacom_features *)id->driver_info);
|
||||
wacom_wac2->features.pktlen = WACOM_PKGLEN_BBTOUCH3;
|
||||
@@ -1321,7 +1322,7 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
* HID descriptor. If this is the touch interface (wMaxPacketSize
|
||||
* of WACOM_PKGLEN_BBTOUCH3), override the table values.
|
||||
*/
|
||||
- if (features->type >= INTUOS5S && features->type <= INTUOSPL) {
|
||||
+ if (features->type >= INTUOS5S && features->type <= INTUOSHT) {
|
||||
if (endpoint->wMaxPacketSize == WACOM_PKGLEN_BBTOUCH3) {
|
||||
features->device_type = BTN_TOOL_FINGER;
|
||||
features->pktlen = WACOM_PKGLEN_BBTOUCH3;
|
||||
@@ -1391,7 +1392,6 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
goto fail5;
|
||||
}
|
||||
}
|
||||
-
|
||||
return 0;
|
||||
|
||||
fail5: wacom_destroy_leds(wacom);
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 3f75f1d..eb60a28 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -1176,10 +1176,16 @@ static void wacom_bpt3_touch_msg(struct wacom_wac *wacom, unsigned char *data)
|
||||
static void wacom_bpt3_button_msg(struct wacom_wac *wacom, unsigned char *data)
|
||||
{
|
||||
struct input_dev *input = wacom->input;
|
||||
+ struct wacom_features *features = &wacom->features;
|
||||
|
||||
- input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0);
|
||||
+ if (features->type == INTUOSHT) {
|
||||
+ input_report_key(input, BTN_LEFT, (data[1] & 0x02) != 0);
|
||||
+ input_report_key(input, BTN_BACK, (data[1] & 0x08) != 0);
|
||||
+ } else {
|
||||
+ input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0);
|
||||
+ input_report_key(input, BTN_LEFT, (data[1] & 0x08) != 0);
|
||||
+ }
|
||||
input_report_key(input, BTN_FORWARD, (data[1] & 0x04) != 0);
|
||||
- input_report_key(input, BTN_BACK, (data[1] & 0x02) != 0);
|
||||
input_report_key(input, BTN_RIGHT, (data[1] & 0x01) != 0);
|
||||
}
|
||||
|
||||
@@ -1217,7 +1223,7 @@ static int wacom_bpt_pen(struct wacom_wac *wacom)
|
||||
unsigned char *data = wacom->data;
|
||||
int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0;
|
||||
|
||||
- if (data[0] != 0x02)
|
||||
+ if (data[0] != WACOM_REPORT_PENABLED)
|
||||
return 0;
|
||||
|
||||
prox = (data[1] & 0x20) == 0x20;
|
||||
@@ -1297,7 +1303,7 @@ static int wacom_wireless_irq(struct wacom_wac *wacom, size_t len)
|
||||
unsigned char *data = wacom->data;
|
||||
int connected;
|
||||
|
||||
- if (len != WACOM_PKGLEN_WIRELESS || data[0] != 0x80)
|
||||
+ if (len != WACOM_PKGLEN_WIRELESS || data[0] != WACOM_REPORT_WL)
|
||||
return 0;
|
||||
|
||||
connected = data[1] & 0x01;
|
||||
@@ -1391,6 +1397,7 @@ void wacom_wac_irq(struct wacom_wac *wacom_wac, size_t len)
|
||||
break;
|
||||
|
||||
case BAMBOO_PT:
|
||||
+ case INTUOSHT:
|
||||
sync = wacom_bpt_irq(wacom_wac, len);
|
||||
break;
|
||||
|
||||
@@ -1459,7 +1466,7 @@ void wacom_setup_device_quirks(struct wacom_features *features)
|
||||
|
||||
/* these device have multiple inputs */
|
||||
if (features->type >= WIRELESS ||
|
||||
- (features->type >= INTUOS5S && features->type <= INTUOSPL) ||
|
||||
+ (features->type >= INTUOS5S && features->type <= INTUOSHT) ||
|
||||
(features->oVid && features->oPid))
|
||||
features->quirks |= WACOM_QUIRK_MULTI_INPUT;
|
||||
|
||||
@@ -1771,33 +1778,43 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
__set_bit(INPUT_PROP_POINTER, input_dev->propbit);
|
||||
break;
|
||||
|
||||
+ case INTUOSHT:
|
||||
case BAMBOO_PT:
|
||||
__clear_bit(ABS_MISC, input_dev->absbit);
|
||||
|
||||
- __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
|
||||
-
|
||||
if (features->device_type == BTN_TOOL_FINGER) {
|
||||
- unsigned int flags = INPUT_MT_POINTER;
|
||||
|
||||
__set_bit(BTN_LEFT, input_dev->keybit);
|
||||
__set_bit(BTN_FORWARD, input_dev->keybit);
|
||||
__set_bit(BTN_BACK, input_dev->keybit);
|
||||
__set_bit(BTN_RIGHT, input_dev->keybit);
|
||||
|
||||
- if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) {
|
||||
- input_set_abs_params(input_dev,
|
||||
+ if (features->touch_max) {
|
||||
+ /* touch interface */
|
||||
+ unsigned int flags = INPUT_MT_POINTER;
|
||||
+
|
||||
+ __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
|
||||
+ if (features->pktlen == WACOM_PKGLEN_BBTOUCH3) {
|
||||
+ input_set_abs_params(input_dev,
|
||||
ABS_MT_TOUCH_MAJOR,
|
||||
0, features->x_max, 0, 0);
|
||||
- input_set_abs_params(input_dev,
|
||||
+ input_set_abs_params(input_dev,
|
||||
ABS_MT_TOUCH_MINOR,
|
||||
0, features->y_max, 0, 0);
|
||||
+ } else {
|
||||
+ __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
|
||||
+ __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
|
||||
+ flags = 0;
|
||||
+ }
|
||||
+ input_mt_init_slots(input_dev, features->touch_max, flags);
|
||||
} else {
|
||||
- __set_bit(BTN_TOOL_FINGER, input_dev->keybit);
|
||||
- __set_bit(BTN_TOOL_DOUBLETAP, input_dev->keybit);
|
||||
- flags = 0;
|
||||
+ /* buttons/keys only interface */
|
||||
+ __clear_bit(ABS_X, input_dev->absbit);
|
||||
+ __clear_bit(ABS_Y, input_dev->absbit);
|
||||
+ __clear_bit(BTN_TOUCH, input_dev->keybit);
|
||||
}
|
||||
- input_mt_init_slots(input_dev, features->touch_max, flags);
|
||||
} else if (features->device_type == BTN_TOOL_PEN) {
|
||||
+ __set_bit(INPUT_PROP_POINTER, input_dev->propbit);
|
||||
__set_bit(BTN_TOOL_RUBBER, input_dev->keybit);
|
||||
__set_bit(BTN_TOOL_PEN, input_dev->keybit);
|
||||
__set_bit(BTN_STYLUS, input_dev->keybit);
|
||||
@@ -2194,6 +2211,17 @@ static const struct wacom_features wacom_features_0x300 =
|
||||
static const struct wacom_features wacom_features_0x301 =
|
||||
{ "Wacom Bamboo One M", WACOM_PKGLEN_BBPEN, 21648, 13530, 1023,
|
||||
31, BAMBOO_PT, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
|
||||
+static const struct wacom_features wacom_features_0x302 =
|
||||
+ { "Wacom Intuos PT S", WACOM_PKGLEN_BBPEN, 15200, 9500, 1023,
|
||||
+ 31, INTUOSHT, WACOM_INTUOS_RES, WACOM_INTUOS_RES,
|
||||
+ .touch_max = 16 };
|
||||
+static const struct wacom_features wacom_features_0x303 =
|
||||
+ { "Wacom Intuos PT M", WACOM_PKGLEN_BBPEN, 21600, 13500, 1023,
|
||||
+ 31, INTUOSHT, WACOM_INTUOS_RES, WACOM_INTUOS_RES,
|
||||
+ .touch_max = 16 };
|
||||
+static const struct wacom_features wacom_features_0x30E =
|
||||
+ { "Wacom Intuos S", WACOM_PKGLEN_BBPEN, 15200, 9500, 1023,
|
||||
+ 31, INTUOSHT, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
|
||||
static const struct wacom_features wacom_features_0x6004 =
|
||||
{ "ISD-V4", WACOM_PKGLEN_GRAPHIRE, 12800, 8000, 255,
|
||||
0, TABLETPC, WACOM_INTUOS_RES, WACOM_INTUOS_RES };
|
||||
@@ -2329,6 +2357,9 @@ const struct usb_device_id wacom_ids[] = {
|
||||
{ USB_DEVICE_WACOM(0x10D) },
|
||||
{ USB_DEVICE_WACOM(0x300) },
|
||||
{ USB_DEVICE_WACOM(0x301) },
|
||||
+ { USB_DEVICE_DETAILED(0x302, USB_CLASS_HID, 0, 0) },
|
||||
+ { USB_DEVICE_DETAILED(0x303, USB_CLASS_HID, 0, 0) },
|
||||
+ { USB_DEVICE_DETAILED(0x30E, USB_CLASS_HID, 0, 0) },
|
||||
{ USB_DEVICE_WACOM(0x304) },
|
||||
{ USB_DEVICE_DETAILED(0x314, USB_CLASS_HID, 0, 0) },
|
||||
{ USB_DEVICE_DETAILED(0x315, USB_CLASS_HID, 0, 0) },
|
||||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
|
||||
index fd23a37..854cceb 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.h
|
||||
+++ b/drivers/input/tablet/wacom_wac.h
|
||||
@@ -54,6 +54,7 @@
|
||||
#define WACOM_REPORT_TPCST 16
|
||||
#define WACOM_REPORT_TPC1FGE 18
|
||||
#define WACOM_REPORT_24HDT 1
|
||||
+#define WACOM_REPORT_WL 128
|
||||
|
||||
/* device quirks */
|
||||
#define WACOM_QUIRK_MULTI_INPUT 0x0001
|
||||
@@ -81,6 +82,7 @@ enum {
|
||||
INTUOSPS,
|
||||
INTUOSPM,
|
||||
INTUOSPL,
|
||||
+ INTUOSHT,
|
||||
WACOM_21UX2,
|
||||
WACOM_22HD,
|
||||
DTK,
|
||||
--
|
||||
1.8.4.2
|
||||
|
|
@ -1,98 +0,0 @@
|
|||
From 3efd689c41080b0d4a9cc263a51f2868e3d5a37b Mon Sep 17 00:00:00 2001
|
||||
From: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
Date: Wed, 9 Oct 2013 15:03:57 +0200
|
||||
Subject: [PATCH] iwlwifi: don't WARN on bad firmware state
|
||||
|
||||
When we restart firmware is possible and hance firmware is marked as not
|
||||
alive, we can still get calls from mac80211. Don't WARN on in this
|
||||
situation as this triggers automatic bug reports with no valuable
|
||||
information.
|
||||
|
||||
This extend change from:
|
||||
|
||||
commit 8ca95995e64f5d270889badb3e449dca91106a2b
|
||||
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Sun Sep 15 11:37:17 2013 +0300
|
||||
|
||||
iwlwifi: don't WARN on host commands sent when firmware is dead
|
||||
|
||||
which remove WARN_ONCE from one place, but those warnings are also
|
||||
triggered from other functions.
|
||||
|
||||
Patch adds also unlikely() statement.
|
||||
|
||||
Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||
---
|
||||
drivers/net/wireless/iwlwifi/iwl-trans.h | 22 +++++++++++-----------
|
||||
1 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.h b/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
index 80b4750..c6bac7c 100644
|
||||
--- a/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
+++ b/drivers/net/wireless/iwlwifi/iwl-trans.h
|
||||
@@ -601,7 +601,7 @@ static inline int iwl_trans_send_cmd(struct iwl_trans *trans,
|
||||
{
|
||||
int ret;
|
||||
|
||||
- if (trans->state != IWL_TRANS_FW_ALIVE) {
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE)) {
|
||||
IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
return -EIO;
|
||||
}
|
||||
@@ -640,8 +640,8 @@ static inline void iwl_trans_free_tx_cmd(struct iwl_trans *trans,
|
||||
static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb,
|
||||
struct iwl_device_cmd *dev_cmd, int queue)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
return trans->ops->tx(trans, skb, dev_cmd, queue);
|
||||
}
|
||||
@@ -649,16 +649,16 @@ static inline int iwl_trans_tx(struct iwl_trans *trans, struct sk_buff *skb,
|
||||
static inline void iwl_trans_reclaim(struct iwl_trans *trans, int queue,
|
||||
int ssn, struct sk_buff_head *skbs)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
trans->ops->reclaim(trans, queue, ssn, skbs);
|
||||
}
|
||||
|
||||
static inline void iwl_trans_txq_disable(struct iwl_trans *trans, int queue)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
trans->ops->txq_disable(trans, queue);
|
||||
}
|
||||
@@ -669,8 +669,8 @@ static inline void iwl_trans_txq_enable(struct iwl_trans *trans, int queue,
|
||||
{
|
||||
might_sleep();
|
||||
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely((trans->state != IWL_TRANS_FW_ALIVE)))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
trans->ops->txq_enable(trans, queue, fifo, sta_id, tid,
|
||||
frame_limit, ssn);
|
||||
@@ -685,8 +685,8 @@ static inline void iwl_trans_ac_txq_enable(struct iwl_trans *trans, int queue,
|
||||
|
||||
static inline int iwl_trans_wait_tx_queue_empty(struct iwl_trans *trans)
|
||||
{
|
||||
- WARN_ONCE(trans->state != IWL_TRANS_FW_ALIVE,
|
||||
- "%s bad state = %d", __func__, trans->state);
|
||||
+ if (unlikely(trans->state != IWL_TRANS_FW_ALIVE))
|
||||
+ IWL_ERR(trans, "%s bad state = %d", __func__, trans->state);
|
||||
|
||||
return trans->ops->wait_tx_queue_empty(trans);
|
||||
}
|
||||
--
|
||||
1.7.1
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
Bugzilla: 1046238
|
||||
Upstream-status: Queued for 3.14
|
||||
|
||||
From 961794a00eab03f4344b7d5e825e8e789e55da87 Mon Sep 17 00:00:00 2001
|
||||
From: Ping Cheng <pinglinux@gmail.com>
|
||||
Date: Thu, 5 Dec 2013 12:54:53 -0800
|
||||
Subject: [PATCH] Input: wacom - add reporting of SW_MUTE_DEVICE events
|
||||
|
||||
New Intuos series models added a hardware switch to turn touch
|
||||
data on/off. The state of the switch is reported periodically
|
||||
from the tablet. To report the state the driver will emit SW_MUTE_DEVICE
|
||||
events.
|
||||
|
||||
Reviewed_by: Chris Bagwell <chris@cnpbagwell.com>
|
||||
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Tested-by: Jason Gerecke <killertofu@gmail.com>
|
||||
Signed-off-by: Ping Cheng <pingc@wacom.com>
|
||||
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
||||
---
|
||||
drivers/input/tablet/wacom_sys.c | 12 ++++++++++++
|
||||
drivers/input/tablet/wacom_wac.c | 30 +++++++++++++++++++++++++++---
|
||||
drivers/input/tablet/wacom_wac.h | 5 +++++
|
||||
3 files changed, 44 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c
|
||||
index 8318826..b16ebef 100644
|
||||
--- a/drivers/input/tablet/wacom_sys.c
|
||||
+++ b/drivers/input/tablet/wacom_sys.c
|
||||
@@ -1197,6 +1197,8 @@ static void wacom_wireless_work(struct work_struct *work)
|
||||
wacom_wac1->features.device_type = BTN_TOOL_PEN;
|
||||
snprintf(wacom_wac1->name, WACOM_NAME_MAX, "%s (WL) Pen",
|
||||
wacom_wac1->features.name);
|
||||
+ wacom_wac1->shared->touch_max = wacom_wac1->features.touch_max;
|
||||
+ wacom_wac1->shared->type = wacom_wac1->features.type;
|
||||
error = wacom_register_input(wacom1);
|
||||
if (error)
|
||||
goto fail;
|
||||
@@ -1218,6 +1220,10 @@ static void wacom_wireless_work(struct work_struct *work)
|
||||
error = wacom_register_input(wacom2);
|
||||
if (error)
|
||||
goto fail;
|
||||
+
|
||||
+ if (wacom_wac1->features.type == INTUOSHT &&
|
||||
+ wacom_wac1->features.touch_max)
|
||||
+ wacom_wac->shared->touch_input = wacom_wac2->input;
|
||||
}
|
||||
|
||||
error = wacom_initialize_battery(wacom);
|
||||
@@ -1396,6 +1402,12 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
|
||||
goto fail5;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if (wacom_wac->features.type == INTUOSHT && wacom_wac->features.touch_max) {
|
||||
+ if (wacom_wac->features.device_type == BTN_TOOL_FINGER)
|
||||
+ wacom_wac->shared->touch_input = wacom_wac->input;
|
||||
+ }
|
||||
+
|
||||
return 0;
|
||||
|
||||
fail5: wacom_destroy_leds(wacom);
|
||||
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
|
||||
index 7655088..048e5b3 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.c
|
||||
+++ b/drivers/input/tablet/wacom_wac.c
|
||||
@@ -1219,13 +1219,23 @@ static int wacom_bpt3_touch(struct wacom_wac *wacom)
|
||||
|
||||
static int wacom_bpt_pen(struct wacom_wac *wacom)
|
||||
{
|
||||
+ struct wacom_features *features = &wacom->features;
|
||||
struct input_dev *input = wacom->input;
|
||||
unsigned char *data = wacom->data;
|
||||
int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0;
|
||||
|
||||
- if (data[0] != WACOM_REPORT_PENABLED)
|
||||
+ if (data[0] != WACOM_REPORT_PENABLED && data[0] != WACOM_REPORT_USB)
|
||||
return 0;
|
||||
|
||||
+ if (data[0] == WACOM_REPORT_USB) {
|
||||
+ if (features->type == INTUOSHT && features->touch_max) {
|
||||
+ input_report_switch(wacom->shared->touch_input,
|
||||
+ SW_MUTE_DEVICE, data[8] & 0x40);
|
||||
+ input_sync(wacom->shared->touch_input);
|
||||
+ }
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
prox = (data[1] & 0x20) == 0x20;
|
||||
|
||||
/*
|
||||
@@ -1258,8 +1268,8 @@ static int wacom_bpt_pen(struct wacom_wac *wacom)
|
||||
* touching and applying pressure; do not report negative
|
||||
* distance.
|
||||
*/
|
||||
- if (data[8] <= wacom->features.distance_max)
|
||||
- d = wacom->features.distance_max - data[8];
|
||||
+ if (data[8] <= features->distance_max)
|
||||
+ d = features->distance_max - data[8];
|
||||
|
||||
pen = data[1] & 0x01;
|
||||
btn1 = data[1] & 0x02;
|
||||
@@ -1310,6 +1320,13 @@ static int wacom_wireless_irq(struct wacom_wac *wacom, size_t len)
|
||||
if (connected) {
|
||||
int pid, battery;
|
||||
|
||||
+ if ((wacom->shared->type == INTUOSHT) &&
|
||||
+ wacom->shared->touch_max) {
|
||||
+ input_report_switch(wacom->shared->touch_input,
|
||||
+ SW_MUTE_DEVICE, data[5] & 0x40);
|
||||
+ input_sync(wacom->shared->touch_input);
|
||||
+ }
|
||||
+
|
||||
pid = get_unaligned_be16(&data[6]);
|
||||
battery = data[5] & 0x3f;
|
||||
if (wacom->pid != pid) {
|
||||
@@ -1779,6 +1796,13 @@ int wacom_setup_input_capabilities(struct input_dev *input_dev,
|
||||
break;
|
||||
|
||||
case INTUOSHT:
|
||||
+ if (features->touch_max &&
|
||||
+ features->device_type == BTN_TOOL_FINGER) {
|
||||
+ input_dev->evbit[0] |= BIT_MASK(EV_SW);
|
||||
+ __set_bit(SW_MUTE_DEVICE, input_dev->swbit);
|
||||
+ }
|
||||
+ /* fall through */
|
||||
+
|
||||
case BAMBOO_PT:
|
||||
__clear_bit(ABS_MISC, input_dev->absbit);
|
||||
|
||||
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h
|
||||
index 854cceb..3600cf7 100644
|
||||
--- a/drivers/input/tablet/wacom_wac.h
|
||||
+++ b/drivers/input/tablet/wacom_wac.h
|
||||
@@ -55,6 +55,7 @@
|
||||
#define WACOM_REPORT_TPC1FGE 18
|
||||
#define WACOM_REPORT_24HDT 1
|
||||
#define WACOM_REPORT_WL 128
|
||||
+#define WACOM_REPORT_USB 192
|
||||
|
||||
/* device quirks */
|
||||
#define WACOM_QUIRK_MULTI_INPUT 0x0001
|
||||
@@ -131,6 +132,10 @@ struct wacom_features {
|
||||
struct wacom_shared {
|
||||
bool stylus_in_proximity;
|
||||
bool touch_down;
|
||||
+ /* for wireless device to access USB interfaces */
|
||||
+ unsigned touch_max;
|
||||
+ int type;
|
||||
+ struct input_dev *touch_input;
|
||||
};
|
||||
|
||||
struct wacom_wac {
|
||||
--
|
||||
1.8.4.2
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
Bugzilla: 953211
|
||||
Upstream-status: Queued for 3.14
|
||||
|
||||
From 3d3ce020cb0335e1fe5074f009cdb5818ecbc50e Mon Sep 17 00:00:00 2001
|
||||
From 4081924b7b6ce876fdb8e8049f1a5ba9c1496483 Mon Sep 17 00:00:00 2001
|
||||
From: Yunkang Tang <tommywill2011@gmail.com>
|
||||
Date: Thu, 26 Dec 2013 14:54:19 -0800
|
||||
Subject: [PATCH] Input: ALPS - add support for "Dolphin" devices
|
||||
|
@ -17,10 +17,10 @@ Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
|
|||
2 files changed, 179 insertions(+), 42 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
|
||||
index 7c5d72a..a914d8a 100644
|
||||
index 5cf62e3..fb15c64 100644
|
||||
--- a/drivers/input/mouse/alps.c
|
||||
+++ b/drivers/input/mouse/alps.c
|
||||
@@ -257,6 +257,57 @@ static void alps_process_packet_v1_v2(struct psmouse *psmouse)
|
||||
@@ -277,6 +277,57 @@ static void alps_process_packet_v1_v2(struct psmouse *psmouse)
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -78,7 +78,7 @@ index 7c5d72a..a914d8a 100644
|
|||
* Process bitmap data from v3 and v4 protocols. Returns the number of
|
||||
* fingers detected. A return value of 0 means at least one of the
|
||||
* bitmaps was empty.
|
||||
@@ -461,7 +512,8 @@ static void alps_decode_buttons_v3(struct alps_fields *f, unsigned char *p)
|
||||
@@ -481,7 +532,8 @@ static void alps_decode_buttons_v3(struct alps_fields *f, unsigned char *p)
|
||||
f->ts_middle = !!(p[3] & 0x40);
|
||||
}
|
||||
|
||||
|
@ -88,7 +88,7 @@ index 7c5d72a..a914d8a 100644
|
|||
{
|
||||
f->first_mp = !!(p[4] & 0x40);
|
||||
f->is_mp = !!(p[0] & 0x40);
|
||||
@@ -482,48 +534,61 @@ static void alps_decode_pinnacle(struct alps_fields *f, unsigned char *p)
|
||||
@@ -502,48 +554,61 @@ static void alps_decode_pinnacle(struct alps_fields *f, unsigned char *p)
|
||||
alps_decode_buttons_v3(f, p);
|
||||
}
|
||||
|
||||
|
@ -171,7 +171,7 @@ index 7c5d72a..a914d8a 100644
|
|||
|
||||
/*
|
||||
* There's no single feature of touchpad position and bitmap packets
|
||||
@@ -540,19 +605,38 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
@@ -560,19 +625,38 @@ static void alps_process_touchpad_packet_v3(struct psmouse *psmouse)
|
||||
*/
|
||||
if (f.is_mp) {
|
||||
fingers = f.fingers;
|
||||
|
@ -223,7 +223,7 @@ index 7c5d72a..a914d8a 100644
|
|||
} else {
|
||||
priv->multi_packet = 0;
|
||||
}
|
||||
@@ -642,7 +726,7 @@ static void alps_process_packet_v3(struct psmouse *psmouse)
|
||||
@@ -662,7 +746,7 @@ static void alps_process_packet_v3(struct psmouse *psmouse)
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -231,8 +231,8 @@ index 7c5d72a..a914d8a 100644
|
|||
+ alps_process_touchpad_packet_v3_v5(psmouse);
|
||||
}
|
||||
|
||||
static void alps_process_packet_v4(struct psmouse *psmouse)
|
||||
@@ -1519,6 +1603,52 @@ error:
|
||||
static void alps_process_packet_v6(struct psmouse *psmouse)
|
||||
@@ -1709,6 +1793,52 @@ error:
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -285,7 +285,7 @@ index 7c5d72a..a914d8a 100644
|
|||
static int alps_hw_init_dolphin_v1(struct psmouse *psmouse)
|
||||
{
|
||||
struct ps2dev *ps2dev = &psmouse->ps2dev;
|
||||
@@ -1571,13 +1701,13 @@ static void alps_set_defaults(struct alps_data *priv)
|
||||
@@ -1763,13 +1893,13 @@ static void alps_set_defaults(struct alps_data *priv)
|
||||
break;
|
||||
case ALPS_PROTO_V5:
|
||||
priv->hw_init = alps_hw_init_dolphin_v1;
|
||||
|
@ -301,7 +301,7 @@ index 7c5d72a..a914d8a 100644
|
|||
priv->flags = 0;
|
||||
priv->x_max = 1360;
|
||||
priv->y_max = 660;
|
||||
@@ -1645,11 +1775,13 @@ static int alps_identify(struct psmouse *psmouse, struct alps_data *priv)
|
||||
@@ -1845,11 +1975,13 @@ static int alps_identify(struct psmouse *psmouse, struct alps_data *priv)
|
||||
if (alps_match_table(psmouse, priv, e7, ec) == 0) {
|
||||
return 0;
|
||||
} else if (e7[0] == 0x73 && e7[1] == 0x03 && e7[2] == 0x50 &&
|
||||
|
@ -319,12 +319,12 @@ index 7c5d72a..a914d8a 100644
|
|||
priv->proto_version = ALPS_PROTO_V3;
|
||||
alps_set_defaults(priv);
|
||||
diff --git a/drivers/input/mouse/alps.h b/drivers/input/mouse/alps.h
|
||||
index eee5985..c5c53f4 100644
|
||||
index 704f0f9..03f88b6 100644
|
||||
--- a/drivers/input/mouse/alps.h
|
||||
+++ b/drivers/input/mouse/alps.h
|
||||
@@ -18,6 +18,10 @@
|
||||
#define ALPS_PROTO_V4 4
|
||||
@@ -19,6 +19,10 @@
|
||||
#define ALPS_PROTO_V5 5
|
||||
#define ALPS_PROTO_V6 6
|
||||
|
||||
+#define DOLPHIN_COUNT_PER_ELECTRODE 64
|
||||
+#define DOLPHIN_PROFILE_XOFFSET 8 /* x-electrode offset */
|
||||
|
@ -333,7 +333,7 @@ index eee5985..c5c53f4 100644
|
|||
/**
|
||||
* struct alps_model_info - touchpad ID table
|
||||
* @signature: E7 response string to match.
|
||||
@@ -145,7 +149,8 @@ struct alps_data {
|
||||
@@ -146,7 +150,8 @@ struct alps_data {
|
||||
|
||||
int (*hw_init)(struct psmouse *psmouse);
|
||||
void (*process_packet)(struct psmouse *psmouse);
|
||||
|
|
|
@ -0,0 +1,44 @@
|
|||
Bugzilla: 917708
|
||||
Upstream-status: Fedora mustard
|
||||
|
||||
From e3da68be55914bfeedb8866f191cc0958579611d Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Wed, 13 Nov 2013 10:21:18 -0500
|
||||
Subject: [PATCH] Revert "userns: Allow unprivileged users to create user
|
||||
namespaces."
|
||||
|
||||
This reverts commit 5eaf563e53294d6696e651466697eb9d491f3946.
|
||||
|
||||
Conflicts:
|
||||
kernel/fork.c
|
||||
---
|
||||
kernel/fork.c | 13 +++++++++++++
|
||||
1 file changed, 13 insertions(+)
|
||||
|
||||
diff --git a/kernel/fork.c b/kernel/fork.c
|
||||
index f6d11fc..e04c9a7 100644
|
||||
--- a/kernel/fork.c
|
||||
+++ b/kernel/fork.c
|
||||
@@ -1573,6 +1573,19 @@ long do_fork(unsigned long clone_flags,
|
||||
long nr;
|
||||
|
||||
/*
|
||||
+ * Do some preliminary argument and permissions checking before we
|
||||
+ * actually start allocating stuff
|
||||
+ */
|
||||
+ if (clone_flags & CLONE_NEWUSER) {
|
||||
+ /* hopefully this check will go away when userns support is
|
||||
+ * complete
|
||||
+ */
|
||||
+ if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SETUID) ||
|
||||
+ !capable(CAP_SETGID))
|
||||
+ return -EPERM;
|
||||
+ }
|
||||
+
|
||||
+ /*
|
||||
* Determine whether and which event to report to ptracer. When
|
||||
* called from kernel_thread or CLONE_UNTRACED is explicitly
|
||||
* requested, no event is reported; otherwise, report if the event
|
||||
--
|
||||
1.8.3.1
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,55 +0,0 @@
|
|||
Bugzilla: 1012025 1043271
|
||||
Upstream-status: The following upstream commits in 3.13 fix issues with the ti_cpsw driver.
|
||||
The upstream hash is:
|
||||
|
||||
f280e89ad6a29d9969cb6b216123c798e1689bc4
|
||||
|
||||
--- a/drivers/net/ethernet/ti/cpsw.c.orig 2013-11-03 23:41:51.000000000 +0000
|
||||
+++ b/drivers/net/ethernet/ti/cpsw.c 2013-12-15 22:55:00.842417685 +0000
|
||||
@@ -1144,6 +1149,12 @@
|
||||
* receive descs
|
||||
*/
|
||||
cpsw_info(priv, ifup, "submitted %d rx descriptors\n", i);
|
||||
+
|
||||
+ if (cpts_register(&priv->pdev->dev, priv->cpts,
|
||||
+ priv->data.cpts_clock_mult,
|
||||
+ priv->data.cpts_clock_shift))
|
||||
+ dev_err(priv->dev, "error registering cpts device\n");
|
||||
+
|
||||
}
|
||||
|
||||
/* Enable Interrupt pacing if configured */
|
||||
@@ -1190,6 +1201,7 @@
|
||||
netif_carrier_off(priv->ndev);
|
||||
|
||||
if (cpsw_common_res_usage_state(priv) <= 1) {
|
||||
+ cpts_unregister(priv->cpts);
|
||||
cpsw_intr_disable(priv);
|
||||
cpdma_ctlr_int_ctrl(priv->dma, false);
|
||||
cpdma_ctlr_stop(priv->dma);
|
||||
@@ -2001,9 +2013,16 @@
|
||||
goto clean_cpsw_iores_ret;
|
||||
}
|
||||
priv->regs = ss_regs;
|
||||
- priv->version = __raw_readl(&priv->regs->id_ver);
|
||||
priv->host_port = HOST_PORT_NUM;
|
||||
|
||||
+ /* Need to enable clocks with runtime PM api to access module
|
||||
+ * 13 + * registers
|
||||
+ * 12 + */
|
||||
+ pm_runtime_get_sync(&pdev->dev);
|
||||
+ priv->version = readl(&priv->regs->id_ver);
|
||||
+ pm_runtime_put_sync(&pdev->dev);
|
||||
+
|
||||
+
|
||||
priv->cpsw_wr_res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
|
||||
if (!priv->cpsw_wr_res) {
|
||||
dev_err(priv->dev, "error getting i/o resource\n");
|
||||
@@ -2204,7 +2223,6 @@
|
||||
unregister_netdev(cpsw_get_slave_ndev(priv, 1));
|
||||
unregister_netdev(ndev);
|
||||
|
||||
- cpts_unregister(priv->cpts);
|
||||
for (i = 0; i < priv->num_irqs; i++)
|
||||
free_irq(priv->irqs_table[i], priv);
|
||||
|
|
@ -6,8 +6,12 @@ CONFIG_FB_SSD1307=m
|
|||
CONFIG_HW_PERF_EVENTS=y
|
||||
CONFIG_MMC=y
|
||||
CONFIG_NFS_FS=y
|
||||
|
||||
# CONFIG_PID_IN_CONTEXTIDR is not set
|
||||
|
||||
# CONFIG_CPU_BIG_ENDIAN is not set
|
||||
# CONFIG_BIG_LITTLE is not set
|
||||
|
||||
CONFIG_PWM=y
|
||||
CONFIG_PWM_SYSFS=y
|
||||
|
||||
|
@ -20,10 +24,17 @@ CONFIG_BACKLIGHT_PWM=m
|
|||
CONFIG_INPUT_PWM_BEEPER=m
|
||||
CONFIG_ARM_SP805_WATCHDOG=m
|
||||
CONFIG_ARM_ARCH_TIMER=y
|
||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
CONFIG_NR_CPUS=8
|
||||
|
||||
CONFIG_ARM_DMA_USE_IOMMU=y
|
||||
CONFIG_SWIOTLB=y
|
||||
CONFIG_DMA_VIRTUAL_CHANNELS=y
|
||||
CONFIG_FB_SIMPLE=y
|
||||
|
||||
CONFIG_HAVE_PERF_REGS=y
|
||||
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
|
||||
|
||||
# ARM AMBA generic HW
|
||||
CONFIG_ARM_AMBA=y
|
||||
|
@ -64,7 +75,6 @@ CONFIG_OF_PCI_IRQ=m
|
|||
CONFIG_OF_PCI=m
|
||||
# CONFIG_OF_SELFTEST is not set
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
|
||||
# External Connectors
|
||||
CONFIG_EXTCON=m
|
||||
|
@ -89,10 +99,12 @@ CONFIG_MTD_PHYSMAP_OF=m
|
|||
# GPIO
|
||||
CONFIG_GPIO_DEVRES=y
|
||||
CONFIG_GPIO_GENERIC=m
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=m
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_MDIO_GPIO=m
|
||||
CONFIG_BACKLIGHT_GPIO=m
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_RESTART=y
|
||||
|
||||
|
@ -109,20 +121,24 @@ CONFIG_I2C_MUX_PCA9541=m
|
|||
CONFIG_SENSORS_IIO_HWMON=m
|
||||
CONFIG_IIO_SYSFS_TRIGGER=m
|
||||
|
||||
# PHY framework
|
||||
CONFIG_GENERIC_PHY=m
|
||||
|
||||
# MFD
|
||||
CONFIG_MFD_CORE=m
|
||||
|
||||
CONFIG_SMC91X=m
|
||||
CONFIG_SMC911X=m
|
||||
|
||||
CONFIG_CPU_THERMAL=y
|
||||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
|
||||
# CONFIG_CRYPTO_TEST is not set
|
||||
# CONFIG_TRANSPARENT_HUGEPAGE is not set
|
||||
# CONFIG_XEN is not set
|
||||
# CONFIG_DRM_RCAR_DU is not set
|
||||
# CONFIG_I2C_RCAR is not set
|
||||
# CONFIG_DRM_SHMOBILE is not set
|
||||
# CONFIG_I2C_SH_MOBILE is not set
|
||||
# CONFIG_MMC_DW_SOCFPGA is not set
|
||||
# CONFIG_ARM_SMMU is not set
|
||||
# CONFIG_I2C_NOMADIK is not set
|
||||
|
@ -130,6 +146,10 @@ CONFIG_THERMAL_GOV_USER_SPACE=y
|
|||
# CONFIG_LEDS_RENESAS_TPU is not set
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
|
||||
# CONFIG_DRM_ARMADA is not set
|
||||
# CONFIG_DRM_TEGRA is not set
|
||||
# CONFIG_SHMOBILE_IOMMU is not set
|
||||
|
||||
### turn off things which make no sense on embedded SoC
|
||||
|
||||
# core
|
||||
|
@ -154,4 +174,7 @@ CONFIG_THERMAL_GOV_USER_SPACE=y
|
|||
# CONFIG_SCSI_CXGB3_ISCSI is not set
|
||||
# CONFIG_SCSI_CXGB4_ISCSI is not set
|
||||
|
||||
# serial
|
||||
# CONFIG_SERIAL_SH_SCI is not set
|
||||
|
||||
CONFIG_CRASH=m
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
CONFIG_64BIT=y
|
||||
CONFIG_ARM64=y
|
||||
|
||||
# CONFIG_CPU_BIG_ENDIAN is not set
|
||||
|
||||
# arm64 only SoCs
|
||||
CONFIG_ARCH_XGENE=y
|
||||
|
||||
|
@ -8,7 +10,8 @@ CONFIG_ARCH_XGENE=y
|
|||
# CONFIG_AMBA_PL08X is not set
|
||||
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_ARM64_64K_PAGES=y
|
||||
# CONFIG_ARM64_64K_PAGES is not set
|
||||
CONFIG_COMPAT=y
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
CONFIG_ARM_SMMU=y
|
||||
|
||||
|
@ -57,15 +60,12 @@ CONFIG_SERIAL_8250_DMA=y
|
|||
CONFIG_SPARSE_IRQ=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
|
||||
CONFIG_SWIOTLB=y
|
||||
# CONFIG_SYS_HYPERVISOR is not set
|
||||
# CONFIG_THERMAL is not set
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
CONFIG_VM_EVENT_COUNTERS=y
|
||||
|
||||
# not arm64
|
||||
# CONFIG_HW_RANDOM_ATMEL is not set
|
||||
# CONFIG_HW_RANDOM_EXYNOS is not set
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
|
@ -80,3 +80,4 @@ CONFIG_VM_EVENT_COUNTERS=y
|
|||
# CONFIG_PARPORT_PC is not set
|
||||
# CONFIG_VGA_CONSOLE is not set
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
CONFIG_COMMON_CLK_XGENE=y
|
||||
|
|
65
config-armv7
65
config-armv7
|
@ -4,7 +4,9 @@
|
|||
# CONFIG_ARCH_KEYSTONE is not set
|
||||
CONFIG_ARCH_MVEBU=y
|
||||
CONFIG_ARCH_MXC=y
|
||||
CONFIG_ARCH_OMAP2PLUS=y
|
||||
# CONFIG_ARCH_OMAP2 is not set
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_ARCH_PICOXCELL=y
|
||||
CONFIG_ARCH_ROCKCHIP=y
|
||||
CONFIG_ARCH_SOCFPGA=y
|
||||
|
@ -48,41 +50,33 @@ CONFIG_SPI_ORION=m
|
|||
CONFIG_USB_MV_UDC=m
|
||||
CONFIG_MVEBU_MBUS=y
|
||||
CONFIG_ARMADA_THERMAL=m
|
||||
CONFIG_DRM_ARMADA=m
|
||||
|
||||
# omap
|
||||
CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
|
||||
# CONFIG_ARCH_OMAP2 is not set
|
||||
CONFIG_ARCH_OMAP3=y
|
||||
CONFIG_ARCH_OMAP4=y
|
||||
CONFIG_SOC_OMAP5=y
|
||||
# CONFIG_SOC_DRA7XX is not set
|
||||
# CONFIG_SOC_OMAP2420 is not set
|
||||
# CONFIG_SOC_OMAP2430 is not set
|
||||
CONFIG_SOC_OMAP3430=y
|
||||
CONFIG_SOC_TI81XX=y
|
||||
CONFIG_MACH_OMAP_GENERIC=y
|
||||
CONFIG_MACH_OMAP3_BEAGLE=y
|
||||
CONFIG_MACH_CRANEBOARD=y
|
||||
CONFIG_MACH_DEVKIT8000=y
|
||||
# CONFIG_MACH_NOKIA_RX51 is not set
|
||||
CONFIG_MACH_OMAP_3630SDP=y
|
||||
CONFIG_MACH_OMAP_GENERIC=y
|
||||
CONFIG_MACH_OMAP_LDP=y
|
||||
CONFIG_MACH_OMAP3_BEAGLE=y
|
||||
# CONFIG_MACH_OMAP3EVM is not set
|
||||
CONFIG_MACH_OMAP_3430SDP=y
|
||||
CONFIG_MACH_OMAP3530_LV_SOM=y
|
||||
# CONFIG_MACH_OMAP3517EVM is not set
|
||||
CONFIG_MACH_OMAP3_PANDORA=y
|
||||
CONFIG_MACH_OMAP3_TORPEDO=y
|
||||
CONFIG_MACH_OVERO=y
|
||||
# CONFIG_MACH_OMAP3EVM is not set
|
||||
# CONFIG_MACH_OMAP3517EVM is not set
|
||||
CONFIG_MACH_CRANEBOARD=y
|
||||
CONFIG_MACH_OMAP3_PANDORA=y
|
||||
CONFIG_MACH_TOUCHBOOK=y
|
||||
CONFIG_MACH_OMAP_3430SDP=y
|
||||
# CONFIG_MACH_NOKIA_N8X0 is not set
|
||||
# CONFIG_MACH_NOKIA_RM680 is not set
|
||||
# CONFIG_MACH_NOKIA_RX51 is not set
|
||||
CONFIG_MACH_OMAP_ZOOM2=y
|
||||
CONFIG_MACH_OMAP_ZOOM3=y
|
||||
CONFIG_MACH_CM_T35=y
|
||||
CONFIG_MACH_CM_T3517=y
|
||||
CONFIG_MACH_IGEP0030=y
|
||||
CONFIG_MACH_SBC3530=y
|
||||
CONFIG_MACH_OMAP_3630SDP=y
|
||||
# CONFIG_MACH_TI8168EVM is not set
|
||||
# CONFIG_MACH_TI8148EVM is not set
|
||||
|
||||
|
@ -107,7 +101,6 @@ CONFIG_HWSPINLOCK_OMAP=m
|
|||
CONFIG_OMAP3_EMU=y
|
||||
# CONFIG_OMAP3_SDRC_AC_TIMING is not set
|
||||
CONFIG_OMAP_WATCHDOG=m
|
||||
CONFIG_TWL4030_WATCHDOG=m
|
||||
|
||||
CONFIG_SERIAL_OMAP=y
|
||||
CONFIG_SERIAL_OMAP_CONSOLE=y
|
||||
|
@ -138,7 +131,7 @@ CONFIG_BACKLIGHT_PANDORA=m
|
|||
CONFIG_OMAP_OCP2SCP=m
|
||||
CONFIG_USB_EHCI_HCD_OMAP=m
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=m
|
||||
CONFIG_USB_OHCI_HCD_OMAP3=y
|
||||
CONFIG_USB_OHCI_HCD_OMAP3=m
|
||||
CONFIG_USB_MUSB_AM35X=m
|
||||
CONFIG_USB_MUSB_OMAP2PLUS=m
|
||||
CONFIG_OMAP_CONTROL_USB=m
|
||||
|
@ -182,7 +175,7 @@ CONFIG_TOUCHSCREEN_TI_TSCADC=m
|
|||
|
||||
# OMAP thermal temp. Can likely be built as module but doesn't autoload so build in to ensure performance on PandaES
|
||||
CONFIG_OMAP_BANDGAP=y
|
||||
CONFIG_TI_SOC_THERMAL=m
|
||||
CONFIG_TI_SOC_THERMAL=y
|
||||
CONFIG_TI_THERMAL=y
|
||||
CONFIG_OMAP4_THERMAL=y
|
||||
CONFIG_OMAP5_THERMAL=y
|
||||
|
@ -192,7 +185,7 @@ CONFIG_POWER_AVS=y
|
|||
CONFIG_POWER_AVS_OMAP=y
|
||||
CONFIG_POWER_AVS_OMAP_CLASS3=y
|
||||
|
||||
CONFIG_ARM_OMAP2PLUS_CPUFREQ=y
|
||||
# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set
|
||||
|
||||
CONFIG_PWM_TIECAP=m
|
||||
CONFIG_PWM_TIEHRPWM=m
|
||||
|
@ -202,6 +195,7 @@ CONFIG_PWM_TWL_LED=m
|
|||
CONFIG_CRYPTO_DEV_OMAP_SHAM=m
|
||||
CONFIG_CRYPTO_DEV_OMAP_AES=m
|
||||
CONFIG_HW_RANDOM_OMAP=m
|
||||
CONFIG_HW_RANDOM_OMAP3_ROM=m
|
||||
|
||||
CONFIG_DRM_OMAP=m
|
||||
CONFIG_DRM_OMAP_NUM_CRTCS=2
|
||||
|
@ -237,6 +231,7 @@ CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02=m
|
|||
CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m
|
||||
CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1=m
|
||||
CONFIG_DISPLAY_PANEL_NEC_NL8048HL11=m
|
||||
CONFIG_DISPLAY_PANEL_TPO_TD028TTEC1=m
|
||||
|
||||
# Enable V4L2 drivers for OMAP2+
|
||||
CONFIG_MEDIA_CONTROLLER=y
|
||||
|
@ -301,29 +296,27 @@ CONFIG_SOC_AM33XX=y
|
|||
CONFIG_SOC_AM43XX=y
|
||||
CONFIG_AM335X_CONTROL_USB=m
|
||||
CONFIG_AM335X_PHY_USB=m
|
||||
CONFIG_USB_MUSB_AM335X_CHILD=y
|
||||
CONFIG_USB_MUSB_AM335X_CHILD=m
|
||||
CONFIG_TI_CPPI41=m
|
||||
CONFIG_USB_TI_CPPI41_DMA=y
|
||||
CONFIG_MFD_TI_AM335X_TSCADC=m
|
||||
CONFIG_TI_ST=m
|
||||
CONFIG_TI_DAC7512=m
|
||||
CONFIG_TI_DAVINCI_CPDMA=m
|
||||
CONFIG_TI_DAVINCI_EMAC=m
|
||||
CONFIG_TI_DAVINCI_MDIO=m
|
||||
CONFIG_TI_DAVINCI_CPDMA=m
|
||||
CONFIG_TI_CPSW=m
|
||||
CONFIG_TI_CPSW_PHY_SEL=y
|
||||
# CONFIG_TI_CPTS is not set
|
||||
CONFIG_TI_EMIF=m
|
||||
CONFIG_DRM_TILCDC=m
|
||||
CONFIG_SPI_DAVINCI=m
|
||||
CONFIG_SND_DAVINCI_SOC=m
|
||||
CONFIG_REGULATOR_TI_ABB=m
|
||||
CONFIG_TI_PRIV_EDMA=y
|
||||
CONFIG_TI_EDMA=y
|
||||
# Terribly unstable so disable for now
|
||||
# CONFIG_USB_TI_CPPI41_DMA is not set
|
||||
# CONFIG_TI_CPPI41 is not set
|
||||
CONFIG_MFD_TI_AM335X_TSCADC=m
|
||||
CONFIG_CHARGER_BQ24190=m
|
||||
CONFIG_TI_ADC081C=m
|
||||
CONFIG_TI_AM335X_ADC=m
|
||||
CONFIG_PWM_TIPWMSS=y
|
||||
CONFIG_SND_AM33XX_SOC_EVM=m
|
||||
|
||||
# Allwinner a1x
|
||||
CONFIG_PINCTRL_SUNXI=y
|
||||
|
@ -331,6 +324,7 @@ CONFIG_SUNXI_WATCHDOG=m
|
|||
CONFIG_MDIO_SUN4I=m
|
||||
CONFIG_NET_VENDOR_ALLWINNER=y
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_EEPROM_SUNXI_SID=m
|
||||
|
||||
# i.MX
|
||||
CONFIG_MXC_IRQ_PRIOR=y
|
||||
|
@ -344,6 +338,7 @@ CONFIG_MACH_IMX51_DT=y
|
|||
CONFIG_ARM_IMX6Q_CPUFREQ=m
|
||||
CONFIG_IMX_THERMAL=m
|
||||
CONFIG_PATA_IMX=m
|
||||
CONFIG_PCI_IMX6=y
|
||||
CONFIG_USB_CHIPIDEA=m
|
||||
CONFIG_USB_CHIPIDEA_UDC=y
|
||||
CONFIG_USB_CHIPIDEA_HOST=y
|
||||
|
@ -502,6 +497,7 @@ CONFIG_IIO_ST_SENSORS_CORE=m
|
|||
CONFIG_ARCH_TEGRA_2x_SOC=y
|
||||
CONFIG_ARCH_TEGRA_3x_SOC=y
|
||||
# CONFIG_ARCH_TEGRA_114_SOC is not set
|
||||
# CONFIG_ARCH_TEGRA_124_SOC is not set
|
||||
CONFIG_ARM_TEGRA_CPUFREQ=y
|
||||
CONFIG_TEGRA20_MC=y
|
||||
CONFIG_TEGRA30_MC=y
|
||||
|
@ -542,6 +538,10 @@ CONFIG_SND_SOC_TEGRA20_AC97=m
|
|||
CONFIG_SND_SOC_TEGRA30_AHUB=m
|
||||
CONFIG_SND_SOC_TEGRA30_I2S=m
|
||||
|
||||
# bool only, upstream aiming for modular in 3.14
|
||||
# https://lkml.org/lkml/2013/11/18/47
|
||||
# CONFIG_DRM_TEGRA is not set
|
||||
|
||||
# AC100 (PAZ00)
|
||||
CONFIG_MFD_NVEC=y
|
||||
CONFIG_MFD_TPS80031=y
|
||||
|
@ -566,7 +566,6 @@ CONFIG_DRM_TEGRA=y
|
|||
|
||||
CONFIG_CRYPTO_DEV_TEGRA_AES=m
|
||||
|
||||
CONFIG_LEDS_RENESAS_TPU=y
|
||||
CONFIG_GPIO_PCA953X=m
|
||||
|
||||
# OLPC XO
|
||||
|
|
|
@ -8,6 +8,7 @@ CONFIG_ARM=y
|
|||
CONFIG_ARCH_MULTI_V7=y
|
||||
|
||||
CONFIG_CMDLINE=""
|
||||
CONFIG_CMDLINE_FROM_BOOTLOADER=y
|
||||
CONFIG_HAVE_ARM_ARCH_TIMER=y
|
||||
CONFIG_HAVE_ARM_TWD=y
|
||||
CONFIG_AEABI=y
|
||||
|
@ -51,6 +52,7 @@ CONFIG_ALWAYS_USE_PERSISTENT_CLOCK=y
|
|||
CONFIG_ARCH_HIGHBANK=y
|
||||
CONFIG_ARCH_VEXPRESS_CA9X4=y
|
||||
CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
||||
# CONFIG_ARCH_VEXPRESS_SPC is not set
|
||||
# CONFIG_ARCH_BCM is not set
|
||||
# CONFIG_PLAT_SPEAR is not set
|
||||
# CONFIG_ARCH_STI is not set
|
||||
|
@ -60,12 +62,11 @@ CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
|||
# CONFIG_ARCH_SHMOBILE_MULTI is not set
|
||||
|
||||
# highbank
|
||||
# 2013/04/19 - stability issues
|
||||
CONFIG_EDAC_HIGHBANK_MC=m
|
||||
CONFIG_EDAC_HIGHBANK_L2=m
|
||||
CONFIG_SATA_HIGHBANK=m
|
||||
CONFIG_ARM_HIGHBANK_CPUFREQ=m
|
||||
# CONFIG_ARM_HIGHBANK_CPUIDLE is not set
|
||||
CONFIG_ARM_HIGHBANK_CPUIDLE=y
|
||||
|
||||
# errata
|
||||
# v5/v6
|
||||
|
@ -110,7 +111,7 @@ CONFIG_RCU_FANOUT=32
|
|||
CONFIG_CPU_IDLE=y
|
||||
# CONFIG_CPU_IDLE_GOV_LADDER is not set
|
||||
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||
CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y
|
||||
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
|
||||
|
||||
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
|
||||
|
||||
|
@ -162,6 +163,13 @@ CONFIG_ARM_SP805_WATCHDOG=m
|
|||
CONFIG_GPIO_PL061=y
|
||||
CONFIG_PL320_MBOX=y
|
||||
|
||||
CONFIG_REGMAP=y
|
||||
CONFIG_REGMAP_I2C=m
|
||||
CONFIG_REGMAP_SPI=m
|
||||
CONFIG_REGMAP_SPMI=m
|
||||
CONFIG_REGMAP_MMIO=m
|
||||
CONFIG_REGMAP_IRQ=y
|
||||
|
||||
# usb
|
||||
CONFIG_USB_OTG=y
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
|
@ -250,24 +258,23 @@ CONFIG_GENERIC_PINCONF=y
|
|||
# CONFIG_PINCTRL_EXYNOS4 is not set
|
||||
|
||||
# GPIO
|
||||
CONFIG_GPIO_GENERIC_PLATFORM=m
|
||||
# CONFIG_GPIO_EM is not set
|
||||
CONFIG_GPIO_74X164=m
|
||||
CONFIG_GPIO_ADNP=m
|
||||
CONFIG_GPIO_MCP23S08=m
|
||||
CONFIG_SERIAL_8250_EM=m
|
||||
CONFIG_INPUT_GPIO=m
|
||||
CONFIG_INPUT_GPIO_TILT_POLLED=m
|
||||
CONFIG_MDIO_BUS_MUX_GPIO=m
|
||||
CONFIG_MDIO_BUS_MUX_MMIOREG=m
|
||||
CONFIG_LEDS_GPIO=m
|
||||
CONFIG_GPIO_MAX7301=m
|
||||
CONFIG_GPIO_MC33880=m
|
||||
CONFIG_GPIO_74X164=m
|
||||
CONFIG_GPIO_TPS65910=y
|
||||
CONFIG_GPIO_TPS65912=m
|
||||
CONFIG_LEDS_GPIO=m
|
||||
CONFIG_MDIO_BUS_MUX_GPIO=m
|
||||
CONFIG_MDIO_BUS_MUX_MMIOREG=m
|
||||
CONFIG_INPUT_GPIO_TILT_POLLED=m
|
||||
CONFIG_INPUT_MATRIXKMAP=m
|
||||
CONFIG_KEYBOARD_GPIO=m
|
||||
CONFIG_KEYBOARD_MATRIX=m
|
||||
# CONFIG_GPIO_RCAR is not set
|
||||
CONFIG_W1_MASTER_GPIO=m
|
||||
CONFIG_CHARGER_GPIO=m
|
||||
|
||||
# SPI
|
||||
CONFIG_SPI=y
|
||||
|
@ -297,6 +304,11 @@ CONFIG_I2C_DESIGNWARE_PLATFORM=m
|
|||
# HW crypto and rng
|
||||
CONFIG_CRYPTO_SHA1_ARM=m
|
||||
CONFIG_CRYPTO_AES_ARM=m
|
||||
# CONFIG_CRYPTO_AES_ARM_BS is not set
|
||||
|
||||
# DMA
|
||||
CONFIG_TI_PRIV_EDMA=y
|
||||
CONFIG_TI_EDMA=y
|
||||
|
||||
# EDAC
|
||||
CONFIG_EDAC=y
|
||||
|
@ -308,7 +320,6 @@ CONFIG_MPCORE_WATCHDOG=m
|
|||
|
||||
# Thermal / powersaving
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_THERMAL_GOV_USER_SPACE=y
|
||||
CONFIG_ARM_PSCI=y
|
||||
|
||||
# Mailbox
|
||||
|
@ -345,6 +356,8 @@ CONFIG_USB_DWC3_EXYNOS=m
|
|||
CONFIG_USB_DWC3_PCI=m
|
||||
# CONFIG_USB_DWC3_DEBUG is not set
|
||||
CONFIG_DW_WATCHDOG=m
|
||||
CONFIG_PCIE_DW=y
|
||||
CONFIG_PCI_EXYNOS=y
|
||||
|
||||
# Sound
|
||||
CONFIG_SND_SOC=m
|
||||
|
@ -414,6 +427,10 @@ CONFIG_REGULATOR_TPS65912=m
|
|||
CONFIG_REGULATOR_TPS80031=m
|
||||
|
||||
CONFIG_CHARGER_MANAGER=y
|
||||
CONFIG_CHARGER_BQ2415X=m
|
||||
CONFIG_CHARGER_BQ24190=m
|
||||
CONFIG_CHARGER_BQ24735=m
|
||||
CONFIG_CHARGER_GPIO=m
|
||||
CONFIG_CHARGER_TPS65090=m
|
||||
CONFIG_PDA_POWER=m
|
||||
CONFIG_GENERIC_ADC_BATTERY=m
|
||||
|
@ -475,6 +492,7 @@ CONFIG_SRAM=y
|
|||
|
||||
# Ethernet
|
||||
CONFIG_KS8851=m
|
||||
CONFIG_KS8851_MLL=m
|
||||
CONFIG_ENC28J60=m
|
||||
CONFIG_LIBERTAS_SPI=m
|
||||
CONFIG_P54_SPI=m
|
||||
|
@ -536,6 +554,7 @@ CONFIG_BPF_JIT=y
|
|||
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
|
||||
# CONFIG_LATTICE_ECP3_CONFIG is not set
|
||||
# CONFIG_M25PXX_USE_FAST_READ is not set
|
||||
# CONFIG_SERIAL_8250_EM is not set
|
||||
# CONFIG_SERIAL_MAX3100 is not set
|
||||
# CONFIG_SERIAL_MAX310X is not set
|
||||
# CONFIG_SERIAL_IFX6X60 is not set
|
||||
|
|
|
@ -10,6 +10,7 @@ CONFIG_ARCH_EXYNOS5=y
|
|||
# CONFIG_ARCH_OMAP4 is not set
|
||||
# CONFIG_SOC_OMAP5 is not set
|
||||
# CONFIG_SOC_AM33XX is not set
|
||||
# CONFIG_SND_AM33XX_SOC_EVM is not set
|
||||
# CONFIG_SOC_AM43XX is not set
|
||||
# CONFIG_ARCH_ROCKCHIP is not set
|
||||
# CONFIG_ARCH_SOCFPGA is not set
|
||||
|
@ -58,7 +59,6 @@ CONFIG_XEN_GNTDEV=y
|
|||
CONFIG_XEN_GRANT_DEV_ALLOC=m
|
||||
CONFIG_XEN_WDT=m
|
||||
|
||||
CONFIG_MACH_EXYNOS5_DT=y
|
||||
CONFIG_SERIAL_SAMSUNG=y
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
# CONFIG_SAMSUNG_PM_DEBUG is not set
|
||||
|
@ -138,4 +138,5 @@ CONFIG_S3C_LOWLEVEL_UART_PORT=1
|
|||
# CONFIG_TEGRA_HOST1X is not set
|
||||
# CONFIG_SPI_DAVINCI is not set
|
||||
# CONFIG_I2C_DAVINCI is not set
|
||||
# CONFIG_SND_DAVINCI_SOC is not set
|
||||
# CONFIG_TI_SOC_THERMAL is not set
|
||||
|
|
|
@ -104,6 +104,7 @@ CONFIG_KDB_KEYBOARD=y
|
|||
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
||||
|
||||
CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER=y
|
||||
CONFIG_PERCPU_TEST=m
|
||||
CONFIG_TEST_LIST_SORT=y
|
||||
CONFIG_TEST_STRING_HELPERS=m
|
||||
|
||||
|
|
|
@ -61,7 +61,7 @@ CONFIG_PID_NS=y
|
|||
CONFIG_UTS_NS=y
|
||||
CONFIG_IPC_NS=y
|
||||
CONFIG_NET_NS=y
|
||||
# CONFIG_USER_NS is not set
|
||||
CONFIG_USER_NS=y
|
||||
# CONFIG_UIDGID_STRICT_TYPE_CHECKS is not set
|
||||
|
||||
CONFIG_POSIX_MQUEUE=y
|
||||
|
@ -72,6 +72,7 @@ CONFIG_PREEMPT_VOLUNTARY=y
|
|||
CONFIG_SLUB=y
|
||||
CONFIG_SLUB_CPU_PARTIAL=y
|
||||
# CONFIG_SLUB_STATS is not set
|
||||
# CONFIG_SLUB_DEBUG_ON is not set
|
||||
|
||||
# CONFIG_AD525X_DPOT is not set
|
||||
# CONFIG_ATMEL_PWM is not set
|
||||
|
@ -309,6 +310,7 @@ CONFIG_HOTPLUG_PCI_ACPI_IBM=m
|
|||
# Block devices
|
||||
#
|
||||
CONFIG_BLK_DEV=y
|
||||
CONFIG_BLK_DEV_NULL_BLK=m
|
||||
CONFIG_BLK_DEV_FD=m
|
||||
# CONFIG_PARIDE is not set
|
||||
|
||||
|
@ -325,6 +327,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=0
|
|||
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_NVME=m
|
||||
CONFIG_BLK_DEV_SKD=m # 64-bit only but easier to put here
|
||||
CONFIG_BLK_DEV_OSD=m
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
CONFIG_BLK_DEV_RAM_COUNT=16
|
||||
|
@ -786,6 +789,7 @@ CONFIG_INET6_AH=m
|
|||
CONFIG_INET6_ESP=m
|
||||
CONFIG_INET6_IPCOMP=m
|
||||
CONFIG_IPV6_MIP6=y
|
||||
CONFIG_IPV6_VTI=m
|
||||
CONFIG_IPV6_SIT=m
|
||||
CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
|
@ -982,6 +986,30 @@ CONFIG_NF_NAT_IPV6=m
|
|||
CONFIG_IP6_NF_TARGET_MASQUERADE=m
|
||||
# CONFIG_IP6_NF_TARGET_NPT is not set
|
||||
|
||||
# nf_tables support
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NFT_EXTHDR=m
|
||||
CONFIG_NFT_META=m
|
||||
CONFIG_NFT_CT=m
|
||||
CONFIG_NFT_RBTREE=m
|
||||
CONFIG_NFT_HASH=m
|
||||
CONFIG_NFT_COUNTER=m
|
||||
CONFIG_NFT_LOG=m
|
||||
CONFIG_NFT_LIMIT=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
|
||||
CONFIG_NF_TABLES_IPV4=m
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
CONFIG_NF_TABLES_ARP=m
|
||||
|
||||
CONFIG_NF_TABLES_IPV6=m
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV6=m
|
||||
|
||||
CONFIG_NF_TABLES_BRIDGE=m
|
||||
#
|
||||
# Bridge: Netfilter Configuration
|
||||
#
|
||||
|
@ -1029,7 +1057,9 @@ CONFIG_IP_SET_HASH_IP=m
|
|||
CONFIG_IP_SET_HASH_IPPORT=m
|
||||
CONFIG_IP_SET_HASH_IPPORTIP=m
|
||||
CONFIG_IP_SET_HASH_IPPORTNET=m
|
||||
CONFIG_IP_SET_HASH_NETPORTNET=m
|
||||
CONFIG_IP_SET_HASH_NET=m
|
||||
CONFIG_IP_SET_HASH_NETNET=m
|
||||
CONFIG_IP_SET_HASH_NETPORT=m
|
||||
CONFIG_IP_SET_HASH_NETIFACE=m
|
||||
CONFIG_IP_SET_LIST_SET=m
|
||||
|
@ -1112,6 +1142,7 @@ CONFIG_NET_CLS=y
|
|||
CONFIG_NET_CLS_ACT=y
|
||||
CONFIG_NET_CLS_BASIC=m
|
||||
CONFIG_NET_CLS_CGROUP=y
|
||||
CONFIG_NET_CLS_BPF=m
|
||||
CONFIG_NET_CLS_FLOW=m
|
||||
CONFIG_NET_CLS_FW=m
|
||||
CONFIG_NET_CLS_IND=y
|
||||
|
@ -1594,6 +1625,8 @@ CONFIG_ATH10K_PCI=m
|
|||
# CONFIG_ATH10K_DEBUG is not set
|
||||
# CONFIG_ATH10K_TRACING is not set
|
||||
CONFIG_ATH10K_DEBUGFS=y
|
||||
CONFIG_WCN36XX=m
|
||||
# CONFIG_WCN36XX_DEBUGFS is not set
|
||||
CONFIG_WIL6210=m
|
||||
CONFIG_WIL6210_ISR_COR=y
|
||||
# CONFIG_WIL6210_TRACING is not set
|
||||
|
@ -1775,6 +1808,7 @@ CONFIG_BAYCOM_EPP=m
|
|||
CONFIG_YAM=m
|
||||
|
||||
CONFIG_NFC=m
|
||||
CONFIG_NFC_DIGITAL=m
|
||||
CONFIG_NFC_NCI=m
|
||||
CONFIG_NFC_HCI=m
|
||||
CONFIG_NFC_SHDLC=y
|
||||
|
@ -1784,6 +1818,7 @@ CONFIG_NFC_SIM=m
|
|||
#
|
||||
# Near Field Communication (NFC) devices
|
||||
#
|
||||
CONFIG_NFC_PORT100=m
|
||||
CONFIG_NFC_PN544=m
|
||||
CONFIG_NFC_PN544_I2C=m
|
||||
CONFIG_NFC_PN533=m
|
||||
|
@ -2050,6 +2085,7 @@ CONFIG_SERIO_ARC_PS2=m
|
|||
# CONFIG_SERIO_OLPC_APSP is not set
|
||||
# CONFIG_SERIO_PARKBD is not set
|
||||
# CONFIG_SERIO_PCIPS2 is not set
|
||||
# CONFIG_SERIO_LIBPS2 is not set
|
||||
|
||||
#
|
||||
# Input Device Drivers
|
||||
|
@ -2057,6 +2093,7 @@ CONFIG_SERIO_ARC_PS2=m
|
|||
CONFIG_INPUT_KEYBOARD=y
|
||||
CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_SUNKBD is not set
|
||||
# CONFIG_KEYBOARD_SH_KEYSC is not set
|
||||
# CONFIG_KEYBOARD_XTKBD is not set
|
||||
# CONFIG_KEYBOARD_MATRIX is not set
|
||||
# CONFIG_KEYBOARD_NEWTON is not set
|
||||
|
@ -2141,6 +2178,7 @@ CONFIG_TOUCHSCREEN_MTOUCH=m
|
|||
CONFIG_TOUCHSCREEN_MCS5000=m
|
||||
CONFIG_TOUCHSCREEN_MK712=m
|
||||
CONFIG_TOUCHSCREEN_PENMOUNT=m
|
||||
# CONFIG_TOUCHSCREEN_SUR40 is not set
|
||||
# CONFIG_TOUCHSCREEN_TPS6507X is not set
|
||||
CONFIG_TOUCHSCREEN_TSC_SERIO=m
|
||||
CONFIG_TOUCHSCREEN_TSC2007=m
|
||||
|
@ -2161,6 +2199,7 @@ CONFIG_TOUCHSCREEN_ATMEL_MXT=m
|
|||
# CONFIG_TOUCHSCREEN_MAX11801 is not set
|
||||
CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
|
||||
CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m
|
||||
CONFIG_TOUCHSCREEN_ZFORCE=m
|
||||
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_PCSPKR=m
|
||||
|
@ -2207,6 +2246,8 @@ CONFIG_TIFM_7XX1=m
|
|||
CONFIG_TCG_TPM=m
|
||||
CONFIG_TCG_TIS=m
|
||||
# CONFIG_TCG_TIS_I2C_INFINEON is not set
|
||||
# CONFIG_TCG_TIS_I2C_ATMEL is not set
|
||||
# CONFIG_TCG_TIS_I2C_NUVOTON is not set
|
||||
CONFIG_TCG_NSC=m
|
||||
CONFIG_TCG_ATMEL=m
|
||||
# CONFIG_TCG_INFINEON is not set
|
||||
|
@ -2495,8 +2536,12 @@ CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS=y
|
|||
# CONFIG_MCP4725 is not set
|
||||
# CONFIG_ITG3200 is not set
|
||||
# CONFIG_APDS9300 is not set
|
||||
# CONFIG_CM36651 is not set
|
||||
# CONFIG_GP2AP020A00F is not set
|
||||
# CONFIG_TSL2583 is not set
|
||||
# CONFIG_TSL2x7x is not set
|
||||
# CONFIG_TCS3472 is not set
|
||||
# CONFIG_TSL4531 is not set
|
||||
# CONFIG_NAU7802 is not set
|
||||
# CONFIG_TI_ADC081C is not set
|
||||
# CONFIG_EXYNOS_ADC is not set
|
||||
|
@ -2509,6 +2554,7 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m
|
|||
# CONFIG_SENSORS_TSL2563 is not set
|
||||
# CONFIG_VCNL4000 is not set
|
||||
# CONFIG_AK8975 is not set
|
||||
# CONFIG_MAG3110 is not set
|
||||
# CONFIG_TMP006 is not set
|
||||
# CONFIG_IIO_ST_PRESS is not set
|
||||
# CONFIG_KXSD9 is not set
|
||||
|
@ -2520,6 +2566,7 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m
|
|||
# CONFIG_AD7887 is not set
|
||||
# CONFIG_AD7923 is not set
|
||||
# CONFIG_MCP320X is not set
|
||||
# CONFIG_MCP3422 is not set
|
||||
# CONFIG_AD8366 is not set
|
||||
# CONFIG_AD5360 is not set
|
||||
# CONFIG_AD5421 is not set
|
||||
|
@ -2775,6 +2822,7 @@ CONFIG_DRM_MGAG200=m # do not enable on f17 or older
|
|||
# CONFIG_DRM_SAVAGE is not set
|
||||
CONFIG_DRM_I915=m
|
||||
CONFIG_DRM_I915_KMS=y
|
||||
CONFIG_DRM_I915_FBDEV=y
|
||||
# CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT is not set
|
||||
CONFIG_DRM_VIA=m
|
||||
CONFIG_DRM_NOUVEAU=m
|
||||
|
@ -3329,6 +3377,7 @@ CONFIG_SND_FIREWIRE=y
|
|||
CONFIG_SND_FIREWIRE_SPEAKERS=m
|
||||
CONFIG_SND_ISIGHT=m
|
||||
CONFIG_SND_SCS1X=m
|
||||
CONFIG_SND_DICE=m
|
||||
|
||||
#
|
||||
# Open Sound System
|
||||
|
@ -3464,6 +3513,7 @@ CONFIG_HID_ROCCAT=m
|
|||
CONFIG_HID_ROCCAT_KONE=m
|
||||
CONFIG_HID_SAMSUNG=m
|
||||
CONFIG_HID_SONY=m
|
||||
CONFIG_SONY_FF=y
|
||||
CONFIG_HID_SUNPLUS=m
|
||||
CONFIG_HID_STEELSERIES=m
|
||||
CONFIG_HID_GREENASIA=m
|
||||
|
@ -3600,6 +3650,7 @@ CONFIG_USB_NET_RNDIS_HOST=m
|
|||
CONFIG_USB_NET_CDC_SUBSET=m
|
||||
CONFIG_USB_NET_CDC_EEM=m
|
||||
CONFIG_USB_NET_CDC_NCM=m
|
||||
CONFIG_USB_NET_HUAWEI_CDC_NCM=m
|
||||
CONFIG_USB_NET_CDC_MBIM=m
|
||||
CONFIG_USB_NET_ZAURUS=m
|
||||
CONFIG_USB_NET_CX82310_ETH=m
|
||||
|
@ -3727,6 +3778,9 @@ CONFIG_USB_APPLEDISPLAY=m
|
|||
# Physical Layer USB driver
|
||||
CONFIG_USB_PHY=y
|
||||
|
||||
# CONFIG_GENERIC_PHY is not set
|
||||
# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set
|
||||
# CONFIG_PHY_EXYNOS_DP_VIDEO is not set
|
||||
# CONFIG_OMAP_USB2 is not set
|
||||
# CONFIG_OMAP_USB3 is not set
|
||||
# CONFIG_OMAP_CONTROL_USB is not set
|
||||
|
@ -3830,6 +3884,7 @@ CONFIG_MFD_VIPERBOARD=m
|
|||
# CONFIG_HTC_I2CPLD is not set
|
||||
# CONFIG_MFD_MAX8925 is not set
|
||||
# CONFIG_MFD_ASIC3 is not set
|
||||
# CONFIG_MFD_AS3722 is not set
|
||||
# CONFIG_HTC_EGPIO is not set
|
||||
# CONFIG_TPS6507X is not set
|
||||
# CONFIG_ABX500_CORE is not set
|
||||
|
@ -4001,6 +4056,7 @@ CONFIG_NFS_V4=y
|
|||
CONFIG_NFS_SWAP=y
|
||||
CONFIG_NFS_V4_1=y
|
||||
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org"
|
||||
# CONFIG_NFS_V4_1_MIGRATION is not set
|
||||
CONFIG_NFS_V4_2=y
|
||||
CONFIG_NFSD=m
|
||||
CONFIG_NFSD_V3=y
|
||||
|
@ -4168,6 +4224,7 @@ CONFIG_OPROFILE_EVENT_MULTIPLEX=y
|
|||
CONFIG_DEBUG_KERNEL=y
|
||||
CONFIG_FRAME_WARN=1024
|
||||
CONFIG_MAGIC_SYSRQ=y
|
||||
CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x0
|
||||
CONFIG_DEBUG_INFO=y
|
||||
CONFIG_FRAME_POINTER=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
|
@ -4354,6 +4411,7 @@ CONFIG_CRC_CCITT=m
|
|||
CONFIG_CRC_ITU_T=m
|
||||
CONFIG_CRC_T10DIF=m
|
||||
CONFIG_CRC8=m
|
||||
# CONFIG_RANDOM32_SELFTEST is not set
|
||||
# CONFIG_CRC7 is not set
|
||||
CONFIG_CORDIC=m
|
||||
# CONFIG_DDR is not set
|
||||
|
@ -4381,6 +4439,7 @@ CONFIG_BACKLIGHT_PROGEAR=m
|
|||
# CONFIG_BACKLIGHT_ADP8860 is not set
|
||||
# CONFIG_BACKLIGHT_ADP8870 is not set
|
||||
# CONFIG_BACKLIGHT_LM3630 is not set
|
||||
# CONFIG_BACKLIGHT_LM3630A is not set
|
||||
# CONFIG_BACKLIGHT_LM3639 is not set
|
||||
CONFIG_FB_NVIDIA_BACKLIGHT=y
|
||||
CONFIG_FB_RIVA_BACKLIGHT=y
|
||||
|
@ -4458,6 +4517,7 @@ CONFIG_IBMASR=m
|
|||
CONFIG_PM=y
|
||||
CONFIG_PM_STD_PARTITION=""
|
||||
CONFIG_PM_DEBUG=y
|
||||
# CONFIG_DPM_WATCHDOG is not set # revisit this in debug
|
||||
CONFIG_PM_TRACE=y
|
||||
CONFIG_PM_TRACE_RTC=y
|
||||
# CONFIG_PM_TEST_SUSPEND is not set
|
||||
|
@ -4544,6 +4604,7 @@ CONFIG_LEDS_DELL_NETBOOKS=m
|
|||
# CONFIG_LEDS_PWM is not set
|
||||
# CONFIG_LEDS_LP8501 is not set
|
||||
# CONFIG_LEDS_PCA963X is not set
|
||||
# CONFIG_LEDS_PCA9685 is not set
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=m
|
||||
CONFIG_LEDS_TRIGGER_ONESHOT=m
|
||||
|
@ -4654,6 +4715,7 @@ CONFIG_APM_POWER=m
|
|||
# CONFIG_CHARGER_PCF50633 is not set
|
||||
# CONFIG_CHARGER_BQ2415X is not set
|
||||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24735 is not set
|
||||
CONFIG_POWER_RESET=y
|
||||
|
||||
# CONFIG_PDA_POWER is not set
|
||||
|
@ -4904,6 +4966,8 @@ CONFIG_IEEE802154_FAKELB=m
|
|||
CONFIG_MAC802154=m
|
||||
CONFIG_NET_MPLS_GSO=m
|
||||
|
||||
# CONFIG_HSR is not set
|
||||
|
||||
# CONFIG_EXTCON is not set
|
||||
# CONFIG_EXTCON_ADC_JACK is not set
|
||||
# CONFIG_MEMORY is not set
|
||||
|
@ -4960,6 +5024,8 @@ CONFIG_GPIO_VIPERBOARD=m
|
|||
# CONFIG_GPIO_BT8XX is not set
|
||||
# CONFIG_GPIO_SX150X is not set
|
||||
# CONFIG_GPIO_GRGPIO is not set
|
||||
# CONFIG_GPIO_PL061 is not set
|
||||
# CONFIG_GPIO_BCM_KONA is not set
|
||||
|
||||
# FIXME: Why?
|
||||
CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
|
||||
|
@ -5023,8 +5089,12 @@ CONFIG_FMC_TRIVIAL=m
|
|||
CONFIG_FMC_WRITE_EEPROM=m
|
||||
CONFIG_FMC_CHARDEV=m
|
||||
|
||||
# CONFIG_POWERCAP is not set
|
||||
|
||||
# CONFIG_HSI is not set
|
||||
|
||||
# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set
|
||||
|
||||
# CONFIG_PM_DEVFREQ is not set
|
||||
# CONFIG_MODULE_SIG is not set
|
||||
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
|
||||
|
|
|
@ -104,6 +104,7 @@ CONFIG_KDB_KEYBOARD=y
|
|||
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
|
||||
|
||||
# CONFIG_DEBUG_OBJECTS_PERCPU_COUNTER is not set
|
||||
# CONFIG_PERCPU_TEST is not set
|
||||
# CONFIG_TEST_LIST_SORT is not set
|
||||
# CONFIG_TEST_STRING_HELPERS is not set
|
||||
|
||||
|
|
|
@ -371,6 +371,7 @@ CONFIG_RCU_FANOUT_LEAF=16
|
|||
# CONFIG_OF_VIDEOMODE is not set
|
||||
|
||||
# CONFIG_POWERNV_MSI is not set
|
||||
# CONFIG_CPU_LITTLE_ENDIAN is not set
|
||||
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_FB_SSD1307=m
|
||||
|
|
|
@ -14,6 +14,8 @@ CONFIG_PPC_PMAC=y
|
|||
CONFIG_PPC_POWERNV=y
|
||||
CONFIG_POWERNV_MSI=y
|
||||
CONFIG_PPC_POWERNV_RTAS=y
|
||||
CONFIG_HW_RANDOM_POWERNV=m
|
||||
CONFIG_SCOM_DEBUGFS=y
|
||||
# CONFIG_PPC_PASEMI is not set
|
||||
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
|
||||
# CONFIG_PPC_PS3 is not set
|
||||
|
@ -139,7 +141,8 @@ CONFIG_RCU_FANOUT=64
|
|||
CONFIG_CMA=y
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
CONFIG_KVM_BOOK3S_64=m
|
||||
CONFIG_KVM_BOOK3S_64_HV=y
|
||||
CONFIG_KVM_BOOK3S_64_HV=m
|
||||
CONFIG_KVM_BOOK3S_64_PR=m
|
||||
# CONFIG_KVM_EXIT_TIMING is not set
|
||||
CONFIG_KVM_XICS=y
|
||||
|
||||
|
|
|
@ -10,6 +10,8 @@ CONFIG_PPC_PSERIES=y
|
|||
CONFIG_PPC_POWERNV=y
|
||||
CONFIG_POWERNV_MSI=y
|
||||
CONFIG_PPC_POWERNV_RTAS=y
|
||||
CONFIG_HW_RANDOM_POWERNV=m
|
||||
CONFIG_SCOM_DEBUGFS=y
|
||||
# CONFIG_PPC_PASEMI is not set
|
||||
# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
|
||||
# CONFIG_PPC_PS3 is not set
|
||||
|
@ -130,7 +132,8 @@ CONFIG_RCU_FANOUT=64
|
|||
CONFIG_CMA=y
|
||||
# CONFIG_CMA_DEBUG is not set
|
||||
CONFIG_KVM_BOOK3S_64=m
|
||||
CONFIG_KVM_BOOK3S_64_HV=y
|
||||
CONFIG_KVM_BOOK3S_64_HV=m
|
||||
CONFIG_KVM_BOOK3S_64_PR=m
|
||||
# CONFIG_KVM_EXIT_TIMING is not set
|
||||
CONFIG_KVM_XICS=y
|
||||
|
||||
|
|
|
@ -73,8 +73,6 @@ CONFIG_APM_CPU_IDLE=y
|
|||
# CONFIG_APM_DISPLAY_BLANK is not set
|
||||
# CONFIG_APM_ALLOW_INTS is not set
|
||||
|
||||
CONFIG_ACPI_BLACKLIST_YEAR=1999
|
||||
|
||||
|
||||
# CONFIG_X86_POWERNOW_K6 is not set
|
||||
CONFIG_X86_POWERNOW_K7=y
|
||||
|
|
|
@ -40,6 +40,7 @@ CONFIG_EFI_VARS_PSTORE=y
|
|||
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
|
||||
CONFIG_EFI_PCDP=y
|
||||
CONFIG_FB_EFI=y
|
||||
CONFIG_EARLY_PRINTK_EFI=y
|
||||
# needs FB_SIMPLE to work correctly
|
||||
# CONFIG_X86_SYSFB is not set
|
||||
|
||||
|
@ -95,6 +96,7 @@ CONFIG_ACPI_APEI_MEMORY_FAILURE=y
|
|||
CONFIG_ACPI_IPMI=m
|
||||
CONFIG_ACPI_CUSTOM_METHOD=m
|
||||
CONFIG_ACPI_BGRT=y
|
||||
# CONFIG_ACPI_EXTLOG is not set
|
||||
|
||||
CONFIG_X86_INTEL_PSTATE=y
|
||||
CONFIG_X86_ACPI_CPUFREQ=m
|
||||
|
@ -196,6 +198,7 @@ CONFIG_AMILO_RFKILL=m
|
|||
CONFIG_ASUS_LAPTOP=m
|
||||
CONFIG_COMPAL_LAPTOP=m
|
||||
CONFIG_DELL_LAPTOP=m
|
||||
CONFIG_CHROME_PLATFORMS=y
|
||||
CONFIG_CHROMEOS_LAPTOP=m
|
||||
CONFIG_EEEPC_LAPTOP=m
|
||||
CONFIG_FUJITSU_TABLET=m
|
||||
|
@ -382,6 +385,7 @@ CONFIG_F71808E_WDT=m
|
|||
CONFIG_HPWDT_NMI_DECODING=y
|
||||
# CONFIG_MFD_TPS6586X is not set
|
||||
# CONFIG_INTEL_MID_DMAC is not set
|
||||
# CONFIG_GPIO_INTEL_MID is not set
|
||||
CONFIG_PCH_DMA=m
|
||||
CONFIG_INTEL_IPS=m
|
||||
# CONFIG_IBM_RTL is not set
|
||||
|
@ -415,6 +419,7 @@ CONFIG_HYPERV_NET=m
|
|||
CONFIG_HYPERV_STORAGE=m
|
||||
CONFIG_HYPERV_BALLOON=m
|
||||
CONFIG_FB_HYPERV=m
|
||||
CONFIG_HYPERV_KEYBOARD=m
|
||||
|
||||
# Depends on HOTPLUG_PCI_PCIE
|
||||
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
|
||||
|
|
|
@ -6,7 +6,8 @@ CONFIG_64BIT=y
|
|||
CONFIG_GENERIC_CPU=y
|
||||
|
||||
# CONFIG_X86_VSMP is not set
|
||||
# CONFIG_X86_UV is not set
|
||||
CONFIG_X86_UV=y
|
||||
CONFIG_UV_MMTIMER=m
|
||||
CONFIG_NUMA=y
|
||||
CONFIG_K8_NUMA=y
|
||||
CONFIG_AMD_NUMA=y
|
||||
|
@ -21,6 +22,9 @@ CONFIG_NR_CPUS=1024
|
|||
CONFIG_PHYSICAL_START=0x1000000
|
||||
CONFIG_PHYSICAL_ALIGN=0x1000000
|
||||
|
||||
# https://lists.fedoraproject.org/pipermail/kernel/2013-December/004753.html
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
|
||||
|
||||
CONFIG_IA32_EMULATION=y
|
||||
# CONFIG_IA32_AOUT is not set
|
||||
|
||||
|
@ -30,6 +34,7 @@ CONFIG_AMD_IOMMU_V2=m
|
|||
# CONFIG_IOMMU_DEBUG is not set
|
||||
CONFIG_SWIOTLB=y
|
||||
# CONFIG_CALGARY_IOMMU is not set
|
||||
# CONFIG_GART_IOMMU is not set
|
||||
|
||||
CONFIG_TRANSPARENT_HUGEPAGE=y
|
||||
CONFIG_CGROUP_HUGETLB=y
|
||||
|
@ -37,11 +42,13 @@ CONFIG_MEM_SOFT_DIRTY=y
|
|||
|
||||
CONFIG_KEXEC_JUMP=y
|
||||
|
||||
CONFIG_ACPI_BLACKLIST_YEAR=0
|
||||
CONFIG_ACPI_HOTPLUG_MEMORY=y
|
||||
|
||||
# CONFIG_INTEL_SCU_IPC is not set
|
||||
|
||||
# CONFIG_INTEL_MIC_HOST is not set
|
||||
# CONFIG_INTEL_MIC_CARD is not set
|
||||
|
||||
# SHPC has half-arsed PCI probing, which makes it load on too many systems
|
||||
CONFIG_HOTPLUG_PCI_SHPC=m
|
||||
|
||||
|
@ -86,7 +93,8 @@ CONFIG_HAVE_MEMORY_PRESENT=y
|
|||
CONFIG_SPARSEMEM_EXTREME=y
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
# CONFIG_MOVABLE_NODE is not set
|
||||
# CONFIG_MEMORY_HOTPLUG is not set
|
||||
CONFIG_MEMORY_HOTPLUG=y
|
||||
# CONFIG_ARCH_MEMORY_PROBE is not set
|
||||
# CONFIG_MEMORY_HOTREMOVE is not set
|
||||
|
||||
# CONFIG_BLK_DEV_CMD640 is not set
|
||||
|
@ -162,4 +170,3 @@ CONFIG_SFC_MTD=y
|
|||
# Override MTD stuff because SFC_MTD needs it
|
||||
CONFIG_MTD_CHAR=m
|
||||
CONFIG_MTD_BLOCK=m
|
||||
|
||||
|
|
1017
dell-laptop.patch
1017
dell-laptop.patch
File diff suppressed because it is too large
Load Diff
|
@ -1,17 +1,20 @@
|
|||
Bugzilla: 993744
|
||||
Upstream-status: ??
|
||||
|
||||
diff --git a/drivers/md/dm-cache-policy-mq.c b/drivers/md/dm-cache-policy-mq.c
|
||||
index cab6dd2..ec79c8f 100644
|
||||
index 416b7b7..9105771 100644
|
||||
--- a/drivers/md/dm-cache-policy-mq.c
|
||||
+++ b/drivers/md/dm-cache-policy-mq.c
|
||||
@@ -868,7 +868,7 @@ static void mq_destroy(struct dm_cache_policy *p)
|
||||
@@ -866,7 +866,7 @@ static void mq_destroy(struct dm_cache_policy *p)
|
||||
{
|
||||
struct mq_policy *mq = to_mq_policy(p);
|
||||
|
||||
free_bitset(mq->allocation_bitset);
|
||||
- kfree(mq->table);
|
||||
+ vfree(mq->table);
|
||||
free_entries(mq);
|
||||
epool_exit(&mq->cache_pool);
|
||||
epool_exit(&mq->pre_cache_pool);
|
||||
kfree(mq);
|
||||
}
|
||||
@@ -1189,7 +1189,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size,
|
||||
@@ -1221,7 +1221,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size,
|
||||
|
||||
mq->nr_buckets = next_power(from_cblock(cache_size) / 2, 16);
|
||||
mq->hash_bits = ffs(mq->nr_buckets) - 1;
|
||||
|
@ -20,12 +23,3 @@ index cab6dd2..ec79c8f 100644
|
|||
if (!mq->table)
|
||||
goto bad_alloc_table;
|
||||
|
||||
@@ -1200,7 +1200,7 @@ static struct dm_cache_policy *mq_create(dm_cblock_t cache_size,
|
||||
return &mq->policy;
|
||||
|
||||
bad_alloc_bitset:
|
||||
- kfree(mq->table);
|
||||
+ vfree(mq->table);
|
||||
bad_alloc_table:
|
||||
free_entries(mq);
|
||||
bad_cache_alloc:
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
Bugzilla: 1027037 1028785
|
||||
Upstream-status: http://lists.freedesktop.org/archives/intel-gfx/2013-November/035948.html
|
||||
|
||||
This is _by far_ the most common backtrace for i915 on retrace.fp.o, and
|
||||
it's mostly useless noise. There's not enough context when it's generated
|
||||
to know if something actually went wrong. Downgrade the message to
|
||||
KMS debugging so we can still get it if we want it.
|
||||
|
||||
diff -up linux-3.13.0-0.rc0.git2.1.fc21.x86_64/drivers/gpu/drm/i915/intel_display.c.jx linux-3.13.0-0.rc0.git2.1.fc21.x86_64/drivers/gpu/drm/i915/intel_display.c
|
||||
--- linux-3.13.0-0.rc0.git2.1.fc21.x86_64/drivers/gpu/drm/i915/intel_display.c.jx 2013-11-03 18:41:51.000000000 -0500
|
||||
+++ linux-3.13.0-0.rc0.git2.1.fc21.x86_64/drivers/gpu/drm/i915/intel_display.c 2013-11-13 10:12:05.781301624 -0500
|
||||
@@ -8803,7 +8803,7 @@ check_crtc_state(struct drm_device *dev)
|
||||
|
||||
if (active &&
|
||||
!intel_pipe_config_compare(dev, &crtc->config, &pipe_config)) {
|
||||
- WARN(1, "pipe state doesn't match!\n");
|
||||
+ DRM_DEBUG_KMS("pipe state doesn't match!\n");
|
||||
intel_dump_pipe_config(crtc, &pipe_config,
|
||||
"[hw state]");
|
||||
intel_dump_pipe_config(crtc, &crtc->config,
|
|
@ -1,213 +0,0 @@
|
|||
Bugzilla: N/A
|
||||
Upstream-status: Queued for 3.13
|
||||
|
||||
From db8edc33193879f39c1b52521e20f4d6eb4e9858 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Fri, 08 Nov 2013 06:36:45 +0000
|
||||
Subject: drm/qxl: backport fixes for Fedora
|
||||
|
||||
This pulls these changes from drm-next back into Fedora.
|
||||
|
||||
drm/qxl: prefer the monitor config resolution (b080742393e2c1)
|
||||
drm/qxl: remove unnecessary check (a40a60d912a101e8dfb08ee1)
|
||||
drm/qxl: fix disabling extra monitors from client (5cab51cb3381157)
|
||||
qxl: avoid an oops in the deferred io code. (cc87509d87696d7cd39)
|
||||
drm/qxl: support 64bit surface bar (35541782dcc1e502)
|
||||
qxl: add a connector property to denote hotplug should rescan modes. (4695b03970df37)
|
||||
|
||||
Signed-off-by: Dave Airlie <airlied@redhat.com>
|
||||
---
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
index 835caba..1d975eb 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_display.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_display.c
|
||||
@@ -110,7 +110,9 @@ void qxl_display_read_client_monitors_config(struct qxl_device *qdev)
|
||||
drm_helper_hpd_irq_event(qdev->ddev);
|
||||
}
|
||||
|
||||
-static int qxl_add_monitors_config_modes(struct drm_connector *connector)
|
||||
+static int qxl_add_monitors_config_modes(struct drm_connector *connector,
|
||||
+ unsigned *pwidth,
|
||||
+ unsigned *pheight)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct qxl_device *qdev = dev->dev_private;
|
||||
@@ -126,11 +128,15 @@ static int qxl_add_monitors_config_modes(struct drm_connector *connector)
|
||||
mode = drm_cvt_mode(dev, head->width, head->height, 60, false, false,
|
||||
false);
|
||||
mode->type |= DRM_MODE_TYPE_PREFERRED;
|
||||
+ *pwidth = head->width;
|
||||
+ *pheight = head->height;
|
||||
drm_mode_probed_add(connector, mode);
|
||||
return 1;
|
||||
}
|
||||
|
||||
-static int qxl_add_common_modes(struct drm_connector *connector)
|
||||
+static int qxl_add_common_modes(struct drm_connector *connector,
|
||||
+ unsigned pwidth,
|
||||
+ unsigned pheight)
|
||||
{
|
||||
struct drm_device *dev = connector->dev;
|
||||
struct drm_display_mode *mode = NULL;
|
||||
@@ -159,12 +165,9 @@ static int qxl_add_common_modes(struct drm_connector *connector)
|
||||
};
|
||||
|
||||
for (i = 0; i < ARRAY_SIZE(common_modes); i++) {
|
||||
- if (common_modes[i].w < 320 || common_modes[i].h < 200)
|
||||
- continue;
|
||||
-
|
||||
mode = drm_cvt_mode(dev, common_modes[i].w, common_modes[i].h,
|
||||
60, false, false, false);
|
||||
- if (common_modes[i].w == 1024 && common_modes[i].h == 768)
|
||||
+ if (common_modes[i].w == pwidth && common_modes[i].h == pheight)
|
||||
mode->type |= DRM_MODE_TYPE_PREFERRED;
|
||||
drm_mode_probed_add(connector, mode);
|
||||
}
|
||||
@@ -720,16 +723,18 @@ static int qxl_conn_get_modes(struct drm_connector *connector)
|
||||
{
|
||||
int ret = 0;
|
||||
struct qxl_device *qdev = connector->dev->dev_private;
|
||||
+ unsigned pwidth = 1024;
|
||||
+ unsigned pheight = 768;
|
||||
|
||||
DRM_DEBUG_KMS("monitors_config=%p\n", qdev->monitors_config);
|
||||
/* TODO: what should we do here? only show the configured modes for the
|
||||
* device, or allow the full list, or both? */
|
||||
if (qdev->monitors_config && qdev->monitors_config->count) {
|
||||
- ret = qxl_add_monitors_config_modes(connector);
|
||||
+ ret = qxl_add_monitors_config_modes(connector, &pwidth, &pheight);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
}
|
||||
- ret += qxl_add_common_modes(connector);
|
||||
+ ret += qxl_add_common_modes(connector, pwidth, pheight);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -793,7 +798,10 @@ static enum drm_connector_status qxl_conn_detect(
|
||||
qdev->client_monitors_config->count > output->index &&
|
||||
qxl_head_enabled(&qdev->client_monitors_config->heads[output->index]));
|
||||
|
||||
- DRM_DEBUG("\n");
|
||||
+ DRM_DEBUG("#%d connected: %d\n", output->index, connected);
|
||||
+ if (!connected)
|
||||
+ qxl_monitors_config_set(qdev, output->index, 0, 0, 0, 0, 0);
|
||||
+
|
||||
return connected ? connector_status_connected
|
||||
: connector_status_disconnected;
|
||||
}
|
||||
@@ -835,8 +843,21 @@ static const struct drm_encoder_funcs qxl_enc_funcs = {
|
||||
.destroy = qxl_enc_destroy,
|
||||
};
|
||||
|
||||
+static int qxl_mode_create_hotplug_mode_update_property(struct qxl_device *qdev)
|
||||
+{
|
||||
+ if (qdev->hotplug_mode_update_property)
|
||||
+ return 0;
|
||||
+
|
||||
+ qdev->hotplug_mode_update_property =
|
||||
+ drm_property_create_range(qdev->ddev, DRM_MODE_PROP_IMMUTABLE,
|
||||
+ "hotplug_mode_update", 0, 1);
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static int qdev_output_init(struct drm_device *dev, int num_output)
|
||||
{
|
||||
+ struct qxl_device *qdev = dev->dev_private;
|
||||
struct qxl_output *qxl_output;
|
||||
struct drm_connector *connector;
|
||||
struct drm_encoder *encoder;
|
||||
@@ -863,6 +884,8 @@ static int qdev_output_init(struct drm_device *dev, int num_output)
|
||||
drm_encoder_helper_add(encoder, &qxl_enc_helper_funcs);
|
||||
drm_connector_helper_add(connector, &qxl_connector_helper_funcs);
|
||||
|
||||
+ drm_object_attach_property(&connector->base,
|
||||
+ qdev->hotplug_mode_update_property, 0);
|
||||
drm_sysfs_connector_add(connector);
|
||||
return 0;
|
||||
}
|
||||
@@ -975,6 +998,9 @@ int qxl_modeset_init(struct qxl_device *qdev)
|
||||
qdev->ddev->mode_config.max_height = 8192;
|
||||
|
||||
qdev->ddev->mode_config.fb_base = qdev->vram_base;
|
||||
+
|
||||
+ qxl_mode_create_hotplug_mode_update_property(qdev);
|
||||
+
|
||||
for (i = 0 ; i < qxl_num_crtc; ++i) {
|
||||
qdev_crtc_init(qdev->ddev, i);
|
||||
qdev_output_init(qdev->ddev, i);
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
index 7e96f4f..18c599d 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_drv.h
|
||||
@@ -323,6 +323,8 @@ struct qxl_device {
|
||||
struct work_struct gc_work;
|
||||
|
||||
struct work_struct fb_work;
|
||||
+
|
||||
+ struct drm_property *hotplug_mode_update_property;
|
||||
};
|
||||
|
||||
/* forward declaration for QXL_INFO_IO */
|
||||
diff --git a/drivers/gpu/drm/qxl/qxl_kms.c b/drivers/gpu/drm/qxl/qxl_kms.c
|
||||
index 9e8da9e..e0ddd5b 100644
|
||||
--- a/drivers/gpu/drm/qxl/qxl_kms.c
|
||||
+++ b/drivers/gpu/drm/qxl/qxl_kms.c
|
||||
@@ -120,7 +120,7 @@ int qxl_device_init(struct qxl_device *qdev,
|
||||
struct pci_dev *pdev,
|
||||
unsigned long flags)
|
||||
{
|
||||
- int r;
|
||||
+ int r, sb;
|
||||
|
||||
qdev->dev = &pdev->dev;
|
||||
qdev->ddev = ddev;
|
||||
@@ -136,21 +136,39 @@ int qxl_device_init(struct qxl_device *qdev,
|
||||
qdev->rom_base = pci_resource_start(pdev, 2);
|
||||
qdev->rom_size = pci_resource_len(pdev, 2);
|
||||
qdev->vram_base = pci_resource_start(pdev, 0);
|
||||
- qdev->surfaceram_base = pci_resource_start(pdev, 1);
|
||||
- qdev->surfaceram_size = pci_resource_len(pdev, 1);
|
||||
qdev->io_base = pci_resource_start(pdev, 3);
|
||||
|
||||
qdev->vram_mapping = io_mapping_create_wc(qdev->vram_base, pci_resource_len(pdev, 0));
|
||||
- qdev->surface_mapping = io_mapping_create_wc(qdev->surfaceram_base, qdev->surfaceram_size);
|
||||
- DRM_DEBUG_KMS("qxl: vram %llx-%llx(%dM %dk), surface %llx-%llx(%dM %dk)\n",
|
||||
+
|
||||
+ if (pci_resource_len(pdev, 4) > 0) {
|
||||
+ /* 64bit surface bar present */
|
||||
+ sb = 4;
|
||||
+ qdev->surfaceram_base = pci_resource_start(pdev, sb);
|
||||
+ qdev->surfaceram_size = pci_resource_len(pdev, sb);
|
||||
+ qdev->surface_mapping =
|
||||
+ io_mapping_create_wc(qdev->surfaceram_base,
|
||||
+ qdev->surfaceram_size);
|
||||
+ }
|
||||
+ if (qdev->surface_mapping == NULL) {
|
||||
+ /* 64bit surface bar not present (or mapping failed) */
|
||||
+ sb = 1;
|
||||
+ qdev->surfaceram_base = pci_resource_start(pdev, sb);
|
||||
+ qdev->surfaceram_size = pci_resource_len(pdev, sb);
|
||||
+ qdev->surface_mapping =
|
||||
+ io_mapping_create_wc(qdev->surfaceram_base,
|
||||
+ qdev->surfaceram_size);
|
||||
+ }
|
||||
+
|
||||
+ DRM_DEBUG_KMS("qxl: vram %llx-%llx(%dM %dk), surface %llx-%llx(%dM %dk, %s)\n",
|
||||
(unsigned long long)qdev->vram_base,
|
||||
(unsigned long long)pci_resource_end(pdev, 0),
|
||||
(int)pci_resource_len(pdev, 0) / 1024 / 1024,
|
||||
(int)pci_resource_len(pdev, 0) / 1024,
|
||||
(unsigned long long)qdev->surfaceram_base,
|
||||
- (unsigned long long)pci_resource_end(pdev, 1),
|
||||
+ (unsigned long long)pci_resource_end(pdev, sb),
|
||||
(int)qdev->surfaceram_size / 1024 / 1024,
|
||||
- (int)qdev->surfaceram_size / 1024);
|
||||
+ (int)qdev->surfaceram_size / 1024,
|
||||
+ (sb == 4) ? "64bit" : "32bit");
|
||||
|
||||
qdev->rom = ioremap(qdev->rom_base, qdev->rom_size);
|
||||
if (!qdev->rom) {
|
||||
--
|
||||
cgit v0.9.0.2-2-gbebe
|
|
@ -1,45 +0,0 @@
|
|||
Bugzilla: 1056711
|
||||
Upstream-status: Submitted for 3.15
|
||||
|
||||
This fixes the issue described here:
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1056711#c5
|
||||
|
||||
net-next commit 971a351ccbbd2b6eef136a2221da0b80aca50906
|
||||
Author: Jiri Pirko <jiri@resnulli.us>
|
||||
Date: Tue Dec 10 13:56:29 2013 +0100
|
||||
|
||||
ipv6 addrconf: revert /proc/net/if_inet6 ifa_flag format
|
||||
|
||||
Turned out that applications like ifconfig do not handle the change.
|
||||
So revert ifa_flag format back to 2-letter hex value.
|
||||
|
||||
Introduced by:
|
||||
commit 479840ffdbe4242e8a25349218c8e0859223aa35
|
||||
"ipv6 addrconf: extend ifa_flags to u32"
|
||||
|
||||
Signed-off-by: Jiri Pirko <jpirko@redhat.com>
|
||||
|
||||
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
|
||||
index be4dbbd..3c3425e 100644
|
||||
--- a/net/ipv6/addrconf.c
|
||||
+++ b/net/ipv6/addrconf.c
|
||||
@@ -3367,12 +3367,12 @@ static void if6_seq_stop(struct seq_file *seq, void *v)
|
||||
static int if6_seq_show(struct seq_file *seq, void *v)
|
||||
{
|
||||
struct inet6_ifaddr *ifp = (struct inet6_ifaddr *)v;
|
||||
- seq_printf(seq, "%pi6 %02x %02x %02x %03x %8s\n",
|
||||
+ seq_printf(seq, "%pi6 %02x %02x %02x %02x %8s\n",
|
||||
&ifp->addr,
|
||||
ifp->idev->dev->ifindex,
|
||||
ifp->prefix_len,
|
||||
ifp->scope,
|
||||
- ifp->flags,
|
||||
+ (u8) ifp->flags,
|
||||
ifp->idev->dev->name);
|
||||
return 0;
|
||||
}
|
||||
|
||||
_______________________________________________
|
||||
kernel mailing list
|
||||
kernel@lists.fedoraproject.org
|
||||
https://admin.fedoraproject.org/mailman/listinfo/kernel
|
File diff suppressed because it is too large
Load Diff
82
kernel.spec
82
kernel.spec
|
@ -68,13 +68,13 @@ Summary: The Linux kernel
|
|||
# base_sublevel is the kernel version we're starting with and patching
|
||||
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
|
||||
# which yields a base_sublevel of 0.
|
||||
%define base_sublevel 12
|
||||
%define base_sublevel 13
|
||||
|
||||
## If this is a released kernel ##
|
||||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 10
|
||||
%define stable_update 2
|
||||
# Is it a -stable RC?
|
||||
%define stable_rc 0
|
||||
# Set rpm version accordingly
|
||||
|
@ -633,18 +633,15 @@ Patch470: die-floppy-die.patch
|
|||
Patch510: silence-noise.patch
|
||||
Patch530: silence-fbcon-logo.patch
|
||||
|
||||
Patch600: x86-allow-1024-cpus.patch
|
||||
Patch600: 0001-lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
|
||||
|
||||
#rhbz 917708
|
||||
Patch700: Revert-userns-Allow-unprivileged-users-to-create-use.patch
|
||||
|
||||
Patch800: crash-driver.patch
|
||||
|
||||
# crypto/
|
||||
|
||||
# keys
|
||||
Patch900: keys-expand-keyring.patch
|
||||
Patch901: keys-krb-support.patch
|
||||
Patch902: keys-x509-improv.patch
|
||||
Patch903: keys-fixes.patch
|
||||
|
||||
# secure boot
|
||||
Patch1000: secure-modules.patch
|
||||
Patch1001: modsign-uefi.patch
|
||||
|
@ -657,10 +654,9 @@ Patch1003: sysrq-secure-boot.patch
|
|||
|
||||
# nouveau + drm fixes
|
||||
# intel drm is all merged upstream
|
||||
Patch1826: drm-i915-hush-check-crtc-state.patch
|
||||
|
||||
# Quiet boot fixes
|
||||
# silence the ACPI blacklist code
|
||||
Patch2802: silence-acpi-blacklist.patch
|
||||
|
||||
# fs fixes
|
||||
|
||||
|
@ -699,9 +695,7 @@ Patch21025: arm-imx6-utilite.patch
|
|||
# https://github.com/beagleboard/kernel
|
||||
# Pulled primarily from the above git repo. First patch is all in arm-soc
|
||||
# scheduled for 3.13. The others should be landing via other trees
|
||||
Patch21030: arm-am33xx-arm-soc-upstream.patch
|
||||
Patch21031: arm-am33xx-bblack.patch
|
||||
Patch21032: arm-am33xx-cpsw.patch
|
||||
|
||||
#rhbz 754518
|
||||
Patch21235: scsi-sd_revalidate_disk-prevent-NULL-ptr-deref.patch
|
||||
|
@ -716,14 +710,9 @@ Patch22000: weird-root-dentry-name-debug.patch
|
|||
|
||||
Patch25047: drm-radeon-Disable-writeback-by-default-on-ppc.patch
|
||||
|
||||
#rhbz 896695
|
||||
Patch25127: 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch
|
||||
|
||||
#rhbz 993744
|
||||
Patch25128: dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch
|
||||
|
||||
Patch25140: drm-qxl-backport-fixes-for-Fedora.patch
|
||||
|
||||
#rhbz 1011362
|
||||
Patch25148: alx-Reset-phy-speed-after-resume.patch
|
||||
|
||||
|
@ -736,9 +725,6 @@ Patch25166: sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch
|
|||
Patch25167: rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch
|
||||
Patch25168: rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch
|
||||
|
||||
#rhbz 958826
|
||||
Patch25164: dell-laptop.patch
|
||||
|
||||
#rhbz 1030802
|
||||
Patch25171: elantech-Properly-differentiate-between-clickpads-an.patch
|
||||
|
||||
|
@ -748,24 +734,22 @@ Patch25179: KVM-MMU-handle-invalid-root_hpa-at-__direct_map.patch
|
|||
#rhbz 1047892
|
||||
Patch25180: KVM-VMX-fix-use-after-free-of-vmx-loaded_vmcs.patch
|
||||
|
||||
#rhbz 1044471
|
||||
Patch25181: tg3-Add-support-for-new-577xx-device-ids.patch
|
||||
#rhbz 1003167 1046238
|
||||
Patch25181: 0001-Input-wacom-make-sure-touch_max-is-set-for-touch-dev.patch
|
||||
Patch25182: 0002-Input-wacom-add-support-for-three-new-Intuos-devices.patch
|
||||
Patch25183: 0003-Input-wacom-add-reporting-of-SW_MUTE_DEVICE-events.patch
|
||||
|
||||
#rhbz 953211
|
||||
Patch25182: Input-ALPS-add-support-for-Dolphin-devices.patch
|
||||
|
||||
#rhbz 1056711
|
||||
Patch25183: ipv6-introduce-IFA_F_NOPREFIXROUTE-and-IFA_F_MANAGETEMPADDR-flags.patch
|
||||
Patch25155: ipv6-addrconf-revert-if_inet6ifa_flag-format.patch
|
||||
Patch25184: Input-ALPS-add-support-for-Dolphin-devices.patch
|
||||
|
||||
#rhbz 1057533
|
||||
Patch25184: i915-remove-pm_qos-request-on-error.patch
|
||||
Patch25185: i915-remove-pm_qos-request-on-error.patch
|
||||
|
||||
#rhbz 990955
|
||||
Patch25185: ath9k_htc-make-sta_rc_update-atomic-for-most-calls.patch
|
||||
Patch25186: ath9k_htc-make-sta_rc_update-atomic-for-most-calls.patch
|
||||
|
||||
#rhbz 950630
|
||||
Patch25186: xhci-fix-resume-issues-on-renesas-chips-in-samsung-laptops.patch
|
||||
Patch25187: xhci-fix-resume-issues-on-renesas-chips-in-samsung-laptops.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
|
@ -1309,7 +1293,7 @@ ApplyOptionalPatch upstream-reverts.patch -R
|
|||
|
||||
# Architecture patches
|
||||
# x86(-64)
|
||||
ApplyPatch x86-allow-1024-cpus.patch
|
||||
ApplyPatch 0001-lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
|
||||
|
||||
# ARM64
|
||||
|
||||
|
@ -1322,9 +1306,7 @@ ApplyPatch arm-omap-load-tfp410.patch
|
|||
ApplyPatch arm-tegra-usb-no-reset-linux33.patch
|
||||
ApplyPatch arm-imx6-utilite.patch
|
||||
|
||||
ApplyPatch arm-am33xx-arm-soc-upstream.patch
|
||||
ApplyPatch arm-am33xx-bblack.patch
|
||||
ApplyPatch arm-am33xx-cpsw.patch
|
||||
|
||||
#
|
||||
# bugfixes to drivers and filesystems
|
||||
|
@ -1381,6 +1363,8 @@ ApplyPatch silence-fbcon-logo.patch
|
|||
|
||||
# Changes to upstream defaults.
|
||||
|
||||
#rhbz 917708
|
||||
ApplyPatch Revert-userns-Allow-unprivileged-users-to-create-use.patch
|
||||
|
||||
# /dev/crash driver.
|
||||
ApplyPatch crash-driver.patch
|
||||
|
@ -1388,10 +1372,6 @@ ApplyPatch crash-driver.patch
|
|||
# crypto/
|
||||
|
||||
# keys
|
||||
ApplyPatch keys-expand-keyring.patch
|
||||
ApplyPatch keys-krb-support.patch
|
||||
ApplyPatch keys-x509-improv.patch
|
||||
ApplyPatch keys-fixes.patch
|
||||
|
||||
# secure boot
|
||||
ApplyPatch secure-modules.patch
|
||||
|
@ -1406,12 +1386,10 @@ ApplyPatch sysrq-secure-boot.patch
|
|||
# Nouveau DRM
|
||||
|
||||
# Intel DRM
|
||||
ApplyPatch drm-i915-hush-check-crtc-state.patch
|
||||
|
||||
# Radeon DRM
|
||||
|
||||
# silence the ACPI blacklist code
|
||||
ApplyPatch silence-acpi-blacklist.patch
|
||||
|
||||
# Patches headed upstream
|
||||
ApplyPatch fs-proc-devtree-remove_proc_entry.patch
|
||||
|
||||
|
@ -1438,14 +1416,9 @@ ApplyPatch ath9k_rx_dma_stop_check.patch
|
|||
|
||||
ApplyPatch drm-radeon-Disable-writeback-by-default-on-ppc.patch
|
||||
|
||||
#rhbz 896695
|
||||
ApplyPatch 0002-iwlwifi-don-t-WARN-on-bad-firmware-state.patch
|
||||
|
||||
#rhbz 993744
|
||||
ApplyPatch dm-cache-policy-mq_fix-large-scale-table-allocation-bug.patch
|
||||
|
||||
ApplyPatch drm-qxl-backport-fixes-for-Fedora.patch
|
||||
|
||||
#rhbz 1011362
|
||||
ApplyPatch alx-Reset-phy-speed-after-resume.patch
|
||||
|
||||
|
@ -1458,9 +1431,6 @@ ApplyPatch rpc_pipe-remove-the-clntXX-dir-if-creating-the-pipe-fails.patch
|
|||
ApplyPatch sunrpc-add-an-info-file-for-the-dummy-gssd-pipe.patch
|
||||
ApplyPatch rpc_pipe-fix-cleanup-of-dummy-gssd-directory-when-notification-fails.patch
|
||||
|
||||
#rhbz 958826
|
||||
ApplyPatch dell-laptop.patch
|
||||
|
||||
#rhbz 1030802
|
||||
ApplyPatch elantech-Properly-differentiate-between-clickpads-an.patch
|
||||
|
||||
|
@ -1470,16 +1440,14 @@ ApplyPatch KVM-MMU-handle-invalid-root_hpa-at-__direct_map.patch
|
|||
#rhbz 1047892
|
||||
ApplyPatch KVM-VMX-fix-use-after-free-of-vmx-loaded_vmcs.patch
|
||||
|
||||
#rhbz 1044471
|
||||
ApplyPatch tg3-Add-support-for-new-577xx-device-ids.patch
|
||||
#rhbz 1003167 1046238
|
||||
ApplyPatch 0001-Input-wacom-make-sure-touch_max-is-set-for-touch-dev.patch
|
||||
ApplyPatch 0002-Input-wacom-add-support-for-three-new-Intuos-devices.patch
|
||||
ApplyPatch 0003-Input-wacom-add-reporting-of-SW_MUTE_DEVICE-events.patch
|
||||
|
||||
#rhbz 953211
|
||||
ApplyPatch Input-ALPS-add-support-for-Dolphin-devices.patch
|
||||
|
||||
#rhbz 1056711
|
||||
ApplyPatch ipv6-introduce-IFA_F_NOPREFIXROUTE-and-IFA_F_MANAGETEMPADDR-flags.patch
|
||||
ApplyPatch ipv6-addrconf-revert-if_inet6ifa_flag-format.patch
|
||||
|
||||
#rhbz 1057533
|
||||
ApplyPatch i915-remove-pm_qos-request-on-error.patch
|
||||
|
||||
|
@ -2291,6 +2259,10 @@ fi
|
|||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Mon Feb 10 2014 Justin M. Forbes <jforbes@fedoraproject.org>
|
||||
- Linux v3.13.2
|
||||
- Fixes (rhbz 1062144)
|
||||
|
||||
* Thu Feb 06 2014 Justin M. Forbes <jforbes@fedoraproject.org> - 3.12.10-300
|
||||
- Linux v3.12.10
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
1196
keys-fixes.patch
1196
keys-fixes.patch
File diff suppressed because it is too large
Load Diff
|
@ -1,748 +0,0 @@
|
|||
From d7ccdaa17aab12a49f5e9e327b55167c4af26bf8 Mon Sep 17 00:00:00 2001
|
||||
From: David Howells <dhowells@redhat.com>
|
||||
Date: Fri, 30 Aug 2013 15:37:54 +0100
|
||||
Subject: [PATCH 1/2] KEYS: Implement a big key type that can save to tmpfs
|
||||
|
||||
Implement a big key type that can save its contents to tmpfs and thus
|
||||
swapspace when memory is tight. This is useful for Kerberos ticket caches.
|
||||
|
||||
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
Tested-by: Simo Sorce <simo@redhat.com>
|
||||
---
|
||||
include/keys/big_key-type.h | 25 ++++++
|
||||
include/linux/key.h | 1 +
|
||||
security/keys/Kconfig | 11 +++
|
||||
security/keys/Makefile | 1 +
|
||||
security/keys/big_key.c | 204 ++++++++++++++++++++++++++++++++++++++++++++
|
||||
5 files changed, 242 insertions(+)
|
||||
create mode 100644 include/keys/big_key-type.h
|
||||
create mode 100644 security/keys/big_key.c
|
||||
|
||||
diff --git a/include/keys/big_key-type.h b/include/keys/big_key-type.h
|
||||
new file mode 100644
|
||||
index 0000000..d69bc8a
|
||||
--- /dev/null
|
||||
+++ b/include/keys/big_key-type.h
|
||||
@@ -0,0 +1,25 @@
|
||||
+/* Big capacity key type.
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Red Hat, Inc. All Rights Reserved.
|
||||
+ * Written by David Howells (dhowells@redhat.com)
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public License
|
||||
+ * as published by the Free Software Foundation; either version
|
||||
+ * 2 of the License, or (at your option) any later version.
|
||||
+ */
|
||||
+
|
||||
+#ifndef _KEYS_BIG_KEY_TYPE_H
|
||||
+#define _KEYS_BIG_KEY_TYPE_H
|
||||
+
|
||||
+#include <linux/key-type.h>
|
||||
+
|
||||
+extern struct key_type key_type_big_key;
|
||||
+
|
||||
+extern int big_key_instantiate(struct key *key, struct key_preparsed_payload *prep);
|
||||
+extern void big_key_revoke(struct key *key);
|
||||
+extern void big_key_destroy(struct key *key);
|
||||
+extern void big_key_describe(const struct key *big_key, struct seq_file *m);
|
||||
+extern long big_key_read(const struct key *key, char __user *buffer, size_t buflen);
|
||||
+
|
||||
+#endif /* _KEYS_BIG_KEY_TYPE_H */
|
||||
diff --git a/include/linux/key.h b/include/linux/key.h
|
||||
index 2417f78..010dbb6 100644
|
||||
--- a/include/linux/key.h
|
||||
+++ b/include/linux/key.h
|
||||
@@ -201,6 +201,7 @@ struct key {
|
||||
unsigned long value;
|
||||
void __rcu *rcudata;
|
||||
void *data;
|
||||
+ void *data2[2];
|
||||
} payload;
|
||||
struct assoc_array keys;
|
||||
};
|
||||
diff --git a/security/keys/Kconfig b/security/keys/Kconfig
|
||||
index 15e0dfe..b563622 100644
|
||||
--- a/security/keys/Kconfig
|
||||
+++ b/security/keys/Kconfig
|
||||
@@ -20,6 +20,17 @@ config KEYS
|
||||
|
||||
If you are unsure as to whether this is required, answer N.
|
||||
|
||||
+config BIG_KEYS
|
||||
+ tristate "Large payload keys"
|
||||
+ depends on KEYS
|
||||
+ depends on TMPFS
|
||||
+ help
|
||||
+ This option provides support for holding large keys within the kernel
|
||||
+ (for example Kerberos ticket caches). The data may be stored out to
|
||||
+ swapspace by tmpfs.
|
||||
+
|
||||
+ If you are unsure as to whether this is required, answer N.
|
||||
+
|
||||
config TRUSTED_KEYS
|
||||
tristate "TRUSTED KEYS"
|
||||
depends on KEYS && TCG_TPM
|
||||
diff --git a/security/keys/Makefile b/security/keys/Makefile
|
||||
index 504aaa0..c487c77 100644
|
||||
--- a/security/keys/Makefile
|
||||
+++ b/security/keys/Makefile
|
||||
@@ -22,5 +22,6 @@ obj-$(CONFIG_SYSCTL) += sysctl.o
|
||||
#
|
||||
# Key types
|
||||
#
|
||||
+obj-$(CONFIG_BIG_KEYS) += big_key.o
|
||||
obj-$(CONFIG_TRUSTED_KEYS) += trusted.o
|
||||
obj-$(CONFIG_ENCRYPTED_KEYS) += encrypted-keys/
|
||||
diff --git a/security/keys/big_key.c b/security/keys/big_key.c
|
||||
new file mode 100644
|
||||
index 0000000..5f9defc
|
||||
--- /dev/null
|
||||
+++ b/security/keys/big_key.c
|
||||
@@ -0,0 +1,204 @@
|
||||
+/* Large capacity key type
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Red Hat, Inc. All Rights Reserved.
|
||||
+ * Written by David Howells (dhowells@redhat.com)
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public Licence
|
||||
+ * as published by the Free Software Foundation; either version
|
||||
+ * 2 of the Licence, or (at your option) any later version.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/module.h>
|
||||
+#include <linux/init.h>
|
||||
+#include <linux/seq_file.h>
|
||||
+#include <linux/file.h>
|
||||
+#include <linux/shmem_fs.h>
|
||||
+#include <linux/err.h>
|
||||
+#include <keys/user-type.h>
|
||||
+#include <keys/big_key-type.h>
|
||||
+
|
||||
+MODULE_LICENSE("GPL");
|
||||
+
|
||||
+/*
|
||||
+ * If the data is under this limit, there's no point creating a shm file to
|
||||
+ * hold it as the permanently resident metadata for the shmem fs will be at
|
||||
+ * least as large as the data.
|
||||
+ */
|
||||
+#define BIG_KEY_FILE_THRESHOLD (sizeof(struct inode) + sizeof(struct dentry))
|
||||
+
|
||||
+/*
|
||||
+ * big_key defined keys take an arbitrary string as the description and an
|
||||
+ * arbitrary blob of data as the payload
|
||||
+ */
|
||||
+struct key_type key_type_big_key = {
|
||||
+ .name = "big_key",
|
||||
+ .def_lookup_type = KEYRING_SEARCH_LOOKUP_DIRECT,
|
||||
+ .instantiate = big_key_instantiate,
|
||||
+ .match = user_match,
|
||||
+ .revoke = big_key_revoke,
|
||||
+ .destroy = big_key_destroy,
|
||||
+ .describe = big_key_describe,
|
||||
+ .read = big_key_read,
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * Instantiate a big key
|
||||
+ */
|
||||
+int big_key_instantiate(struct key *key, struct key_preparsed_payload *prep)
|
||||
+{
|
||||
+ struct path *path = (struct path *)&key->payload.data2;
|
||||
+ struct file *file;
|
||||
+ ssize_t written;
|
||||
+ size_t datalen = prep->datalen;
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = -EINVAL;
|
||||
+ if (datalen <= 0 || datalen > 1024 * 1024 || !prep->data)
|
||||
+ goto error;
|
||||
+
|
||||
+ /* Set an arbitrary quota */
|
||||
+ ret = key_payload_reserve(key, 16);
|
||||
+ if (ret < 0)
|
||||
+ goto error;
|
||||
+
|
||||
+ key->type_data.x[1] = datalen;
|
||||
+
|
||||
+ if (datalen > BIG_KEY_FILE_THRESHOLD) {
|
||||
+ /* Create a shmem file to store the data in. This will permit the data
|
||||
+ * to be swapped out if needed.
|
||||
+ *
|
||||
+ * TODO: Encrypt the stored data with a temporary key.
|
||||
+ */
|
||||
+ file = shmem_file_setup("", datalen, 0);
|
||||
+ if (IS_ERR(file))
|
||||
+ goto err_quota;
|
||||
+
|
||||
+ written = kernel_write(file, prep->data, prep->datalen, 0);
|
||||
+ if (written != datalen) {
|
||||
+ if (written >= 0)
|
||||
+ ret = -ENOMEM;
|
||||
+ goto err_fput;
|
||||
+ }
|
||||
+
|
||||
+ /* Pin the mount and dentry to the key so that we can open it again
|
||||
+ * later
|
||||
+ */
|
||||
+ *path = file->f_path;
|
||||
+ path_get(path);
|
||||
+ fput(file);
|
||||
+ } else {
|
||||
+ /* Just store the data in a buffer */
|
||||
+ void *data = kmalloc(datalen, GFP_KERNEL);
|
||||
+ if (!data) {
|
||||
+ ret = -ENOMEM;
|
||||
+ goto err_quota;
|
||||
+ }
|
||||
+
|
||||
+ key->payload.data = memcpy(data, prep->data, prep->datalen);
|
||||
+ }
|
||||
+ return 0;
|
||||
+
|
||||
+err_fput:
|
||||
+ fput(file);
|
||||
+err_quota:
|
||||
+ key_payload_reserve(key, 0);
|
||||
+error:
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * dispose of the links from a revoked keyring
|
||||
+ * - called with the key sem write-locked
|
||||
+ */
|
||||
+void big_key_revoke(struct key *key)
|
||||
+{
|
||||
+ struct path *path = (struct path *)&key->payload.data2;
|
||||
+
|
||||
+ /* clear the quota */
|
||||
+ key_payload_reserve(key, 0);
|
||||
+ if (key_is_instantiated(key) && key->type_data.x[1] > BIG_KEY_FILE_THRESHOLD)
|
||||
+ vfs_truncate(path, 0);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * dispose of the data dangling from the corpse of a big_key key
|
||||
+ */
|
||||
+void big_key_destroy(struct key *key)
|
||||
+{
|
||||
+ if (key->type_data.x[1] > BIG_KEY_FILE_THRESHOLD) {
|
||||
+ struct path *path = (struct path *)&key->payload.data2;
|
||||
+ path_put(path);
|
||||
+ path->mnt = NULL;
|
||||
+ path->dentry = NULL;
|
||||
+ } else {
|
||||
+ kfree(key->payload.data);
|
||||
+ key->payload.data = NULL;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * describe the big_key key
|
||||
+ */
|
||||
+void big_key_describe(const struct key *key, struct seq_file *m)
|
||||
+{
|
||||
+ unsigned long datalen = key->type_data.x[1];
|
||||
+
|
||||
+ seq_puts(m, key->description);
|
||||
+
|
||||
+ if (key_is_instantiated(key))
|
||||
+ seq_printf(m, ": %lu [%s]",
|
||||
+ datalen,
|
||||
+ datalen > BIG_KEY_FILE_THRESHOLD ? "file" : "buff");
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * read the key data
|
||||
+ * - the key's semaphore is read-locked
|
||||
+ */
|
||||
+long big_key_read(const struct key *key, char __user *buffer, size_t buflen)
|
||||
+{
|
||||
+ unsigned long datalen = key->type_data.x[1];
|
||||
+ long ret;
|
||||
+
|
||||
+ if (!buffer || buflen < datalen)
|
||||
+ return datalen;
|
||||
+
|
||||
+ if (datalen > BIG_KEY_FILE_THRESHOLD) {
|
||||
+ struct path *path = (struct path *)&key->payload.data2;
|
||||
+ struct file *file;
|
||||
+ loff_t pos;
|
||||
+
|
||||
+ file = dentry_open(path, O_RDONLY, current_cred());
|
||||
+ if (IS_ERR(file))
|
||||
+ return PTR_ERR(file);
|
||||
+
|
||||
+ pos = 0;
|
||||
+ ret = vfs_read(file, buffer, datalen, &pos);
|
||||
+ fput(file);
|
||||
+ if (ret >= 0 && ret != datalen)
|
||||
+ ret = -EIO;
|
||||
+ } else {
|
||||
+ ret = datalen;
|
||||
+ if (copy_to_user(buffer, key->payload.data, datalen) != 0)
|
||||
+ ret = -EFAULT;
|
||||
+ }
|
||||
+
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Module stuff
|
||||
+ */
|
||||
+static int __init big_key_init(void)
|
||||
+{
|
||||
+ return register_key_type(&key_type_big_key);
|
||||
+}
|
||||
+
|
||||
+static void __exit big_key_cleanup(void)
|
||||
+{
|
||||
+ unregister_key_type(&key_type_big_key);
|
||||
+}
|
||||
+
|
||||
+module_init(big_key_init);
|
||||
+module_exit(big_key_cleanup);
|
||||
--
|
||||
1.8.3.1
|
||||
|
||||
|
||||
From 862e98313b10123fa4352117b0b0c0f5a530cefb Mon Sep 17 00:00:00 2001
|
||||
From: David Howells <dhowells@redhat.com>
|
||||
Date: Fri, 30 Aug 2013 15:37:54 +0100
|
||||
Subject: [PATCH 2/2] KEYS: Add per-user_namespace registers for persistent
|
||||
per-UID kerberos caches
|
||||
|
||||
Add support for per-user_namespace registers of persistent per-UID kerberos
|
||||
caches held within the kernel.
|
||||
|
||||
This allows the kerberos cache to be retained beyond the life of all a user's
|
||||
processes so that the user's cron jobs can work.
|
||||
|
||||
The kerberos cache is envisioned as a keyring/key tree looking something like:
|
||||
|
||||
struct user_namespace
|
||||
\___ .krb_cache keyring - The register
|
||||
\___ _krb.0 keyring - Root's Kerberos cache
|
||||
\___ _krb.5000 keyring - User 5000's Kerberos cache
|
||||
\___ _krb.5001 keyring - User 5001's Kerberos cache
|
||||
\___ tkt785 big_key - A ccache blob
|
||||
\___ tkt12345 big_key - Another ccache blob
|
||||
|
||||
Or possibly:
|
||||
|
||||
struct user_namespace
|
||||
\___ .krb_cache keyring - The register
|
||||
\___ _krb.0 keyring - Root's Kerberos cache
|
||||
\___ _krb.5000 keyring - User 5000's Kerberos cache
|
||||
\___ _krb.5001 keyring - User 5001's Kerberos cache
|
||||
\___ tkt785 keyring - A ccache
|
||||
\___ krbtgt/REDHAT.COM@REDHAT.COM big_key
|
||||
\___ http/REDHAT.COM@REDHAT.COM user
|
||||
\___ afs/REDHAT.COM@REDHAT.COM user
|
||||
\___ nfs/REDHAT.COM@REDHAT.COM user
|
||||
\___ krbtgt/KERNEL.ORG@KERNEL.ORG big_key
|
||||
\___ http/KERNEL.ORG@KERNEL.ORG big_key
|
||||
|
||||
What goes into a particular Kerberos cache is entirely up to userspace. Kernel
|
||||
support is limited to giving you the Kerberos cache keyring that you want.
|
||||
|
||||
The user asks for their Kerberos cache by:
|
||||
|
||||
krb_cache = keyctl_get_krbcache(uid, dest_keyring);
|
||||
|
||||
The uid is -1 or the user's own UID for the user's own cache or the uid of some
|
||||
other user's cache (requires CAP_SETUID). This permits rpc.gssd or whatever to
|
||||
mess with the cache.
|
||||
|
||||
The cache returned is a keyring named "_krb.<uid>" that the possessor can read,
|
||||
search, clear, invalidate, unlink from and add links to. Active LSMs get a
|
||||
chance to rule on whether the caller is permitted to make a link.
|
||||
|
||||
Each uid's cache keyring is created when it first accessed and is given a
|
||||
timeout that is extended each time this function is called so that the keyring
|
||||
goes away after a while. The timeout is configurable by sysctl but defaults to
|
||||
three days.
|
||||
|
||||
Each user_namespace struct gets a lazily-created keyring that serves as the
|
||||
register. The cache keyrings are added to it. This means that standard key
|
||||
search and garbage collection facilities are available.
|
||||
|
||||
The user_namespace struct's register goes away when it does and anything left
|
||||
in it is then automatically gc'd.
|
||||
|
||||
Signed-off-by: David Howells <dhowells@redhat.com>
|
||||
Tested-by: Simo Sorce <simo@redhat.com>
|
||||
cc: Serge E. Hallyn <serge.hallyn@ubuntu.com>
|
||||
cc: Eric W. Biederman <ebiederm@xmission.com>
|
||||
---
|
||||
include/linux/user_namespace.h | 7 ++
|
||||
include/uapi/linux/keyctl.h | 1 +
|
||||
kernel/user.c | 4 +
|
||||
kernel/user_namespace.c | 6 ++
|
||||
security/keys/Kconfig | 17 +++++
|
||||
security/keys/Makefile | 1 +
|
||||
security/keys/compat.c | 3 +
|
||||
security/keys/internal.h | 9 +++
|
||||
security/keys/keyctl.c | 3 +
|
||||
security/keys/persistent.c | 169 +++++++++++++++++++++++++++++++++++++++++
|
||||
security/keys/sysctl.c | 11 +++
|
||||
11 files changed, 231 insertions(+)
|
||||
create mode 100644 security/keys/persistent.c
|
||||
|
||||
diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
|
||||
index 4db2985..bb0639d 100644
|
||||
--- a/include/linux/user_namespace.h
|
||||
+++ b/include/linux/user_namespace.h
|
||||
@@ -27,6 +27,13 @@ struct user_namespace {
|
||||
kuid_t owner;
|
||||
kgid_t group;
|
||||
unsigned int proc_inum;
|
||||
+
|
||||
+ /* Register of per-UID persistent keyrings for this namespace */
|
||||
+#ifdef CONFIG_PERSISTENT_KEYRINGS
|
||||
+ struct key *persistent_keyring_register;
|
||||
+ struct rw_semaphore persistent_keyring_register_sem;
|
||||
+#endif
|
||||
+
|
||||
};
|
||||
|
||||
extern struct user_namespace init_user_ns;
|
||||
diff --git a/include/uapi/linux/keyctl.h b/include/uapi/linux/keyctl.h
|
||||
index c9b7f4fa..840cb99 100644
|
||||
--- a/include/uapi/linux/keyctl.h
|
||||
+++ b/include/uapi/linux/keyctl.h
|
||||
@@ -56,5 +56,6 @@
|
||||
#define KEYCTL_REJECT 19 /* reject a partially constructed key */
|
||||
#define KEYCTL_INSTANTIATE_IOV 20 /* instantiate a partially constructed key */
|
||||
#define KEYCTL_INVALIDATE 21 /* invalidate a key */
|
||||
+#define KEYCTL_GET_PERSISTENT 22 /* get a user's persistent keyring */
|
||||
|
||||
#endif /* _LINUX_KEYCTL_H */
|
||||
diff --git a/kernel/user.c b/kernel/user.c
|
||||
index 5bbb919..a3a0dbf 100644
|
||||
--- a/kernel/user.c
|
||||
+++ b/kernel/user.c
|
||||
@@ -51,6 +51,10 @@ struct user_namespace init_user_ns = {
|
||||
.owner = GLOBAL_ROOT_UID,
|
||||
.group = GLOBAL_ROOT_GID,
|
||||
.proc_inum = PROC_USER_INIT_INO,
|
||||
+#ifdef CONFIG_KEYS_KERBEROS_CACHE
|
||||
+ .krb_cache_register_sem =
|
||||
+ __RWSEM_INITIALIZER(init_user_ns.krb_cache_register_sem),
|
||||
+#endif
|
||||
};
|
||||
EXPORT_SYMBOL_GPL(init_user_ns);
|
||||
|
||||
diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
|
||||
index 13fb113..2dbc299 100644
|
||||
--- a/kernel/user_namespace.c
|
||||
+++ b/kernel/user_namespace.c
|
||||
@@ -101,6 +101,9 @@ int create_user_ns(struct cred *new)
|
||||
|
||||
set_cred_user_ns(new, ns);
|
||||
|
||||
+#ifdef CONFIG_PERSISTENT_KEYRINGS
|
||||
+ rwsem_init(&ns->persistent_keyring_register_sem);
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -130,6 +133,9 @@ void free_user_ns(struct user_namespace *ns)
|
||||
|
||||
do {
|
||||
parent = ns->parent;
|
||||
+#ifdef CONFIG_PERSISTENT_KEYRINGS
|
||||
+ key_put(ns->persistent_keyring_register);
|
||||
+#endif
|
||||
proc_free_inum(ns->proc_inum);
|
||||
kmem_cache_free(user_ns_cachep, ns);
|
||||
ns = parent;
|
||||
diff --git a/security/keys/Kconfig b/security/keys/Kconfig
|
||||
index b563622..53d8748 100644
|
||||
--- a/security/keys/Kconfig
|
||||
+++ b/security/keys/Kconfig
|
||||
@@ -20,6 +20,23 @@ config KEYS
|
||||
|
||||
If you are unsure as to whether this is required, answer N.
|
||||
|
||||
+config PERSISTENT_KEYRINGS
|
||||
+ bool "Enable register of persistent per-UID keyrings"
|
||||
+ depends on KEYS
|
||||
+ help
|
||||
+ This option provides a register of persistent per-UID keyrings,
|
||||
+ primarily aimed at Kerberos key storage. The keyrings are persistent
|
||||
+ in the sense that they stay around after all processes of that UID
|
||||
+ have exited, not that they survive the machine being rebooted.
|
||||
+
|
||||
+ A particular keyring may be accessed by either the user whose keyring
|
||||
+ it is or by a process with administrative privileges. The active
|
||||
+ LSMs gets to rule on which admin-level processes get to access the
|
||||
+ cache.
|
||||
+
|
||||
+ Keyrings are created and added into the register upon demand and get
|
||||
+ removed if they expire (a default timeout is set upon creation).
|
||||
+
|
||||
config BIG_KEYS
|
||||
tristate "Large payload keys"
|
||||
depends on KEYS
|
||||
diff --git a/security/keys/Makefile b/security/keys/Makefile
|
||||
index c487c77..dfb3a7b 100644
|
||||
--- a/security/keys/Makefile
|
||||
+++ b/security/keys/Makefile
|
||||
@@ -18,6 +18,7 @@ obj-y := \
|
||||
obj-$(CONFIG_KEYS_COMPAT) += compat.o
|
||||
obj-$(CONFIG_PROC_FS) += proc.o
|
||||
obj-$(CONFIG_SYSCTL) += sysctl.o
|
||||
+obj-$(CONFIG_PERSISTENT_KEYRINGS) += persistent.o
|
||||
|
||||
#
|
||||
# Key types
|
||||
diff --git a/security/keys/compat.c b/security/keys/compat.c
|
||||
index d65fa7f..bbd32c7 100644
|
||||
--- a/security/keys/compat.c
|
||||
+++ b/security/keys/compat.c
|
||||
@@ -138,6 +138,9 @@ asmlinkage long compat_sys_keyctl(u32 option,
|
||||
case KEYCTL_INVALIDATE:
|
||||
return keyctl_invalidate_key(arg2);
|
||||
|
||||
+ case KEYCTL_GET_PERSISTENT:
|
||||
+ return keyctl_get_persistent(arg2, arg3);
|
||||
+
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
diff --git a/security/keys/internal.h b/security/keys/internal.h
|
||||
index 581c6f6..80b2aac 100644
|
||||
--- a/security/keys/internal.h
|
||||
+++ b/security/keys/internal.h
|
||||
@@ -255,6 +255,15 @@ extern long keyctl_invalidate_key(key_serial_t);
|
||||
extern long keyctl_instantiate_key_common(key_serial_t,
|
||||
const struct iovec *,
|
||||
unsigned, size_t, key_serial_t);
|
||||
+#ifdef CONFIG_PERSISTENT_KEYRINGS
|
||||
+extern long keyctl_get_persistent(uid_t, key_serial_t);
|
||||
+extern unsigned persistent_keyring_expiry;
|
||||
+#else
|
||||
+static inline long keyctl_get_persistent(uid_t uid, key_serial_t destring)
|
||||
+{
|
||||
+ return -EOPNOTSUPP;
|
||||
+}
|
||||
+#endif
|
||||
|
||||
/*
|
||||
* Debugging key validation
|
||||
diff --git a/security/keys/keyctl.c b/security/keys/keyctl.c
|
||||
index 33cfd27..cee72ce 100644
|
||||
--- a/security/keys/keyctl.c
|
||||
+++ b/security/keys/keyctl.c
|
||||
@@ -1667,6 +1667,9 @@ SYSCALL_DEFINE5(keyctl, int, option, unsigned long, arg2, unsigned long, arg3,
|
||||
case KEYCTL_INVALIDATE:
|
||||
return keyctl_invalidate_key((key_serial_t) arg2);
|
||||
|
||||
+ case KEYCTL_GET_PERSISTENT:
|
||||
+ return keyctl_get_persistent((uid_t)arg2, (key_serial_t)arg3);
|
||||
+
|
||||
default:
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
diff --git a/security/keys/persistent.c b/security/keys/persistent.c
|
||||
new file mode 100644
|
||||
index 0000000..631a022
|
||||
--- /dev/null
|
||||
+++ b/security/keys/persistent.c
|
||||
@@ -0,0 +1,169 @@
|
||||
+/* General persistent per-UID keyrings register
|
||||
+ *
|
||||
+ * Copyright (C) 2013 Red Hat, Inc. All Rights Reserved.
|
||||
+ * Written by David Howells (dhowells@redhat.com)
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or
|
||||
+ * modify it under the terms of the GNU General Public Licence
|
||||
+ * as published by the Free Software Foundation; either version
|
||||
+ * 2 of the Licence, or (at your option) any later version.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/user_namespace.h>
|
||||
+#include "internal.h"
|
||||
+
|
||||
+unsigned persistent_keyring_expiry = 3 * 24 * 3600; /* Expire after 3 days of non-use */
|
||||
+
|
||||
+/*
|
||||
+ * Create the persistent keyring register for the current user namespace.
|
||||
+ *
|
||||
+ * Called with the namespace's sem locked for writing.
|
||||
+ */
|
||||
+static int key_create_persistent_register(struct user_namespace *ns)
|
||||
+{
|
||||
+ struct key *reg = keyring_alloc(".persistent_register",
|
||||
+ KUIDT_INIT(0), KGIDT_INIT(0),
|
||||
+ current_cred(),
|
||||
+ ((KEY_POS_ALL & ~KEY_POS_SETATTR) |
|
||||
+ KEY_USR_VIEW | KEY_USR_READ),
|
||||
+ KEY_ALLOC_NOT_IN_QUOTA, NULL);
|
||||
+ if (IS_ERR(reg))
|
||||
+ return PTR_ERR(reg);
|
||||
+
|
||||
+ ns->persistent_keyring_register = reg;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Create the persistent keyring for the specified user.
|
||||
+ *
|
||||
+ * Called with the namespace's sem locked for writing.
|
||||
+ */
|
||||
+static key_ref_t key_create_persistent(struct user_namespace *ns, kuid_t uid,
|
||||
+ struct keyring_index_key *index_key)
|
||||
+{
|
||||
+ struct key *persistent;
|
||||
+ key_ref_t reg_ref, persistent_ref;
|
||||
+
|
||||
+ if (!ns->persistent_keyring_register) {
|
||||
+ long err = key_create_persistent_register(ns);
|
||||
+ if (err < 0)
|
||||
+ return ERR_PTR(err);
|
||||
+ } else {
|
||||
+ reg_ref = make_key_ref(ns->persistent_keyring_register, true);
|
||||
+ persistent_ref = find_key_to_update(reg_ref, index_key);
|
||||
+ if (persistent_ref)
|
||||
+ return persistent_ref;
|
||||
+ }
|
||||
+
|
||||
+ persistent = keyring_alloc(index_key->description,
|
||||
+ uid, INVALID_GID, current_cred(),
|
||||
+ ((KEY_POS_ALL & ~KEY_POS_SETATTR) |
|
||||
+ KEY_USR_VIEW | KEY_USR_READ),
|
||||
+ KEY_ALLOC_NOT_IN_QUOTA,
|
||||
+ ns->persistent_keyring_register);
|
||||
+ if (IS_ERR(persistent))
|
||||
+ return ERR_CAST(persistent);
|
||||
+
|
||||
+ return make_key_ref(persistent, true);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Get the persistent keyring for a specific UID and link it to the nominated
|
||||
+ * keyring.
|
||||
+ */
|
||||
+static long key_get_persistent(struct user_namespace *ns, kuid_t uid,
|
||||
+ key_ref_t dest_ref)
|
||||
+{
|
||||
+ struct keyring_index_key index_key;
|
||||
+ struct key *persistent;
|
||||
+ key_ref_t reg_ref, persistent_ref;
|
||||
+ char buf[32];
|
||||
+ long ret;
|
||||
+
|
||||
+ /* Look in the register if it exists */
|
||||
+ index_key.type = &key_type_keyring;
|
||||
+ index_key.description = buf;
|
||||
+ index_key.desc_len = sprintf(buf, "_persistent.%u", from_kuid(ns, uid));
|
||||
+
|
||||
+ if (ns->persistent_keyring_register) {
|
||||
+ reg_ref = make_key_ref(ns->persistent_keyring_register, true);
|
||||
+ down_read(&ns->persistent_keyring_register_sem);
|
||||
+ persistent_ref = find_key_to_update(reg_ref, &index_key);
|
||||
+ up_read(&ns->persistent_keyring_register_sem);
|
||||
+
|
||||
+ if (persistent_ref)
|
||||
+ goto found;
|
||||
+ }
|
||||
+
|
||||
+ /* It wasn't in the register, so we'll need to create it. We might
|
||||
+ * also need to create the register.
|
||||
+ */
|
||||
+ down_write(&ns->persistent_keyring_register_sem);
|
||||
+ persistent_ref = key_create_persistent(ns, uid, &index_key);
|
||||
+ up_write(&ns->persistent_keyring_register_sem);
|
||||
+ if (!IS_ERR(persistent_ref))
|
||||
+ goto found;
|
||||
+
|
||||
+ return PTR_ERR(persistent_ref);
|
||||
+
|
||||
+found:
|
||||
+ ret = key_task_permission(persistent_ref, current_cred(), KEY_LINK);
|
||||
+ if (ret == 0) {
|
||||
+ persistent = key_ref_to_ptr(persistent_ref);
|
||||
+ ret = key_link(key_ref_to_ptr(dest_ref), persistent);
|
||||
+ if (ret == 0) {
|
||||
+ key_set_timeout(persistent, persistent_keyring_expiry);
|
||||
+ ret = persistent->serial;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ key_ref_put(persistent_ref);
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Get the persistent keyring for a specific UID and link it to the nominated
|
||||
+ * keyring.
|
||||
+ */
|
||||
+long keyctl_get_persistent(uid_t _uid, key_serial_t destid)
|
||||
+{
|
||||
+ struct user_namespace *ns = current_user_ns();
|
||||
+ key_ref_t dest_ref;
|
||||
+ kuid_t uid;
|
||||
+ long ret;
|
||||
+
|
||||
+ /* -1 indicates the current user */
|
||||
+ if (_uid == (uid_t)-1) {
|
||||
+ uid = current_uid();
|
||||
+ } else {
|
||||
+ uid = make_kuid(ns, _uid);
|
||||
+ if (!uid_valid(uid))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
+ /* You can only see your own persistent cache if you're not
|
||||
+ * sufficiently privileged.
|
||||
+ */
|
||||
+ if (uid != current_uid() &&
|
||||
+ uid != current_suid() &&
|
||||
+ uid != current_euid() &&
|
||||
+ uid != current_fsuid() &&
|
||||
+ !ns_capable(ns, CAP_SETUID))
|
||||
+ return -EPERM;
|
||||
+ }
|
||||
+
|
||||
+ /* There must be a destination keyring */
|
||||
+ dest_ref = lookup_user_key(destid, KEY_LOOKUP_CREATE, KEY_WRITE);
|
||||
+ if (IS_ERR(dest_ref))
|
||||
+ return PTR_ERR(dest_ref);
|
||||
+ if (key_ref_to_ptr(dest_ref)->type != &key_type_keyring) {
|
||||
+ ret = -ENOTDIR;
|
||||
+ goto out_put_dest;
|
||||
+ }
|
||||
+
|
||||
+ ret = key_get_persistent(ns, uid, dest_ref);
|
||||
+
|
||||
+out_put_dest:
|
||||
+ key_ref_put(dest_ref);
|
||||
+ return ret;
|
||||
+}
|
||||
diff --git a/security/keys/sysctl.c b/security/keys/sysctl.c
|
||||
index ee32d18..8c0af08 100644
|
||||
--- a/security/keys/sysctl.c
|
||||
+++ b/security/keys/sysctl.c
|
||||
@@ -61,5 +61,16 @@ ctl_table key_sysctls[] = {
|
||||
.extra1 = (void *) &zero,
|
||||
.extra2 = (void *) &max,
|
||||
},
|
||||
+#ifdef CONFIG_PERSISTENT_KEYRINGS
|
||||
+ {
|
||||
+ .procname = "persistent_keyring_expiry",
|
||||
+ .data = &persistent_keyring_expiry,
|
||||
+ .maxlen = sizeof(unsigned),
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = proc_dointvec_minmax,
|
||||
+ .extra1 = (void *) &zero,
|
||||
+ .extra2 = (void *) &max,
|
||||
+ },
|
||||
+#endif
|
||||
{ }
|
||||
};
|
||||
--
|
||||
1.8.3.1
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,11 @@
|
|||
Bugzilla: N/A
|
||||
Upstream-status: queued in NFS git tree (for 3.13/3.14?)
|
||||
Upstream-status: sent for 3.14
|
||||
|
||||
From 6aa23d76a7b549521a03b63b6d5b7880ea87eab7 Mon Sep 17 00:00:00 2001
|
||||
From: Jeff Layton <jlayton@redhat.com>
|
||||
Date: Thu, 14 Nov 2013 07:25:19 -0500
|
||||
Subject: [PATCH] nfs: check if gssd is running before attempting to use krb5i
|
||||
auth in SETCLIENTID call
|
||||
|
||||
Currently, the client will attempt to use krb5i in the SETCLIENTID call
|
||||
even if rpc.gssd isn't running. When that fails, it'll then fall back to
|
||||
|
@ -14,12 +20,13 @@ fail at a later stage of the mount attempt.
|
|||
Signed-off-by: Jeff Layton <jlayton@redhat.com>
|
||||
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
|
||||
---
|
||||
fs/nfs/nfs4client.c | 7 ++++++-
|
||||
1 files changed, 6 insertions(+), 1 deletions(-)
|
||||
fs/nfs/nfs4client.c | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c
|
||||
--- linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig 2013-09-02 16:46:10.000000000 -0400
|
||||
+++ linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c 2013-11-21 10:20:27.288286000 -0500
|
||||
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
|
||||
index b4a160a..c1b7a80 100644
|
||||
--- a/fs/nfs/nfs4client.c
|
||||
+++ b/fs/nfs/nfs4client.c
|
||||
@@ -10,6 +10,7 @@
|
||||
#include <linux/sunrpc/auth.h>
|
||||
#include <linux/sunrpc/xprt.h>
|
||||
|
@ -28,10 +35,10 @@ diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200.
|
|||
#include "internal.h"
|
||||
#include "callback.h"
|
||||
#include "delegation.h"
|
||||
@@ -206,7 +207,11 @@ struct nfs_client *nfs4_init_client(stru
|
||||
if (clp->cl_minorversion != 0)
|
||||
@@ -370,7 +371,11 @@ struct nfs_client *nfs4_init_client(struct nfs_client *clp,
|
||||
__set_bit(NFS_CS_INFINITE_SLOTS, &clp->cl_flags);
|
||||
__set_bit(NFS_CS_DISCRTRY, &clp->cl_flags);
|
||||
__set_bit(NFS_CS_NO_RETRANS_TIMEOUT, &clp->cl_flags);
|
||||
- error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_GSS_KRB5I);
|
||||
+
|
||||
+ error = -EINVAL;
|
||||
|
@ -41,8 +48,6 @@ diff -up linux-3.11.9-200.fc19.x86_64/fs/nfs/nfs4client.c.orig linux-3.11.9-200.
|
|||
if (error == -EINVAL)
|
||||
error = nfs_create_rpc_client(clp, timeparms, RPC_AUTH_UNIX);
|
||||
if (error < 0)
|
||||
--
|
||||
1.8.2.1
|
||||
|
||||
_______________________________________________
|
||||
kernel mailing list
|
||||
kernel@lists.fedoraproject.org
|
||||
https://admin.fedoraproject.org/mailman/listinfo/kernel
|
||||
|
|
|
@ -1,4 +1,7 @@
|
|||
From 8dea807503a1ba88d9e27595daae7f86ec968711 Mon Sep 17 00:00:00 2001
|
||||
Bugzilla: N/A
|
||||
Upstream-status: Fedora mustard. Replaced by securelevels, but that was nak'd
|
||||
|
||||
From 0fc411ee00c81b8a18b1417d31f2736fad155d89 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Aug 2013 17:58:15 -0400
|
||||
Subject: [PATCH 01/14] Add secure_modules() call
|
||||
|
@ -14,10 +17,10 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|||
2 files changed, 17 insertions(+)
|
||||
|
||||
diff --git a/include/linux/module.h b/include/linux/module.h
|
||||
index 46f1ea0..0c266b2 100644
|
||||
index 05f2447..de97e77 100644
|
||||
--- a/include/linux/module.h
|
||||
+++ b/include/linux/module.h
|
||||
@@ -509,6 +509,8 @@ int unregister_module_notifier(struct notifier_block * nb);
|
||||
@@ -515,6 +515,8 @@ int unregister_module_notifier(struct notifier_block * nb);
|
||||
|
||||
extern void print_modules(void);
|
||||
|
||||
|
@ -26,7 +29,7 @@ index 46f1ea0..0c266b2 100644
|
|||
#else /* !CONFIG_MODULES... */
|
||||
|
||||
/* Given an address, look for it in the exception tables. */
|
||||
@@ -619,6 +621,11 @@ static inline int unregister_module_notifier(struct notifier_block * nb)
|
||||
@@ -625,6 +627,11 @@ static inline int unregister_module_notifier(struct notifier_block * nb)
|
||||
static inline void print_modules(void)
|
||||
{
|
||||
}
|
||||
|
@ -39,10 +42,10 @@ index 46f1ea0..0c266b2 100644
|
|||
|
||||
#ifdef CONFIG_SYSFS
|
||||
diff --git a/kernel/module.c b/kernel/module.c
|
||||
index 2069158..0e94acf 100644
|
||||
index dc58274..81206c1 100644
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -3852,3 +3852,13 @@ void module_layout(struct module *mod,
|
||||
@@ -3860,3 +3860,13 @@ void module_layout(struct module *mod,
|
||||
}
|
||||
EXPORT_SYMBOL(module_layout);
|
||||
#endif
|
||||
|
@ -60,7 +63,7 @@ index 2069158..0e94acf 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From 9b7b3f6283bf784e4ea1c34e52646b12971b2823 Mon Sep 17 00:00:00 2001
|
||||
From b94942e55b519e70366e970cea3665c464d1b7da Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Thu, 8 Mar 2012 10:10:38 -0500
|
||||
Subject: [PATCH 02/14] PCI: Lock down BAR access when module security is
|
||||
|
@ -80,7 +83,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|||
3 files changed, 19 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
|
||||
index c0dbe1f..cd4e35f 100644
|
||||
index d8eb880..a851ad6 100644
|
||||
--- a/drivers/pci/pci-sysfs.c
|
||||
+++ b/drivers/pci/pci-sysfs.c
|
||||
@@ -29,6 +29,7 @@
|
||||
|
@ -91,7 +94,7 @@ index c0dbe1f..cd4e35f 100644
|
|||
#include "pci.h"
|
||||
|
||||
static int sysfs_initialized; /* = 0 */
|
||||
@@ -624,6 +625,9 @@ pci_write_config(struct file* filp, struct kobject *kobj,
|
||||
@@ -644,6 +645,9 @@ pci_write_config(struct file* filp, struct kobject *kobj,
|
||||
loff_t init_off = off;
|
||||
u8 *data = (u8*) buf;
|
||||
|
||||
|
@ -101,7 +104,7 @@ index c0dbe1f..cd4e35f 100644
|
|||
if (off > dev->cfg_size)
|
||||
return 0;
|
||||
if (off + count > dev->cfg_size) {
|
||||
@@ -930,6 +934,9 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
|
||||
@@ -950,6 +954,9 @@ pci_mmap_resource(struct kobject *kobj, struct bin_attribute *attr,
|
||||
resource_size_t start, end;
|
||||
int i;
|
||||
|
||||
|
@ -111,7 +114,7 @@ index c0dbe1f..cd4e35f 100644
|
|||
for (i = 0; i < PCI_ROM_RESOURCE; i++)
|
||||
if (res == &pdev->resource[i])
|
||||
break;
|
||||
@@ -1037,6 +1044,9 @@ pci_write_resource_io(struct file *filp, struct kobject *kobj,
|
||||
@@ -1057,6 +1064,9 @@ pci_write_resource_io(struct file *filp, struct kobject *kobj,
|
||||
struct bin_attribute *attr, char *buf,
|
||||
loff_t off, size_t count)
|
||||
{
|
||||
|
@ -179,7 +182,7 @@ index e1c1ec5..bffbf71 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From aac2425a2664c09c2a369e1eec6e7a5bc2713cb1 Mon Sep 17 00:00:00 2001
|
||||
From 36f34509fe52cc49e1b1f6815a3f235040f64a03 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Thu, 8 Mar 2012 10:35:59 -0500
|
||||
Subject: [PATCH 03/14] x86: Lock down IO port access when module security is
|
||||
|
@ -252,7 +255,7 @@ index f895a8c..1af8664 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From e7f9789c7eedf291972666befee726ff8e7126f6 Mon Sep 17 00:00:00 2001
|
||||
From 67d9800dcf60467e076587b0aac67bcdc516cfe2 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Mar 2012 08:39:37 -0500
|
||||
Subject: [PATCH 04/14] ACPI: Limit access to custom_method
|
||||
|
@ -284,7 +287,7 @@ index 12b62f2..50647b3 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From d81cd6628c821d47bd086354cbc57b1474f3c1a8 Mon Sep 17 00:00:00 2001
|
||||
From bdf3761573167c20c72b151c1088b24fd24869ac Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Mar 2012 08:46:50 -0500
|
||||
Subject: [PATCH 05/14] asus-wmi: Restrict debugfs interface when module
|
||||
|
@ -339,7 +342,7 @@ index 19c313b..db18ef66 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From df75e984729ef50bb691b4d15472529fcd81580b Mon Sep 17 00:00:00 2001
|
||||
From 65d88af5a2c6bb6d01da17819d8ba782bd208837 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Mar 2012 09:28:15 -0500
|
||||
Subject: [PATCH 06/14] Restrict /dev/mem and /dev/kmem when module loading is
|
||||
|
@ -382,7 +385,7 @@ index 1af8664..61406c8 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From 78955913cc46cc5e5c7f2c71c1b07a5c18e06456 Mon Sep 17 00:00:00 2001
|
||||
From 4aa42b7fa5d7f79eb1d179e728ffa561fd9cf354 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@redhat.com>
|
||||
Date: Mon, 25 Jun 2012 19:57:30 -0400
|
||||
Subject: [PATCH 07/14] acpi: Ignore acpi_rsdp kernel parameter when module
|
||||
|
@ -398,7 +401,7 @@ Signed-off-by: Josh Boyer <jwboyer@redhat.com>
|
|||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
|
||||
index 6ab2c35..e4c4410 100644
|
||||
index e5f416c..9311c00 100644
|
||||
--- a/drivers/acpi/osl.c
|
||||
+++ b/drivers/acpi/osl.c
|
||||
@@ -45,6 +45,7 @@
|
||||
|
@ -409,7 +412,7 @@ index 6ab2c35..e4c4410 100644
|
|||
|
||||
#include <asm/io.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -245,7 +246,7 @@ early_param("acpi_rsdp", setup_acpi_rsdp);
|
||||
@@ -249,7 +250,7 @@ early_param("acpi_rsdp", setup_acpi_rsdp);
|
||||
acpi_physical_address __init acpi_os_get_root_pointer(void)
|
||||
{
|
||||
#ifdef CONFIG_KEXEC
|
||||
|
@ -422,7 +425,7 @@ index 6ab2c35..e4c4410 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From 23aae9143fbece326b3a26bf5ba48956c99cabe4 Mon Sep 17 00:00:00 2001
|
||||
From c9e62c2ce588d98a774a3853e56d95e48b9df98c Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Aug 2013 03:33:56 -0400
|
||||
Subject: [PATCH 08/14] kexec: Disable at runtime if the kernel enforces module
|
||||
|
@ -438,7 +441,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/kernel/kexec.c b/kernel/kexec.c
|
||||
index 59f7b55..3e2b63a 100644
|
||||
index 2a74f30..13601e3 100644
|
||||
--- a/kernel/kexec.c
|
||||
+++ b/kernel/kexec.c
|
||||
@@ -32,6 +32,7 @@
|
||||
|
@ -467,7 +470,7 @@ index 59f7b55..3e2b63a 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From 218cd49aa2d6a085c5c4edc0396200864f0b54ad Mon Sep 17 00:00:00 2001
|
||||
From d0e3cb2c13dc9634849ddacf75b6f0d94147516a Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Tue, 3 Sep 2013 11:23:29 -0400
|
||||
Subject: [PATCH 09/14] uswsusp: Disable when module loading is restricted
|
||||
|
@ -482,7 +485,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/kernel/power/user.c b/kernel/power/user.c
|
||||
index 4ed81e7..15cb72f 100644
|
||||
index 957f061..e570609d 100644
|
||||
--- a/kernel/power/user.c
|
||||
+++ b/kernel/power/user.c
|
||||
@@ -24,6 +24,7 @@
|
||||
|
@ -493,7 +496,7 @@ index 4ed81e7..15cb72f 100644
|
|||
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
@@ -48,6 +49,9 @@ static int snapshot_open(struct inode *inode, struct file *filp)
|
||||
@@ -49,6 +50,9 @@ static int snapshot_open(struct inode *inode, struct file *filp)
|
||||
struct snapshot_data *data;
|
||||
int error;
|
||||
|
||||
|
@ -507,7 +510,7 @@ index 4ed81e7..15cb72f 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From beeaac053d4ae57dc65be1da8b46e5d4bc6542b8 Mon Sep 17 00:00:00 2001
|
||||
From b238417ed3c5a0b21bbfcac84f6c70011b8977c0 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 8 Feb 2013 11:12:13 -0800
|
||||
Subject: [PATCH 10/14] x86: Restrict MSR access when module loading is
|
||||
|
@ -524,7 +527,7 @@ Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
|
|||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
|
||||
index 88458fa..d08f7e3 100644
|
||||
index 05266b5..e2bd647 100644
|
||||
--- a/arch/x86/kernel/msr.c
|
||||
+++ b/arch/x86/kernel/msr.c
|
||||
@@ -103,6 +103,9 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
|
||||
|
@ -552,7 +555,7 @@ index 88458fa..d08f7e3 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From b4331711c52aff0a6a9cef0f4b52fe261874d6f2 Mon Sep 17 00:00:00 2001
|
||||
From c3a9afb3b580b4f721d245fc5d13e378b99b9cd8 Mon Sep 17 00:00:00 2001
|
||||
From: Matthew Garrett <matthew.garrett@nebula.com>
|
||||
Date: Fri, 9 Aug 2013 18:36:30 -0400
|
||||
Subject: [PATCH 11/14] Add option to automatically enforce module signatures
|
||||
|
@ -588,12 +591,12 @@ index 199f453..ec38acf 100644
|
|||
290/040 ALL edd_mbr_sig_buffer EDD MBR signatures
|
||||
2D0/A00 ALL e820_map E820 memory map table
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index b32ebf9..6a6c19b 100644
|
||||
index 725e157..fe212ef 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1581,6 +1581,16 @@ config EFI_STUB
|
||||
@@ -1604,6 +1604,16 @@ config EFI_STUB
|
||||
|
||||
See Documentation/x86/efi-stub.txt for more information.
|
||||
See Documentation/efi-stub.txt for more information.
|
||||
|
||||
+config EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
+ def_bool n
|
||||
|
@ -609,7 +612,7 @@ index b32ebf9..6a6c19b 100644
|
|||
def_bool y
|
||||
prompt "Enable seccomp to safely compute untrusted bytecode"
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index b7388a4..53bfe4f 100644
|
||||
index a7677ba..4e172e9 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -12,6 +12,7 @@
|
||||
|
@ -620,10 +623,10 @@ index b7388a4..53bfe4f 100644
|
|||
|
||||
#undef memcpy /* Use memcpy from misc.c */
|
||||
|
||||
@@ -861,6 +862,37 @@ fail:
|
||||
return status;
|
||||
@@ -741,6 +742,37 @@ free_mem_map:
|
||||
}
|
||||
|
||||
|
||||
+static int get_secure_boot(void)
|
||||
+{
|
||||
+ u8 sb, setup;
|
||||
|
@ -656,9 +659,9 @@ index b7388a4..53bfe4f 100644
|
|||
+
|
||||
+
|
||||
/*
|
||||
* Because the x86 boot code expects to be passed a boot_params we
|
||||
* need to create one ourselves (usually the bootloader would create
|
||||
@@ -1169,6 +1201,10 @@ struct boot_params *efi_main(void *handle, efi_system_table_t *_table,
|
||||
* On success we return a pointer to a boot_params structure, and NULL
|
||||
* on failure.
|
||||
@@ -760,6 +792,10 @@ struct boot_params *efi_main(void *handle, efi_system_table_t *_table,
|
||||
if (sys_table->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE)
|
||||
goto fail;
|
||||
|
||||
|
@ -670,7 +673,7 @@ index b7388a4..53bfe4f 100644
|
|||
|
||||
setup_efi_pci(boot_params);
|
||||
diff --git a/arch/x86/include/uapi/asm/bootparam.h b/arch/x86/include/uapi/asm/bootparam.h
|
||||
index c15ddaf..85d7685 100644
|
||||
index 9c3733c..a7ba210 100644
|
||||
--- a/arch/x86/include/uapi/asm/bootparam.h
|
||||
+++ b/arch/x86/include/uapi/asm/bootparam.h
|
||||
@@ -131,7 +131,8 @@ struct boot_params {
|
||||
|
@ -684,10 +687,10 @@ index c15ddaf..85d7685 100644
|
|||
* The sentinel is set to a nonzero value (0xff) in header.S.
|
||||
*
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index f8ec578..deeb7bc 100644
|
||||
index 918d489..fe429c1 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1129,6 +1129,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
@@ -1127,6 +1127,12 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
io_delay_init();
|
||||
|
||||
|
@ -701,10 +704,10 @@ index f8ec578..deeb7bc 100644
|
|||
* Parse the ACPI tables for possible boot-time SMP configuration.
|
||||
*/
|
||||
diff --git a/include/linux/module.h b/include/linux/module.h
|
||||
index 0c266b2..5a6374a 100644
|
||||
index de97e77..d69fe19 100644
|
||||
--- a/include/linux/module.h
|
||||
+++ b/include/linux/module.h
|
||||
@@ -184,6 +184,12 @@ const struct exception_table_entry *search_exception_tables(unsigned long add);
|
||||
@@ -190,6 +190,12 @@ const struct exception_table_entry *search_exception_tables(unsigned long add);
|
||||
|
||||
struct notifier_block;
|
||||
|
||||
|
@ -718,10 +721,10 @@ index 0c266b2..5a6374a 100644
|
|||
|
||||
extern int modules_disabled; /* for sysctl */
|
||||
diff --git a/kernel/module.c b/kernel/module.c
|
||||
index 0e94acf..974139b 100644
|
||||
index 81206c1..e1428f0 100644
|
||||
--- a/kernel/module.c
|
||||
+++ b/kernel/module.c
|
||||
@@ -3853,6 +3853,13 @@ void module_layout(struct module *mod,
|
||||
@@ -3861,6 +3861,13 @@ void module_layout(struct module *mod,
|
||||
EXPORT_SYMBOL(module_layout);
|
||||
#endif
|
||||
|
||||
|
@ -739,7 +742,7 @@ index 0e94acf..974139b 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From bb28516d346e6511f1e012321c48eb142763e539 Mon Sep 17 00:00:00 2001
|
||||
From 27a1aa77c7fbaaae8c6a776190a38dcbf3c3d6d2 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@redhat.com>
|
||||
Date: Tue, 5 Feb 2013 19:25:05 -0500
|
||||
Subject: [PATCH 12/14] efi: Disable secure boot if shim is in insecure mode
|
||||
|
@ -756,10 +759,10 @@ Signed-off-by: Josh Boyer <jwboyer@redhat.com>
|
|||
1 file changed, 19 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/eboot.c b/arch/x86/boot/compressed/eboot.c
|
||||
index 53bfe4f..946028b 100644
|
||||
index 4e172e9..4905f4d 100644
|
||||
--- a/arch/x86/boot/compressed/eboot.c
|
||||
+++ b/arch/x86/boot/compressed/eboot.c
|
||||
@@ -864,8 +864,9 @@ fail:
|
||||
@@ -744,8 +744,9 @@ free_mem_map:
|
||||
|
||||
static int get_secure_boot(void)
|
||||
{
|
||||
|
@ -770,7 +773,7 @@ index 53bfe4f..946028b 100644
|
|||
efi_guid_t var_guid = EFI_GLOBAL_VARIABLE_GUID;
|
||||
efi_status_t status;
|
||||
|
||||
@@ -889,6 +890,23 @@ static int get_secure_boot(void)
|
||||
@@ -769,6 +770,23 @@ static int get_secure_boot(void)
|
||||
if (setup == 1)
|
||||
return 0;
|
||||
|
||||
|
@ -798,7 +801,7 @@ index 53bfe4f..946028b 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From 4c8824bac8d4284e66c39c365ba84151f2d78e87 Mon Sep 17 00:00:00 2001
|
||||
From 2a445ca2c187da4497ef5f68f111574fd2b0d419 Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Tue, 27 Aug 2013 13:28:43 -0400
|
||||
Subject: [PATCH 13/14] efi: Make EFI_SECURE_BOOT_SIG_ENFORCE depend on EFI
|
||||
|
@ -812,11 +815,11 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
|||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index 6a6c19b..10498ec 100644
|
||||
index fe212ef..bf83fd3 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -1582,7 +1582,8 @@ config EFI_STUB
|
||||
See Documentation/x86/efi-stub.txt for more information.
|
||||
@@ -1605,7 +1605,8 @@ config EFI_STUB
|
||||
See Documentation/efi-stub.txt for more information.
|
||||
|
||||
config EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
- def_bool n
|
||||
|
@ -829,7 +832,7 @@ index 6a6c19b..10498ec 100644
|
|||
1.8.3.1
|
||||
|
||||
|
||||
From 871b0ed1847c3c5413a4ca72ecf18735858f7708 Mon Sep 17 00:00:00 2001
|
||||
From b1c533cc1d1ca7a03497cc4f2e1b029bde95633c Mon Sep 17 00:00:00 2001
|
||||
From: Josh Boyer <jwboyer@fedoraproject.org>
|
||||
Date: Tue, 27 Aug 2013 13:33:03 -0400
|
||||
Subject: [PATCH 14/14] efi: Add EFI_SECURE_BOOT bit
|
||||
|
@ -844,10 +847,10 @@ Signed-off-by: Josh Boyer <jwboyer@fedoraproject.org>
|
|||
2 files changed, 3 insertions(+)
|
||||
|
||||
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
|
||||
index deeb7bc..08dc16e 100644
|
||||
index fe429c1..469fbf0 100644
|
||||
--- a/arch/x86/kernel/setup.c
|
||||
+++ b/arch/x86/kernel/setup.c
|
||||
@@ -1131,7 +1131,9 @@ void __init setup_arch(char **cmdline_p)
|
||||
@@ -1129,7 +1129,9 @@ void __init setup_arch(char **cmdline_p)
|
||||
|
||||
#ifdef CONFIG_EFI_SECURE_BOOT_SIG_ENFORCE
|
||||
if (boot_params.secure_boot) {
|
||||
|
@ -858,10 +861,10 @@ index deeb7bc..08dc16e 100644
|
|||
#endif
|
||||
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index 5f8f176..eed2202 100644
|
||||
index bc5687d..b010a2e 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -634,6 +634,7 @@ extern int __init efi_setup_pcdp_console(char *);
|
||||
@@ -653,6 +653,7 @@ extern int __init efi_setup_pcdp_console(char *);
|
||||
#define EFI_RUNTIME_SERVICES 3 /* Can we use runtime services? */
|
||||
#define EFI_MEMMAP 4 /* Can we use EFI memory map? */
|
||||
#define EFI_64BIT 5 /* Is the firmware 64-bit? */
|
||||
|
|
|
@ -1,25 +0,0 @@
|
|||
diff -up linux-2.6.26.noarch/drivers/acpi/blacklist.c.jx linux-2.6.26.noarch/drivers/acpi/blacklist.c
|
||||
--- linux-2.6.26.noarch/drivers/acpi/blacklist.c.jx 2008-07-13 17:51:29.000000000 -0400
|
||||
+++ linux-2.6.26.noarch/drivers/acpi/blacklist.c 2008-08-12 14:21:39.000000000 -0400
|
||||
@@ -81,18 +81,18 @@ static int __init blacklist_by_year(void
|
||||
|
||||
/* Doesn't exist? Likely an old system */
|
||||
if (!dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL)) {
|
||||
- printk(KERN_ERR PREFIX "no DMI BIOS year, "
|
||||
+ printk(KERN_INFO PREFIX "no DMI BIOS year, "
|
||||
"acpi=force is required to enable ACPI\n" );
|
||||
return 1;
|
||||
}
|
||||
/* 0? Likely a buggy new BIOS */
|
||||
if (year == 0) {
|
||||
- printk(KERN_ERR PREFIX "DMI BIOS year==0, "
|
||||
+ printk(KERN_INFO PREFIX "DMI BIOS year==0, "
|
||||
"assuming ACPI-capable machine\n" );
|
||||
return 0;
|
||||
}
|
||||
if (year < CONFIG_ACPI_BLACKLIST_YEAR) {
|
||||
- printk(KERN_ERR PREFIX "BIOS age (%d) fails cutoff (%d), "
|
||||
+ printk(KERN_INFO PREFIX "BIOS age (%d) fails cutoff (%d), "
|
||||
"acpi=force is required to enable ACPI\n",
|
||||
year, CONFIG_ACPI_BLACKLIST_YEAR);
|
||||
return 1;
|
4
sources
4
sources
|
@ -1,2 +1,2 @@
|
|||
cc6ee608854e0da4b64f6c1ff8b6398c linux-3.12.tar.xz
|
||||
3aab560af4cc11bea08695468204cf4c patch-3.12.10.xz
|
||||
0ecbaf65c00374eb4a826c2f9f37606f linux-3.13.tar.xz
|
||||
352993d23acc5760dafa10ffc9d8881a patch-3.13.2.xz
|
||||
|
|
|
@ -1,80 +0,0 @@
|
|||
Bugzilla: 1044471
|
||||
Upstream-status: 3.13
|
||||
|
||||
From 68273712a19e9107a498a371532b3b3eb6dbb14c Mon Sep 17 00:00:00 2001
|
||||
From: Nithin Sujir <nsujir@broadcom.com>
|
||||
Date: Fri, 20 Sep 2013 16:46:56 -0700
|
||||
Subject: [PATCH] tg3: Add support for new 577xx device ids
|
||||
|
||||
This patch adds support for 57764, 57765, 57787, 57782 and 57786
|
||||
devices.
|
||||
|
||||
Signed-off-by: Nithin Nayak Sujir <nsujir@broadcom.com>
|
||||
Signed-off-by: Michael Chan <mchan@broadcom.com>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
drivers/net/ethernet/broadcom/tg3.c | 15 +++++++++++++--
|
||||
drivers/net/ethernet/broadcom/tg3.h | 3 +++
|
||||
2 files changed, 16 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
|
||||
index bcb92d4..c98f6b0 100644
|
||||
--- a/drivers/net/ethernet/broadcom/tg3.c
|
||||
+++ b/drivers/net/ethernet/broadcom/tg3.c
|
||||
@@ -337,6 +337,11 @@ static DEFINE_PCI_DEVICE_TABLE(tg3_pci_tbl) = {
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5762)},
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5725)},
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_5727)},
|
||||
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57764)},
|
||||
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57767)},
|
||||
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57787)},
|
||||
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57782)},
|
||||
+ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57786)},
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9DXX)},
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, PCI_DEVICE_ID_SYSKONNECT_9MXX)},
|
||||
{PCI_DEVICE(PCI_VENDOR_ID_ALTIMA, PCI_DEVICE_ID_ALTIMA_AC1000)},
|
||||
@@ -15761,9 +15766,12 @@ static void tg3_detect_asic_rev(struct tg3 *tp, u32 misc_ctrl_reg)
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5718 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5719 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5720 ||
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_57767 ||
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_57764 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5762 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5725 ||
|
||||
- tp->pdev->device == TG3PCI_DEVICE_TIGON3_5727)
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_5727 ||
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_57787)
|
||||
reg = TG3PCI_GEN2_PRODID_ASICREV;
|
||||
else if (tp->pdev->device == TG3PCI_DEVICE_TIGON3_57781 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_57785 ||
|
||||
@@ -17411,9 +17419,12 @@ static int tg3_init_one(struct pci_dev *pdev,
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5718 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5719 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5720 ||
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_57767 ||
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_57764 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5762 ||
|
||||
tp->pdev->device == TG3PCI_DEVICE_TIGON3_5725 ||
|
||||
- tp->pdev->device == TG3PCI_DEVICE_TIGON3_5727) {
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_5727 ||
|
||||
+ tp->pdev->device == TG3PCI_DEVICE_TIGON3_57787) {
|
||||
tg3_flag_set(tp, ENABLE_APE);
|
||||
tp->aperegs = pci_ioremap_bar(pdev, BAR_2);
|
||||
if (!tp->aperegs) {
|
||||
diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
|
||||
index 7025780..5c3835a 100644
|
||||
--- a/drivers/net/ethernet/broadcom/tg3.h
|
||||
+++ b/drivers/net/ethernet/broadcom/tg3.h
|
||||
@@ -68,6 +68,9 @@
|
||||
#define TG3PCI_DEVICE_TIGON3_5762 0x1687
|
||||
#define TG3PCI_DEVICE_TIGON3_5725 0x1643
|
||||
#define TG3PCI_DEVICE_TIGON3_5727 0x16f3
|
||||
+#define TG3PCI_DEVICE_TIGON3_57764 0x1642
|
||||
+#define TG3PCI_DEVICE_TIGON3_57767 0x1683
|
||||
+#define TG3PCI_DEVICE_TIGON3_57787 0x1641
|
||||
/* 0x04 --> 0x2c unused */
|
||||
#define TG3PCI_SUBVENDOR_ID_BROADCOM PCI_VENDOR_ID_BROADCOM
|
||||
#define TG3PCI_SUBDEVICE_ID_BROADCOM_95700A6 0x1644
|
||||
--
|
||||
1.8.4.2
|
||||
|
|
@ -1,13 +0,0 @@
|
|||
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
|
||||
index f67e839..d726b2d 100644
|
||||
--- a/arch/x86/Kconfig
|
||||
+++ b/arch/x86/Kconfig
|
||||
@@ -825,7 +825,7 @@ config MAXSMP
|
||||
config NR_CPUS
|
||||
int "Maximum number of CPUs" if SMP && !MAXSMP
|
||||
range 2 8 if SMP && X86_32 && !X86_BIGSMP
|
||||
- range 2 512 if SMP && !MAXSMP
|
||||
+ range 2 1024 if SMP && !MAXSMP
|
||||
default "1" if !SMP
|
||||
default "4096" if MAXSMP
|
||||
default "32" if SMP && (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000)
|
Loading…
Reference in New Issue