Autor Tema: parches que vais a necesitar en 3.8 en adelante  (Leído 33816 veces)

0 Usuarios y 1 Visitante están viendo este tema.

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #80 en: 03-09-2013, 00:58 (Martes) »
OK
Éstoy haciendo algunos experimentos desde mi repo corporativo, pero hoy tuve un dia agotador y no haré grandes avances.

los problemas de aplicabilidad del patchset de aufs en 3.11 son cuestion de tiempo. A cada release stable, Okajima saca una entrega de su patchset, por la cuenta que le trae porque la mayoria de las distros live dependen de aufs.

lo del asus-nb-wmi, en el peor de los casos, idem. con esperar y no adelantarse al desarrollo, sabemos que acabará todo bien. no siempre es bueno ir al limite, por este mismo motivo hay que intentar quedarse en las "stable", tratando de hacer backporting de alguna cosa desde master en caso de que sea muy necesaria.

salu2



alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #81 en: 03-09-2013, 03:30 (Martes) »
@USUARIONUEVO

ya tenemos kernel 3.11 entrado en el upstream de stable, y sabemos que resuelve el tema de vuestros asus.

no he comprobado si aplica bien el aufs, pero si te puedo decir que los parches de inyección entran limpiamente.

en caso de que consigas aplicar aufs, puedes cocinar un kernel 3.11, pero en caso de que no puedas y tengas que quedarte con el 3.10, he hecho un backport de los commits de asus para la 3.11, que deberia poder aplicar bien en la 3.10.
aqui te lo dejo para que pruebes
Código: [Seleccionar]
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -1935,7 +1935,6 @@ fail_input:
 fail_backlight:
  asus_platform_exit(asus);
 fail_platform:
- kfree(asus->name);
  kfree(asus);
 
  return result;
diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
index 8fcb41e18b9c..563f59efa669 100644
--- a/drivers/platform/x86/asus-nb-wmi.c
+++ b/drivers/platform/x86/asus-nb-wmi.c
@@ -180,6 +180,24 @@ static struct dmi_system_id asus_quirks[] = {
  },
  .driver_data = &quirk_asus_x401u,
  },
+ {
+ .callback = dmi_matched,
+ .ident = "ASUSTeK COMPUTER INC. 1015E",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "1015E"),
+ },
+ .driver_data = &quirk_asus_x401u,
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "ASUSTeK COMPUTER INC. 1015U",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "1015U"),
+ },
+ .driver_data = &quirk_asus_x401u,
+ },
  {},
 };
 
@@ -256,6 +274,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
  { KE_KEY, 0xB5, { KEY_CALC } },
  { KE_KEY, 0xC4, { KEY_KBDILLUMUP } },
  { KE_KEY, 0xC5, { KEY_KBDILLUMDOWN } },
+ { KE_IGNORE, 0xC6, },  /* Ambient Light Sensor notification */
  { KE_END, 0},
 };
 
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index c11b2426dac1..19c313b056c3 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -558,7 +558,7 @@ static int asus_wmi_led_init(struct asus_wmi *asus)
  goto error;
  }
 
- if (wlan_led_presence(asus)) {
+ if (wlan_led_presence(asus) && (asus->driver->quirks->wapf == 4)) {
  INIT_WORK(&asus->wlan_led_work, wlan_led_update);
 
  asus->wlan_led.name = "asus::wlan";
@@ -886,7 +886,8 @@ static int asus_new_rfkill(struct asus_wmi *asus,
  if (!*rfkill)
  return -EINVAL;
 
- if (dev_id == ASUS_WMI_DEVID_WLAN)
+ if ((dev_id == ASUS_WMI_DEVID_WLAN) &&
+ (asus->driver->quirks->wapf == 4))
  rfkill_set_led_trigger_name(*rfkill, "asus-wlan");
 
  rfkill_init_sw_state(*rfkill, !result);
@@ -1045,7 +1046,7 @@ static ssize_t asus_hwmon_pwm1(struct device *dev,
  else if (value == 3)
  value = 255;
  else if (value != 0) {
- pr_err("Unknown fan speed %#x", value);
+ pr_err("Unknown fan speed %#x\n", value);
  value = -1;
  }
 
@@ -1557,11 +1558,11 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
 
  /* INIT enable hotkeys on some models */
  if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_INIT, 0, 0, &rv))
- pr_info("Initialization: %#x", rv);
+ pr_info("Initialization: %#x\n", rv);
 
  /* We don't know yet what to do with this version... */
  if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_SPEC, 0, 0x9, &rv)) {
- pr_info("BIOS WMI version: %d.%d", rv >> 16, rv & 0xFF);
+ pr_info("BIOS WMI version: %d.%d\n", rv >> 16, rv & 0xFF);
  asus->spec = rv;
  }
 
@@ -1572,7 +1573,7 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
  * The significance of others is yet to be found.
  */
  if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_SFUN, 0, 0, &rv)) {
- pr_info("SFUN value: %#x", rv);
+ pr_info("SFUN value: %#x\n", rv);
  asus->sfun = rv;
  }
 
@@ -1712,7 +1713,7 @@ static int asus_wmi_debugfs_init(struct asus_wmi *asus)
 
  asus->debug.root = debugfs_create_dir(asus->driver->name, NULL);
  if (!asus->debug.root) {
- pr_err("failed to create debugfs directory");
+ pr_err("failed to create debugfs directory\n");
  goto error_debugfs;
  }
 
@@ -1985,17 +1986,17 @@ EXPORT_SYMBOL_GPL(asus_wmi_unregister_driver);
 static int __init asus_wmi_init(void)
 {
  if (!wmi_has_guid(ASUS_WMI_MGMT_GUID)) {
- pr_info("Asus Management GUID not found");
+ pr_info("Asus Management GUID not found\n");
  return -ENODEV;
  }
 
- pr_info("ASUS WMI generic driver loaded");
+ pr_info("ASUS WMI generic driver loaded\n");
  return 0;
 }
 
 static void __exit asus_wmi_exit(void)
 {
- pr_info("ASUS WMI generic driver unloaded");
+ pr_info("ASUS WMI generic driver unloaded\n");
 }
 
 module_init(asus_wmi_init);


recuerda aplicarlos en seco antes de nada usando --dry-run. en caso contrario, si algun chunk no entrase limpiamente, te quedarias con un código, ni parcheado, ni sin parchear. con toda la molestia que eso supone luego para restaurarlo todo.
« Última modificación: 03-09-2013, 03:32 (Martes) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #82 en: 03-09-2013, 03:36 (Martes) »
venia justo a decir eso .....


3.11 mainline.

voy a intentar cocinarlo.  ;D

debería ya que esta en mainline y no en rc ... pero si no pues probare ese "megapatch"  ;D

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #83 en: 03-09-2013, 03:43 (Martes) »
si no pues probare ese "megapatch"  ;D

lo he hecho con la ayuda del gitk, pero por si quieres trabajarlo y/o entenderlo por tu cuenta, aqui tienes el commit ID que parece resolver lo que os estaba molestando.


de todos modos lo mejor es tratar de portar aufs hacia adelante en lugar de acer-wmi hacia atrás.

PD: y hablando de aufs... buenas/malas noticias. ya veo el problema:

Código: [Seleccionar]
alex@engetsu:~/src/linux-aa$ patch -p1 --dry-run < ../aufs-aufs3-standalone/aufs3-standalone.patch  | grep FAILED
Hunk #1 FAILED at 37.
1 out of 2 hunks FAILED -- saving rejects to file fs/file_table.c.rej


el chunk rechazado es pequeño. voy a analizarlo.
« Última modificación: 03-09-2013, 04:04 (Martes) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #84 en: 03-09-2013, 04:12 (Martes) »
yo le meti del rcN ..que es el que se usa en las rc.  :-\

pero es posible que no lo viera el FAILED.

el 3.11 aun no esta en el "standalone" , de aufs..solo el 3.10

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #85 en: 03-09-2013, 04:16 (Martes) »
Vale no lo vi , por que en la consola no veo tantas lineas, pero grepeando ..aun con aufs de rcN ....


Código: [Seleccionar]
wifislax linux-3.11 # patch -p1 -i /root/Descargas/linux-3.11/aufs3.11.patch | grep FAILED
Hunk #1 FAILED at 36.
1 out of 1 hunk FAILED -- saving rejects to file fs/file_table.c.rej
wifislax linux-3.11 #


repito , es el de rcN , no hay mas nuevo ...asi que tocara esperar supongo.  ;D

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #86 en: 03-09-2013, 04:21 (Martes) »
ja! yo no espero a Okajima, si puedo adelantarlo.

en primer lugar:

Código: [Seleccionar]
alex@engetsu:~/src/linux-aa$ patch -p1 --dry-run -F1 < ../aufs-aufs3-standalone/aufs3-standalone.patch | grep FAIL -B 1
patching file fs/file_table.c
Hunk #1 FAILED at 37.
Hunk #2 succeeded at 406 (offset 1 line).
1 out of 2 hunks FAILED -- saving rejects to file fs/file_table.c.rej

para el primer hunk fallido, lo que falla es el contexto. el commit culpable fué este:


el cambio de ese commit que rompe el parche aufs, visto en primer plano:


y en segundo lugar:
Código: [Seleccionar]
patching file fs/splice.c
Hunk #1 succeeded at 1543 with fuzz 1 (offset 423 lines).
Hunk #2 FAILED at 1147.

en este hunk, el contexto está intacto, pero el offset se ha ido desplazando demasiado y ya no cuela si no se actualiza

este cambio severo en el desplazamiento del contexto hace que el parche falle porque el offset original está como 15 lineas más arriba. Se cambia el offset en el parche para tenerlo arreglado del todo, o se sube el fuzz factor con "patch -F xx" para que busque el contexto más lejos a la hora de aplicar el parche. Pero obviamente mejor hacer lo primero.

Y listo.

Código: [Seleccionar]
aufs3.10 standalone patch

diff --git a/fs/file_table.c b/fs/file_table.c
index 8db8096..e271e28 100644
--- a/fs/file_table.c
+++ b/fs/file_table.c
@@ -37,6 +37,7 @@ struct files_stat_struct files_stat = {
 };
 
 DEFINE_LGLOCK(files_lglock);
+EXPORT_SYMBOL(files_lglock);
 
 /* SLAB cache for file structures */
 static struct kmem_cache *filp_cachep __read_mostly;
@@ -405,6 +406,8 @@ void file_sb_list_del(struct file *file)
  }
 }
 
+EXPORT_SYMBOL(file_sb_list_del);
+
 #ifdef CONFIG_SMP
 
 /*
diff --git a/fs/inode.c b/fs/inode.c
index f324521..bff7670 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -56,6 +56,7 @@ static struct hlist_head *inode_hashtable __read_mostly;
 static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
 
 __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
+EXPORT_SYMBOL(inode_sb_list_lock);
 
 /*
  * Empty aops. Can be used for the cases where the user does not
@@ -1514,6 +1515,7 @@ int update_time(struct inode *inode, struct timespec *time, int flags)
  mark_inode_dirty_sync(inode);
  return 0;
 }
+EXPORT_SYMBOL(update_time);
 
 /**
  * touch_atime - update the access time
diff --git a/fs/namespace.c b/fs/namespace.c
index 7b1ca9b..51db6ad 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -54,6 +54,7 @@ EXPORT_SYMBOL_GPL(fs_kobj);
  * tree or hash is modified or when a vfsmount structure is modified.
  */
 DEFINE_BRLOCK(vfsmount_lock);
+EXPORT_SYMBOL(vfsmount_lock);
 
 static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry)
 {
@@ -427,6 +428,7 @@ void __mnt_drop_write(struct vfsmount *mnt)
  mnt_dec_writers(real_mount(mnt));
  preempt_enable();
 }
+EXPORT_SYMBOL_GPL(__mnt_drop_write);
 
 /**
  * mnt_drop_write - give up write access to a mount
@@ -1456,6 +1458,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
  }
  return 0;
 }
+EXPORT_SYMBOL(iterate_mounts);
 
 static void cleanup_group_ids(struct mount *mnt, struct mount *end)
 {
diff --git a/fs/notify/group.c b/fs/notify/group.c
index bd2625b..2ff2a0f 100644
--- a/fs/notify/group.c
+++ b/fs/notify/group.c
@@ -22,6 +22,7 @@
 #include <linux/srcu.h>
 #include <linux/rculist.h>
 #include <linux/wait.h>
+#include <linux/module.h>
 
 #include <linux/fsnotify_backend.h>
 #include "fsnotify.h"
@@ -65,6 +66,7 @@ void fsnotify_get_group(struct fsnotify_group *group)
 {
  atomic_inc(&group->refcnt);
 }
+EXPORT_SYMBOL(fsnotify_get_group);
 
 /*
  * Drop a reference to a group.  Free it if it's through.
@@ -74,6 +76,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
  if (atomic_dec_and_test(&group->refcnt))
  fsnotify_final_destroy_group(group);
 }
+EXPORT_SYMBOL(fsnotify_put_group);
 
 /*
  * Create a new fsnotify_group and hold a reference for the group returned.
@@ -102,6 +105,7 @@ struct fsnotify_group *fsnotify_alloc_group(const struct fsnotify_ops *ops)
 
  return group;
 }
+EXPORT_SYMBOL(fsnotify_alloc_group);
 
 int fsnotify_fasync(int fd, struct file *file, int on)
 {
diff --git a/fs/notify/mark.c b/fs/notify/mark.c
index fc6b49b..a6bb87d 100644
--- a/fs/notify/mark.c
+++ b/fs/notify/mark.c
@@ -115,6 +115,7 @@ void fsnotify_put_mark(struct fsnotify_mark *mark)
  mark->free_mark(mark);
  }
 }
+EXPORT_SYMBOL(fsnotify_put_mark);
 
 /*
  * Any time a mark is getting freed we end up here.
@@ -197,6 +198,7 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark,
  fsnotify_destroy_mark_locked(mark, group);
  mutex_unlock(&group->mark_mutex);
 }
+EXPORT_SYMBOL(fsnotify_destroy_mark);
 
 void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask)
 {
@@ -281,6 +283,7 @@ err:
 
  return ret;
 }
+EXPORT_SYMBOL(fsnotify_add_mark);
 
 int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group,
       struct inode *inode, struct vfsmount *mnt, int allow_dups)
@@ -342,6 +345,7 @@ void fsnotify_init_mark(struct fsnotify_mark *mark,
  atomic_set(&mark->refcnt, 1);
  mark->free_mark = free_mark;
 }
+EXPORT_SYMBOL(fsnotify_init_mark);
 
 static int fsnotify_mark_destroy(void *ignored)
 {
diff --git a/fs/open.c b/fs/open.c
index 8c74100..be563cd 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -61,6 +61,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
  mutex_unlock(&dentry->d_inode->i_mutex);
  return ret;
 }
+EXPORT_SYMBOL(do_truncate);
 
 long vfs_truncate(struct path *path, loff_t length)
 {
diff --git a/fs/splice.c b/fs/splice.c
index 987346f..8d6a045 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1120,6 +1120,7 @@ long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
  file_end_write(out);
  return ret;
 }
+EXPORT_SYMBOL(do_splice_from);
 
 /*
  * Attempt to initiate a splice from a file to a pipe.
@@ -1133,6 +1134,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
 
  return splice_read(in, ppos, pipe, len, flags);
 }
+EXPORT_SYMBOL(do_splice_to);
 
 /**
  * splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/security/commoncap.c b/security/commoncap.c
index c44b6fe..d78b003 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -988,9 +988,11 @@ int cap_mmap_addr(unsigned long addr)
  }
  return ret;
 }
+EXPORT_SYMBOL(cap_mmap_addr);
 
 int cap_mmap_file(struct file *file, unsigned long reqprot,
   unsigned long prot, unsigned long flags)
 {
  return 0;
 }
+EXPORT_SYMBOL(cap_mmap_file);
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index dd0dc57..9760ecb6 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -7,6 +7,7 @@
 #include <linux/device_cgroup.h>
 #include <linux/cgroup.h>
 #include <linux/ctype.h>
+#include <linux/export.h>
 #include <linux/list.h>
 #include <linux/uaccess.h>
 #include <linux/seq_file.h>
@@ -789,6 +790,7 @@ int __devcgroup_inode_permission(struct inode *inode, int mask)
  return __devcgroup_check_permission(type, imajor(inode), iminor(inode),
  access);
 }
+EXPORT_SYMBOL(__devcgroup_inode_permission);
 
 int devcgroup_inode_mknod(int mode, dev_t dev)
 {
diff --git a/security/security.c b/security/security.c
index a3dce87..06a6ea6 100644
--- a/security/security.c
+++ b/security/security.c
@@ -396,6 +396,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
  return 0;
  return security_ops->path_rmdir(dir, dentry);
 }
+EXPORT_SYMBOL(security_path_rmdir);
 
 int security_path_unlink(struct path *dir, struct dentry *dentry)
 {
@@ -412,6 +413,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
  return 0;
  return security_ops->path_symlink(dir, dentry, old_name);
 }
+EXPORT_SYMBOL(security_path_symlink);
 
 int security_path_link(struct dentry *old_dentry, struct path *new_dir,
        struct dentry *new_dentry)
@@ -420,6 +422,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
  return 0;
  return security_ops->path_link(old_dentry, new_dir, new_dentry);
 }
+EXPORT_SYMBOL(security_path_link);
 
 int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
  struct path *new_dir, struct dentry *new_dentry)
@@ -438,6 +441,7 @@ int security_path_truncate(struct path *path)
  return 0;
  return security_ops->path_truncate(path);
 }
+EXPORT_SYMBOL(security_path_truncate);
 
 int security_path_chmod(struct path *path, umode_t mode)
 {
@@ -445,6 +449,7 @@ int security_path_chmod(struct path *path, umode_t mode)
  return 0;
  return security_ops->path_chmod(path, mode);
 }
+EXPORT_SYMBOL(security_path_chmod);
 
 int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
 {
@@ -452,6 +457,7 @@ int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
  return 0;
  return security_ops->path_chown(path, uid, gid);
 }
+EXPORT_SYMBOL(security_path_chown);
 
 int security_path_chroot(struct path *path)
 {
@@ -528,6 +534,7 @@ int security_inode_readlink(struct dentry *dentry)
  return 0;
  return security_ops->inode_readlink(dentry);
 }
+EXPORT_SYMBOL(security_inode_readlink);
 
 int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
 {
@@ -542,6 +549,7 @@ int security_inode_permission(struct inode *inode, int mask)
  return 0;
  return security_ops->inode_permission(inode, mask);
 }
+EXPORT_SYMBOL(security_inode_permission);
 
 int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
 {
@@ -663,6 +671,7 @@ int security_file_permission(struct file *file, int mask)
 
  return fsnotify_perm(file, mask);
 }
+EXPORT_SYMBOL(security_file_permission);
 
 int security_file_alloc(struct file *file)
 {
@@ -723,6 +732,7 @@ int security_mmap_file(struct file *file, unsigned long prot,
  return ret;
  return ima_file_mmap(file, prot);
 }
+EXPORT_SYMBOL(security_mmap_file);
 
 int security_mmap_addr(unsigned long addr)
 {

« Última modificación: 03-09-2013, 04:51 (Martes) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #87 en: 03-09-2013, 04:24 (Martes) »
me voy al plan b.


aplicar el megapatch ,al 3.10.10 y cruzar dedos.

de todas formas no me voy a poner d elos nervios ...todo llega , lo dificl esta solventado que era lo de los canales.

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #88 en: 03-09-2013, 04:37 (Martes) »
me voy al plan b.


aplicar el megapatch ,al 3.10.10 y cruzar dedos.

de todas formas no me voy a poner d elos nervios ...todo llega , lo dificl esta solventado que era lo de los canales.

va a ser que subimos a 3.11

el dia en que yo tenga que esperar a un japones para corregir dos lineas de texto en un parche por mi, me corto las venas.

para que te hagas una idea de lo chorras que eran los cambios necesarios:

Código: [Seleccionar]
alex@engetsu:~/src/aufs-aufs3-standalone$ diff aufs3-standalone.patch.old aufs3-standalone.patch
10c10
<  DEFINE_LGLOCK(files_lglock);
---
>  DEFINE_STATIC_LGLOCK(files_lglock);
168c168
< @@ -1146,6 +1147,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
---
> @@ -1133,6 +1134,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
« Última modificación: 03-09-2013, 05:00 (Martes) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #89 en: 03-09-2013, 04:58 (Martes) »
me voy al plan b.


aplicar el megapatch ,al 3.10.10 y cruzar dedos.

de todas formas no me voy a poner d elos nervios ...todo llega , lo dificl esta solventado que era lo de los canales.

va a ser que subimos a 3.11

el dia en que yo tenga que esperar a un japones para corregir dos lineas de texto en un parche por mi, me corto las venas.

me pillas ya metido en el 3.10 parcheado con lo de asus...

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #90 en: 03-09-2013, 05:01 (Martes) »
me lo temía xD

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #91 en: 03-09-2013, 05:07 (Martes) »

alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #92 en: 03-09-2013, 05:11 (Martes) »


bien, eso quiere decir que el fragmento de parche que he aislado no depende del resto de commits en absoluto.

eso si, no sé si será lo que necesitáis para resolver el tema de las teclas.

tambien puede aparecer una incoherencia en tiempo de compilacion, si hubiera referencias a código de otros commits en el código de este parche.
« Última modificación: 03-09-2013, 05:21 (Martes) por alister »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #93 en: 03-09-2013, 05:27 (Martes) »
EPIC WIN AGAIN


Parche asus , sobre 3.10.10 PERFECT  ;D

La rama 3.9 estaba afectada tambien , pero desconozco si el parche aplicara en la 3.9

Pero tu que reportas parcheas a kernel org ...puede reportar ese , para 3.10  ;)

Por cierto , tube que darle algun repaso , por los espacios en blanco "dichosos" .  ;)
Código: [Seleccionar]
--- a/drivers/platform/x86/asus-laptop.c
+++ b/drivers/platform/x86/asus-laptop.c
@@ -1935,7 +1935,6 @@ fail_input:
 fail_backlight:
  asus_platform_exit(asus);
 fail_platform:
- kfree(asus->name);
  kfree(asus);
 
  return result;
diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
index 8fcb41e18b9c..563f59efa669 100644
--- a/drivers/platform/x86/asus-nb-wmi.c
+++ b/drivers/platform/x86/asus-nb-wmi.c
@@ -180,6 +180,24 @@ static struct dmi_system_id asus_quirks[] = {
  },
  .driver_data = &quirk_asus_x401u,
  },
+ {
+ .callback = dmi_matched,
+ .ident = "ASUSTeK COMPUTER INC. 1015E",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "1015E"),
+ },
+ .driver_data = &quirk_asus_x401u,
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "ASUSTeK COMPUTER INC. 1015U",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "1015U"),
+ },
+ .driver_data = &quirk_asus_x401u,
+ },
  {},
 };
 
@@ -256,6 +274,7 @@ static const struct key_entry asus_nb_wmi_keymap[] = {
  { KE_KEY, 0xB5, { KEY_CALC } },
  { KE_KEY, 0xC4, { KEY_KBDILLUMUP } },
  { KE_KEY, 0xC5, { KEY_KBDILLUMDOWN } },
+ { KE_IGNORE, 0xC6, },  /* Ambient Light Sensor notification */
  { KE_END, 0},
 };

diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
index c11b2426dac1..19c313b056c3 100644
--- a/drivers/platform/x86/asus-wmi.c
+++ b/drivers/platform/x86/asus-wmi.c
@@ -558,7 +558,7 @@ static int asus_wmi_led_init(struct asus_wmi *asus)
  goto error;
  }
 
- if (wlan_led_presence(asus)) {
+ if (wlan_led_presence(asus) && (asus->driver->quirks->wapf == 4)) {
  INIT_WORK(&asus->wlan_led_work, wlan_led_update);
 
  asus->wlan_led.name = "asus::wlan";
@@ -886,7 +886,8 @@ static int asus_new_rfkill(struct asus_wmi *asus,
  if (!*rfkill)
  return -EINVAL;
 
- if (dev_id == ASUS_WMI_DEVID_WLAN)
+ if ((dev_id == ASUS_WMI_DEVID_WLAN) &&
+ (asus->driver->quirks->wapf == 4))
  rfkill_set_led_trigger_name(*rfkill, "asus-wlan");
 
  rfkill_init_sw_state(*rfkill, !result);
@@ -1045,7 +1046,7 @@ static ssize_t asus_hwmon_pwm1(struct device *dev,
  else if (value == 3)
  value = 255;
  else if (value != 0) {
- pr_err("Unknown fan speed %#x", value);
+ pr_err("Unknown fan speed %#x\n", value);
  value = -1;
  }
 
@@ -1557,11 +1558,11 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
 
  /* INIT enable hotkeys on some models */
  if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_INIT, 0, 0, &rv))
- pr_info("Initialization: %#x", rv);
+ pr_info("Initialization: %#x\n", rv);
 
  /* We don't know yet what to do with this version... */
  if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_SPEC, 0, 0x9, &rv)) {
- pr_info("BIOS WMI version: %d.%d", rv >> 16, rv & 0xFF);
+ pr_info("BIOS WMI version: %d.%d\n", rv >> 16, rv & 0xFF);
  asus->spec = rv;
  }
 
@@ -1572,7 +1573,7 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
  * The significance of others is yet to be found.
  */
  if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_SFUN, 0, 0, &rv)) {
- pr_info("SFUN value: %#x", rv);
+ pr_info("SFUN value: %#x\n", rv);
  asus->sfun = rv;
  }
 
@@ -1712,7 +1713,7 @@ static int asus_wmi_debugfs_init(struct asus_wmi *asus)
 
  asus->debug.root = debugfs_create_dir(asus->driver->name, NULL);
  if (!asus->debug.root) {
- pr_err("failed to create debugfs directory");
+ pr_err("failed to create debugfs directory\n");
  goto error_debugfs;
  }
 
@@ -1985,17 +1986,17 @@ EXPORT_SYMBOL_GPL(asus_wmi_unregister_driver);
 static int __init asus_wmi_init(void)
 {
  if (!wmi_has_guid(ASUS_WMI_MGMT_GUID)) {
- pr_info("Asus Management GUID not found");
+ pr_info("Asus Management GUID not found\n");
  return -ENODEV;
  }
 
- pr_info("ASUS WMI generic driver loaded");
+ pr_info("ASUS WMI generic driver loaded\n");
  return 0;
 }
 
 static void __exit asus_wmi_exit(void)
 {
- pr_info("ASUS WMI generic driver unloaded");
+ pr_info("ASUS WMI generic driver unloaded\n");
 }
 
 module_init(asus_wmi_init);
« Última modificación: 03-09-2013, 05:31 (Martes) por USUARIONUEVO »

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #94 en: 04-09-2013, 01:44 (Miércoles) »
voy a probar un poco mas tarde el 3.11 , cambiando a mano , las dos lineas que comentabas del aufs.

ya contare.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #95 en: 04-09-2013, 02:09 (Miércoles) »
Código: [Seleccionar]
alex@engetsu:~/src/aufs-aufs3-standalone$ diff aufs3-standalone.patch.old aufs3-standalone.patch
10c10
<  DEFINE_LGLOCK(files_lglock);
---
>  DEFINE_STATIC_LGLOCK(files_lglock);
168c168
< @@ -1146,6 +1147,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
---
> @@ -1133,6 +1134,7 @@ long do_splice_to(struct file *in, loff_t *ppos,

Ya avise que yo tenia aufs desde el rcN , resultado ..

<  DEFINE_LGLOCK(files_lglock);
---
>  DEFINE_STATIC_LGLOCK(files_lglock);


ese ya venia hecho ....

y este es el que solventa mi unico FAILED , que obtenia grepeando

< @@ -1146,6 +1147,7 @@ long do_splice_to(struct file *in, loff_t *ppos,
---
> @@ -1133,6 +1134,7 @@ long do_splice_to(struct file *in, loff_t *ppos,




ahora compilare , y a ver que sale.  ;)




alist3r

  • Visitante
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #96 en: 04-09-2013, 02:56 (Miércoles) »
¿sabes que pasa?

Que Andrew Morton ha puesto un puto comentario en ese fichero, que ocupa unas cuantas lineas, y lo ha empujado todo para abajo.

por esa chorrada, el offset ya no te entraba.

El otro, es verdad, en la version rc de patch set de aufs ya estaba cambiao!

Pero bueno, ya ves, son chorraditas, y en proximas ocasiones estarás bastante mejor equipado para resolver estas cosas.

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #97 en: 04-09-2013, 03:08 (Miércoles) »
no consigo arreglar el aufs macho ..y eso que se ve facilon.


 :'(

alist3r

  • Visitante

Desconectado USUARIONUEVO

  • Moderador
  • *
  • Mensajes: 14434
Re: parches que vais a necesitar en 3.8 en adelante
« Respuesta #99 en: 04-09-2013, 03:18 (Miércoles) »
agarra mi archivo aufs standalone patch directamente
https://foro.seguridadwireless.net/colaboracion-y-desarrollo-de-nuestras-lives/parches-que-vais-a-necesitar-en-3-8-en-adelante/msg285588/#msg285588

PERO SI ESQUE FALLA TAMBIEN.... ojo , que no es la 3.11-rc7  ,si no la mainline 3.11 , el fichero no es el mismo , por que comprobe el md5

wifislax linux-3.11 # patch -p1 -i /usr/src/linux-3.11/aufs3.11-rcN.patch | grep FAILED
Hunk #1 FAILED at 37.
1 out of 2 hunks FAILED -- saving rejects to file fs/file_table.c.rej